package akin.lang;
/**
Specialized method of operators (+, -, *, /, etc.)
*/
public abstract class OperatorMethod<T> extends Method {
@SuppressWarnings("unchecked")
public AkinObject call(AkinObject receiver, AkinObject arguments[]) throws AkinException {
T self = (T) receiver.as(ValueObject.class).getValue();
T arg = (T) arguments[0].as(ValueObject.class).getValue();
return perform(self, arg);
}
public abstract AkinObject perform(T receiver, T argument) throws AkinException;
}