X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.model%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fmodel%2FLogicModel.java;h=17d0a44e306e4729cd12330728d1cf788e4c2c23;hb=6af791df52c447197af6dcccf9e8c5ccfdd6d805;hp=33cc22e293a96a0ca7f7dcb52a27e161beb25cdc;hpb=91f076c44a4f00786343beb923ab01894672416f;p=Mograsim.git diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/LogicModel.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/LogicModel.java index 33cc22e2..17d0a44e 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/LogicModel.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/LogicModel.java @@ -117,44 +117,44 @@ public class LogicModel return wiresUnmodifiable; } - public T getComponentByName(String name, Class modelClass) + public ModelComponent getComponentByName(String name) { - return getByName(name, modelClass, components); - } - - public ModelWire getWireByName(String name) - { - return getByName(name, ModelWire.class, wires); + return components.get(name); } @SuppressWarnings("unchecked") - private static T getByName(String name, Class modelClass, Map map) + public T getComponentByName(String name, Class expectedComponentClass) { - Object comp = map.get(name); + ModelComponent comp = components.get(name); Objects.requireNonNull(comp, "Invaild path, component " + name + " not found"); - if (modelClass.isInstance(comp)) + if (expectedComponentClass.isInstance(comp)) return (T) comp; - throw new IllegalArgumentException("The component " + name + " is not an instance of " + modelClass); + throw new IllegalArgumentException("The component " + name + " is not an instance of " + expectedComponentClass); + } + + public ModelWire getWireByName(String name) + { + return wires.get(name); } - public T getComponentByPath(String path, Class modelClass) + public T getComponentBySubmodelPath(String path, Class modelClass) { int firstDot = path.indexOf('.'); if (firstDot == -1) return getComponentByName(path, modelClass); String first = path.substring(0, firstDot); String rest = path.substring(firstDot + 1); - return getComponentByName(first, SubmodelComponent.class).submodel.getComponentByPath(rest, modelClass); + return getComponentByName(first, SubmodelComponent.class).submodel.getComponentBySubmodelPath(rest, modelClass); } - public ModelWire getWireByPath(String path) + public ModelWire getWireBySubmodelPath(String path) { int firstDot = path.indexOf('.'); if (firstDot == -1) return getWireByName(path); String first = path.substring(0, firstDot); String rest = path.substring(firstDot + 1); - return getComponentByName(first, SubmodelComponent.class).submodel.getWireByPath(rest); + return getComponentByName(first, SubmodelComponent.class).submodel.getWireBySubmodelPath(rest); } // @formatter:off @@ -162,19 +162,19 @@ public class LogicModel public void addComponentRemovedListener (Consumer listener) {componentRemovedListeners .add (listener);} public void addWireAddedListener (Consumer listener) {wireAddedListeners .add (listener);} public void addWireRemovedListener (Consumer listener) {wireRemovedListeners .add (listener);} - public void addRedrawHandlerChangedListener (Consumer listener) {redrawHandlerChangedListeners.add (listener);} + public void addRedrawHandlerChangedListener (Consumer listener) {redrawHandlerChangedListeners.add (listener);} public void removeComponentAddedListener (Consumer listener) {componentAddedListeners .remove(listener);} public void removeComponentRemovedListener (Consumer listener) {componentRemovedListeners .remove(listener);} public void removeWireAddedListener (Consumer listener) {wireAddedListeners .remove(listener);} public void removeWireRemovedListener (Consumer listener) {wireRemovedListeners .remove(listener);} - public void removeRedrawHandlerChangedListener(Consumer listener) {redrawHandlerChangedListeners.remove(listener);} + public void removeRedrawHandlerChangedListener(Consumer listener) {redrawHandlerChangedListeners.remove(listener);} private void callComponentAddedListeners (ModelComponent c) {componentAddedListeners .forEach(l -> l.accept(c));} private void callComponentRemovedListeners (ModelComponent c) {componentRemovedListeners .forEach(l -> l.accept(c));} private void callWireAddedListeners (ModelWire w) {wireAddedListeners .forEach(l -> l.accept(w));} private void callWireRemovedListeners (ModelWire w) {wireRemovedListeners .forEach(l -> l.accept(w));} - private void callRedrawHandlerChangedListener(Runnable r) {redrawHandlerChangedListeners.forEach(l -> l.accept(r));} + private void callRedrawHandlerChangedListener(Runnable r) {redrawHandlerChangedListeners.forEach(l -> l.accept(r));} // @formatter:on public void setRedrawHandler(Runnable handler)