/** * */ package de.fhswf.in.inf.java1.aufgabe12; import java.util.Stack; /** * 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(Stack stack) { if (stack == null) { throw new IllegalArgumentException("Stack must not be null."); } if (stack.size() < 1) { throw new IllegalArgumentException( "Unary operation requires one operand."); } stack.push(eval(stack.pop())); } /** * This class implements the calculation. * * @param d * The unary operator. * @return The result of the calculation. */ abstract double eval(double d); }