// these interfaces may move at some point to something like: hep.heprep
package hep.graphics.heprep1;

import java.util.Enumeration;

/**
 *
 * @author M.Donszelmann
 *
 * @version $Id: HepRepAttribute.java,v 1.3 2004/07/30 14:51:52 duns Exp $
 */

public interface HepRepAttribute {
    public static final String cvsId = "$Id: HepRepAttribute.java,v 1.3 2004/07/30 14:51:52 duns Exp $";

    /**
     * @param name case insensitive name of attribute definition
     * @returns attribute definition
     */
    public HepRepAttDef getAttDef(String name);

    /**
     * @param name case insensitive name of attribute value
     * @returns attribute value
     */
    public HepRepAttValue getAttValue(String name);
    
    public HepRepAttribute getParent();
    
    public HepRepAttValue getAttValueFromNode(String name);
    public Enumeration/*<HepRepAttValue>*/ getAttValues();
    public HepRepAttDef getAttDefFromNode(String name);
    public Enumeration/*<HepRepAttDef>*/ getAttDefs();

    public void addValue(String key, String value);
    public void addValue(String key, int value, int showLabel);
    public void addValue(String key, double value, int showLabel);
    public void addValue(String key, boolean value, int showLabel);
    public void addValue(String key, String value, int showLabel);
    public void addColor(String key, String colorName, int showLabel);            
    public void addColor(String key, double r, double g, double b, double alpha, int showLabel);
    public void addDefinition(String name, String desc, String type, String extra);
}        
