X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.model%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fsnippets%2Fhighlevelstatehandlers%2Fstandard%2FStandardHighLevelStateHandler.java;h=9afa7c497acc22f15130da1abab41a02935985ec;hb=a25f554756e1bc9a1f842293aefe60a220d8b950;hp=1c3ac62c6f2da999fb1b7f5955105d1e0040a313;hpb=f3e1662abcae720f6b1ea396e1ac33c1be41e429;p=Mograsim.git diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/highlevelstatehandlers/standard/StandardHighLevelStateHandler.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/highlevelstatehandlers/standard/StandardHighLevelStateHandler.java index 1c3ac62c..9afa7c49 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/highlevelstatehandlers/standard/StandardHighLevelStateHandler.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/snippets/highlevelstatehandlers/standard/StandardHighLevelStateHandler.java @@ -2,10 +2,12 @@ package net.mograsim.logic.model.snippets.highlevelstatehandlers.standard; import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; import java.util.function.BiFunction; import java.util.function.Function; import net.mograsim.logic.model.model.components.submodels.SubmodelComponent; +import net.mograsim.logic.model.serializing.IdentifierGetter; import net.mograsim.logic.model.snippets.HighLevelStateHandler; import net.mograsim.logic.model.snippets.SnippetDefinintion; import net.mograsim.logic.model.snippets.SubmodelComponentSnippetSuppliers; @@ -139,6 +141,33 @@ public class StandardHighLevelStateHandler implements HighLevelStateHandler } } + @Override + public StandardHighLevelStateHandlerParams getParamsForSerializing(IdentifierGetter idGetter) + { + StandardHighLevelStateHandlerParams params = new StandardHighLevelStateHandlerParams(); + params.subcomponentHighLevelStates = new HashMap<>(); + params.atomicHighLevelStates = new HashMap<>(); + for (Entry e : subcomponentHighLevelStateHandlers.entrySet()) + { + String stateID = e.getKey(); + SubcomponentHighLevelStateHandler handler = e.getValue(); + SubcomponentHighLevelStateHandlerParams handlerParams = new SubcomponentHighLevelStateHandlerParams(); + handlerParams.id = idGetter.subcomponentHighLevelStateHandlerIDs.apply(handler); + handlerParams.params = handler.getParamsForSerializingJSON(idGetter); + params.subcomponentHighLevelStates.put(stateID, handlerParams); + } + for (Entry e : atomicHighLevelStateHandlers.entrySet()) + { + String stateID = e.getKey(); + AtomicHighLevelStateHandler handler = e.getValue(); + AtomicHighLevelStateHandlerParams handlerParams = new AtomicHighLevelStateHandlerParams(); + handlerParams.id = idGetter.atomicHighLevelStateHandlerIDs.apply(handler); + handlerParams.params = handler.getParamsForSerializingJSON(idGetter); + params.atomicHighLevelStates.put(stateID, handlerParams); + } + return params; + } + public static class StandardHighLevelStateHandlerParams { public Map subcomponentHighLevelStates;