- Optional<ModelComponent> o;
- while ((o = submodelModifiable.getComponentsByName().values().stream()
- .filter(c -> !c.getName().equals(SubmodelComponent.SUBMODEL_INTERFACE_NAME)).findAny()).isPresent())
- submodelModifiable.destroyComponent(o.get());
+ private static void changeComponentNames_AfterSerialization(SubmodelComponentParams newComponentJSON,
+ Map<String, String> componentNameRemapping)
+ {
+ for (ComponentParams cParams : newComponentJSON.submodel.components)
+ cParams.name = componentNameRemapping.get(cParams.name);
+ for (WireParams wParams : newComponentJSON.submodel.wires)
+ {
+ wParams.pin1.compName = componentNameRemapping.get(wParams.pin1.compName);
+ wParams.pin2.compName = componentNameRemapping.get(wParams.pin2.compName);
+ }
+ if ("standard".equals(newComponentJSON.highLevelStateHandlerSnippetID))
+ {
+ StandardHighLevelStateHandlerParams hlshParams = JsonHandler.fromJsonTree(newComponentJSON.highLevelStateHandlerParams,
+ StandardHighLevelStateHandlerParams.class);
+ for (AtomicHighLevelStateHandlerParams ahlshParams : hlshParams.atomicHighLevelStates.values())
+ if ("delegating".equals(ahlshParams.id))
+ {
+ DelegatingAtomicHighLevelStateHandlerParams dhlshParams = JsonHandler.fromJsonTree(ahlshParams.params,
+ DelegatingAtomicHighLevelStateHandlerParams.class);
+ dhlshParams.delegateTarget = componentNameRemapping.get(dhlshParams.delegateTarget);
+ ahlshParams.params = JsonHandler.toJsonTree(dhlshParams);
+ }
+ for (SubcomponentHighLevelStateHandlerParams shlshParams : hlshParams.subcomponentHighLevelStates.values())
+ if ("delegating".equals(shlshParams.id))
+ {
+ DelegatingSubcomponentHighLevelStateHandlerParams dhlshParams = JsonHandler.fromJsonTree(shlshParams.params,
+ DelegatingSubcomponentHighLevelStateHandlerParams.class);
+ dhlshParams.delegateTarget = componentNameRemapping.get(dhlshParams.delegateTarget);
+ shlshParams.params = JsonHandler.toJsonTree(dhlshParams);
+ }
+ newComponentJSON.highLevelStateHandlerParams = JsonHandler.toJsonTree(hlshParams);
+ }
+ }