5ea2be05432702daea5866e6b59623bd8aee5925
[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         final MnemonicFamily owner;
10         private final int ordinal;
11
12         Mnemonic(String text, BitVector vector, MnemonicFamily owner, int ordinal)
13         {
14                 super();
15                 this.text = text;
16                 this.vector = vector;
17                 this.owner = owner;
18                 this.ordinal = ordinal;
19         }
20
21         public String getText()
22         {
23                 return text;
24         }
25
26         @Override
27         public BitVector getValue()
28         {
29                 return vector;
30         }
31
32         @Override
33         public int hashCode()
34         {
35                 final int prime = 31;
36                 int result = 1;
37                 result = prime * result + ((text == null) ? 0 : text.hashCode());
38                 result = prime * result + ((vector == null) ? 0 : vector.hashCode());
39                 return result;
40         }
41
42         @Override
43         public boolean equals(Object obj)
44         {
45                 return this == obj;
46         }
47
48         @Override
49         public ParameterType getType()
50         {
51                 return owner.getExpectedType();
52         }
53
54         public int ordinal()
55         {
56                 return ordinal;
57         }
58
59         @Override
60         public String toString()
61         {
62                 return text;
63         }
64 }