Timeline now passed via constructor
[Mograsim.git] / era.mi / src / era / mi / logic / components / ManualSwitch.java
index 14ca280..450fa51 100644 (file)
@@ -2,9 +2,10 @@ package era.mi.logic.components;
 \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.WireArrayEnd;\r
+import era.mi.logic.timeline.Timeline;\r
+import era.mi.logic.types.Bit;\r
+import era.mi.logic.wires.Wire.ReadEnd;\r
+import era.mi.logic.wires.Wire.ReadWriteEnd;\r
 \r
 /**\r
  * This class models a simple on/off (ONE/ZERO) switch for user interaction.\r
@@ -12,18 +13,17 @@ import era.mi.logic.wires.WireArray.WireArrayEnd;
  * @author Christian Femers\r
  *\r
  */\r
-public class ManualSwitch implements Component\r
+public class ManualSwitch extends Component\r
 {\r
-       private WireArray output;\r
-       private WireArrayEnd outputI;\r
+       private ReadWriteEnd output;\r
        private boolean isOn;\r
 \r
-       public ManualSwitch(WireArray output)\r
+       public ManualSwitch(Timeline timeline, ReadWriteEnd output)\r
        {\r
-               if (output.length != 1)\r
+               super(timeline);\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
@@ -46,7 +46,7 @@ public class ManualSwitch implements Component
                if (this.isOn == isOn)\r
                        return;\r
                this.isOn = isOn;\r
-               outputI.feedSignals(getValue());\r
+               output.feedSignals(getValue());\r
        }\r
 \r
        public boolean isOn()\r
@@ -60,13 +60,13 @@ public class ManualSwitch implements Component
        }\r
 \r
        @Override\r
-       public List<WireArray> getAllInputs()\r
+       public List<ReadEnd> getAllInputs()\r
        {\r
                return List.of();\r
        }\r
 \r
        @Override\r
-       public List<WireArray> getAllOutputs()\r
+       public List<ReadWriteEnd> getAllOutputs()\r
        {\r
                return List.of(output);\r
        }\r