-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathVariable.java
74 lines (49 loc) · 1.46 KB
/
Variable.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
public class Variable extends Factor implements Comparable{
private String subscript;
private char letter;
public Variable(char c){
this.letter = c;
valueMask = new StringBuilder(""+c);
}
public char letter(){
return letter;
}
public void setSubscript(String s){
subscript = s;
}
public void setValue(Constant constant){
throw new UnsupportedOperationException("CAN'T EVALUATE YET!");
}
public void setValue(Double d){
throw new UnsupportedOperationException("CAN'T EVALUATE YET!");
}
public String subscript(){
return subscript;
}
public int compareTo(Object o){
if(!(o instanceof Variable)){
throw new IllegalArgumentException("Variables only comparable to other factors.");
}
Variable that = (Variable)o;
if(this.letter < that.letter())
return -1;
else if(this.letter > that.letter())
return 1;
else
return operations.compareTo(that.operations);
}
public Variable(Variable v){
System.out.println("In the variable constructor, copying "+v.letter());
this.letter = v.letter();
operations = new OperationList(v.operations());
}
public String toString(){
StringBuilder sb = new StringBuilder();
sb.append("(");
sb.append(valueMask);
if(operations != null)
sb.append(operations.toString());
sb.append(")");
return sb.toString();
}
}