The final restructured version for automatic build using maven tycho
[Mograsim.git] / plugins / net.mograsim.machine / src / net / mograsim / machine / mi / parameters / BooleanClassification.java
diff --git a/plugins/net.mograsim.machine/src/net/mograsim/machine/mi/parameters/BooleanClassification.java b/plugins/net.mograsim.machine/src/net/mograsim/machine/mi/parameters/BooleanClassification.java
new file mode 100644 (file)
index 0000000..73acc66
--- /dev/null
@@ -0,0 +1,34 @@
+package net.mograsim.machine.mi.parameters;
+
+import net.mograsim.logic.core.types.BitVector;
+import net.mograsim.machine.mi.parameters.MicroInstructionParameter.ParameterType;
+
+public class BooleanClassification extends MnemonicFamily
+{
+       String trueName, falseName;
+
+       public BooleanClassification(boolean defaultValue, String trueName, String falseName)
+       {
+               super(defaultValue ? trueName : falseName, new MnemonicPair(trueName, BitVector.SINGLE_1),
+                               new MnemonicPair(falseName, BitVector.SINGLE_0));
+               this.trueName = trueName;
+               this.falseName = falseName;
+       }
+
+       public Mnemonic get(boolean value)
+       {
+               return get(value ? trueName : falseName);
+       }
+
+       @Override
+       public ParameterType getExpectedType()
+       {
+               return ParameterType.BOOLEAN_IMMEDIATE;
+       }
+
+       @Override
+       public int getExpectedBits()
+       {
+               return 1;
+       }
+}