/* $Id: BTFunction.java,v 1.3 2004-02-06 15:23:48 donm Exp $ * */ package dods.dap.Server; import java.util.List; import dods.dap.BaseType; /** Represents a server-side function, which evaluates to a BaseType. * Custom server-side functions which return non-boolean values should * implement this interface. For an efficient implementation, it is * suggested, when possible, to use the same BaseType for the getType() * method and for each successive invocation of evaluate(), changing only * the BaseType's value. This avoids creation of large numbers of * BaseTypes during a data request. * @see BTFunctionClause * @author joew */ public interface BTFunction extends ServerSideFunction { /** A given function must always evaluate to the same class * of BaseType. Only the value held by the BaseType may change. * This method can be used to discover the BaseType class of a * function without actually evaluating it. */ public BaseType getReturnType(List args) throws InvalidParameterException; /** Evaluates the function using the argument list given. * @exception SDODSException Thrown if the function * cannot evaluate successfully. The exact type of exception is up * to the author of the server-side function. */ public BaseType evaluate(List args) throws SDODSException; }