// 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.awt.Color;
import java.util.Set;


import java.awt.Color;
/**
 * HepRepAttribute interface.
 *
 * @author Mark Donszelmann
 */
public interface HepRepAttribute extends HepRepConstants {

    /**
     * Adds an attValue.
     *
     * @param attValue to be added.
     */
    public void addAttValue(HepRepAttValue attValue);

    /**
     * Adds an attValue.
     *
     * @param key name of attValue
     * @param value value of attValue
     */
    public void addAttValue(String key, String value);
    /**
     * Adds an attValue.
     *
     * @param key name of attValue
     * @param value value of attValue
     * @param showLabel show this as label
     */
    public void addAttValue(String key, String value, int showLabel);

    /**
     * Adds an attValue.
     *
     * @param key name of attValue
     * @param value value of attValue
     */
    public void addAttValue(String key, int value);
    /**
     * Adds an attValue.
     *
     * @param key name of attValue
     * @param value value of attValue
     * @param showLabel show this as label
     */
    public void addAttValue(String key, int value, int showLabel);

    /**
     * Adds an attValue.
     *
     * @param key name of attValue
     * @param value value of attValue
     */
    public void addAttValue(String key, double value);
    /**
     * Adds an attValue.
     *
     * @param key name of attValue
     * @param value value of attValue
     * @param showLabel show this as label
     */
    public void addAttValue(String key, double value, int showLabel);

    /**
     * Adds an attValue.
     *
     * @param key name of attValue
     * @param value value of attValue
     */
    public void addAttValue(String key, boolean value);
    /**
     * Adds an attValue.
     *
     * @param key name of attValue
     * @param value value of attValue
     * @param showLabel show this as label
     */
    public void addAttValue(String key, boolean value, int showLabel);

    /**
     * Adds a Color attValue.
     *
     * @param key name of attValue
     * @param value value of attValue
     */
    public void addAttValue(String key, Color value);
    /**
     * Adds a Color attValue.
     *
     * @param key name of attValue
     * @param value value of attValue
     * @param showLabel show this as label
     */
    public void addAttValue(String key, Color value, int showLabel);

    /**
     * Remove the attvalue named by key.
     *
     * @param key name of the attValue to be removed.
     * @return removed HepRepAttValue, or null if not removed.
     */
    public HepRepAttValue removeAttValue(String key);

    /**
     * Returns the attValue specified by name. This attValue is normally searched
     * on the node itself and then on its type, moving up the typetree.
     *
     * @param name of attribute value.
     * @return attribute value.
     */
    public HepRepAttValue getAttValue(String name);

    /**
     * Returns a collection of all attribute values from this node.
     *
     * @return collection of HepRepAttValues.
     */
    public Set/*<HepRepAttValue>*/ getAttValuesFromNode();

    /**
     * Returns a named attribute value from this node.
     *
     * @param lowerCaseName name in all lowercase.
     * @return corresponding HepRepAttValue.
     */
    public HepRepAttValue getAttValueFromNode(String lowerCaseName);
} // class or interface

