Suppressed warnings where the thing warned about is intentional
[Mograsim.git] / era.mi / src / era / mi / logic / components / gates / NotGate.java
index f81ba92..685bc22 100644 (file)
@@ -1,45 +1,50 @@
 package era.mi.logic.components.gates;
 
-import java.util.Arrays;
-import java.util.Collections;
 import java.util.List;
 
-import era.mi.logic.Util;
 import era.mi.logic.components.BasicComponent;
-import era.mi.logic.wires.WireArray;
-import era.mi.logic.wires.WireArray.WireArrayInput;
-
-public class NotGate extends BasicComponent {
-       private WireArray in, out;
-       private WireArrayInput outI;
-
-       public NotGate(int processTime, WireArray in, WireArray out) {
-               super(processTime);
+import era.mi.logic.timeline.Timeline;
+import era.mi.logic.wires.Wire.ReadEnd;
+import era.mi.logic.wires.Wire.ReadWriteEnd;
+
+public class NotGate extends BasicComponent
+{
+       private ReadEnd in;
+       private ReadWriteEnd out;
+
+       public NotGate(Timeline timeline, int processTime, ReadEnd in, ReadWriteEnd out)
+       {
+               super(timeline, processTime);
                this.in = in;
                in.addObserver(this);
                this.out = out;
-               outI = out.createInput();
        }
 
-       public void compute() {
-               outI.feedSignals(Util.not(in.getValues()));
+       @Override
+       protected void compute()
+       {
+               out.feedSignals(in.getValues().not());
        }
 
-       public WireArray getIn() {
+       public ReadEnd getIn()
+       {
                return in;
        }
 
-       public WireArray getOut() {
+       public ReadEnd getOut()
+       {
                return out;
        }
 
        @Override
-       public List<WireArray> getAllInputs() {
-               return Collections.unmodifiableList(Arrays.asList(in));
+       public List<ReadEnd> getAllInputs()
+       {
+               return List.of(in);
        }
 
        @Override
-       public List<WireArray> getAllOutputs() {
-               return Collections.unmodifiableList(Arrays.asList(out));
+       public List<ReadWriteEnd> getAllOutputs()
+       {
+               return List.of(out);
        }
 }