// -*- C++ -*-
// AID-GENERATED
// =========================================================================
// This class was generated by AID - Abstract Interface Definition          
// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. 
// =========================================================================
#ifndef HEPREP_HEPREPATTDEF_H
#define HEPREP_HEPREPATTDEF_H 1

// Copyright 2000-2005, FreeHEP.

#include <string>

namespace HEPREP {

/**
 * HepRepAttDef interface.
 *
 * @author Mark Donszelmann
 */
class HepRepAttDef {

public: 
    /// Destructor.
    virtual ~HepRepAttDef() { /* nop */; }

    /**
     * Returns the mixed case name of this attdef.
     *
     * @return name.
     */
    virtual std::string getName() = 0;

    /**
     * Returns the lowercased name of this attdef.
     *
     * @return lowercased name.
     */
    virtual std::string getLowerCaseName() = 0;

    /**
     * Returns a description of this attdef.
     *
     * @return description.
     */
    virtual std::string getDescription() = 0;

    /**
     * Returns category of this attdef.
     *
     * @return category.
     */
    virtual std::string getCategory() = 0;

    /**
     * Returns any extra information of this attdef.
     *
     * @return extra info.
     */
    virtual std::string getExtra() = 0;

    /**
     * Returns a deep copy of this attdef.
     *
     * @return copy of this attdef.
     */
    virtual HepRepAttDef * copy() = 0;
}; // class
} // namespace HEPREP
#endif /* ifndef HEPREP_HEPREPATTDEF_H */
