X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.model%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fserializing%2FLegacySubmodelComponentSerializer.java;h=b41fc523b018ca7b52a9fc0f41ebdf85e24f1787;hb=43f832fac0531473dc97af75edb7c5b1cb9f6ce4;hp=f456aad288d5aeff3db3024e925d52b034d6983c;hpb=93b398d6271a538a2a4c9f4de07a3b4a8a2a7fd4;p=Mograsim.git diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/LegacySubmodelComponentSerializer.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/LegacySubmodelComponentSerializer.java index f456aad2..b41fc523 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/LegacySubmodelComponentSerializer.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/LegacySubmodelComponentSerializer.java @@ -9,7 +9,7 @@ import java.util.function.Function; import com.google.gson.JsonElement; import net.haspamelodica.swt.helper.swtobjectwrappers.Point; -import net.mograsim.logic.model.model.ViewModelModifiable; +import net.mograsim.logic.model.model.LogicModelModifiable; import net.mograsim.logic.model.model.components.ModelComponent; import net.mograsim.logic.model.model.components.submodels.SubmodelComponent; import net.mograsim.logic.model.model.wires.ModelWire; @@ -37,23 +37,23 @@ public final class LegacySubmodelComponentSerializer // convenience methods /** - * Like {@link #deserialize(ViewModelModifiable, LegacySubmodelComponentParams)}, but first reading the + * Like {@link #deserialize(LogicModelModifiable, LegacySubmodelComponentParams)}, but first reading the * {@link LegacySubmodelComponentParams} from the given file path. * * @author Daniel Kirschten */ - public static SubmodelComponent deserialize(ViewModelModifiable model, String sourcePath) throws IOException + public static SubmodelComponent deserialize(LogicModelModifiable model, String sourcePath) throws IOException { return deserialize(model, JsonHandler.readJson(sourcePath, LegacySubmodelComponentParams.class)); } /** - * Like {@link #deserialize(ViewModelModifiable, LegacySubmodelComponentParams, String, JsonElement)}, but first reading the + * Like {@link #deserialize(LogicModelModifiable, LegacySubmodelComponentParams, String, JsonElement)}, but first reading the * {@link LegacySubmodelComponentParams} from the given file path. * * @author Daniel Kirschten */ - public static SubmodelComponent deserialize(ViewModelModifiable model, String sourcePath, String idForSerializingOverride, + public static SubmodelComponent deserialize(LogicModelModifiable model, String sourcePath, String idForSerializingOverride, JsonElement paramsForSerializingOverride) throws IOException { return deserialize(model, JsonHandler.readJson(sourcePath, LegacySubmodelComponentParams.class), idForSerializingOverride, @@ -61,23 +61,23 @@ public final class LegacySubmodelComponentSerializer } /** - * Like {@link #deserialize(ViewModelModifiable, LegacySubmodelComponentParams, String)}, but first reading the + * Like {@link #deserialize(LogicModelModifiable, LegacySubmodelComponentParams, String)}, but first reading the * {@link LegacySubmodelComponentParams} from the given file path. * * @author Daniel Kirschten */ - public static SubmodelComponent deserialize(ViewModelModifiable model, String sourcePath, String name) throws IOException + public static SubmodelComponent deserialize(LogicModelModifiable model, String sourcePath, String name) throws IOException { return deserialize(model, JsonHandler.readJson(sourcePath, LegacySubmodelComponentParams.class), name); } /** - * Like {@link #deserialize(ViewModelModifiable, LegacySubmodelComponentParams, String, String, JsonElement)}, but first reading the + * Like {@link #deserialize(LogicModelModifiable, LegacySubmodelComponentParams, String, String, JsonElement)}, but first reading the * {@link LegacySubmodelComponentParams} from the given file path. * * @author Daniel Kirschten */ - public static SubmodelComponent deserialize(ViewModelModifiable model, String sourcePath, String name, String idForSerializingOverride, + public static SubmodelComponent deserialize(LogicModelModifiable model, String sourcePath, String name, String idForSerializingOverride, JsonElement paramsForSerializingOverride) throws IOException { return deserialize(model, JsonHandler.readJson(sourcePath, LegacySubmodelComponentParams.class), name, idForSerializingOverride, @@ -85,34 +85,34 @@ public final class LegacySubmodelComponentSerializer } /** - * {@link #deserialize(ViewModelModifiable, LegacySubmodelComponentParams, String, String, JsonElement)} with no + * {@link #deserialize(LogicModelModifiable, LegacySubmodelComponentParams, String, String, JsonElement)} with no * idForSerializingOverride set and using the default name. * * @author Daniel Kirschten */ - public static SubmodelComponent deserialize(ViewModelModifiable model, LegacySubmodelComponentParams params) + public static SubmodelComponent deserialize(LogicModelModifiable model, LegacySubmodelComponentParams params) { return deserialize(model, params, null, null, null); } /** - * {@link #deserialize(ViewModelModifiable, LegacySubmodelComponentParams, String, String, JsonElement)} using the default name. + * {@link #deserialize(LogicModelModifiable, LegacySubmodelComponentParams, String, String, JsonElement)} using the default name. * * @author Daniel Kirschten */ - public static SubmodelComponent deserialize(ViewModelModifiable model, LegacySubmodelComponentParams params, + public static SubmodelComponent deserialize(LogicModelModifiable model, LegacySubmodelComponentParams params, String idForSerializingOverride, JsonElement paramsForSerializingOverride) { return deserialize(model, params, null, idForSerializingOverride, paramsForSerializingOverride); } /** - * {@link #deserialize(ViewModelModifiable, LegacySubmodelComponentParams, String, String, JsonElement)} with no + * {@link #deserialize(LogicModelModifiable, LegacySubmodelComponentParams, String, String, JsonElement)} with no * idForSerializingOverride set. * * @author Daniel Kirschten */ - public static SubmodelComponent deserialize(ViewModelModifiable model, LegacySubmodelComponentParams params, String name) + public static SubmodelComponent deserialize(LogicModelModifiable model, LegacySubmodelComponentParams params, String name) { return deserialize(model, params, name, null, null); } @@ -140,8 +140,8 @@ public final class LegacySubmodelComponentSerializer } /** - * {@link #serialize(SubmodelComponent, Function)} using a default {@link IdentifierGetter} (see IdentifierGetter's - * {@link IdentifierGetter#IdentifierGetter() default constructor}) + * {@link #serialize(SubmodelComponent, Function)} using the default {@link IdentifyParams} (see IdentifyParams's + * {@link IdentifyParams#IdentifyParams() default constructor}) * * @author Daniel Kirschten */ @@ -164,7 +164,7 @@ public final class LegacySubmodelComponentSerializer * @author Daniel Kirschten */ @SuppressWarnings("unused") // for ModelWire being created - public static SubmodelComponent deserialize(ViewModelModifiable model, LegacySubmodelComponentParams params, String name, + public static SubmodelComponent deserialize(LogicModelModifiable model, LegacySubmodelComponentParams params, String name, String idForSerializingOverride, JsonElement paramsForSerializingOverride) { DeserializedSubmodelComponent comp = new DeserializedSubmodelComponent(model, name, idForSerializingOverride, @@ -173,10 +173,10 @@ public final class LegacySubmodelComponentSerializer comp.setSize(params.width, params.height); for (LegacyInterfacePinParams iPinParams : params.interfacePins) // TRISTATE because we don't have a better choice - comp.addSubmodelInterface(new MovablePin(comp, iPinParams.name, iPinParams.logicWidth, PinUsage.TRISTATE, iPinParams.location.x, - iPinParams.location.y)); + comp.addSubmodelInterface(new MovablePin(model, comp, iPinParams.name, iPinParams.logicWidth, PinUsage.TRISTATE, + iPinParams.location.x, iPinParams.location.y)); LegacySubmodelParameters submodelParams = params.submodel; - ViewModelModifiable submodelModifiable = comp.getSubmodelModifiable(); + LogicModelModifiable submodelModifiable = comp.getSubmodelModifiable(); Map componentsByName = submodelModifiable.getComponentsByName(); ModelComponent[] components = new ModelComponent[submodelParams.subComps.length]; for (int i = 0; i < components.length; i++) @@ -206,7 +206,7 @@ public final class LegacySubmodelComponentSerializer * Subcomponents are serialized in the following way:
* If a subcomponent is a SubmodelComponent which has been deserialized, and it has an * {@link DeserializedSubmodelComponent#idForSerializingOverride idForSerializingOverride} set (e.g. non-null; see - * {@link #deserialize(ViewModelModifiable, LegacySubmodelComponentParams, String, String, JsonElement) deserialize(...)}), this ID and + * {@link #deserialize(LogicModelModifiable, LegacySubmodelComponentParams, String, String, JsonElement) deserialize(...)}), this ID and * the component's {@link DeserializedSubmodelComponent#paramsForSerializingOverride paramsForSerializingOverride} are written.
* If this case doesn't apply (e.g. if the subcomponent is not a SubmodelComponent; or it is a * SubmodelComponent, but hasn't been deserialized; or it has no @@ -232,17 +232,8 @@ public final class LegacySubmodelComponentSerializer LegacyInnerComponentParams innerComponentParams = new LegacyInnerComponentParams(); componentParams[i1] = innerComponentParams; innerComponentParams.pos = new Point(innerComponent.getPosX(), innerComponent.getPosY()); - DeserializedSubmodelComponent innerCompCasted; - if (innerComponent instanceof DeserializedSubmodelComponent - && (innerCompCasted = (DeserializedSubmodelComponent) innerComponent).idForSerializingOverride != null) - { - innerComponentParams.id = innerCompCasted.idForSerializingOverride; - innerComponentParams.params = innerCompCasted.paramsForSerializingOverride; - } else - { - innerComponentParams.id = innerComponent.getIDForSerializing(idParams); - innerComponentParams.params = innerComponent.getParamsForSerializingJSON(idParams); - } + innerComponentParams.id = innerComponent.getIDForSerializing(idParams); + innerComponentParams.params = innerComponent.getParamsForSerializingJSON(idParams); innerComponentParams.name = innerComponent.name; i1++; }