/*
 * BaseModelFunction.java
 *
 * Created on September 4, 2002, 5:26 AM
 */

package hep.aida.ref.function;
import hep.aida.IAnnotation;
import hep.aida.IFunction;
import hep.aida.IModelFunction;
import hep.aida.IRangeSet;
import hep.aida.ref.Annotation;
import hep.aida.ref.ManagedObject;

import java.util.ArrayList;

/**
 *
 * @author  serbo
 */
public class BaseModelFunction extends ManagedObject implements IModelFunction, FunctionDispatcher {
    
    protected String[] varNames;
    protected IAnnotation annotation;
    protected String codeletString;
    protected String title;
    protected FunctionCore function;
    protected FunctionCore functionNotNormalized;
    protected FunctionCore functionNormalized;
    
    //private boolean providesNormalization;
    private boolean isNormalized;
    private boolean normalizationValid;
    private double normalizationAmplitude;
    private RangeSet[] rangeSet;
    
    private ArrayList listeners = new ArrayList();
    
    // One of FunctionCores can be "null"
    protected BaseModelFunction() {
        super(null);
    }
    public BaseModelFunction(String name, String tit, IFunction func) {
        super(name);
        IFunctionCoreNotNorm notNorm = new IFunctionCoreNotNorm(func);
        init(tit, notNorm, null);
        annotation = func.annotation();
        
        setCodeletString(func.codeletString());
        String[] funcVarNames = func.variableNames();
        for (int i=0; i 

Ads help maintain this website.