X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.core%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fcore%2Fwires%2FWire.java;h=89fcb80d8e5eb28dd4eaa024dd408b68e4802743;hb=da27eee93b1893199dde2b0935cafdb1c6301279;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..89fcb80d 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,19 @@ 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); + attached.forEach(r -> r.update()); } /** @@ -206,7 +205,7 @@ public class Wire return new ReadEnd(); } - private void registerInput(ReadWriteEnd toRegister) + void registerInput(ReadWriteEnd toRegister) { inputs.add(toRegister); } @@ -220,15 +219,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,11 +344,16 @@ public class Wire observers.add(ob); } + @Override + public void deregisterObserver(LogicObserver ob) + { + observers.remove(ob); + } + @Override public void notifyObservers() { - for (LogicObserver ob : observers) - ob.update(this); + observers.forEach(ob -> ob.update(this)); } } @@ -358,7 +362,7 @@ public class Wire private boolean open; private BitVector inputValues; - private ReadWriteEnd() + ReadWriteEnd() { super(); open = true;