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

import java.awt.Color;
import java.io.Serializable;
import java.util.Enumeration;

import hep.graphics.heprep1.*;

/**
 *
 * @author M.Donszelmann
 *
 * @version $Id: DefaultHepRepCut.java,v 1.1 2004/07/18 08:19:47 duns Exp $
 */

public class DefaultHepRepCut implements HepRepCut, Serializable {
    public static final String cvsId = "$Id: DefaultHepRepCut.java,v 1.1 2004/07/18 08:19:47 duns Exp $";

    private String name;
    private String comparison;
    private int type;
    private Object value;

    // we cannot store or transfer objects in general since CORBA does not allow this...
    private DefaultHepRepCut(String name, String comparison, Object value) {
        this.name = name;
        this.comparison = comparison;
        this.value = value;
    }
    
    public DefaultHepRepCut(String name, String comparison, String value) {
        this(name, comparison, (Object)value);
    }

    public DefaultHepRepCut(String name, String comparison, long value) {
        this(name, comparison, (Object)(new Long(value)));
    }

    public DefaultHepRepCut(String name, String comparison, double value) {
        this(name, comparison, (Object)(new Double(value)));
    }

    public String getName() {
        return name;
    }
    
    // FIXME: what should the return value be here
    public int showLabel() {
        return 0;
    }
    
    public String getComparison() {
        return comparison;
    }
    
    public Object getValue() {
        return value;
    }
    
    public String getString() {
        return (String)value;
    }
    
    public long getLong() {
        return ((Long)value).longValue();
    }
    
    public int getInteger() {
        return (int)getLong();
    }
    
    public double getDouble() {
        return ((Double)value).doubleValue();
    }

    public boolean getBoolean() {
        return ((Boolean)value).booleanValue();
    }
    
    public Color getColor() {
        return HepRepColor.get(getString());
    }

    public int getFontStyle() {
        return HepRepFont.getStyle(getString());
    }
}
