X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.core%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fcore%2Fwires%2FWire.java;h=ffbbd328ed3993248583d5e171e3edd9a4d8759f;hb=218ed3e44595ad3534c33e05b43a55cc1a67e851;hp=404aacd32a09127a12dad19f8a98d1ce0e740c6d;hpb=ecc651406020231ff0ebc8d1bfc6f916693f69c6;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 404aacd3..ffbbd328 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;