1 package net.mograsim.logic.model.serializing;
3 import com.google.gson.JsonElement;
5 import net.mograsim.logic.model.model.ViewModelModifiable;
6 import net.mograsim.logic.model.model.components.submodels.SubmodelComponent;
7 import net.mograsim.logic.model.model.wires.MovablePin;
8 import net.mograsim.logic.model.model.wires.Pin;
9 import net.mograsim.logic.model.snippets.HighLevelStateHandler;
10 import net.mograsim.logic.model.snippets.Renderer;
12 public class DeserializedSubmodelComponent extends SubmodelComponent
15 * If a DeserializedSubmodelComponent is part of another SubmodelComponent, when it it serialized, it should not return its internal
16 * structure, but rather the component ID used to create it.
18 * @see SubmodelComponentSerializer#deserialize(ViewModelModifiable, SubmodelComponentParams, String, String, JsonElement)
19 * SubmodelComponentSerializer.deserialize(...)
20 * @see SubmodelComponentSerializer#serialize(SubmodelComponent, java.util.function.Function) SubmodelComponentSerializer.serialize(...)
22 public final String idForSerializingOverride;
24 * See {@link #idForSerializingOverride}
26 public final JsonElement paramsForSerializingOverride;
28 public DeserializedSubmodelComponent(ViewModelModifiable model, String name, String idForSerializingOverride,
29 JsonElement paramsForSerializingOverride)
32 this.idForSerializingOverride = idForSerializingOverride;
33 this.paramsForSerializingOverride = paramsForSerializingOverride;
37 public void setSymbolRenderer(Renderer symbolRenderer)
39 super.setSymbolRenderer(symbolRenderer);
43 public void setOutlineRenderer(Renderer outlineRenderer)
45 super.setOutlineRenderer(outlineRenderer);
49 public void setHighLevelStateHandler(HighLevelStateHandler handler)
51 super.setHighLevelStateHandler(handler);
54 public ViewModelModifiable getSubmodelModifiable()
56 return submodelModifiable;
60 public void setSubmodelScale(double submodelScale)
62 super.setSubmodelScale(submodelScale);
66 public void setSize(double width, double height)
68 super.setSize(width, height);
72 public Pin addSubmodelInterface(MovablePin supermodelPin)
74 return super.addSubmodelInterface(supermodelPin);
78 public void removeSubmodelInterface(String name)
80 super.removeSubmodelInterface(name);
83 // TODO static initializer?