jscl.math.function.PostfixFunctionsRegistry Maven / Gradle / Ivy
package jscl.math.function;
import jscl.math.Generic;
import jscl.math.operator.*;
import org.solovyev.common.math.AbstractMathRegistry;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
/**
* User: serso
* Date: 10/31/11
* Time: 10:56 PM
*/
public class PostfixFunctionsRegistry extends AbstractMathRegistry {
private final static PostfixFunctionsRegistry instance = new PostfixFunctionsRegistry();
static {
instance.add(new DoubleFactorial(null));
instance.add(new Factorial(null));
instance.add(new Degree(null));
instance.add(new Percent(null, null));
}
@Nonnull
public static PostfixFunctionsRegistry getInstance() {
return instance;
}
@Nullable
public Operator get(@Nonnull String name, @Nonnull Generic[] parameters) {
final Operator operator = super.get(name);
return operator == null ? null : operator.newInstance(parameters);
}
@Override
public Operator get(@Nonnull String name) {
final Operator operator = super.get(name);
return operator == null ? null : FunctionsRegistry.copy(operator);
}
}