f34c9239f1c89e7cbdabe45977152d6d29d75d0e
[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.ReadEnd;
8 import era.mi.logic.wires.Wire.ReadWriteEnd;
9
10 public class BitDisplay extends BasicComponent
11 {
12         private final ReadEnd in;
13         private BitVector displayedValue;
14
15         public BitDisplay(ReadEnd in)
16         {
17                 super(1);
18                 this.in = in;
19                 in.addObserver(this);
20                 compute();
21         }
22
23         @Override
24         protected void compute()
25         {
26                 displayedValue = in.getValues();
27         }
28
29         public BitVector getDisplayedValue()
30         {
31                 return displayedValue;
32         }
33
34         public boolean isDisplaying(Bit... values)
35         {
36                 return displayedValue.equals(BitVector.of(values));
37         }
38
39         @Override
40         public List<ReadEnd> getAllInputs()
41         {
42                 return List.of(in);
43         }
44
45         @Override
46         public List<ReadWriteEnd> getAllOutputs()
47         {
48                 return List.of();
49         }
50 }