// -*- 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_HEPREPTREEID_H
#define HEPREP_HEPREPTREEID_H 1

// Copyright 2000-2005, FreeHEP.

#include <string>

namespace HEPREP {

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

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

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

    /**
     * Returns the version of this treeID.
     *
     * @return version of treeID.
     */
    virtual std::string getVersion() = 0;

    /**
     * Returns the qualifier that qualifies the relation that this treeID has with what it refers to.
     *
     * @return qualifier.
     */
    virtual std::string getQualifier() = 0;

    /**
     * Sets the qualifier that qualifies the relation that this treeID has with what it refers to.
     *
     * @param qualifier to be set.
     */
    virtual void setQualifier(std::string qualifier) = 0;

    /**
     * Returns a deep copy of this treeID.
     *
     * @return copy of this treeID.
     * @throws CloneNotSupportedException if copying is not possible.
     */
//    HepRepTreeID* copy() throws CloneNotSupportedException;
}; // class
} // namespace HEPREP
#endif /* ifndef HEPREP_HEPREPTREEID_H */
