Merged logicui into master
[Mograsim.git] / era.mi / src / era / mi / logic / components / ManualSwitch.java
index 93c1319..0ad4a76 100644 (file)
@@ -1,64 +1,71 @@
-package era.mi.logic.components;\r
-\r
-import java.util.List;\r
-\r
-import era.mi.logic.Bit;\r
-import era.mi.logic.wires.WireArray;\r
-import era.mi.logic.wires.WireArray.WireArrayInput;\r
-\r
-/**\r
- * This class models a simple on/off (ONE/ZERO) switch for user interaction.\r
- *\r
- * @author Christian Femers\r
- *\r
- */\r
-public class ManualSwitch implements Component {\r
-       private WireArray output;\r
-       private WireArrayInput outputI;\r
-       private boolean isOn;\r
-\r
-       public ManualSwitch(WireArray output) {\r
-               if (output.length != 1)\r
-                       throw new IllegalArgumentException("Switch output can be only a single wire");\r
-               this.output = output;\r
-               this.outputI = output.createInput();\r
-       }\r
-\r
-       public void switchOn() {\r
-               setState(true);\r
-       }\r
-\r
-       public void switchOff() {\r
-               setState(false);\r
-       }\r
-\r
-       public void toggle() {\r
-               setState(!isOn);\r
-       }\r
-\r
-       public void setState(boolean isOn) {\r
-               if (this.isOn == isOn)\r
-                       return;\r
-               this.isOn = isOn;\r
-               outputI.feedSignals(getValue());\r
-       }\r
-\r
-       public boolean isOn() {\r
-               return isOn;\r
-       }\r
-\r
-       public Bit getValue() {\r
-               return isOn ? Bit.ONE : Bit.ZERO;\r
-       }\r
-\r
-       @Override\r
-       public List<WireArray> getAllInputs() {\r
-               return List.of();\r
-       }\r
-\r
-       @Override\r
-       public List<WireArray> getAllOutputs() {\r
-               return List.of(output);\r
-       }\r
-\r
-}\r
+package era.mi.logic.components;
+
+import java.util.List;
+
+import era.mi.logic.types.Bit;
+import era.mi.logic.wires.Wire.WireEnd;
+
+/**
+ * This class models a simple on/off (ONE/ZERO) switch for user interaction.
+ *
+ * @author Christian Femers
+ *
+ */
+public class ManualSwitch implements Component
+{
+       private WireEnd output;
+       private boolean isOn;
+
+       public ManualSwitch(WireEnd output)
+       {
+               if (output.length() != 1)
+                       throw new IllegalArgumentException("Switch output can be only a single wire");
+               this.output = output;
+       }
+
+       public void switchOn()
+       {
+               setState(true);
+       }
+
+       public void switchOff()
+       {
+               setState(false);
+       }
+
+       public void toggle()
+       {
+               setState(!isOn);
+       }
+
+       public void setState(boolean isOn)
+       {
+               if (this.isOn == isOn)
+                       return;
+               this.isOn = isOn;
+               output.feedSignals(getValue());
+       }
+
+       public boolean isOn()
+       {
+               return isOn;
+       }
+
+       public Bit getValue()
+       {
+               return isOn ? Bit.ONE : Bit.ZERO;
+       }
+
+       @Override
+       public List<WireEnd> getAllInputs()
+       {
+               return List.of();
+       }
+
+       @Override
+       public List<WireEnd> getAllOutputs()
+       {
+               return List.of(output);
+       }
+
+}