The final restructured version for automatic build using maven tycho
[Mograsim.git] / tests / net.mograsim.logic.model.am2900.tests / src / net / mograsim / logic / model / am2900 / util / SwitchWithDisplay.java
1 package net.mograsim.logic.model.am2900.util;
2
3 import net.mograsim.logic.core.components.CoreBitDisplay;
4 import net.mograsim.logic.core.components.CoreManualSwitch;
5 import net.mograsim.logic.core.types.BitVector;
6 import net.mograsim.logic.model.model.LogicModelModifiable;
7 import net.mograsim.logic.model.model.components.atomic.ModelBitDisplay;
8 import net.mograsim.logic.model.model.components.atomic.ModelManualSwitch;
9 import net.mograsim.logic.model.model.wires.Pin;
10 import net.mograsim.logic.model.model.wires.ModelWireCrossPoint;
11 import net.mograsim.logic.model.util.ModellingTool;
12
13 public class SwitchWithDisplay
14 {
15         private final Pin pin;
16         private final ModelBitDisplay modelBitDisplay;
17         private final ModelManualSwitch modelManualSwitch;
18
19         public SwitchWithDisplay(LogicModelModifiable model, Pin target)
20         {
21                 pin = target;
22                 modelBitDisplay = new ModelBitDisplay(model, pin.logicWidth);
23                 modelManualSwitch = new ModelManualSwitch(model, pin.logicWidth);
24
25                 ModellingTool tool = ModellingTool.createFor(model);
26                 ModelWireCrossPoint crossPoint = new ModelWireCrossPoint(model, pin.logicWidth);
27                 tool.connect(modelBitDisplay.getInputPin(), crossPoint);
28                 tool.connect(modelManualSwitch.getOutputPin(), crossPoint);
29         }
30
31         public final BitVector getDisplayedValue()
32         {
33                 return modelBitDisplay.getBitDisplay().getDisplayedValue();
34         }
35
36         public final void setState(BitVector bits)
37         {
38                 modelManualSwitch.getManualSwitch().setState(bits);
39         }
40
41         public final Pin getPin()
42         {
43                 return pin;
44         }
45
46         public final CoreBitDisplay getBitDisplay()
47         {
48                 return modelBitDisplay.getBitDisplay();
49         }
50
51         public final CoreManualSwitch getManualSwitch()
52         {
53                 return modelManualSwitch.getManualSwitch();
54         }
55
56         final ModelBitDisplay getModelBitDisplay()
57         {
58                 return modelBitDisplay;
59         }
60
61         final ModelManualSwitch getModelManualSwitch()
62         {
63                 return modelManualSwitch;
64         }
65 }