#ifndef __package_h__
#define __package_h__

#include "person.h"

#include <tqvaluelist.h>

#include <ksharedptr.h>

class PackageImpl;

class Package
{
public:
    typedef TQValueList<Package> List;

    Package();
    Package( PackageImpl *impl );
    Package( const Package &other );
    Package &operator=( const Package &rhs );
    ~Package();

    TQString name() const;
    TQString description() const;
    uint numberOfBugs() const;
    Person maintainer() const;
    const TQStringList components() const;

    bool isNull() const { return m_impl == 0; }

    PackageImpl *impl() const { return m_impl; }

    bool operator==( const Package &rhs );
    bool operator<( const Package &rhs ) const;

private:
    TDESharedPtr<PackageImpl> m_impl;
};

#endif
