Abacus/src/org/nwapw/abacus/function/Function.java

24 lines
721 B
Java
Executable File

package org.nwapw.abacus.function;
import org.nwapw.abacus.number.NaiveNumber;
import org.nwapw.abacus.number.NumberInterface;
import java.util.HashMap;
public abstract class Function {
private static final HashMap<Class<? extends NumberInterface>, Integer> priorityMap =
new HashMap<Class<? extends NumberInterface>, Integer>() {{
put(NaiveNumber.class, 0);
}};
protected abstract boolean matchesParams(NumberInterface[] params);
protected abstract NumberInterface applyInternal(NumberInterface[] params);
public NumberInterface apply(NumberInterface...params) {
if(!matchesParams(params)) return null;
return applyInternal(params);
}
}