Renamed ViewModel to LogicModel
[Mograsim.git] / net.mograsim.logic.model / src / net / mograsim / logic / model / serializing / DeserializedSubmodelComponent.java
1 package net.mograsim.logic.model.serializing;
2
3 import com.google.gson.JsonElement;
4
5 import net.mograsim.logic.model.model.LogicModelModifiable;
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;
11
12 public class DeserializedSubmodelComponent extends SubmodelComponent
13 {
14         /**
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.
17          * 
18          * @see SubmodelComponentSerializer#deserialize(LogicModelModifiable, SubmodelComponentParams, String, String, JsonElement)
19          *      SubmodelComponentSerializer.deserialize(...)
20          * @see SubmodelComponentSerializer#serialize(SubmodelComponent, java.util.function.Function) SubmodelComponentSerializer.serialize(...)
21          */
22         public final String idForSerializingOverride;
23         /**
24          * See {@link #idForSerializingOverride}
25          */
26         public final JsonElement paramsForSerializingOverride;
27
28         public DeserializedSubmodelComponent(LogicModelModifiable model, String name, String idForSerializingOverride,
29                         JsonElement paramsForSerializingOverride)
30         {
31                 super(model, name);
32                 this.idForSerializingOverride = idForSerializingOverride;
33                 this.paramsForSerializingOverride = paramsForSerializingOverride;
34         }
35
36         @Override
37         public void setSymbolRenderer(Renderer symbolRenderer)
38         {
39                 super.setSymbolRenderer(symbolRenderer);
40         }
41
42         @Override
43         public void setOutlineRenderer(Renderer outlineRenderer)
44         {
45                 super.setOutlineRenderer(outlineRenderer);
46         }
47
48         @Override
49         public void setHighLevelStateHandler(HighLevelStateHandler handler)
50         {
51                 super.setHighLevelStateHandler(handler);
52         }
53
54         public LogicModelModifiable getSubmodelModifiable()
55         {
56                 return submodelModifiable;
57         }
58
59         @Override
60         public void setSubmodelScale(double submodelScale)
61         {
62                 super.setSubmodelScale(submodelScale);
63         }
64
65         @Override
66         public void setSize(double width, double height)
67         {
68                 super.setSize(width, height);
69         }
70
71         @Override
72         public Pin addSubmodelInterface(MovablePin supermodelPin)
73         {
74                 return super.addSubmodelInterface(supermodelPin);
75         }
76
77         @Override
78         public void removeSubmodelInterface(String name)
79         {
80                 super.removeSubmodelInterface(name);
81         }
82 }