Did some clean up
[Mograsim.git] / era.mi / src / era / mi / logic / components / BasicComponent.java
index ad93dfe..2956fe0 100644 (file)
@@ -1,13 +1,19 @@
 package era.mi.logic.components;
 
+import era.mi.logic.Bit;
 import era.mi.logic.Simulation;
-import era.mi.logic.WireArray;
-import era.mi.logic.WireArrayObserver;
+import era.mi.logic.wires.WireArray;
+import era.mi.logic.wires.WireArrayObserver;
 
-public abstract class BasicComponent implements WireArrayObserver
+/**
+ * A basic component that recomputes all outputs (with a delay), when it is updated.
+ * 
+ * @author Fabian Stemmler
+ */
+public abstract class BasicComponent implements WireArrayObserver, Component
 {
        private int processTime;
-       
+
        /**
         * 
         * @param processTime Amount of time this component takes to update its outputs. Must be more than 0, otherwise 1 is assumed.
@@ -18,12 +24,12 @@ public abstract class BasicComponent implements WireArrayObserver
        {
                this.processTime = processTime > 0 ? processTime : 1;
        }
-       
+
        @Override
-       public void update(WireArray initiator)
+       public void update(WireArray initiator, Bit[] oldValues)
        {
-               Simulation.TIMELINE.addEvent((e) -> {compute();}, processTime);
+               Simulation.TIMELINE.addEvent(e -> compute(), processTime);
        }
-       
+
        protected abstract void compute();
 }