X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.model%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fserializing%2FLegacySubmodelComponentSerializer.java;h=93fc945ee9da6e4e2ede4b55fd8787371d00d5d4;hb=1ce42890e85c1a114bf647002d1aa2743ff9871a;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..93fc945e 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,18 +232,9 @@ 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.name = innerComponent.name; + innerComponentParams.id = innerComponent.getIDForSerializing(idParams); + innerComponentParams.params = innerComponent.getParamsForSerializingJSON(idParams); + innerComponentParams.name = innerComponent.getName(); i1++; } submodelParams.subComps = componentParams; @@ -258,9 +249,9 @@ public final class LegacySubmodelComponentSerializer LegacyInnerPinParams pin1Params = new LegacyInnerPinParams(), pin2Params = new LegacyInnerPinParams(); pin1Params.pinName = innerWire.getPin1().name; - pin1Params.compName = innerWire.getPin1().component.name; + pin1Params.compName = innerWire.getPin1().component.getName(); pin2Params.pinName = innerWire.getPin2().name; - pin2Params.compName = innerWire.getPin2().component.name; + pin2Params.compName = innerWire.getPin2().component.getName(); innerWireParams.name = innerWire.name; innerWireParams.pin1 = pin1Params; innerWireParams.pin2 = pin2Params;