-package era.mi.logic.components;\r
-\r
-import era.mi.logic.Bit;\r
-import era.mi.logic.Simulation;\r
-import era.mi.logic.wires.Wire;\r
-import era.mi.logic.wires.WireObserver;\r
-\r
-/**\r
- * A basic component that recomputes all outputs (with a delay), when it is updated.\r
- * \r
- * @author Fabian Stemmler\r
- */\r
-public abstract class BasicComponent implements WireObserver, Component\r
-{\r
- private int processTime;\r
-\r
- /**\r
- * \r
- * @param processTime Amount of time this component takes to update its outputs. Must be more than 0, otherwise 1 is assumed.\r
- * \r
- * @author Fabian Stemmler\r
- */\r
- public BasicComponent(int processTime)\r
- {\r
- this.processTime = processTime > 0 ? processTime : 1;\r
- }\r
-\r
- @Override\r
- public void update(Wire initiator, Bit[] oldValues)\r
- {\r
- Simulation.TIMELINE.addEvent(e -> compute(), processTime);\r
- }\r
-\r
- protected abstract void compute();\r
-}\r
+package era.mi.logic.components;
+
+import era.mi.logic.Simulation;
+import era.mi.logic.types.BitVector;
+import era.mi.logic.wires.Wire;
+import era.mi.logic.wires.WireObserver;
+
+/**
+ * A basic component that recomputes all outputs (with a delay), when it is updated.
+ *
+ * @author Fabian Stemmler
+ */
+public abstract class BasicComponent implements WireObserver, 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.
+ *
+ * @author Fabian Stemmler
+ */
+ public BasicComponent(int processTime)
+ {
+ this.processTime = processTime > 0 ? processTime : 1;
+ }
+
+ @Override
+ public void update(Wire initiator, BitVector oldValues)
+ {
+ Simulation.TIMELINE.addEvent(e -> compute(), processTime);
+ }
+
+ protected abstract void compute();
+}