1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 package zeus.concepts.fn;
25
26 import java.util.*;
27 import zeus.util.*;
28 import zeus.concepts.*;
29
30 public class IntFn extends ValueFunction
31 implements PrimitiveFn, PrimitiveNumericFn {
32
33 protected long arg;
34
35 public IntFn(long arg) {
36 super(INT,10);
37 this.arg = arg;
38 }
39 public IntFn(int arg) {
40 super(INT,10);
41 this.arg = (long)arg;
42 }
43 public IntFn(String arg) {
44 super(INT,10);
45 this.arg = (Long.valueOf(arg)).longValue();
46 }
47 public ValueFunction mirror() {
48 return new IntFn(arg);
49 }
50 public String toString() {
51 return Long.toString(arg);
52 }
53 Object getArg(int position) {
54 if (position != 0) throw new ArrayIndexOutOfBoundsException(position);
55 return new Long(arg);
56 }
57 public int getValue() {
58 return (int)arg;
59 }
60 public long longValue() {
61 return arg;
62 }
63 public double doubleValue() {
64 return (double)arg;
65 }
66 public int intValue() {
67 return (int)arg;
68 }
69 public boolean references(ValueFunction var) {
70 return false;
71 }
72 public boolean isDeterminate() {
73 return true;
74 }
75 public boolean equals(Object any) {
76 if ( !(any instanceof ValueFunction) ) return false;
77 ValueFunction fn = (ValueFunction)any;
78 switch( fn.getID() ) {
79 case INT:
80 return arg == ((IntFn)fn).getValue();
81 case REAL:
82 return arg == ((RealFn)fn).getValue();
83 }
84 return false;
85 }
86 public boolean less(Object any) {
87 if ( !(any instanceof ValueFunction) ) return false;
88 ValueFunction fn = (ValueFunction)any;
89 switch( fn.getID() ) {
90 case INT:
91 return arg < ((IntFn)fn).getValue();
92 case REAL:
93 return arg < ((RealFn)fn).getValue();
94 }
95 return false;
96 }
97 ValueFunction unify(ValueFunction fn, Bindings b) {
98 return null;
99 }
100 }