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