X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=era.mi%2Fsrc%2Fera%2Fmi%2Flogic%2Fcomponents%2FManualSwitch.java;h=0ad4a76cdcf57f90bd9f7b856e7aad4923f084f8;hb=dcbba0b189fd37135adc4487f1b8b645e7045bc4;hp=5e6a00c133eda7fa7eee1963b2fda448ddef2fb2;hpb=62bde086cd9895a0de2b0c3d242e546c263ea5a0;p=Mograsim.git diff --git a/era.mi/src/era/mi/logic/components/ManualSwitch.java b/era.mi/src/era/mi/logic/components/ManualSwitch.java index 5e6a00c1..0ad4a76c 100644 --- a/era.mi/src/era/mi/logic/components/ManualSwitch.java +++ b/era.mi/src/era/mi/logic/components/ManualSwitch.java @@ -2,9 +2,8 @@ package era.mi.logic.components; 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.types.Bit; +import era.mi.logic.wires.Wire.WireEnd; /** * This class models a simple on/off (ONE/ZERO) switch for user interaction. @@ -12,60 +11,60 @@ import era.mi.logic.wires.WireArray.WireArrayInput; * @author Christian Femers * */ -public final class ManualSwitch implements Component +public class ManualSwitch implements Component { - private WireArray output; - private WireArrayInput outputI; + private WireEnd output; private boolean isOn; - - public ManualSwitch(WireArray output) + + public ManualSwitch(WireEnd output) { - if(output.length != 1) + 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() { setState(true); } - + public void switchOff() { setState(false); } - + public void toggle() { setState(!isOn); } - + public void setState(boolean isOn) { - if(this.isOn == isOn) + if (this.isOn == isOn) return; this.isOn = isOn; - outputI.feedSignals(getValue()); + output.feedSignals(getValue()); } - + public boolean isOn() { return isOn; } - + public Bit getValue() { return isOn ? Bit.ONE : Bit.ZERO; } @Override - public List getAllInputs() { + public List getAllInputs() + { return List.of(); } @Override - public List getAllOutputs() { + public List getAllOutputs() + { return List.of(output); }