X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.model%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fmodeladapter%2FViewLogicModelAdapter.java;fp=net.mograsim.logic.model%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fmodeladapter%2FViewLogicModelAdapter.java;h=ffeff19ae8903d9238b27878ac134a52584e3962;hb=93b398d6271a538a2a4c9f4de07a3b4a8a2a7fd4;hp=8c337cd25d57dd5596d26641e20b7b06da6bf62a;hpb=0a04a4ed66ecebd4254541c4977599f6052c115a;p=Mograsim.git diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/ViewLogicModelAdapter.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/ViewLogicModelAdapter.java index 8c337cd2..ffeff19a 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/ViewLogicModelAdapter.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/ViewLogicModelAdapter.java @@ -14,19 +14,19 @@ import net.mograsim.logic.core.timeline.Timeline; import net.mograsim.logic.core.wires.CoreWire; import net.mograsim.logic.core.wires.CoreWire.ReadEnd; import net.mograsim.logic.model.model.ViewModel; -import net.mograsim.logic.model.model.components.GUIComponent; +import net.mograsim.logic.model.model.components.ModelComponent; import net.mograsim.logic.model.model.components.submodels.SubmodelComponent; import net.mograsim.logic.model.model.components.submodels.SubmodelInterface; -import net.mograsim.logic.model.model.wires.GUIWire; +import net.mograsim.logic.model.model.wires.ModelWire; import net.mograsim.logic.model.model.wires.Pin; -import net.mograsim.logic.model.model.wires.WireCrossPoint; +import net.mograsim.logic.model.model.wires.ModelWireCrossPoint; import net.mograsim.logic.model.modeladapter.componentadapters.ComponentAdapter; public class ViewLogicModelAdapter { - private final static Map, ComponentAdapter> componentAdapters = new HashMap<>(); + private final static Map, ComponentAdapter> componentAdapters = new HashMap<>(); - public static void addComponentAdapter(ComponentAdapter componentAdapter) + public static void addComponentAdapter(ComponentAdapter componentAdapter) { componentAdapters.put(componentAdapter.getSupportedClass(), componentAdapter); } @@ -43,25 +43,25 @@ public class ViewLogicModelAdapter private static void convert(ViewModel viewModel, LogicModelParameters params, Timeline timeline, Map externalWires) { - Map logicWiresPerPin = convertWires(getAllPins(viewModel), viewModel.getWiresByName().values(), externalWires, params, - timeline); + Map logicWiresPerPin = convertWires(getAllPins(viewModel), viewModel.getWiresByName().values(), externalWires, + params, timeline); Map logicWiresPerPinUnmodifiable = Collections.unmodifiableMap(logicWiresPerPin); - for (GUIComponent guiComp : viewModel.getComponentsByName().values()) + for (ModelComponent modelComp : viewModel.getComponentsByName().values()) { - if (guiComp instanceof SubmodelComponent) + if (modelComp instanceof SubmodelComponent) { - SubmodelComponent guiCompCasted = (SubmodelComponent) guiComp; - Map supermodelPins = guiCompCasted.getSupermodelPins(); - Map externalWiresForSubmodel = supermodelPins.entrySet().stream() - .collect(Collectors.toMap(e -> guiCompCasted.getSubmodelPin(e.getKey()), e -> logicWiresPerPin.get(e.getValue()))); - convert(guiCompCasted.submodel, params, timeline, externalWiresForSubmodel); - } else if (guiComp instanceof WireCrossPoint) + SubmodelComponent modelCompCasted = (SubmodelComponent) modelComp; + Map supermodelPins = modelCompCasted.getSupermodelPins(); + Map externalWiresForSubmodel = supermodelPins.entrySet().stream().collect( + Collectors.toMap(e -> modelCompCasted.getSubmodelPin(e.getKey()), e -> logicWiresPerPin.get(e.getValue()))); + convert(modelCompCasted.submodel, params, timeline, externalWiresForSubmodel); + } else if (modelComp instanceof ModelWireCrossPoint) { - WireCrossPoint guiCompCasted = (WireCrossPoint) guiComp; - guiCompCasted.setLogicModelBinding(logicWiresPerPin.get(guiCompCasted.getPin()).createReadOnlyEnd()); - } else if (!(guiComp instanceof SubmodelInterface))// nothing to do for SubmodelInterfaces - createAndLinkComponent(timeline, params, guiComp, logicWiresPerPinUnmodifiable); + ModelWireCrossPoint modelCompCasted = (ModelWireCrossPoint) modelComp; + modelCompCasted.setLogicModelBinding(logicWiresPerPin.get(modelCompCasted.getPin()).createReadOnlyEnd()); + } else if (!(modelComp instanceof SubmodelInterface))// nothing to do for SubmodelInterfaces + createAndLinkComponent(timeline, params, modelComp, logicWiresPerPinUnmodifiable); } } @@ -71,17 +71,17 @@ public class ViewLogicModelAdapter .collect(Collectors.toSet()); } - private static Map convertWires(Set allPins, Collection wires, Map externalWires, + private static Map convertWires(Set allPins, Collection wires, Map externalWires, LogicModelParameters params, Timeline timeline) { Map> connectedPinGroups = getConnectedPinGroups(allPins, wires); Map logicWiresPerPin = createLogicWires(params, timeline, connectedPinGroups, externalWires); - setGUIWiresLogicModelBinding(wires, logicWiresPerPin); + setModelWiresLogicModelBinding(wires, logicWiresPerPin); return logicWiresPerPin; } - private static Map createLogicWires(LogicModelParameters params, Timeline timeline, Map> connectedPinGroups, - Map externalWires) + private static Map createLogicWires(LogicModelParameters params, Timeline timeline, + Map> connectedPinGroups, Map externalWires) { Map logicWiresPerPin = new HashMap<>(); Map, CoreWire> logicWiresPerPinGroup = new HashMap<>(); @@ -106,15 +106,15 @@ public class ViewLogicModelAdapter return logicWiresPerPin; } - private static void setGUIWiresLogicModelBinding(Collection wires, Map logicWiresPerPin) + private static void setModelWiresLogicModelBinding(Collection wires, Map logicWiresPerPin) { - Map guiWireSharedReadEnd = logicWiresPerPin.values().stream().distinct() + Map modelWireSharedReadEnd = logicWiresPerPin.values().stream().distinct() .collect(Collectors.toMap(Function.identity(), CoreWire::createReadOnlyEnd)); - for (GUIWire guiWire : wires) - guiWire.setLogicModelBinding(guiWireSharedReadEnd.get(logicWiresPerPin.get(guiWire.getPin1()))); + for (ModelWire modelWire : wires) + modelWire.setLogicModelBinding(modelWireSharedReadEnd.get(logicWiresPerPin.get(modelWire.getPin1()))); } - private static Map> getConnectedPinGroups(Set allPins, Collection wires) + private static Map> getConnectedPinGroups(Set allPins, Collection wires) { Map> connectedPinsPerPin = new HashMap<>(); @@ -143,19 +143,19 @@ public class ViewLogicModelAdapter } @SuppressWarnings("unchecked") - private static void createAndLinkComponent(Timeline timeline, LogicModelParameters params, - GUIComponent guiComponent, Map logicWiresPerPin) + private static void createAndLinkComponent(Timeline timeline, LogicModelParameters params, + ModelComponent modelComponent, Map logicWiresPerPin) { - Class cls = guiComponent.getClass(); + Class cls = modelComponent.getClass(); ComponentAdapter adapter = null; - while (cls != GUIComponent.class && adapter == null) + while (cls != ModelComponent.class && adapter == null) { adapter = (ComponentAdapter) componentAdapters.get(cls); cls = cls.getSuperclass(); } if (adapter == null) - throw new IllegalArgumentException("Unknown component class: " + guiComponent.getClass()); - adapter.createAndLinkComponent(timeline, params, (G) guiComponent, logicWiresPerPin); + throw new IllegalArgumentException("Unknown component class: " + modelComponent.getClass()); + adapter.createAndLinkComponent(timeline, params, (G) modelComponent, logicWiresPerPin); } private ViewLogicModelAdapter()