// 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.awt.Color;
/**
 * HepRepAttValue interface.
 *
 * @author Mark Donszelmann
 */
public interface HepRepAttValue extends HepRepConstants {

    /**
     * Returns name of the attvalue.
     *
     * @return Capitalized Name.
     */
    public String getName();

    /**
     * Returns lowercased name of the attvalue.
     *
     * @return Lowercased Name.
     */
    public String getLowerCaseName();

    /**
     * Returns type of the attvalue, defined in HepRepConstants with names TYPE_xxx.
     *
     * @return type.
     */
    public int getType();

    /**
     * Returns the Java-like name for the type of this attvalue.
     *
     * @return type name.
     */
    public String getTypeName();

    /**
     * Returns the flag bits for showing this attvalue as a label, defined in HepRepConstants with names SHOW_xxx.
     *
     * @return flag bits if should be shown as label.
     */
    public int showLabel();

    /**
     * Returns value as string.
     *
     * @return value as string (if type is string).
     * @throws HepRepTypeException if type is not string.
     */
    public String getString() throws HepRepTypeException;

    /**
     * Returns value as lowercase string.
     *
     * @return value as string (if type is string).
     * @throws HepRepTypeException if type is not string.
     */
    public String getLowerCaseString() throws HepRepTypeException;

    /**
     * Returns value as string.
     *
     * @return value (of any type) in string format.
     */
    public String getAsString();

    /**
     * Returns value as Color.
     *
     * @return value as Color.
     * @throws HepRepTypeException if type is not Color.
     */
    public Color getColor() throws HepRepTypeException;

    /**
     * Returns value as long.
     *
     * @return value as long.
     * @throws HepRepTypeException if type is not long.
     */
    public long getLong() throws HepRepTypeException;

    /**
     * Returns value as int.
     *
     * @return value as integer.
     * @throws HepRepTypeException if type is not int.
     */
    public int getInteger() throws HepRepTypeException;

    /**
     * Returns value as double.
     *
     * @return value as double.
     * @throws HepRepTypeException if type is not double.
     */
    public double getDouble() throws HepRepTypeException;

    /**
     * Returns value as boolean.
     *
     * @return value as boolean.
     * @throws HepRepTypeException if type is not boolean.
     */
    public boolean getBoolean() throws HepRepTypeException;

    /**
     * Returns a deep copy of this attvalue.
     *
     * @return copy of this attvalue.
     * @throws CloneNotSupportedException if copying is not possible.
     */
    public HepRepAttValue copy() throws CloneNotSupportedException;
} // class or interface

