KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > gnu > ecmascript > BinaryOp


1 package gnu.ecmascript;
2 import gnu.mapping.*;
3
4 public class BinaryOp extends Procedure2
5 {
6   int op;
7   public BinaryOp(String JavaDoc name, int op)
8   {
9     setName(name);
10     this.op = op;
11   }
12
13   public Object JavaDoc apply2 (Object JavaDoc arg1, Object JavaDoc arg2)
14   {
15     if (op == Reserved.LESS_OP)
16       {
17     return Convert.toNumber(arg1) < Convert.toNumber(arg2)
18       ? Boolean.TRUE : Boolean.FALSE;
19       }
20     return new Double JavaDoc(apply(Convert.toNumber(arg1), Convert.toNumber(arg2)));
21   }
22   
23   public double apply (double arg1, double arg2)
24   {
25     switch (op)
26       {
27       case Reserved.PLUS_OP: return arg1+arg2;
28       case Reserved.MINUS_OP: return arg1-arg2;
29       case Reserved.TIMES_OP: return arg1*arg2;
30       case Reserved.LSHIFT_OP: return (double)((int)arg1 << ((int)arg2 & 31));
31       }
32     return Double.NaN;
33   }
34 }
35
Popular Tags