import java.util.List;
import era.mi.logic.Bit;
-import era.mi.logic.wires.WireArray;
-import era.mi.logic.wires.WireArray.WireArrayInput;
+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 WireArray output;
- private WireArrayInput outputI;
+public class ManualSwitch implements Component
+{
+ private WireEnd output;
private boolean isOn;
- public ManualSwitch(WireArray output) {
- if (output.length != 1)
+ public ManualSwitch(WireEnd output)
+ {
+ if (output.length() != 1)
throw new IllegalArgumentException("Switch output can be only a single wire");
this.output = output;
- this.outputI = output.createInput();
}
- public void switchOn() {
+ public void switchOn()
+ {
setState(true);
}
- public void switchOff() {
+ public void switchOff()
+ {
setState(false);
}
- public void toggle() {
+ public void toggle()
+ {
setState(!isOn);
}
- public void setState(boolean isOn) {
+ public void setState(boolean isOn)
+ {
if (this.isOn == isOn)
return;
this.isOn = isOn;
- outputI.feedSignals(getValue());
+ output.feedSignals(getValue());
}
- public boolean isOn() {
+ public boolean isOn()
+ {
return isOn;
}
- public Bit getValue() {
+ public Bit getValue()
+ {
return isOn ? Bit.ONE : Bit.ZERO;
}
@Override
- public List<WireArray> getAllInputs() {
+ public List<WireEnd> getAllInputs()
+ {
return List.of();
}
@Override
- public List<WireArray> getAllOutputs() {
+ public List<WireEnd> getAllOutputs()
+ {
return List.of(output);
}