Added GUIComponent for Word Addressable Memory
[Mograsim.git] / net.mograsim.logic.model / src / net / mograsim / logic / model / modeladapter / componentadapters / WordAddressableMemoryAdapter.java
1 package net.mograsim.logic.model.modeladapter.componentadapters;
2
3 import java.util.Map;
4
5 import net.mograsim.logic.core.components.memory.WordAddressableMemoryComponent;
6 import net.mograsim.logic.core.timeline.Timeline;
7 import net.mograsim.logic.core.wires.Wire;
8 import net.mograsim.logic.core.wires.Wire.ReadEnd;
9 import net.mograsim.logic.core.wires.Wire.ReadWriteEnd;
10 import net.mograsim.logic.model.model.components.atomic.GUIMemoryWA;
11 import net.mograsim.logic.model.model.wires.Pin;
12 import net.mograsim.logic.model.modeladapter.LogicModelParameters;
13
14 public class WordAddressableMemoryAdapter implements ComponentAdapter<GUIMemoryWA>
15 {
16
17         @Override
18         public Class<GUIMemoryWA> getSupportedClass()
19         {
20                 return GUIMemoryWA.class;
21         }
22
23         @SuppressWarnings("unused")
24         @Override
25         public void createAndLinkComponent(Timeline timeline, LogicModelParameters params, GUIMemoryWA guiComponent,
26                         Map<Pin, Wire> logicWiresPerPin)
27         {
28                 ReadWriteEnd data = logicWiresPerPin.get(guiComponent.getDataPin()).createReadWriteEnd();
29                 ReadEnd address = logicWiresPerPin.get(guiComponent.getAddressPin()).createReadOnlyEnd();
30                 ReadEnd mode = logicWiresPerPin.get(guiComponent.getReadWritePin()).createReadOnlyEnd();
31                 new WordAddressableMemoryComponent(timeline, 2, guiComponent.maximalAddress, guiComponent.minimalAddress, data, mode, address);
32         }
33
34 }