X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.model%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fserializing%2FSubmodelComponentSerializer.java;h=a062eaaaba0268dc0ee7bf3090e795e139770db7;hb=8e8d5776ccc95a08885789834abd55cc50e18a24;hp=234361d9648369115b023c3308c759d84e69dc18;hpb=64f90ff345bfea80fd61b50bab2752792df76c7b;p=Mograsim.git diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/SubmodelComponentSerializer.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/SubmodelComponentSerializer.java index 234361d9..a062eaaa 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/SubmodelComponentSerializer.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/SubmodelComponentSerializer.java @@ -1,6 +1,8 @@ package net.mograsim.logic.model.serializing; import java.io.IOException; +import java.util.Arrays; +import java.util.Comparator; import com.google.gson.JsonElement; @@ -24,10 +26,9 @@ import net.mograsim.logic.model.util.Version; */ public final class SubmodelComponentSerializer { - // TODO set pin usages of existing components public static final Version JSON_VERSION_CURRENT_SERIALIZING = Version.parseSemver("0.1.5"); public static final Version JSON_VERSION_LATEST_SUPPORTED_DESERIALIZING = Version.parseSemver("0.1.5"); - public static final Version JSON_VERSION_EARLIEST_WITH_USAGE_SERIALIZED = Version.parseSemver("0.1.4"); + public static final Version JSON_VERSION_EARLIEST_WITH_USAGE_SERIALIZED = Version.parseSemver("0.1.5"); // convenience methods /** @@ -164,7 +165,7 @@ public final class SubmodelComponentSerializer Version version = params.version; if (version.compareTo(JSON_VERSION_LATEST_SUPPORTED_DESERIALIZING) > 0) throw new IllegalArgumentException("JSON version " + version + " not supported yet"); - boolean hasUsageSerialized = version.compareTo(JSON_VERSION_EARLIEST_WITH_USAGE_SERIALIZED) > 0; + boolean hasUsageSerialized = version.compareTo(JSON_VERSION_EARLIEST_WITH_USAGE_SERIALIZED) >= 0; DeserializedSubmodelComponent comp = new DeserializedSubmodelComponent(model, name, idForSerializingOverride, paramsForSerializingOverride); comp.setSubmodelScale(params.innerScale); @@ -216,6 +217,7 @@ public final class SubmodelComponentSerializer i++; } params.interfacePins = iPins; + Arrays.sort(params.interfacePins, Comparator.comparing(p -> p.name)); Renderer symbolRenderer = comp.getSymbolRenderer(); if (symbolRenderer != null)