-package era.mi.logic.components;\r
-\r
-import java.util.ArrayList;\r
-import java.util.Arrays;\r
-import java.util.Collections;\r
-import java.util.List;\r
-\r
-import era.mi.logic.Bit;\r
-import era.mi.logic.wires.WireArray;\r
-\r
-public class BitDisplay extends BasicComponent {\r
- private final WireArray in;\r
- private Bit[] displayedValue;\r
-\r
- public BitDisplay(WireArray in) {\r
- super(1);\r
- this.in = in;\r
- in.addObserver(this);\r
- compute();\r
- }\r
-\r
- @Override\r
- protected void compute() {\r
- displayedValue = in.getValues();\r
- }\r
-\r
- public Bit[] getDisplayedValue() {\r
- return displayedValue;\r
- }\r
-\r
- public boolean isDisplaying(Bit... values) {\r
- return Arrays.equals(displayedValue, values);\r
- }\r
-\r
- @Override\r
- public List<WireArray> getAllInputs() {\r
- return Collections.unmodifiableList(Arrays.asList(in));\r
- }\r
-\r
- @Override\r
- public List<WireArray> getAllOutputs() {\r
- return Collections.unmodifiableList(new ArrayList<WireArray>());\r
- }\r
-}\r
+package era.mi.logic.components;
+
+import java.util.List;
+
+import era.mi.logic.types.Bit;
+import era.mi.logic.types.BitVector;
+import era.mi.logic.wires.Wire.WireEnd;
+
+public class BitDisplay extends BasicComponent
+{
+ private final WireEnd in;
+ private BitVector displayedValue;
+
+ public BitDisplay(WireEnd in)
+ {
+ super(1);
+ this.in = in;
+ in.addObserver(this);
+ compute();
+ }
+
+ @Override
+ protected void compute()
+ {
+ displayedValue = in.getValues();
+ }
+
+ public BitVector getDisplayedValue()
+ {
+ return displayedValue;
+ }
+
+ public boolean isDisplaying(Bit... values)
+ {
+ return displayedValue.equals(BitVector.of(values));
+ }
+
+ @Override
+ public List<WireEnd> getAllInputs()
+ {
+ return List.of(in);
+ }
+
+ @Override
+ public List<WireEnd> getAllOutputs()
+ {
+ return List.of();
+ }
+}