/** * */ package de.fhswf.in.inf.upnfx.util; /** * An abstract class for calculations with unary operators. * * @author $Author: $ * @version $Revision: $, $Date: $ UTC */ public abstract class UnaryOperator implements Operator { /* * (non-Javadoc) * * @see de.fhswf.in.inf.java1.aufgabe12.Operator#eval(java.util.Stack) */ @Override public final void eval(ObservableDoubleStack stack) { if (stack == null) { throw new IllegalArgumentException("Stack must not be null."); } if (stack.size() < 1) { throw new IllegalArgumentException( "Unary operation requires one operand."); } double d = stack.pop(); stack.push(eval(d)); } /** * This class implements the calculation. * * @param d * The unary operator. * @return The result of the calculation. */ abstract double eval(double d); }