X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.core%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fcore%2Fwires%2FWire.java;h=35addff359d8b726dd5e5e62176a4c17d8e5fe3e;hb=cc4a905123efa6afb61c95cca21f22b78b194734;hp=12f0f8a96d222e375c6da75e9549088c10313108;hpb=e202298a91603f3b8cfae3c1192e5be796db2786;p=Mograsim.git diff --git a/net.mograsim.logic.core/src/net/mograsim/logic/core/wires/Wire.java b/net.mograsim.logic.core/src/net/mograsim/logic/core/wires/Wire.java index 12f0f8a9..35addff3 100644 --- a/net.mograsim.logic.core/src/net/mograsim/logic/core/wires/Wire.java +++ b/net.mograsim.logic.core/src/net/mograsim/logic/core/wires/Wire.java @@ -23,10 +23,10 @@ public class Wire { private BitVector values; public final int travelTime; - private List attached = new ArrayList(); + private List attached = new ArrayList<>(); public final int length; - private List inputs = new ArrayList(); - private Timeline timeline; + List inputs = new ArrayList<>(); + Timeline timeline; public Wire(Timeline timeline, int length, int travelTime) { @@ -61,12 +61,12 @@ public class Wire { if (values.equals(newValues)) return; - BitVector oldValues = values; +// BitVector oldValues = values; values = newValues; - notifyObservers(oldValues); + notifyObservers(); } - private void recalculate() + void recalculate() { switch (inputs.size()) { @@ -174,20 +174,20 @@ public class Wire * * @author Fabian Stemmler */ - private void attachEnd(ReadEnd end) + void attachEnd(ReadEnd end) { attached.add(end); } - private void detachEnd(ReadEnd end) + void detachEnd(ReadEnd end) { attached.remove(end); } - private void notifyObservers(BitVector oldValues) + private void notifyObservers() { for (ReadEnd o : attached) - o.update(oldValues); + o.update(); } /** @@ -206,7 +206,7 @@ public class Wire return new ReadEnd(); } - private void registerInput(ReadWriteEnd toRegister) + void registerInput(ReadWriteEnd toRegister) { inputs.add(toRegister); } @@ -220,15 +220,15 @@ public class Wire */ public class ReadEnd implements LogicObservable { - private List observers = new ArrayList(); + private List observers = new ArrayList<>(); - private ReadEnd() + ReadEnd() { super(); Wire.this.attachEnd(this); } - public void update(BitVector oldValues) + public void update() { notifyObservers(); } @@ -345,6 +345,12 @@ public class Wire observers.add(ob); } + @Override + public void deregisterObserver(LogicObserver ob) + { + observers.remove(ob); + } + @Override public void notifyObservers() { @@ -358,7 +364,7 @@ public class Wire private boolean open; private BitVector inputValues; - private ReadWriteEnd() + ReadWriteEnd() { super(); open = true;