Refined MicroInstructionDefinition and associated classes
[Mograsim.git] / net.mograsim.machine / src / net / mograsim / machine / mi / parameters / Mnemonic.java
1 package net.mograsim.machine.mi.parameters;
2
3 import net.mograsim.logic.core.types.BitVector;
4
5 public final class Mnemonic implements MicroInstructionParameter
6 {
7         private final String text;
8         private final BitVector vector;
9         
10         public Mnemonic(String text, BitVector vector)
11         {
12                 super();
13                 this.text = text;
14                 this.vector = vector;
15         }
16
17         public String getText()
18         {
19                 return text;
20         }
21
22         @Override
23         public BitVector getValue()
24         {
25                 return vector;
26         }
27
28         @Override
29         public int hashCode()
30         {
31                 final int prime = 31;
32                 int result = 1;
33                 result = prime * result + ((text == null) ? 0 : text.hashCode());
34                 result = prime * result + ((vector == null) ? 0 : vector.hashCode());
35                 return result;
36         }
37
38         @Override
39         public boolean equals(Object obj)
40         {
41                 if (this == obj)
42                         return true;
43                 if (obj == null)
44                         return false;
45                 if (!(obj instanceof Mnemonic))
46                         return false;
47                 Mnemonic other = (Mnemonic) obj;
48                 if (text == null)
49                 {
50                         if (other.text != null)
51                                 return false;
52                 } else if (!text.equals(other.text))
53                         return false;
54                 if (vector == null)
55                 {
56                         if (other.vector != null)
57                                 return false;
58                 } else if (!vector.equals(other.vector))
59                         return false;
60                 return true;
61         }
62
63         @Override
64         public ParameterType getType()
65         {
66                 return ParameterType.MNEMONIC;
67         }
68 }