25ee2f859143fa4125912d25ce55be5a01a958d0
[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         private final WireArray in;\r
13         private Bit[] displayedValue;\r
14 \r
15         public BitDisplay(WireArray in) {\r
16                 super(1);\r
17                 this.in = in;\r
18                 in.addObserver(this);\r
19                 compute();\r
20         }\r
21 \r
22         @Override\r
23         protected void compute() {\r
24                 displayedValue = in.getValues();\r
25         }\r
26 \r
27         public Bit[] getDisplayedValue() {\r
28                 return displayedValue;\r
29         }\r
30 \r
31         public boolean isDisplaying(Bit... values) {\r
32                 return Arrays.equals(displayedValue, values);\r
33         }\r
34 \r
35         @Override\r
36         public List<WireArray> getAllInputs() {\r
37                 return Collections.unmodifiableList(Arrays.asList(in));\r
38         }\r
39 \r
40         @Override\r
41         public List<WireArray> getAllOutputs() {\r
42                 return Collections.unmodifiableList(new ArrayList<WireArray>());\r
43         }\r
44 }\r