package jscl.math.operator; import jscl.AngleUnit; import jscl.JsclMathEngine; import jscl.math.Generic; import jscl.math.Variable; import jscl.text.ParserUtils; import javax.annotation.Nonnull; /** * User: serso * Date: 10/31/11 * Time: 10:58 PM */ public class Degree extends PostfixFunction { public static final String NAME = "°"; public Degree(Generic expression) { super(NAME, new Generic[]{expression}); } private Degree(Generic[] parameter) { super(NAME, ParserUtils.copyOf(parameter, 1)); } @Override public int getMinParameters() { return 1; } public Generic selfExpand() { return expressionValue(); } @Override public Generic selfNumeric() { return AngleUnit.deg.transform(JsclMathEngine.getInstance().getAngleUnits(), parameters[0]); } @Nonnull @Override public Operator newInstance(@Nonnull Generic[] parameters) { return new Degree(parameters); } @Nonnull @Override public Variable newInstance() { return new Degree((Generic) null); } }