package eu.stratosphere.sopremo.function;
import eu.stratosphere.sopremo.expressions.EvaluationExpression;
public abstract class MacroBase extends Callable<EvaluationExpression, EvaluationExpression[]> {
public MacroBase(final int numberOfParameters) {
super(numberOfParameters, numberOfParameters);
}
/**
* Initializes MacroBase.
*
* @param minimumNumberOfParameters
* @param maximumNumberOfParameters
*/
public MacroBase(final int minimumNumberOfParameters, final int maximumNumberOfParameters) {
super(minimumNumberOfParameters, maximumNumberOfParameters);
}
/*
* (non-Javadoc)
* @see eu.stratosphere.sopremo.function.Callable#call(java.lang.Object)
*/
@Override
public final EvaluationExpression call(final EvaluationExpression[] params) {
if (!this.accepts(params.length))
throw new IllegalArgumentException("Incorrect number of parameters");
return this.process(params);
}
protected abstract EvaluationExpression process(EvaluationExpression[] params);
}