1 8 package org.lsmp.djep.groupJep.function; 9 import org.nfunk.jep.function.*; 10 import org.lsmp.djep.groupJep.*; 11 import org.lsmp.djep.groupJep.interfaces.*; 12 13 import java.util.*; 14 import org.nfunk.jep.*; 15 19 public class GPower extends PostfixMathCommand { 20 21 private HasPowerI group=null; 22 25 private GPower() { } 26 public GPower(GroupI group) 27 { 28 numberOfParameters = 2; 29 if(group instanceof HasPowerI) 30 this.group = (HasPowerI) group; 31 } 32 33 37 public void run(Stack stack) throws ParseException { 38 checkStack(stack); Object exponant = stack.pop(); 40 Object param = stack.pop(); 41 Object res = pow(param, exponant); 42 stack.push(res); 43 return; 44 } 45 46 public Object pow(Object param1, Object param2) throws ParseException { 47 if(group==null) throw new ParseException("Power not implemented for this group."); 48 if (param1 instanceof Number ) { 49 if (param2 instanceof Number ) { 50 return group.pow((Number )param1, (Number )param2); 51 } 52 } 53 54 throw new ParseException("Invalid parameter type"); 55 } 56 } 57 | Popular Tags |