fd1a88c5e27f373ded160662731686d0edae22b8
[Mograsim.git] / era.mi / src / era / mi / logic / components / BitDisplay.java
1 package era.mi.logic.components;\r
2 \r
3 import java.util.ArrayList;\r
4 import java.util.Arrays;\r
5 import java.util.Collections;\r
6 import java.util.List;\r
7 \r
8 import era.mi.logic.Bit;\r
9 import era.mi.logic.wires.WireArray;\r
10 \r
11 public class BitDisplay extends BasicComponent\r
12 {\r
13         private final WireArray in;\r
14         private Bit[] displayedValue;\r
15 \r
16         public BitDisplay(WireArray in)\r
17         {\r
18                 super(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 Bit[] getDisplayedValue()\r
31         {\r
32                 return displayedValue;\r
33         }\r
34 \r
35         public boolean isDisplaying(Bit... values)\r
36         {\r
37                 return Arrays.equals(displayedValue, values);\r
38         }\r
39 \r
40         @Override\r
41         public List<WireArray> getAllInputs()\r
42         {\r
43                 return Collections.unmodifiableList(Arrays.asList(in));\r
44         }\r
45 \r
46         @Override\r
47         public List<WireArray> getAllOutputs()\r
48         {\r
49                 return Collections.unmodifiableList(new ArrayList<WireArray>());\r
50         }\r
51 }\r