1 package era.mi.logic.components;
5 import era.mi.logic.types.Bit;
6 import era.mi.logic.wires.Wire.WireEnd;
9 * This class models a simple on/off (ONE/ZERO) switch for user interaction.
11 * @author Christian Femers
14 public class ManualSwitch implements Component
16 private WireEnd output;
19 public ManualSwitch(WireEnd output)
21 if (output.length() != 1)
22 throw new IllegalArgumentException("Switch output can be only a single wire");
26 public void switchOn()
31 public void switchOff()
41 public void setState(boolean isOn)
43 if (this.isOn == isOn)
46 output.feedSignals(getValue());
56 return isOn ? Bit.ONE : Bit.ZERO;
60 public List<WireEnd> getAllInputs()
66 public List<WireEnd> getAllOutputs()
68 return List.of(output);