Timeline now passed via constructor
[Mograsim.git] / era.mi / src / era / mi / logic / components / Component.java
index 522a58d..e26b6cd 100644 (file)
@@ -2,19 +2,27 @@ package era.mi.logic.components;
 
 import java.util.List;
 
-import era.mi.logic.wires.Wire.WireEnd;
+import era.mi.logic.timeline.Timeline;
+import era.mi.logic.wires.Wire.ReadEnd;
+import era.mi.logic.wires.Wire.ReadWriteEnd;
 
-public interface Component
+public abstract class Component
 {
+       protected Timeline timeline;
+
+       public Component(Timeline timeline)
+       {
+               this.timeline = timeline;
+       }
 
        /**
         * Returns immutable list of all inputs to the {@link Component} (including e.g. the select bits to a MUX). Intended for visualization
         * in the UI.
         */
-       public List<WireEnd> getAllInputs();
+       public abstract List<ReadEnd> getAllInputs();
 
        /**
         * Returns immutable list of all outputs to the {@link Component}. Intended for visualization in the UI.
         */
-       public List<WireEnd> getAllOutputs();
+       public abstract List<ReadWriteEnd> getAllOutputs();
 }