Boolean and IntegerImmediates can be accessed as boolean/BigInteger now
[Mograsim.git] / net.mograsim.machine / src / net / mograsim / machine / mi / parameters / BooleanImmediate.java
1 package net.mograsim.machine.mi.parameters;
2
3 import net.mograsim.logic.core.types.BitVector;
4
5 public class BooleanImmediate implements MicroInstructionParameter
6 {
7         private boolean value;
8         
9         public BooleanImmediate(boolean value)
10         {
11                 this.value = value;
12         }
13         
14         @Override
15         public BitVector getValue()
16         {
17                 return value ? BitVector.SINGLE_1 : BitVector.SINGLE_0;
18         }
19         
20         public boolean getBooleanValue()
21         {
22                 return value;
23         }
24
25         @Override
26         public ParameterType getType()
27         {
28                 return ParameterType.BOOLEAN_IMMEDIATE;
29         }
30         
31         @Override
32         public int hashCode()
33         {
34                 final int prime = 31;
35                 int result = 1;
36                 result = prime * result + (value ? 1231 : 1237);
37                 return result;
38         }
39
40         @Override
41         public boolean equals(Object obj)
42         {
43                 if (this == obj)
44                         return true;
45                 if (obj == null)
46                         return false;
47                 if (!(obj instanceof BooleanImmediate))
48                         return false;
49                 BooleanImmediate other = (BooleanImmediate) obj;
50                 if (value != other.value)
51                         return false;
52                 return true;
53         }
54         
55         @Override
56         public String toString()
57         {
58                 return value ? "H" : "L";
59         }
60 }