a483044677bc92ec422e72542a5d12b227dcc4cb
[Mograsim.git] / era.mi / src / net / mograsim / logic / core / components / BitDisplay.java
1 package net.mograsim.logic.core.components;\r
2 \r
3 import java.util.List;\r
4 \r
5 import net.mograsim.logic.core.timeline.Timeline;\r
6 import net.mograsim.logic.core.types.Bit;\r
7 import net.mograsim.logic.core.types.BitVector;\r
8 import net.mograsim.logic.core.wires.Wire.ReadEnd;\r
9 import net.mograsim.logic.core.wires.Wire.ReadWriteEnd;\r
10 \r
11 public class BitDisplay extends BasicComponent\r
12 {\r
13         private final ReadEnd in;\r
14         private BitVector displayedValue;\r
15 \r
16         public BitDisplay(Timeline timeline, ReadEnd in)\r
17         {\r
18                 super(timeline, 1);\r
19                 this.in = in;\r
20                 in.addObserver(this);\r
21                 compute();\r
22         }\r
23 \r
24         @Override\r
25         protected void compute()\r
26         {\r
27                 displayedValue = in.getValues();\r
28         }\r
29 \r
30         public BitVector getDisplayedValue()\r
31         {\r
32                 return displayedValue;\r
33         }\r
34 \r
35         public boolean isDisplaying(Bit... values)\r
36         {\r
37                 return displayedValue.equals(BitVector.of(values));\r
38         }\r
39 \r
40         @Override\r
41         public List<ReadEnd> getAllInputs()\r
42         {\r
43                 return List.of(in);\r
44         }\r
45 \r
46         @Override\r
47         public List<ReadWriteEnd> getAllOutputs()\r
48         {\r
49                 return List.of();\r
50         }\r
51 }\r