\r
import era.mi.logic.Bit;\r
import era.mi.logic.wires.WireArray;\r
-import era.mi.logic.wires.WireArray.WireArrayInput;\r
+import era.mi.logic.wires.WireArray.WireArrayEnd;\r
\r
/**\r
* This class models a simple on/off (ONE/ZERO) switch for user interaction.\r
* @author Christian Femers\r
*\r
*/\r
-public final class ManualSwitch implements Component \r
+public class ManualSwitch implements Component\r
{\r
private WireArray output;\r
- private WireArrayInput outputI;\r
+ private WireArrayEnd outputI;\r
private boolean isOn;\r
- \r
- public ManualSwitch(WireArray output) \r
+\r
+ public ManualSwitch(WireArray output)\r
{\r
- if(output.length != 1)\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
+\r
public void switchOn()\r
{\r
setState(true);\r
}\r
- \r
+\r
public void switchOff()\r
{\r
setState(false);\r
}\r
- \r
+\r
public void toggle()\r
{\r
setState(!isOn);\r
}\r
- \r
+\r
public void setState(boolean isOn)\r
{\r
- if(this.isOn == isOn)\r
+ if (this.isOn == isOn)\r
return;\r
this.isOn = isOn;\r
outputI.feedSignals(getValue());\r
}\r
- \r
+\r
public boolean isOn()\r
{\r
return isOn;\r
}\r
- \r
+\r
public Bit getValue()\r
{\r
return isOn ? Bit.ONE : Bit.ZERO;\r
}\r
\r
@Override\r
- public List<WireArray> getAllInputs() {\r
+ public List<WireArray> getAllInputs()\r
+ {\r
return List.of();\r
}\r
\r
@Override\r
- public List<WireArray> getAllOutputs() {\r
+ public List<WireArray> getAllOutputs()\r
+ {\r
return List.of(output);\r
}\r
\r