3b34d9000257b16d46a4e871472410ed8811d0ec
[Mograsim.git] / LogicUI / src / era / mi / gui / modeladapter / componentadapters / AndGateAdapter.java
1 package era.mi.gui.modeladapter.componentadapters;
2
3 import java.util.List;
4 import java.util.Map;
5
6 import era.mi.gui.model.components.GUIAndGate;
7 import era.mi.gui.model.wires.Pin;
8 import era.mi.gui.modeladapter.LogicModelParameters;
9 import era.mi.logic.components.Component;
10 import era.mi.logic.components.gates.AndGate;
11 import era.mi.logic.timeline.Timeline;
12 import era.mi.logic.wires.Wire;
13 import era.mi.logic.wires.Wire.ReadEnd;
14 import era.mi.logic.wires.Wire.ReadWriteEnd;
15
16 public class AndGateAdapter implements ComponentAdapter<GUIAndGate>
17 {
18         @Override
19         public Component createAndLinkComponent(Timeline timeline, LogicModelParameters params, GUIAndGate guiComponent,
20                         Map<Pin, Wire> logicWiresPerPin)
21         {
22                 ReadWriteEnd out = logicWiresPerPin.get(guiComponent.getOutputPin()).createReadWriteEnd();
23                 List<Pin> inputPins = guiComponent.getInputPins();
24                 ReadEnd[] ins = new ReadEnd[inputPins.size()];
25                 for (int i = 0; i < inputPins.size(); i++)
26                         ins[i] = logicWiresPerPin.get(inputPins.get(i)).createReadOnlyEnd();
27                 return new AndGate(timeline, params.gateProcessTime, out, ins);
28         }
29 }