// 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. 
// =========================================================================

// Copyright 2000-2002, FreeHEP.
package hep.graphics.heprep;

import java.util.Set;

/**
 * HepRepDefinition interface.
 *
 * @author Mark Donszelmann
 *
 */
public interface HepRepDefinition extends HepRepAttribute {

    /**
     * Adds an attdef.
     *
     * @param name name of the definition.
     * @param desc description of the definition.
     * @param category category of the definition.
     * @param extra extra info of the definition.
     */
    public void addAttDef(String name, String desc, String category, String extra);

    /**
     * Adds an attdef.
     *
     * @param attDef to be added.
     */
    public void addAttDef(HepRepAttDef attDef);

    /**
     * Return a named attribute definition searched on this node and any parent nodes.
     *
     * @param name of attribute definition.
     * @return attribute definition.
     */
    public HepRepAttDef getAttDef(String name);

    /**
     * Returns a collection of all attribute definitions defined on this node.
     *
     * @return collection of attributes definitions.
     */
    public Set/*<HepRepAttDef>*/ getAttDefsFromNode();

    /**
     * Returns a named attribute definition defined on this node.
     *
     * @param lowerCaseName name of the attribute in lower case.
     * @return attribute definition.
     */
    public HepRepAttDef getAttDefFromNode(String lowerCaseName);
} // class or interface

