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