package hep.aida.ref.pdf; import hep.aida.IFunction; import hep.aida.IManagedObject; import hep.aida.IModelFunction; /** * Converts IFunctions to Functions and vice-versa. * * @author The FreeHEP team @ SLAC. * */ public class FunctionConverter { public static IModelFunction convert(Function f) { return (IModelFunction)f; } public static Function convert(IFunction f) { String name = ""; if ( f instanceof IManagedObject ) name = ((IManagedObject)f).name(); return new IFunctionWrapper(name,f); } public static IFunction getIFunction(Object obj) { if ( obj instanceof IFunction ) return (IFunction)obj; if ( obj instanceof Function ) return convert((Function)obj); else throw new IllegalArgumentException( "Cannot convert object of type "+obj.getClass()+" to an IFunction."); } public static IModelFunction getIModelFunction(Object obj) { if ( obj instanceof IModelFunction ) return (IModelFunction)obj; if ( obj instanceof Function ) return convert((Function)obj); else throw new IllegalArgumentException( "Cannot convert object of type "+obj.getClass()+" to an IFunction."); } public static Function getFunction(Object obj) { if ( obj instanceof Function ) return (Function)obj; if ( obj instanceof IFunction ) return convert((IFunction)obj); else throw new IllegalArgumentException( "Cannot convert object of type "+obj.getClass()+" to a Function."); } }