diff --git a/bulk-api/build.gradle.kts b/bulk-api/build.gradle.kts new file mode 100644 index 00000000..8c96ed6e --- /dev/null +++ b/bulk-api/build.gradle.kts @@ -0,0 +1,108 @@ +import com.vanniktech.maven.publish.SonatypeHost + +plugins { + id("java-library") + id("com.vanniktech.maven.publish") + id("signing") +} + +repositories { + mavenCentral() +} + +val javadocConfig by configurations.creating { + extendsFrom(configurations.testImplementation.get()) +} + +dependencies { + api(project(":core")) + + implementation(libs.gson) + + // Use JUnit test framework. + testImplementation(libs.junit) + testImplementation(libs.gson) +} + +val jvmVersion = extra["jvmVersion"] as String +val specsVersion = extra["specsVersion"] as String + +java { + sourceCompatibility = JavaVersion.toVersion(jvmVersion) + targetCompatibility = JavaVersion.toVersion(jvmVersion) +} +tasks.register("myJavadoc") { + source = sourceSets.main.get().allJava + classpath = javadocConfig + options { + require(this is StandardJavadocDocletOptions) + addStringOption("link", "https://docs.oracle.com/javase/8/docs/api/") + addStringOption("link", "https://alexanderpann.github.io/mps-openapi-doc/javadoc_2021.2/") + } +} + +val isReleaseVersion = !(version as String).endsWith("SNAPSHOT") + +tasks.register("javadocJar") { + dependsOn("myJavadoc") + from(tasks.getByName("myJavadoc")/*.destinationDir*/) + archiveClassifier.set("javadoc") +} + +tasks.register("sourcesJar") { + archiveClassifier.set("sources") + // See https://discuss.gradle.org/t/why-subproject-sourceset-dirs-project-sourceset-dirs/7376/5 + // Without the closure, parent sources are used for children too + from(sourceSets.getByName("main").java.srcDirs) +} + +mavenPublishing { + coordinates( + groupId = "io.lionweb.lionweb-java", + artifactId = "lionweb-java-${specsVersion}-" + project.name, + version = project.version as String, + ) + + pom { + name.set("lionweb-java-" + project.name) + description.set("LionWeb Bulk API") + version = project.version as String + packaging = "jar" + url.set("https://github.com/LionWeb-io/lionweb-java") + + scm { + connection.set("scm:git:https://github.com/LionWeb-io/lionweb-java.git") + developerConnection.set("scm:git:git@github.com:LionWeb-io/lionweb-java.git") + url.set("https://github.com/LionWeb-io/lionweb-java.git") + } + + licenses { + license { + name.set("Apache Licenve V2.0") + url.set("https://www.apache.org/licenses/LICENSE-2.0") + distribution.set("repo") + } + } + + // The developers entry is strictly required by Maven Central + developers { + developer { + id.set("ftomassetti") + name.set("Federico Tomassetti") + email.set("federico@strumenta.com") + } + developer { + id.set("dslmeinte") + name.set("Meinte Boersma") + email.set("meinte.boersma@gmail.com") + } + developer { + id.set("enikao") + name.set("Niko Stotz") + email.set("github-public@nikostotz.de") + } + } + } + publishToMavenCentral(SonatypeHost.S01, true) + signAllPublications() +} diff --git a/bulk-api/src/main/java/io/lionweb/api/bulk/BulkException.java b/bulk-api/src/main/java/io/lionweb/api/bulk/BulkException.java new file mode 100644 index 00000000..03cd1bea --- /dev/null +++ b/bulk-api/src/main/java/io/lionweb/api/bulk/BulkException.java @@ -0,0 +1,18 @@ +package io.lionweb.api.bulk; + +public class BulkException extends RuntimeException { + public BulkException() { + } + + public BulkException(String message) { + super(message); + } + + public BulkException(String message, Throwable cause) { + super(message, cause); + } + + public BulkException(Throwable cause) { + super(cause); + } +} diff --git a/bulk-api/src/main/java/io/lionweb/api/bulk/IBulk.java b/bulk-api/src/main/java/io/lionweb/api/bulk/IBulk.java new file mode 100644 index 00000000..85b883d4 --- /dev/null +++ b/bulk-api/src/main/java/io/lionweb/api/bulk/IBulk.java @@ -0,0 +1,22 @@ +package io.lionweb.api.bulk; + +import io.lionweb.lioncore.java.serialization.data.SerializedChunk; + +import java.util.List; + +public interface IBulk { + // @Nonnull + SerializedChunk partitions() throws BulkException; + + // @Nonnull + SerializedChunk retrieve(List nodeIds, /*@Nullable*/ Integer depthLimit) throws BulkException; + + // @Nonnull + void store(/*@Nonnull*/ SerializedChunk nodes, /*@Nullable*/ StoreMode mode) throws BulkException; + + // @Nonnull + void delete(List nodeIds) throws BulkException; + + // @Nonnull + List ids(/*@Nonnull*/ Integer count) throws BulkException; +} diff --git a/bulk-api/src/main/java/io/lionweb/api/bulk/StoreMode.java b/bulk-api/src/main/java/io/lionweb/api/bulk/StoreMode.java new file mode 100644 index 00000000..6ad34264 --- /dev/null +++ b/bulk-api/src/main/java/io/lionweb/api/bulk/StoreMode.java @@ -0,0 +1,7 @@ +package io.lionweb.api.bulk; + +public enum StoreMode { + REPLACE, + CREATE, + UPDATE +} diff --git a/bulk-api/src/main/java/io/lionweb/api/bulk/lowlevel/IBulkLowlevel.java b/bulk-api/src/main/java/io/lionweb/api/bulk/lowlevel/IBulkLowlevel.java new file mode 100644 index 00000000..50b3a3b8 --- /dev/null +++ b/bulk-api/src/main/java/io/lionweb/api/bulk/lowlevel/IBulkLowlevel.java @@ -0,0 +1,29 @@ +package io.lionweb.api.bulk.lowlevel; + +import io.lionweb.lioncore.java.serialization.data.SerializedChunk; + +import java.util.List; +//import javax.annotation.Nonnull; +//import javax.annotation.Nullable; + +public interface IBulkLowlevel { + // @Nonnull + IPartitionsResponse partitions(); + + // @Nonnull + IRetrieveResponse retrieve(List nodeIds, /*@Nullable*/ String depthLimit); + + // @Nonnull + IStoreResponse store(/*@Nonnull*/ SerializedChunk nodes, /*@Nullable*/ String mode); + + // @Nonnull + IDeleteResponse delete(List nodeIds); + + // @Nonnull + IIdsResponse ids(/*@Nonnull*/ String count); + + // @Nonnull + C getConfig(); + + void setConfig(/*@Nonnull*/ C config); +} diff --git a/bulk-api/src/main/java/io/lionweb/api/bulk/lowlevel/IDeleteResponse.java b/bulk-api/src/main/java/io/lionweb/api/bulk/lowlevel/IDeleteResponse.java new file mode 100644 index 00000000..e801d6ba --- /dev/null +++ b/bulk-api/src/main/java/io/lionweb/api/bulk/lowlevel/IDeleteResponse.java @@ -0,0 +1,15 @@ +package io.lionweb.api.bulk.lowlevel; + +import java.util.List; + +public interface IDeleteResponse extends ILowlevelResponse { + /** + * Whether there was an issue with the nodeIds parameter. + */ + boolean isValidNodeIds(); + + /** + * Requested node ids unknown to the repository. + */ + List getUnknownNodeIds(); +} diff --git a/bulk-api/src/main/java/io/lionweb/api/bulk/lowlevel/IIdsResponse.java b/bulk-api/src/main/java/io/lionweb/api/bulk/lowlevel/IIdsResponse.java new file mode 100644 index 00000000..ca3b8caa --- /dev/null +++ b/bulk-api/src/main/java/io/lionweb/api/bulk/lowlevel/IIdsResponse.java @@ -0,0 +1,15 @@ +package io.lionweb.api.bulk.lowlevel; + +import java.util.List; + +public interface IIdsResponse extends ILowlevelResponse { + /** + * Retrieved available (i.e. free, usable, reserved for this client) ids, if successful. + */ + List getIds(); + + /** + * Whether there was an issue with the count parameter. + */ + boolean isValidCount(); +} diff --git a/bulk-api/src/main/java/io/lionweb/api/bulk/lowlevel/ILowlevelConfig.java b/bulk-api/src/main/java/io/lionweb/api/bulk/lowlevel/ILowlevelConfig.java new file mode 100644 index 00000000..4adb9c93 --- /dev/null +++ b/bulk-api/src/main/java/io/lionweb/api/bulk/lowlevel/ILowlevelConfig.java @@ -0,0 +1,4 @@ +package io.lionweb.api.bulk.lowlevel; + +public interface ILowlevelConfig { +} diff --git a/bulk-api/src/main/java/io/lionweb/api/bulk/lowlevel/ILowlevelResponse.java b/bulk-api/src/main/java/io/lionweb/api/bulk/lowlevel/ILowlevelResponse.java new file mode 100644 index 00000000..390d4be4 --- /dev/null +++ b/bulk-api/src/main/java/io/lionweb/api/bulk/lowlevel/ILowlevelResponse.java @@ -0,0 +1,8 @@ +package io.lionweb.api.bulk.lowlevel; + +public interface ILowlevelResponse { + boolean isOk(); + + //@Nonnull + String getErrorMessage(); +} diff --git a/bulk-api/src/main/java/io/lionweb/api/bulk/lowlevel/IPartitionsResponse.java b/bulk-api/src/main/java/io/lionweb/api/bulk/lowlevel/IPartitionsResponse.java new file mode 100644 index 00000000..3e815b7f --- /dev/null +++ b/bulk-api/src/main/java/io/lionweb/api/bulk/lowlevel/IPartitionsResponse.java @@ -0,0 +1,11 @@ +package io.lionweb.api.bulk.lowlevel; + +import io.lionweb.lioncore.java.serialization.data.SerializedChunk; + +public interface IPartitionsResponse extends ILowlevelResponse { + /** + * Retrieved partition nodes, if successful. + */ + // @Nonnull + SerializedChunk getResult(); +} diff --git a/bulk-api/src/main/java/io/lionweb/api/bulk/lowlevel/IRetrieveResponse.java b/bulk-api/src/main/java/io/lionweb/api/bulk/lowlevel/IRetrieveResponse.java new file mode 100644 index 00000000..fad31eb6 --- /dev/null +++ b/bulk-api/src/main/java/io/lionweb/api/bulk/lowlevel/IRetrieveResponse.java @@ -0,0 +1,28 @@ +package io.lionweb.api.bulk.lowlevel; + +import io.lionweb.lioncore.java.serialization.data.SerializedChunk; + +import java.util.List; + +public interface IRetrieveResponse extends ILowlevelResponse { + /** + * Retrieved nodes, if successful. + */ + // @Nonnull + SerializedChunk getResult(); + + /** + * Whether there was an issue with the nodeIds parameter. + */ + boolean isValidNodeIds(); + + /** + * Whether there was an issue with the depthLimit parameter. + */ + boolean isValidDepthLimit(); + + /** + * Requested node ids unknown to the repository. + */ + List getUnknownNodeIds(); +} diff --git a/bulk-api/src/main/java/io/lionweb/api/bulk/lowlevel/IStoreResponse.java b/bulk-api/src/main/java/io/lionweb/api/bulk/lowlevel/IStoreResponse.java new file mode 100644 index 00000000..34bbc598 --- /dev/null +++ b/bulk-api/src/main/java/io/lionweb/api/bulk/lowlevel/IStoreResponse.java @@ -0,0 +1,13 @@ +package io.lionweb.api.bulk.lowlevel; + +public interface IStoreResponse extends ILowlevelResponse { + /** + * Whether there was an issue with the nodes parameter. + */ + boolean isValidNodes(); + + /** + * Whether there was an issue with the mode parameter. + */ + boolean isValidMode(); +} diff --git a/bulk-api/src/main/java/io/lionweb/api/bulk/wrapper/BulkLowlevelWrapper.java b/bulk-api/src/main/java/io/lionweb/api/bulk/wrapper/BulkLowlevelWrapper.java new file mode 100644 index 00000000..ec638561 --- /dev/null +++ b/bulk-api/src/main/java/io/lionweb/api/bulk/wrapper/BulkLowlevelWrapper.java @@ -0,0 +1,87 @@ +package io.lionweb.api.bulk.wrapper; + +import io.lionweb.api.bulk.BulkException; +import io.lionweb.api.bulk.IBulk; +import io.lionweb.api.bulk.StoreMode; +import io.lionweb.api.bulk.lowlevel.*; +import io.lionweb.lioncore.java.serialization.data.SerializedChunk; + +import java.util.List; +import java.util.Objects; + +public class BulkLowlevelWrapper implements IBulk { + private final IBulkLowlevel lowlevel; + + public BulkLowlevelWrapper(/*@Nonnull*/ IBulkLowlevel lowlevel) { + this.lowlevel = lowlevel; + } + + @Override + public SerializedChunk partitions() throws BulkException { + IPartitionsResponse response = lowlevel.partitions(); + + if(response.isOk()) { + Objects.requireNonNull(response.getResult()); + return response.getResult(); + } + + throw new BulkException(response.getErrorMessage()); + } + + @Override + public SerializedChunk retrieve(List nodeIds, Integer depthLimit) throws BulkException { + Objects.requireNonNull(nodeIds); + nodeIds.forEach(Objects::requireNonNull); + + IRetrieveResponse response = lowlevel.retrieve(nodeIds, Objects.toString(depthLimit, null)); + + if(response.isOk()) { + Objects.requireNonNull(response.getResult()); + return response.getResult(); + } + + throw new BulkException(response.getErrorMessage()); + } + + @Override + public void store(SerializedChunk nodes, StoreMode mode) throws BulkException { + Objects.requireNonNull(nodes); + String modeString = mode !=null ? mode.name().toLowerCase() : null; + IStoreResponse response = lowlevel.store(nodes, modeString); + + if(response.isOk()) { + return; + } + + throw new BulkException(response.getErrorMessage()); + } + + @Override + public void delete(List nodeIds) throws BulkException { + Objects.requireNonNull(nodeIds); + nodeIds.forEach(Objects::requireNonNull); + + IDeleteResponse response = lowlevel.delete(nodeIds); + + if(response.isOk()) { + return; + } + + throw new BulkException(response.getErrorMessage()); + } + + @Override + public List ids(Integer count) throws BulkException { + Objects.requireNonNull(count); + + IIdsResponse response = lowlevel.ids(count.toString()); + + if(response.isOk()) { + Objects.requireNonNull(response.getIds()); + response.getIds().forEach(Objects::requireNonNull); + return response.getIds(); + } + + throw new BulkException(response.getErrorMessage()); + } +} \ No newline at end of file diff --git a/bulk-api/src/main/java/io/lionweb/api/bulk/wrapper/DefaultIdMapper.java b/bulk-api/src/main/java/io/lionweb/api/bulk/wrapper/DefaultIdMapper.java new file mode 100644 index 00000000..fb736aa3 --- /dev/null +++ b/bulk-api/src/main/java/io/lionweb/api/bulk/wrapper/DefaultIdMapper.java @@ -0,0 +1,24 @@ +package io.lionweb.api.bulk.wrapper; + +import java.util.Map; +import java.util.stream.Collectors; + +public class DefaultIdMapper implements IIdMapper { + private final Map externalToInternal; + private final Map internalToExternal; + + public DefaultIdMapper(Map externalToInternal) { + this.externalToInternal = externalToInternal; + this.internalToExternal = externalToInternal.entrySet().stream().collect(Collectors.toMap(Map.Entry::getValue, Map.Entry::getKey)); + } + + @Override + public String externalToInternal(String externalId) { + return externalToInternal.getOrDefault(externalId, externalId); + } + + @Override + public String internalToExternal(String internalId) { + return internalToExternal.getOrDefault(internalId, internalId); + } +} diff --git a/bulk-api/src/main/java/io/lionweb/api/bulk/wrapper/IIdMapper.java b/bulk-api/src/main/java/io/lionweb/api/bulk/wrapper/IIdMapper.java new file mode 100644 index 00000000..eb81895e --- /dev/null +++ b/bulk-api/src/main/java/io/lionweb/api/bulk/wrapper/IIdMapper.java @@ -0,0 +1,7 @@ +package io.lionweb.api.bulk.wrapper; + +public interface IIdMapper { + String externalToInternal(String externalId); + + String internalToExternal(String internalId); +} diff --git a/bulk-api/src/main/java/io/lionweb/api/bulk/wrapper/IdMappingWrapper.java b/bulk-api/src/main/java/io/lionweb/api/bulk/wrapper/IdMappingWrapper.java new file mode 100644 index 00000000..6b0e4438 --- /dev/null +++ b/bulk-api/src/main/java/io/lionweb/api/bulk/wrapper/IdMappingWrapper.java @@ -0,0 +1,189 @@ +package io.lionweb.api.bulk.wrapper; + +import io.lionweb.api.bulk.lowlevel.*; +import io.lionweb.lioncore.java.serialization.data.SerializedChunk; +import io.lionweb.lioncore.java.serialization.data.SerializedClassifierInstance; +import io.lionweb.lioncore.java.serialization.data.SerializedContainmentValue; +import io.lionweb.lioncore.java.serialization.data.SerializedReferenceValue; + +import java.util.List; +import java.util.function.Function; +import java.util.stream.Collectors; + +public class IdMappingWrapper implements IBulkLowlevel { + private final IBulkLowlevel delegate; + private final IIdMapper idMapper; + + public IdMappingWrapper(IBulkLowlevel delegate, IIdMapper idMapper){ + this.delegate = delegate; + this.idMapper = idMapper; + } + + @Override + public IPartitionsResponse partitions() { + IPartitionsResponse response = delegate.partitions(); + return new IPartitionsResponse() { + @Override + public SerializedChunk getResult() { + return mapToExternal(response.getResult()); + } + + @Override + public boolean isOk() { + return response.isOk(); + } + + @Override + public String getErrorMessage() { + return response.getErrorMessage(); + } + }; + } + + @Override + public IRetrieveResponse retrieve(List nodeIds, String depthLimit) { + List mappedNodeIds = mapToInternal(nodeIds); + IRetrieveResponse response = delegate.retrieve(mappedNodeIds, depthLimit); + return new IRetrieveResponse() { + @Override + public SerializedChunk getResult() { + return mapToExternal(response.getResult()) ; + } + + @Override + public boolean isValidNodeIds() { + return response.isValidNodeIds(); + } + + @Override + public boolean isValidDepthLimit() { + return response.isValidDepthLimit(); + } + + @Override + public List getUnknownNodeIds() { + return mapToExternal(response.getUnknownNodeIds()); + } + + @Override + public boolean isOk() { + return response.isOk(); + } + + @Override + public String getErrorMessage() { + return response.getErrorMessage(); + } + }; + } + + @Override + public IStoreResponse store(SerializedChunk nodes, String mode) { + SerializedChunk mappedNodes = mapToInternal(nodes); + IStoreResponse response = delegate.store(mappedNodes, mode); + return response; + } + + @Override + public IDeleteResponse delete(List nodeIds) { + List mappedNodeIds = mapToInternal(nodeIds); + IDeleteResponse response = delegate.delete(mappedNodeIds); + return new IDeleteResponse() { + @Override + public boolean isValidNodeIds() { + return response.isValidNodeIds(); + } + + @Override + public List getUnknownNodeIds() { + return mapToExternal(response.getUnknownNodeIds()); + } + + @Override + public boolean isOk() { + return response.isOk(); + } + + @Override + public String getErrorMessage() { + return response.getErrorMessage(); + } + }; + } + + @Override + public C getConfig() { + return delegate.getConfig(); + } + + @Override + public void setConfig(C config) { + delegate.setConfig(config); + } + + @Override + public IIdsResponse ids(String count) { + IIdsResponse response = delegate.ids(count); + return new IIdsResponse() { + @Override + public List getIds() { + return mapToExternal(response.getIds()); + } + + @Override + public boolean isValidCount() { + return response.isValidCount(); + } + + @Override + public boolean isOk() { + return response.isOk(); + } + + @Override + public String getErrorMessage() { + return response.getErrorMessage(); + } + }; + } + + private SerializedChunk mapToExternal(SerializedChunk input) { + return map(input, idMapper::internalToExternal); + } + + private SerializedChunk mapToInternal(SerializedChunk input) { + return map(input, idMapper::externalToInternal); + } + + private List mapToExternal(List nodeIds) { + return map(nodeIds, idMapper::internalToExternal); + } + + private List mapToInternal(List nodeIds) { + return map(nodeIds, idMapper::externalToInternal); + } + + private SerializedChunk map(SerializedChunk input, Function mapper) { + SerializedChunk result = new SerializedChunk(); + + result.setSerializationFormatVersion(input.getSerializationFormatVersion()); + input.getLanguages().forEach(result::addLanguage); + + input.getClassifierInstances().forEach(ci -> + { + SerializedClassifierInstance mci = new SerializedClassifierInstance(mapper.apply(ci.getID()), ci.getClassifier()); + mci.setParentNodeID(ci.getParentNodeID()); + mci.setAnnotations(map(ci.getAnnotations(), mapper)); + ci.getProperties().forEach(mci::addPropertyValue); + ci.getContainments().forEach(c -> mci.addContainmentValue(new SerializedContainmentValue(c.getMetaPointer(), map(c.getValue(), mapper)))); + ci.getReferences().forEach(r -> mci.addReferenceValue(r.getMetaPointer(), r.getValue().stream().map(e -> new SerializedReferenceValue.Entry(mapper.apply(e.getReference()), e.getResolveInfo())).collect(Collectors.toList()))); + result.addClassifierInstance(mci); + }); + + return result; + } + + private List map(List ids, Function mapper) { + return ids.stream().map(mapper).collect(Collectors.toList()); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/ATestBulk.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/ATestBulk.java new file mode 100644 index 00000000..ab56f7d0 --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/ATestBulk.java @@ -0,0 +1,40 @@ +package io.lionweb.api.bulk.test; + +import com.google.gson.JsonElement; +import com.google.gson.JsonParser; +import com.google.gson.stream.JsonReader; +import io.lionweb.api.bulk.IBulk; +import io.lionweb.api.bulk.lowlevel.IBulkLowlevel; +import io.lionweb.lioncore.java.serialization.LowLevelJsonSerialization; +import io.lionweb.lioncore.java.serialization.data.SerializedChunk; + +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; + +public abstract class ATestBulk { + + protected IBulk getBulk() { + return BulkApiProvider.getInstance().getBulk(); + } + + protected IBulkLowlevel getBulkLowlevel() { + return BulkApiProvider.getInstance().getBulkLowlevel(); + } + + protected SerializedChunk loadResource(String resourcePath) { + SerializedChunk chunk; + Class aClass = this.getClass(); + try (InputStream is = aClass.getResourceAsStream("/" + resourcePath)) { + LowLevelJsonSerialization jsonSerialization = new LowLevelJsonSerialization(); + InputStreamReader reader = new InputStreamReader(is); + JsonReader json = new JsonReader(reader); + json.setLenient(true); + JsonElement jsonElement = JsonParser.parseReader(json); + chunk = jsonSerialization.deserializeSerializationBlock(jsonElement); + } catch (IOException e) { + throw new RuntimeException(e); + } + return chunk; + } +} diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/BulkApiProvider.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/BulkApiProvider.java new file mode 100644 index 00000000..07428d65 --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/BulkApiProvider.java @@ -0,0 +1,22 @@ +package io.lionweb.api.bulk.test; + +import io.lionweb.api.bulk.IBulk; +import io.lionweb.api.bulk.lowlevel.IBulkLowlevel; +import io.lionweb.api.bulk.test.impl.LionwebRepositoryBulkLowlevel; +import io.lionweb.api.bulk.test.impl.MpsBulkLowlevel; +import io.lionweb.api.bulk.wrapper.BulkLowlevelWrapper; + +public class BulkApiProvider { + public static BulkApiProvider getInstance() { + return new BulkApiProvider(); + } + + public IBulk getBulk() { + return new BulkLowlevelWrapper(getBulkLowlevel()); + } + + public IBulkLowlevel getBulkLowlevel() { +// return new MpsBulkLowlevel(); + return new LionwebRepositoryBulkLowlevel(); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/TestPartitions.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/TestPartitions.java new file mode 100644 index 00000000..7b5c5348 --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/TestPartitions.java @@ -0,0 +1,16 @@ +package io.lionweb.api.bulk.test; + +import io.lionweb.lioncore.java.serialization.data.SerializedClassifierInstance; +import org.junit.Test; + +import java.util.List; + +import static org.junit.Assert.assertFalse; + +public class TestPartitions extends ATestBulk { + @Test + public void listPartitions() { + List roots = getBulk().partitions().getClassifierInstances(); + assertFalse(roots.toString(), roots.isEmpty()); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/impl/LionwebRepositoryBulkLowlevel.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/impl/LionwebRepositoryBulkLowlevel.java new file mode 100644 index 00000000..968767a2 --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/impl/LionwebRepositoryBulkLowlevel.java @@ -0,0 +1,245 @@ +package io.lionweb.api.bulk.test.impl; + +import com.google.gson.JsonElement; +import com.google.gson.JsonParser; +import com.google.gson.stream.JsonReader; +import io.lionweb.api.bulk.lowlevel.*; +import io.lionweb.lioncore.java.serialization.LowLevelJsonSerialization; +import io.lionweb.lioncore.java.serialization.data.SerializedChunk; + +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.time.Duration; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +public class LionwebRepositoryBulkLowlevel implements IBulkLowlevel { + private LionwebRepositoryConfig config = new LionwebRepositoryConfig(); + + @Override + public IPartitionsResponse partitions() { + HttpRequest request = buildRequest().uri(URI.create(config.getUriBase() + "partitions")).GET().build(); + HttpResponse response = send(request); + if (HttpURLConnection.HTTP_OK != response.statusCode()) { + return new IPartitionsResponse() { + @Override + public SerializedChunk getResult() { + return null; + } + + @Override + public boolean isOk() { + return false; + } + + @Override + public String getErrorMessage() { + return Integer.toString(response.statusCode()); + } + }; + } + + SerializedChunk chunk = parseChunk(response); + + return new IPartitionsResponse() { + @Override + public SerializedChunk getResult() { + return chunk; + } + + @Override + public boolean isOk() { + return true; + } + + @Override + public String getErrorMessage() { + return ""; + } + }; + } + + @Override + public IRetrieveResponse retrieve(List nodeIds, String depthLimit) { + String ids = "{ \"ids\": " + nodeIds.stream().map(s -> "\"" + s + "\"").collect(Collectors.joining(",", "[", "]")) + "}"; + String limit = depthLimit != null ? "?depthLimit=" + depthLimit : ""; + + HttpRequest request = buildRequest().uri(URI.create(config.getUriBase() + "retrieve" + limit)).POST(HttpRequest.BodyPublishers.ofString(ids)).build(); + HttpResponse response = send(request); + if (HttpURLConnection.HTTP_OK != response.statusCode()) { + return new IRetrieveResponse() { + @Override + public SerializedChunk getResult() { + return null; + } + + @Override + public boolean isValidNodeIds() { + return true; + } + + @Override + public boolean isValidDepthLimit() { + return true; + } + + @Override + public List getUnknownNodeIds() { + return Collections.emptyList(); + } + + @Override + public boolean isOk() { + return false; + } + + @Override + public String getErrorMessage() { + return Integer.toString(response.statusCode()); + } + }; + } + + + SerializedChunk chunk = parseChunk(response); + + return new IRetrieveResponse() { + @Override + public SerializedChunk getResult() { + return chunk; + } + + @Override + public boolean isValidNodeIds() { + return true; + } + + @Override + public boolean isValidDepthLimit() { + return true; + } + + @Override + public List getUnknownNodeIds() { + return Collections.emptyList(); + } + + @Override + public boolean isOk() { + return true; + } + + @Override + public String getErrorMessage() { + return ""; + } + }; + } + + @Override + public IStoreResponse store(SerializedChunk nodes, String mode) { + String jsonString = new LowLevelJsonSerialization().serializeToJsonString(nodes); + + HttpRequest request = buildRequest().uri(URI.create(config.getUriBase() + "store")).POST(HttpRequest.BodyPublishers.ofString(jsonString)).build(); + HttpResponse response = send(request); + if (HttpURLConnection.HTTP_OK != response.statusCode()) { + return new IStoreResponse() { + @Override + public boolean isValidNodes() { + return true; + } + + @Override + public boolean isValidMode() { + return true; + } + + @Override + public boolean isOk() { + return false; + } + + @Override + public String getErrorMessage() { + return Integer.toString(response.statusCode()); + } + }; + } + + return new IStoreResponse() { + @Override + public boolean isValidNodes() { + return true; + } + + @Override + public boolean isValidMode() { + return true; + } + + @Override + public boolean isOk() { + return true; + } + + @Override + public String getErrorMessage() { + return ""; + } + }; + } + + @Override + public IDeleteResponse delete(List nodeIds) { + throw new UnsupportedOperationException(); + } + + @Override + public IIdsResponse ids(String count) { + throw new UnsupportedOperationException(); + } + + @Override + public LionwebRepositoryConfig getConfig() { + return this.config; + } + + @Override + public void setConfig(LionwebRepositoryConfig config) { + this.config = config; + } + + private HttpClient createClient() { + return HttpClient.newBuilder().connectTimeout(Duration.ofSeconds(2)).build(); + } + + private static HttpRequest.Builder buildRequest() { + return HttpRequest.newBuilder().setHeader("Content-Type", "application/json"); + } + + private HttpResponse send(HttpRequest request) { + try { + HttpClient client = createClient(); + return client.send(request, HttpResponse.BodyHandlers.ofInputStream()); + } catch (InterruptedException | IOException e) { + throw new RuntimeException(e); + } + } + + private SerializedChunk parseChunk(HttpResponse response) { + InputStreamReader reader = new InputStreamReader(response.body()); + JsonReader json = new JsonReader(reader); + json.setLenient(true); + JsonElement jsonElement = JsonParser.parseReader(json); + LowLevelJsonSerialization serialization = new LowLevelJsonSerialization(); + SerializedChunk chunk = serialization.deserializeSerializationBlock(jsonElement); + return chunk; + } +} diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/impl/LionwebRepositoryConfig.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/impl/LionwebRepositoryConfig.java new file mode 100644 index 00000000..81ebb052 --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/impl/LionwebRepositoryConfig.java @@ -0,0 +1,25 @@ +package io.lionweb.api.bulk.test.impl; + +import io.lionweb.api.bulk.lowlevel.ILowlevelConfig; + +import java.net.URI; + +public class LionwebRepositoryConfig implements ILowlevelConfig { + private URI baseUri = URI.create("http://127.0.0.1:3005/bulk/"); + + public URI getBaseUri() { + return baseUri; + } + + public void setBaseUri(URI baseUri) { + this.baseUri = baseUri; + } + + String getUriBase() { + String result = getBaseUri().toString(); + if (!result.endsWith("/")) { + result += "/"; + } + return result; + } +} diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/impl/MpsBulkLowlevel.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/impl/MpsBulkLowlevel.java new file mode 100644 index 00000000..984d5f9d --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/impl/MpsBulkLowlevel.java @@ -0,0 +1,21 @@ +package io.lionweb.api.bulk.test.impl; + +import io.lionweb.api.bulk.wrapper.DefaultIdMapper; +import io.lionweb.api.bulk.wrapper.IdMappingWrapper; + +import java.util.Map; + +public class MpsBulkLowlevel extends IdMappingWrapper { + public MpsBulkLowlevel() { + super(new MpsBulkLowlevelImpl(), new DefaultIdMapper(Map.of( + "leaf-id", "3783922071925855302", + "other-leaf-id", "3783922071925855326", + "third-leaf-id", "3783922071925855319", + "partition-id", "3783922071925855294", + "other-partition-id", "3783922071925855305", + "midnode-id", "3783922071925855296", + "other-midnode-id", "3783922071925855307", + "third-midnode-id", "3783922071925855313" + ))); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/impl/MpsBulkLowlevelImpl.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/impl/MpsBulkLowlevelImpl.java new file mode 100644 index 00000000..e9f1e07a --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/impl/MpsBulkLowlevelImpl.java @@ -0,0 +1,265 @@ +package io.lionweb.api.bulk.test.impl; + +import com.google.gson.JsonElement; +import com.google.gson.JsonParser; +import com.google.gson.stream.JsonReader; +import io.lionweb.api.bulk.lowlevel.*; +import io.lionweb.lioncore.java.serialization.LowLevelJsonSerialization; +import io.lionweb.lioncore.java.serialization.data.SerializedChunk; + +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.nio.charset.StandardCharsets; +import java.time.Duration; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +public class MpsBulkLowlevelImpl implements IBulkLowlevel { + private MpsConfig config = new MpsConfig(); + + @Override + public IPartitionsResponse partitions() { + List parameters = Arrays.asList( + "onlyPartitions=" + config.isOnlyPartitions(), + "includeLanguages=" + config.isIncludeLanguages(), + "includePackaged=" + config.isIncludePackaged()); + URI uri = URI.create(config.getUriBase() + "partitions?" + String.join("&", parameters)); + HttpRequest request = buildRequest().uri(uri).GET().build(); + HttpResponse response = send(request); + if (HttpURLConnection.HTTP_OK != response.statusCode()) { + return new IPartitionsResponse() { + @Override + public SerializedChunk getResult() { + return null; + } + + @Override + public boolean isOk() { + return false; + } + + @Override + public String getErrorMessage() { + return Integer.toString(response.statusCode()); + } + }; + } + + SerializedChunk chunk = parseChunk(response); + + return new IPartitionsResponse() { + @Override + public SerializedChunk getResult() { + return chunk; + } + + @Override + public boolean isOk() { + return true; + } + + @Override + public String getErrorMessage() { + return ""; + } + }; + } + + @Override + public IRetrieveResponse retrieve(List nodeIds, String depthLimit) { + String ids = nodeIds.stream().map(s -> "\"" + s + "\"").collect(Collectors.joining(",", "[", "]")); + String limit = depthLimit != null ? "?depthLimit=" + depthLimit : ""; + + URI uri = URI.create(config.getUriBase() + "retrieve" + limit); + HttpRequest request = buildRequest().uri(uri).POST(HttpRequest.BodyPublishers.ofString(ids)).build(); + HttpResponse response = send(request); + if (HttpURLConnection.HTTP_OK != response.statusCode()) { + return new IRetrieveResponse() { + @Override + public SerializedChunk getResult() { + return null; + } + + @Override + public boolean isValidNodeIds() { + return responseContains(response, "nodeids"); + } + + @Override + public boolean isValidDepthLimit() { + return responseContains(response, "depthlimit"); + } + + @Override + public List getUnknownNodeIds() { + return Collections.emptyList(); + } + + @Override + public boolean isOk() { + return false; + } + + @Override + public String getErrorMessage() { + return Integer.toString(response.statusCode()); + } + }; + } + + + SerializedChunk chunk = parseChunk(response); + + return new IRetrieveResponse() { + @Override + public SerializedChunk getResult() { + return chunk; + } + + @Override + public boolean isValidNodeIds() { + return true; + } + + @Override + public boolean isValidDepthLimit() { + return true; + } + + @Override + public List getUnknownNodeIds() { + return Collections.emptyList(); + } + + @Override + public boolean isOk() { + return true; + } + + @Override + public String getErrorMessage() { + return ""; + } + }; + } + + @Override + public MpsConfig getConfig() { + return config; + } + + @Override + public void setConfig(MpsConfig config) { + this.config = config; + } + + private boolean responseContains(HttpResponse response, String keyword) { + try { + return !extractContents(response).toLowerCase().contains(keyword); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + private String extractContents(HttpResponse response) throws IOException { + return new String(response.body().readAllBytes(), StandardCharsets.UTF_8); + } + + @Override + public IStoreResponse store(SerializedChunk nodes, String mode) { + String jsonString = new LowLevelJsonSerialization().serializeToJsonString(nodes); + + HttpRequest request = buildRequest().uri(URI.create(config.getUriBase() + "store")).POST(HttpRequest.BodyPublishers.ofString(jsonString)).build(); + HttpResponse response = send(request); + if (HttpURLConnection.HTTP_OK != response.statusCode()) { + return new IStoreResponse() { + @Override + public boolean isValidNodes() { + return true; + } + + @Override + public boolean isValidMode() { + return true; + } + + @Override + public boolean isOk() { + return false; + } + + @Override + public String getErrorMessage() { + return Integer.toString(response.statusCode()); + } + }; + } + + return new IStoreResponse() { + @Override + public boolean isValidNodes() { + return true; + } + + @Override + public boolean isValidMode() { + return true; + } + + @Override + public boolean isOk() { + return true; + } + + @Override + public String getErrorMessage() { + return ""; + } + }; + } + + @Override + public IDeleteResponse delete(List nodeIds) { + throw new UnsupportedOperationException(); + } + + @Override + public IIdsResponse ids(String count) { + throw new UnsupportedOperationException(); + } + + private HttpClient createClient() { + return HttpClient.newBuilder().connectTimeout(Duration.ofSeconds(2)).build(); + } + + private static HttpRequest.Builder buildRequest() { + return HttpRequest.newBuilder().setHeader("Content-Type", "application/json"); + } + + private HttpResponse send(HttpRequest request) { + try { + HttpClient client = createClient(); + return client.send(request, HttpResponse.BodyHandlers.ofInputStream()); + } catch (InterruptedException | IOException e) { + throw new RuntimeException(e); + } + } + + private SerializedChunk parseChunk(HttpResponse response) { + InputStreamReader reader = new InputStreamReader(response.body()); + JsonReader json = new JsonReader(reader); + json.setLenient(true); + JsonElement jsonElement = JsonParser.parseReader(json); + LowLevelJsonSerialization serialization = new LowLevelJsonSerialization(); + SerializedChunk chunk = serialization.deserializeSerializationBlock(jsonElement); + return chunk; + } +} diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/impl/MpsConfig.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/impl/MpsConfig.java new file mode 100644 index 00000000..a7ce1bde --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/impl/MpsConfig.java @@ -0,0 +1,52 @@ +package io.lionweb.api.bulk.test.impl; + +import io.lionweb.api.bulk.lowlevel.ILowlevelConfig; + +import java.net.URI; + +public class MpsConfig implements ILowlevelConfig { + private URI baseUri = URI.create("http://127.0.0.1:63320/lionweb/api/bulk/"); + private boolean onlyPartitions = true; + private boolean includeLanguages = false; + private boolean includePackaged = false; + + public boolean isOnlyPartitions() { + return onlyPartitions; + } + + public void setOnlyPartitions(boolean onlyPartitions) { + this.onlyPartitions = onlyPartitions; + } + + public boolean isIncludeLanguages() { + return includeLanguages; + } + + public void setIncludeLanguages(boolean includeLanguages) { + this.includeLanguages = includeLanguages; + } + + public boolean isIncludePackaged() { + return includePackaged; + } + + public void setIncludePackaged(boolean includePackaged) { + this.includePackaged = includePackaged; + } + + public URI getBaseUri() { + return baseUri; + } + + public void setBaseUri(URI baseUri) { + this.baseUri = baseUri; + } + + String getUriBase() { + String result = getBaseUri().toString(); + if (!result.endsWith("/")) { + result += "/"; + } + return result; + } +} diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/ATestRetrieve.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/ATestRetrieve.java new file mode 100644 index 00000000..9f2caca1 --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/ATestRetrieve.java @@ -0,0 +1,12 @@ +package io.lionweb.api.bulk.test.retrieve; + +import io.lionweb.api.bulk.StoreMode; +import io.lionweb.api.bulk.test.ATestBulk; +import org.junit.Before; + +public abstract class ATestRetrieve extends ATestBulk { + @Before + public void initDb() { + getBulk().store(loadResource("retrieve-baseline.json"), StoreMode.REPLACE); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/TestMixedPartitionMidNodeLeaf.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/TestMixedPartitionMidNodeLeaf.java new file mode 100644 index 00000000..48885a08 --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/TestMixedPartitionMidNodeLeaf.java @@ -0,0 +1,32 @@ +package io.lionweb.api.bulk.test.retrieve; + +import io.lionweb.lioncore.java.serialization.data.SerializedClassifierInstance; +import org.junit.Test; + +import java.util.Arrays; +import java.util.List; + +import static org.junit.Assert.assertEquals; + +public class TestMixedPartitionMidNodeLeaf extends ATestRetrieve { + @Test + public void infinite() { + List roots = getBulk().retrieve(Arrays.asList("partition-id", "midnode-id", "leaf-id"), null).getClassifierInstances(); + assertEquals(10, roots.size()); + } + @Test + public void depth0() { + List roots = getBulk().retrieve(Arrays.asList("partition-id", "midnode-id", "leaf-id"), 0).getClassifierInstances(); + assertEquals(3, roots.size()); + } + @Test + public void depth1() { + List roots = getBulk().retrieve(Arrays.asList("partition-id", "midnode-id", "leaf-id"), 1).getClassifierInstances(); + assertEquals(6, roots.size()); + } + @Test + public void depth2() { + List roots = getBulk().retrieve(Arrays.asList("partition-id", "midnode-id", "leaf-id"), 3).getClassifierInstances(); + assertEquals(10, roots.size()); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/TestMixedUnknown.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/TestMixedUnknown.java new file mode 100644 index 00000000..1dfa8151 --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/TestMixedUnknown.java @@ -0,0 +1,32 @@ +package io.lionweb.api.bulk.test.retrieve; + +import io.lionweb.lioncore.java.serialization.data.SerializedClassifierInstance; +import org.junit.Test; + +import java.util.Arrays; +import java.util.List; + +import static org.junit.Assert.assertEquals; + +public class TestMixedUnknown extends ATestRetrieve { + @Test + public void infinite() { + List roots = getBulk().retrieve(Arrays.asList("leaf-id", "unknown-id", "midnode-id"), null).getClassifierInstances(); + assertEquals(6, roots.size()); + } + @Test + public void depth0() { + List roots = getBulk().retrieve(Arrays.asList("leaf-id", "unknown-id", "midnode-id"), 0).getClassifierInstances(); + assertEquals(2, roots.size()); + } + @Test + public void depth1() { + List roots = getBulk().retrieve(Arrays.asList("leaf-id", "unknown-id", "midnode-id"), 1).getClassifierInstances(); + assertEquals(4, roots.size()); + } + @Test + public void depth2() { + List roots = getBulk().retrieve(Arrays.asList("leaf-id", "unknown-id", "midnode-id"), 2).getClassifierInstances(); + assertEquals(5, roots.size()); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/TestMultiLeaf.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/TestMultiLeaf.java new file mode 100644 index 00000000..db29c2c0 --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/TestMultiLeaf.java @@ -0,0 +1,32 @@ +package io.lionweb.api.bulk.test.retrieve; + +import io.lionweb.lioncore.java.serialization.data.SerializedClassifierInstance; +import org.junit.Test; + +import java.util.Arrays; +import java.util.List; + +import static org.junit.Assert.assertEquals; + +public class TestMultiLeaf extends ATestRetrieve { + @Test + public void infinite() { + List roots = getBulk().retrieve(Arrays.asList("leaf-id", "other-leaf-id", "third-leaf-id"), null).getClassifierInstances(); + assertEquals(3, roots.size()); + } + @Test + public void depth0() { + List roots = getBulk().retrieve(Arrays.asList("leaf-id", "other-leaf-id", "third-leaf-id"), 0).getClassifierInstances(); + assertEquals(3, roots.size()); + } + @Test + public void depth1() { + List roots = getBulk().retrieve(Arrays.asList("leaf-id", "other-leaf-id", "third-leaf-id"), 1).getClassifierInstances(); + assertEquals(3, roots.size()); + } + @Test + public void depth2() { + List roots = getBulk().retrieve(Arrays.asList("leaf-id", "other-leaf-id", "third-leaf-id"), 2).getClassifierInstances(); + assertEquals(3, roots.size()); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/TestMultiMidNode.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/TestMultiMidNode.java new file mode 100644 index 00000000..76ef7036 --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/TestMultiMidNode.java @@ -0,0 +1,32 @@ +package io.lionweb.api.bulk.test.retrieve; + +import io.lionweb.lioncore.java.serialization.data.SerializedClassifierInstance; +import org.junit.Test; + +import java.util.Arrays; +import java.util.List; + +import static org.junit.Assert.assertEquals; + +public class TestMultiMidNode extends ATestRetrieve { + @Test + public void infinite() { + List roots = getBulk().retrieve(Arrays.asList("midnode-id", "other-midnode-id", "third-midnode-id"), null).getClassifierInstances(); + assertEquals(9, roots.size()); + } + @Test + public void depth0() { + List roots = getBulk().retrieve(Arrays.asList("midnode-id", "other-midnode-id", "third-midnode-id"), 0).getClassifierInstances(); + assertEquals(3, roots.size()); + } + @Test + public void depth1() { + List roots = getBulk().retrieve(Arrays.asList("midnode-id", "other-midnode-id", "third-midnode-id"), 1).getClassifierInstances(); + assertEquals(7, roots.size()); + } + @Test + public void depth2() { + List roots = getBulk().retrieve(Arrays.asList("midnode-id", "other-midnode-id", "third-midnode-id"), 2).getClassifierInstances(); + assertEquals(8, roots.size()); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/TestMultiPartition.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/TestMultiPartition.java new file mode 100644 index 00000000..a16e3b23 --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/TestMultiPartition.java @@ -0,0 +1,32 @@ +package io.lionweb.api.bulk.test.retrieve; + +import io.lionweb.lioncore.java.serialization.data.SerializedClassifierInstance; +import org.junit.Test; + +import java.util.Arrays; +import java.util.List; + +import static org.junit.Assert.assertEquals; + +public class TestMultiPartition extends ATestRetrieve { + @Test + public void infinite() { + List roots = getBulk().retrieve(Arrays.asList("partition-id", "other-partition-id"), null).getClassifierInstances(); + assertEquals(15, roots.size()); + } + @Test + public void depth0() { + List roots = getBulk().retrieve(Arrays.asList("partition-id", "other-partition-id"), 0).getClassifierInstances(); + assertEquals(2, roots.size()); + } + @Test + public void depth1() { + List roots = getBulk().retrieve(Arrays.asList("partition-id", "other-partition-id"), 1).getClassifierInstances(); + assertEquals(4, roots.size()); + } + @Test + public void depth2() { + List roots = getBulk().retrieve(Arrays.asList("partition-id", "other-partition-id"), 2).getClassifierInstances(); + assertEquals(8, roots.size()); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/TestMultiUnknown.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/TestMultiUnknown.java new file mode 100644 index 00000000..d07ede6d --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/TestMultiUnknown.java @@ -0,0 +1,32 @@ +package io.lionweb.api.bulk.test.retrieve; + +import io.lionweb.lioncore.java.serialization.data.SerializedClassifierInstance; +import org.junit.Test; + +import java.util.Arrays; +import java.util.List; + +import static org.junit.Assert.assertTrue; + +public class TestMultiUnknown extends ATestRetrieve { + @Test + public void infinite() { + List roots = getBulk().retrieve(Arrays.asList("unknown-id", "other-unknown-id"), null).getClassifierInstances(); + assertTrue(roots.isEmpty()); + } + @Test + public void depth0() { + List roots = getBulk().retrieve(Arrays.asList("unknown-id", "other-unknown-id"), 0).getClassifierInstances(); + assertTrue(roots.isEmpty()); + } + @Test + public void depth1() { + List roots = getBulk().retrieve(Arrays.asList("unknown-id", "other-unknown-id"), 1).getClassifierInstances(); + assertTrue(roots.isEmpty()); + } + @Test + public void depth2() { + List roots = getBulk().retrieve(Arrays.asList("unknown-id", "other-unknown-id"), 2).getClassifierInstances(); + assertTrue(roots.isEmpty()); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/TestSingleLeaf.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/TestSingleLeaf.java new file mode 100644 index 00000000..51877ead --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/TestSingleLeaf.java @@ -0,0 +1,32 @@ +package io.lionweb.api.bulk.test.retrieve; + +import io.lionweb.lioncore.java.serialization.data.SerializedClassifierInstance; +import org.junit.Test; + +import java.util.Arrays; +import java.util.List; + +import static org.junit.Assert.assertEquals; + +public class TestSingleLeaf extends ATestRetrieve { + @Test + public void infinite() { + List roots = getBulk().retrieve(Arrays.asList("leaf-id"), null).getClassifierInstances(); + assertEquals(1, roots.size()); + } + @Test + public void depth0() { + List roots = getBulk().retrieve(Arrays.asList("leaf-id"), 0).getClassifierInstances(); + assertEquals(1, roots.size()); + } + @Test + public void depth1() { + List roots = getBulk().retrieve(Arrays.asList("leaf-id"), 1).getClassifierInstances(); + assertEquals(1, roots.size()); + } + @Test + public void depth2() { + List roots = getBulk().retrieve(Arrays.asList("leaf-id"), 2).getClassifierInstances(); + assertEquals(1, roots.size()); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/TestSingleMidNode.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/TestSingleMidNode.java new file mode 100644 index 00000000..fbac9298 --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/TestSingleMidNode.java @@ -0,0 +1,32 @@ +package io.lionweb.api.bulk.test.retrieve; + +import io.lionweb.lioncore.java.serialization.data.SerializedClassifierInstance; +import org.junit.Test; + +import java.util.Arrays; +import java.util.List; + +import static org.junit.Assert.assertEquals; + +public class TestSingleMidNode extends ATestRetrieve { + @Test + public void infinite() { + List roots = getBulk().retrieve(Arrays.asList("midnode-id"), null).getClassifierInstances(); + assertEquals(5, roots.size()); + } + @Test + public void depth0() { + List roots = getBulk().retrieve(Arrays.asList("midnode-id"), 0).getClassifierInstances(); + assertEquals(1, roots.size()); + } + @Test + public void depth1() { + List roots = getBulk().retrieve(Arrays.asList("midnode-id"), 1).getClassifierInstances(); + assertEquals(3, roots.size()); + } + @Test + public void depth2() { + List roots = getBulk().retrieve(Arrays.asList("midnode-id"), 2).getClassifierInstances(); + assertEquals(4, roots.size()); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/TestSinglePartition.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/TestSinglePartition.java new file mode 100644 index 00000000..9bc2bcd5 --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/TestSinglePartition.java @@ -0,0 +1,32 @@ +package io.lionweb.api.bulk.test.retrieve; + +import io.lionweb.lioncore.java.serialization.data.SerializedClassifierInstance; +import org.junit.Test; + +import java.util.Arrays; +import java.util.List; + +import static org.junit.Assert.assertEquals; + +public class TestSinglePartition extends ATestRetrieve { + @Test + public void infinite() { + List roots = getBulk().retrieve(Arrays.asList("partition-id"), null).getClassifierInstances(); + assertEquals(10, roots.size()); + } + @Test + public void depth0() { + List roots = getBulk().retrieve(Arrays.asList("partition-id"), 0).getClassifierInstances(); + assertEquals(1, roots.size()); + } + @Test + public void depth1() { + List roots = getBulk().retrieve(Arrays.asList("partition-id"), 1).getClassifierInstances(); + assertEquals(2, roots.size()); + } + @Test + public void depth2() { + List roots = getBulk().retrieve(Arrays.asList("partition-id"), 2).getClassifierInstances(); + assertEquals(4, roots.size()); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/TestSingleUnknown.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/TestSingleUnknown.java new file mode 100644 index 00000000..426740e1 --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/TestSingleUnknown.java @@ -0,0 +1,32 @@ +package io.lionweb.api.bulk.test.retrieve; + +import io.lionweb.lioncore.java.serialization.data.SerializedClassifierInstance; +import org.junit.Test; + +import java.util.Arrays; +import java.util.List; + +import static org.junit.Assert.assertTrue; + +public class TestSingleUnknown extends ATestRetrieve { + @Test + public void infinite() { + List roots = getBulk().retrieve(Arrays.asList("unknown-id"), null).getClassifierInstances(); + assertTrue(roots.isEmpty()); + } + @Test + public void depth0() { + List roots = getBulk().retrieve(Arrays.asList("unknown-id"), 0).getClassifierInstances(); + assertTrue(roots.isEmpty()); + } + @Test + public void depth1() { + List roots = getBulk().retrieve(Arrays.asList("unknown-id"), 1).getClassifierInstances(); + assertTrue(roots.isEmpty()); + } + @Test + public void depth2() { + List roots = getBulk().retrieve(Arrays.asList("unknown-id"), 2).getClassifierInstances(); + assertTrue(roots.isEmpty()); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/lowlevel/TestInvalidDepth.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/lowlevel/TestInvalidDepth.java new file mode 100644 index 00000000..40ef2682 --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/lowlevel/TestInvalidDepth.java @@ -0,0 +1,36 @@ +package io.lionweb.api.bulk.test.retrieve.lowlevel; + +import io.lionweb.api.bulk.lowlevel.IRetrieveResponse; +import io.lionweb.api.bulk.test.retrieve.ATestRetrieve; +import org.junit.Test; + +import java.util.Arrays; + +import static org.junit.Assert.assertFalse; + +public class TestInvalidDepth extends ATestRetrieve { + @Test + public void nothing() { + IRetrieveResponse response = getBulkLowlevel().retrieve(Arrays.asList("leaf-id"), ""); + assertFalse(response.isOk()); + assertFalse(response.isValidDepthLimit()); + } + @Test + public void negative() { + IRetrieveResponse response = getBulkLowlevel().retrieve(Arrays.asList("leaf-id"), "-1"); + assertFalse(response.isOk()); + assertFalse(response.isValidDepthLimit()); + } + @Test + public void character() { + IRetrieveResponse response = getBulkLowlevel().retrieve(Arrays.asList("leaf-id"), "a"); + assertFalse(response.isOk()); + assertFalse(response.isValidDepthLimit()); + } + @Test + public void string() { + IRetrieveResponse response = getBulkLowlevel().retrieve(Arrays.asList("leaf-id"), "asdf"); + assertFalse(response.isOk()); + assertFalse(response.isValidDepthLimit()); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/lowlevel/TestNoNodeIds.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/lowlevel/TestNoNodeIds.java new file mode 100644 index 00000000..11864798 --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/retrieve/lowlevel/TestNoNodeIds.java @@ -0,0 +1,36 @@ +package io.lionweb.api.bulk.test.retrieve.lowlevel; + +import io.lionweb.api.bulk.lowlevel.IRetrieveResponse; +import io.lionweb.api.bulk.test.retrieve.ATestRetrieve; +import org.junit.Test; + +import java.util.Collections; + +import static org.junit.Assert.assertFalse; + +public class TestNoNodeIds extends ATestRetrieve { + @Test + public void infinite() { + IRetrieveResponse response = getBulkLowlevel().retrieve(Collections.emptyList(), null); + assertFalse(response.isOk()); + assertFalse(response.isValidNodeIds()); + } + @Test + public void depth0() { + IRetrieveResponse response = getBulkLowlevel().retrieve(Collections.emptyList(), "0"); + assertFalse(response.isOk()); + assertFalse(response.isValidNodeIds()); + } + @Test + public void depth1() { + IRetrieveResponse response = getBulkLowlevel().retrieve(Collections.emptyList(), "1"); + assertFalse(response.isOk()); + assertFalse(response.isValidNodeIds()); + } + @Test + public void depth2() { + IRetrieveResponse response = getBulkLowlevel().retrieve(Collections.emptyList(), "2"); + assertFalse(response.isOk()); + assertFalse(response.isValidNodeIds()); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/ATestStore.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/ATestStore.java new file mode 100644 index 00000000..a05b4664 --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/ATestStore.java @@ -0,0 +1,25 @@ +package io.lionweb.api.bulk.test.store; + +import io.lionweb.api.bulk.StoreMode; +import io.lionweb.api.bulk.test.ATestBulk; +import io.lionweb.json.sorted.SortedSerializedChunk; +import org.junit.Before; + +import java.util.List; + +import static org.junit.Assert.assertEquals; + +public abstract class ATestStore extends ATestBulk { + @Before + public void initDb() { + getBulk().store(loadResource("Disk_A.json"), StoreMode.REPLACE); + } + + protected void test(String originalJsonResource, String changesResource) { + getBulk().store(loadResource(changesResource), StoreMode.REPLACE); + + SortedSerializedChunk expected = new SortedSerializedChunk(loadResource(originalJsonResource)); + SortedSerializedChunk actual = new SortedSerializedChunk(getBulk().retrieve(List.of("ID-2"), null)); + assertEquals(expected, actual); + } +} \ No newline at end of file diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestAddNewAnnotation.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestAddNewAnnotation.java new file mode 100644 index 00000000..2848dcee --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestAddNewAnnotation.java @@ -0,0 +1,21 @@ +package io.lionweb.api.bulk.test.store; + +import org.junit.Test; + +public class TestAddNewAnnotation extends ATestStore { + @Test + public void updateFullPartition() { + test( + "add-new-annotation/Disk-add-new-annotation-partition.json", + "add-new-annotation/Disk-add-new-annotation-partition.json" + ); + } + + @Test + public void updateTwoNodes() { + test( + "add-new-annotation/Disk-add-new-annotation-partition.json", + "add-new-annotation/Disk-add-new-annotation-two-nodes.json" + ); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestAddNewNode.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestAddNewNode.java new file mode 100644 index 00000000..891da558 --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestAddNewNode.java @@ -0,0 +1,23 @@ +package io.lionweb.api.bulk.test.store; + +import org.junit.Ignore; +import org.junit.Test; + +@Ignore("Crashes Lionweb-repository on second run") +public class TestAddNewNode extends ATestStore { + @Test + public void updateFullPartition() { + test( + "add-new-nodes/Disk-add-new-nodes-partition.json", + "add-new-nodes/Disk-add-new-nodes-partition.json" + ); + } + + @Test + public void updateSingleNode() { + test( + "add-new-nodes/Disk-add-new-nodes-partition.json", + "add-new-nodes/Disk-add-new-nodes-single-node.json" + ); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestAddNewProperty.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestAddNewProperty.java new file mode 100644 index 00000000..dd04a59b --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestAddNewProperty.java @@ -0,0 +1,23 @@ +package io.lionweb.api.bulk.test.store; + +import org.junit.Ignore; +import org.junit.Test; + +@Ignore("Leaves residual data in lionweb-repository, influencing other tests") +public class TestAddNewProperty extends ATestStore { + @Test + public void updateFullPartition() { + test( + "add-new-property-with-value/Disk-Property-add-property-partition.json", + "add-new-property-with-value/Disk-Property-add-property-partition.json" + ); + } + + @Test + public void updateSingleNode() { + test( + "add-new-property-with-value/Disk-Property-add-property-partition.json", + "add-new-property-with-value/Disk-Property-add-property-single-node.json" + ); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestAddReference.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestAddReference.java new file mode 100644 index 00000000..810f1ea5 --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestAddReference.java @@ -0,0 +1,21 @@ +package io.lionweb.api.bulk.test.store; + +import org.junit.Test; + +public class TestAddReference extends ATestStore { + @Test + public void updateFullPartition() { + test( + "add-reference/Disk_add-reference-partition.json", + "add-reference/Disk_add-reference-partition.json" + ); + } + + @Test + public void updateSingleNode() { + test( + "add-reference/Disk_add-reference-partition.json", + "add-reference/Disk_add-reference-single-node.json" + ); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestChangePropertyValue.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestChangePropertyValue.java new file mode 100644 index 00000000..6d99e9d2 --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestChangePropertyValue.java @@ -0,0 +1,21 @@ +package io.lionweb.api.bulk.test.store; + +import org.junit.Test; + +public class TestChangePropertyValue extends ATestStore { + @Test + public void updateFullPartition() { + test( + "change-property-value/Disk_Property_value_changed-partition.json", + "change-property-value/Disk_Property_value_changed-partition.json" + ); + } + + @Test + public void updateNode3() { + test( + "change-property-value/Disk_Property_value_changed-partition.json", + "change-property-value/Disk_Property_value_changed-single-node.json" + ); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestMoveChild.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestMoveChild.java new file mode 100644 index 00000000..6cdd0631 --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestMoveChild.java @@ -0,0 +1,37 @@ +package io.lionweb.api.bulk.test.store; + +import org.junit.Test; + +public class TestMoveChild extends ATestStore { + @Test + public void updateFullPartition() { + test( + "move-child/Disk-move-child-partition.json", + "move-child/Disk-move-child-partition.json" + ); + } + + @Test + public void updateNode5() { + test( + "move-child/Disk-move-child-partition.json", + "move-child/Disk-move-child-single-node.json" + ); + } + + @Test + public void updateNodes5And4() { + test( + "move-child/Disk-move-child-partition.json", + "move-child/Disk-move-child-two-nodes.json" + ); + } + + @Test + public void updateNodes5And9() { + test( + "move-child/Disk-move-child-partition.json", + "move-child/Disk-move-child-two-nodes-2.json" + ); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestRemoveAnnotation.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestRemoveAnnotation.java new file mode 100644 index 00000000..1ba43e24 --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestRemoveAnnotation.java @@ -0,0 +1,21 @@ +package io.lionweb.api.bulk.test.store; + +import org.junit.Test; + +public class TestRemoveAnnotation extends ATestStore { + @Test + public void updateFullPartition() { + test( + "remove-annotation/Disk-remove-annotation-partition.json", + "remove-annotation/Disk-remove-annotation-partition.json" + ); + } + + @Test + public void updateSingleNode() { + test( + "remove-annotation/Disk-remove-annotation-partition.json", + "remove-annotation/Disk-remove-annotation-single-node.json" + ); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestRemoveChild.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestRemoveChild.java new file mode 100644 index 00000000..2e34f823 --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestRemoveChild.java @@ -0,0 +1,21 @@ +package io.lionweb.api.bulk.test.store; + +import org.junit.Test; + +public class TestRemoveChild extends ATestStore { + @Test + public void updateFullPartition() { + test( + "remove-child/Disk-remove-child-partition.json", + "remove-child/Disk-remove-child-partition.json" + ); + } + + @Test + public void updateNode3() { + test( + "remove-child/Disk-remove-child-partition.json", + "remove-child/Disk-remove-child-single-node.json" + ); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestRemoveReference.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestRemoveReference.java new file mode 100644 index 00000000..5a247f03 --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestRemoveReference.java @@ -0,0 +1,21 @@ +package io.lionweb.api.bulk.test.store; + +import org.junit.Test; + +public class TestRemoveReference extends ATestStore { + @Test + public void updateFullPartition() { + test( + "remove-reference/Disk-remove-reference-partition.json", + "remove-reference/Disk-remove-reference-partition.json" + ); + } + + @Test + public void updateSingleNode() { + test( + "remove-reference/Disk-remove-reference-partition.json", + "remove-reference/Disk-remove-reference-single-node.json" + ); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestReorderAnnotations.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestReorderAnnotations.java new file mode 100644 index 00000000..ac7f5d21 --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestReorderAnnotations.java @@ -0,0 +1,21 @@ +package io.lionweb.api.bulk.test.store; + +import org.junit.Test; + +public class TestReorderAnnotations extends ATestStore { + @Test + public void updateFullPartition() { + test( + "reorder-annotations/reorder-annotations-partition.json", + "reorder-annotations/reorder-annotations-partition.json" + ); + } + + @Test + public void updateSingleNode() { + test( + "reorder-annotations/reorder-annotations-partition.json", + "reorder-annotations/reorder-annotations-single-node.json" + ); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestReorderReferenceTargets.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestReorderReferenceTargets.java new file mode 100644 index 00000000..b7db4d84 --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestReorderReferenceTargets.java @@ -0,0 +1,21 @@ +package io.lionweb.api.bulk.test.store; + +import org.junit.Test; + +public class TestReorderReferenceTargets extends ATestStore { + @Test + public void updateFullPartition() { + test( + "reorder-reference-targets/reorder-reference-targets-partition.json", + "reorder-reference-targets/reorder-reference-targets-partition.json" + ); + } + + @Test + public void updateSingleNode() { + test( + "reorder-reference-targets/reorder-reference-targets-partition.json", + "reorder-reference-targets/reorder-reference-targets-single-node.json" + ); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestRorderChildren.java b/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestRorderChildren.java new file mode 100644 index 00000000..1e8ebbf5 --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/api/bulk/test/store/TestRorderChildren.java @@ -0,0 +1,21 @@ +package io.lionweb.api.bulk.test.store; + +import org.junit.Test; + +public class TestRorderChildren extends ATestStore { + @Test + public void updateFullPartition() { + test( + "reorder-children/reorder-children-partition.json", + "reorder-children/reorder-children-partition.json" + ); + } + + @Test + public void updateSingleNode() { + test( + "reorder-children/reorder-children-partition.json", + "reorder-children/reorder-children-single-node.json" + ); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/json/sorted/MetaPointerComparator.java b/bulk-api/src/test/java/io/lionweb/json/sorted/MetaPointerComparator.java new file mode 100644 index 00000000..87c5c59c --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/json/sorted/MetaPointerComparator.java @@ -0,0 +1,25 @@ +package io.lionweb.json.sorted; + +import io.lionweb.lioncore.java.serialization.data.MetaPointer; + +import java.util.Comparator; +import java.util.Objects; + +/** + * Compares {@link MetaPointer }s + * by {@link Comparator#naturalOrder() } of language, version, and key (in that order). + */ +public class MetaPointerComparator implements Comparator { + @Override + public int compare(MetaPointer a, MetaPointer b) { + int lang = Objects.compare(a.getLanguage(), b.getLanguage(), Comparator.nullsLast(Comparator.naturalOrder())); + if (lang != 0) { + return lang; + } + int version = Objects.compare(a.getVersion(), b.getVersion(), Comparator.nullsLast(Comparator.naturalOrder())); + if (version != 0) { + return version; + } + return Objects.compare(a.getKey(), b.getKey(), Comparator.nullsLast(Comparator.naturalOrder())); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/json/sorted/SortedSerializedChunk.java b/bulk-api/src/test/java/io/lionweb/json/sorted/SortedSerializedChunk.java new file mode 100644 index 00000000..9069ac9f --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/json/sorted/SortedSerializedChunk.java @@ -0,0 +1,95 @@ +package io.lionweb.json.sorted; + +import io.lionweb.lioncore.java.serialization.data.SerializedChunk; +import io.lionweb.lioncore.java.serialization.data.SerializedClassifierInstance; +import io.lionweb.lioncore.java.serialization.data.UsedLanguage; + +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * View of {@link SortedSerializedChunk#delegate } with sorted {@link SortedSerializedChunk#getLanguages() } and {@link SortedSerializedChunk#getClassifierInstances() }. + */ +public class SortedSerializedChunk extends SerializedChunk { + private final SerializedChunk delegate; + + public SortedSerializedChunk(SerializedChunk delegate) { + this.delegate = delegate; + } + + @Override + public List getLanguages() { + return delegate.getLanguages().stream().map(new Function() { + public SortedUsedLanguage apply(UsedLanguage it) { + return new SortedUsedLanguage(it); + } + }).sorted().collect(Collectors.toList()); + } + + @Override + public List getClassifierInstances() { + return delegate.getClassifierInstances().stream().map(new Function() { + public SortedSerializedClassifierInstance apply(SerializedClassifierInstance it) { + return new SortedSerializedClassifierInstance(it); + } + }).sorted().collect(Collectors.toList()); + } + + @Override + public void setSerializationFormatVersion(String value) { + delegate.setSerializationFormatVersion(value); + } + + @Override + public String getSerializationFormatVersion() { + return delegate.getSerializationFormatVersion(); + } + + @Override + public void addClassifierInstance(SerializedClassifierInstance instance) { + delegate.addClassifierInstance(instance); + } + + @Override + public SerializedClassifierInstance getInstanceByID(String instanceID) { + return delegate.getInstanceByID(instanceID); + } + + @Override + public Map getClassifierInstancesByID() { + return delegate.getClassifierInstancesByID(); + } + + @Override + public void addLanguage(UsedLanguage language) { + delegate.addLanguage(language); + } + + @Override + public String toString() { + return "SerializationBlock{\n" + + "serializationFormatVersion='" + getSerializationFormatVersion() + + "',\n languages=\n" + + getLanguages().stream().map(Object::toString).collect(Collectors.joining(",\n")) + + ",\n classifierInstances=\n" + + getClassifierInstances().stream().map(Object::toString).collect(Collectors.joining(",\n")) + + "\n}"; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof SerializedChunk)) return false; + SerializedChunk that = (SerializedChunk) o; + return getSerializationFormatVersion().equals(that.getSerializationFormatVersion()) + && getLanguages().equals(that.getLanguages()) + && getClassifierInstances().equals(that.getClassifierInstances()); + } + + @Override + public int hashCode() { + return delegate.hashCode(); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/json/sorted/SortedSerializedClassifierInstance.java b/bulk-api/src/test/java/io/lionweb/json/sorted/SortedSerializedClassifierInstance.java new file mode 100644 index 00000000..bb03e4ee --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/json/sorted/SortedSerializedClassifierInstance.java @@ -0,0 +1,179 @@ +package io.lionweb.json.sorted; + +import io.lionweb.lioncore.java.serialization.data.*; + +import java.util.Comparator; +import java.util.List; +import java.util.Objects; +import java.util.function.Function; +import java.util.stream.Collectors; + +public class SortedSerializedClassifierInstance extends SerializedClassifierInstance implements Comparable { + private final SerializedClassifierInstance delegate; + + public SortedSerializedClassifierInstance(SerializedClassifierInstance delegate) { + this.delegate = delegate; + } + + @Override + public List getContainments() { + return delegate.getContainments().stream().map(new Function() { + public SortedSerializedContainmentValue apply(SerializedContainmentValue it) { + return new SortedSerializedContainmentValue(it); + } + }).sorted().collect(Collectors.toList()); + } + + @Override + public List getChildren() { + List result = delegate.getChildren(); + result.sort(Comparator.nullsLast(Comparator.naturalOrder())); + return result; + } + + @Override + public List getReferences() { + return delegate.getReferences().stream().map(new Function() { + public SortedSerializedReferenceValue apply(SerializedReferenceValue it) { + return new SortedSerializedReferenceValue(it); + } + }).sorted().collect(Collectors.toList()); + } + + @Override + public List getProperties() { + return delegate.getProperties().stream().map(new Function() { + public SortedSerializedPropertyValue apply(SerializedPropertyValue it) { + return new SortedSerializedPropertyValue(it); + } + }).sorted().collect(Collectors.toList()); + } + + @Override + public List getReferenceValues(String referenceKey) { + return delegate.getReferenceValues(referenceKey).stream().map(new Function() { + public SortedSerializedReferenceValue.Entry apply(SerializedReferenceValue.Entry it) { + return new SortedSerializedReferenceValue.Entry(it); + } + }).sorted().collect(Collectors.toList()); + } + + + @Override + public int compareTo(SerializedClassifierInstance other) { + return Objects.compare(this.getID(), other.getID(), Comparator.nullsLast(Comparator.naturalOrder())); + } + + @Override + public String getParentNodeID() { + return delegate.getParentNodeID(); + } + + @Override + public void setParentNodeID(String parentNodeID) { + delegate.setParentNodeID(parentNodeID); + } + + @Override + public void addPropertyValue(SerializedPropertyValue propertyValue) { + delegate.addPropertyValue(propertyValue); + } + + @Override + public void addContainmentValue(SerializedContainmentValue containmentValue) { + delegate.addContainmentValue(containmentValue); + } + + @Override + public void addReferenceValue(SerializedReferenceValue referenceValue) { + delegate.addReferenceValue(referenceValue); + } + + @Override + public List getAnnotations() { + return delegate.getAnnotations(); + } + + @Override + public MetaPointer getClassifier() { + return delegate.getClassifier(); + } + + @Override + public void setClassifier(MetaPointer classifier) { + delegate.setClassifier(classifier); + } + + @Override + public void setAnnotations(List annotationIDs) { + delegate.setAnnotations(annotationIDs); + } + + @Override + public String getID() { + return delegate.getID(); + } + + @Override + public void setID(String id) { + delegate.setID(id); + } + + @Override + public void setPropertyValue(MetaPointer property, String serializedValue) { + delegate.setPropertyValue(property, serializedValue); + } + + @Override + public void addChildren(MetaPointer containment, List childrenIds) { + delegate.addChildren(containment, childrenIds); + } + + @Override + public void addReferenceValue(MetaPointer reference, List referenceValues) { + delegate.addReferenceValue(reference, referenceValues); + } + + @Override + public String getPropertyValue(String propertyKey) { + return delegate.getPropertyValue(propertyKey); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof SerializedClassifierInstance)) return false; + SerializedClassifierInstance that = (SerializedClassifierInstance) o; + return Objects.equals(getID(), that.getID()) + && Objects.equals(getClassifier(), that.getClassifier()) + && Objects.equals(getParentNodeID(), that.getParentNodeID()) + && Objects.equals(getProperties(), that.getProperties()) + && Objects.equals(getContainments(), that.getContainments()) + && Objects.equals(getReferences(), that.getReferences()) + && Objects.equals(getAnnotations(), that.getAnnotations()); + } + + @Override + public int hashCode() { + return delegate.hashCode(); + } + + @Override + public String toString() { + return "SerializedClassifierInstance{" + + "id='" + getID() + + "', parentNodeID='" + getParentNodeID() + + "',\n classifier=" + getClassifier() + + ",\n properties=" + + getProperties().stream().map(Objects::toString).collect(Collectors.joining(",\n")) + + ",\n containments=" + + getContainments().stream().map(Objects::toString).collect(Collectors.joining(",\n")) + + ",\n references=" + + getReferences().stream().map(Objects::toString).collect(Collectors.joining(",\n")) + + ",\n annotations=" + + getAnnotations().stream().map(Objects::toString).collect(Collectors.joining(",\n")) + + "'\n}"; + + } + +} diff --git a/bulk-api/src/test/java/io/lionweb/json/sorted/SortedSerializedContainmentValue.java b/bulk-api/src/test/java/io/lionweb/json/sorted/SortedSerializedContainmentValue.java new file mode 100644 index 00000000..f947cc0b --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/json/sorted/SortedSerializedContainmentValue.java @@ -0,0 +1,60 @@ +package io.lionweb.json.sorted; + +import io.lionweb.lioncore.java.serialization.data.MetaPointer; +import io.lionweb.lioncore.java.serialization.data.SerializedContainmentValue; + +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * {@link Comparable } view of {@link SortedSerializedContainmentValue#delegate } with sorted {@link SortedSerializedContainmentValue#getValue() }s. + * + * Comparison based on its {@link SortedSerializedContainmentValue#getMetaPointer() }. + */ +public class SortedSerializedContainmentValue extends SerializedContainmentValue implements Comparable { + private final SerializedContainmentValue delegate; + + public SortedSerializedContainmentValue(SerializedContainmentValue delegate) { + super(); + this.delegate = delegate; + } + + @Override + public List getValue() { + return delegate.getValue().stream().sorted().collect(Collectors.toList()); + } + + @Override + public int compareTo(SerializedContainmentValue other) { + return new MetaPointerComparator().compare(this.getMetaPointer(), other.getMetaPointer()); + } + + @Override + public MetaPointer getMetaPointer() { + return delegate.getMetaPointer(); + } + @Override + public void setMetaPointer(MetaPointer metaPointer) { + delegate.setMetaPointer(metaPointer); + } + @Override + public void setValue(List value) { + delegate.setValue(value); + } + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof SerializedContainmentValue)) return false; + SerializedContainmentValue that = (SerializedContainmentValue) o; + return Objects.equals(getMetaPointer(), that.getMetaPointer()) && Objects.equals(getValue(), that.getValue()); + } + @Override + public int hashCode() { + return delegate.hashCode(); + } + @Override + public String toString() { + return delegate.toString(); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/json/sorted/SortedSerializedPropertyValue.java b/bulk-api/src/test/java/io/lionweb/json/sorted/SortedSerializedPropertyValue.java new file mode 100644 index 00000000..b1acc2b7 --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/json/sorted/SortedSerializedPropertyValue.java @@ -0,0 +1,54 @@ +package io.lionweb.json.sorted; + +import io.lionweb.lioncore.java.serialization.data.MetaPointer; +import io.lionweb.lioncore.java.serialization.data.SerializedPropertyValue; + +import java.util.Objects; + +/** + * {@link Comparable } view of {@link SortedSerializedPropertyValue#delegate }, compared by its {@link SortedSerializedPropertyValue#getMetaPointer() }. + */ +public class SortedSerializedPropertyValue extends SerializedPropertyValue implements Comparable { + private final SerializedPropertyValue delegate; + + public SortedSerializedPropertyValue(SerializedPropertyValue delegate) { + this.delegate = delegate; + } + + @Override + public int compareTo(SerializedPropertyValue other) { + return new MetaPointerComparator().compare(this.getMetaPointer(), other.getMetaPointer()); + } + + @Override + public MetaPointer getMetaPointer() { + return delegate.getMetaPointer(); + } + @Override + public void setMetaPointer(MetaPointer metaPointer) { + delegate.setMetaPointer(metaPointer); + } + @Override + public String getValue() { + return delegate.getValue(); + } + @Override + public void setValue(String value) { + delegate.setValue(value); + } + @Override + public String toString() { + return delegate.toString(); + } + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof SerializedPropertyValue)) return false; + SerializedPropertyValue that = (SerializedPropertyValue) o; + return Objects.equals(getMetaPointer(), that.getMetaPointer()) && Objects.equals(getValue(), that.getValue()); + } + @Override + public int hashCode() { + return delegate.hashCode(); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/json/sorted/SortedSerializedReferenceValue.java b/bulk-api/src/test/java/io/lionweb/json/sorted/SortedSerializedReferenceValue.java new file mode 100644 index 00000000..2fb498b5 --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/json/sorted/SortedSerializedReferenceValue.java @@ -0,0 +1,119 @@ +package io.lionweb.json.sorted; + +import io.lionweb.lioncore.java.serialization.data.MetaPointer; +import io.lionweb.lioncore.java.serialization.data.SerializedReferenceValue; + +import java.util.Comparator; +import java.util.List; +import java.util.Objects; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * {@link Comparable } view of {@link SortedSerializedReferenceValue#delegate } with sorted {@link SortedSerializedReferenceValue#getValue() }. + * + * Comparison based on its {@link SortedSerializedReferenceValue#getMetaPointer() }. + */ +public class SortedSerializedReferenceValue extends SerializedReferenceValue implements Comparable { + private final SerializedReferenceValue delegate; + + public SortedSerializedReferenceValue(SerializedReferenceValue delegate) { + this.delegate = delegate; + } + + @Override + public List getValue() { + return delegate.getValue().stream().map(new Function() { + public Entry apply(SerializedReferenceValue.Entry it) { + return new Entry(it); + } + }).sorted().collect(Collectors.toList()); + } + + @Override + public int compareTo(SerializedReferenceValue other) { + return new MetaPointerComparator().compare(this.getMetaPointer(), other.getMetaPointer()); + } + + /** + * {@link Comparable } view of {@link SortedSerializedReferenceValue.Entry#delegate }, based on its {@link SortedSerializedReferenceValue.Entry#getReference() } and then {@link SortedSerializedReferenceValue.Entry#getResolveInfo() } (in that order). + */ + public static class Entry extends SerializedReferenceValue.Entry implements Comparable { + private final SerializedReferenceValue.Entry delegate; + + public Entry(SerializedReferenceValue.Entry delegate) { + this.delegate = delegate; + } + + @Override + public int compareTo(SerializedReferenceValue.Entry other) { + int reference = Objects.compare(this.getReference(), other.getReference(), Comparator.nullsLast(Comparator.naturalOrder())); + if (reference != 0) { + return reference; + } + return Objects.compare(this.getResolveInfo(), other.getResolveInfo(), Comparator.nullsLast(Comparator.naturalOrder())); + } + + + @Override + public String getResolveInfo() { + return delegate.getResolveInfo(); + } + @Override + public void setResolveInfo(String resolveInfo) { + delegate.setResolveInfo(resolveInfo); + } + @Override + public String getReference() { + return delegate.getReference(); + } + @Override + public void setReference(String reference) { + delegate.setReference(reference); + } + @Override + public String toString() { + return delegate.toString(); + } + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof SerializedReferenceValue.Entry)) return false; + SerializedReferenceValue.Entry entry = (SerializedReferenceValue.Entry) o; + return Objects.equals(getResolveInfo(), entry.getResolveInfo()) + && Objects.equals(getReference(), entry.getReference()); + } + @Override + public int hashCode() { + return delegate.hashCode(); + } + } + + @Override + public MetaPointer getMetaPointer() { + return delegate.getMetaPointer(); + } + @Override + public void setMetaPointer(MetaPointer metaPointer) { + delegate.setMetaPointer(metaPointer); + } + @Override + public void setValue(List value) { + delegate.setValue(value); + } + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof SerializedReferenceValue)) return false; + SerializedReferenceValue that = (SerializedReferenceValue) o; + return Objects.equals(getMetaPointer(), that.getMetaPointer()) && Objects.equals(getValue(), that.getValue()); + } + @Override + public int hashCode() { + return delegate.hashCode(); + } + @Override + public String toString() { + return delegate.toString(); + } +} diff --git a/bulk-api/src/test/java/io/lionweb/json/sorted/SortedUsedLanguage.java b/bulk-api/src/test/java/io/lionweb/json/sorted/SortedUsedLanguage.java new file mode 100644 index 00000000..d0f8984c --- /dev/null +++ b/bulk-api/src/test/java/io/lionweb/json/sorted/SortedUsedLanguage.java @@ -0,0 +1,58 @@ +package io.lionweb.json.sorted; + +import io.lionweb.lioncore.java.serialization.data.UsedLanguage; + +import java.util.Comparator; +import java.util.Objects; + +/** + * {@link Comparable } view of {@link SortedUsedLanguage#delegate }, based on first {@link SortedUsedLanguage#getKey() }, then {@link SortedUsedLanguage#getVersion() } (in that order). + */ +public class SortedUsedLanguage extends UsedLanguage implements Comparable { + private final UsedLanguage delegate; + + public SortedUsedLanguage(UsedLanguage delegate) { + this.delegate = delegate; + } + + @Override + public int compareTo(UsedLanguage other) { + int key = Objects.compare(this.getKey(), other.getKey(), Comparator.nullsLast(Comparator.naturalOrder())); + if (key != 0) { + return key; + } + return Objects.compare(this.getVersion(), other.getVersion(), Comparator.nullsLast(Comparator.naturalOrder())); + } + + @Override + public String getKey() { + return delegate.getKey(); + } + @Override + public void setKey(String key) { + delegate.setKey(key); + } + @Override + public String getVersion() { + return delegate.getVersion(); + } + @Override + public void setVersion(String version) { + delegate.setVersion(version); + } + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof UsedLanguage)) return false; + UsedLanguage that = (UsedLanguage) o; + return Objects.equals(getKey(), that.getKey()) && Objects.equals(getVersion(), that.getVersion()); + } + @Override + public int hashCode() { + return delegate.hashCode(); + } + @Override + public String toString() { + return delegate.toString(); + } +} diff --git a/bulk-api/src/test/resources/Disk_A.json b/bulk-api/src/test/resources/Disk_A.json new file mode 100644 index 00000000..04bbf2df --- /dev/null +++ b/bulk-api/src/test/resources/Disk_A.json @@ -0,0 +1,528 @@ +{ + "serializationFormatVersion": "2023.1", + "languages": [ + { + "key": "-default-key-FileSystem", + "version": "2023.1" + }, + { + "key": "LionCore-builtins", + "version": "2023.1" + } + ], + "nodes": [ + { + "id": "ID-2", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Disk-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "Disk_A" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Disk-root-key" + }, + "children": [ + "ID-3" + ] + } + ], + "references": [], + "annotations": [], + "parent": null + }, + { + "id": "ID-3", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "root" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-4", + "ID-5", + "ID-6", + "ID-7" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-2" + }, + { + "id": "ID-4", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-8", + "ID-9", + "ID-10" + ] + } + ], + "references": [ + { + "reference": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-linked-key" + }, + "targets": [ + { + "resolveInfo": null, + "reference": "ID-10" + }, + { + "resolveInfo": null, + "reference": "ID-8" + } + ] + } + ], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-8", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-a" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-9", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-b" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-10", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-c" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-5", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-11", + "ID-12" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-11", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-a" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-5" + }, + { + "id": "ID-12", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-13", + "ID-14", + "ID-15" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-5" + }, + { + "id": "ID-13", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b--i" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-14", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b-ii" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-15", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b-iii" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-6", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-3" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-7", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-4" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [ + "ANN-1", + "ANN-9", + "ANN-10" + ], + "parent": "ID-3" + }, + { + "id": "ANN-1", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [], + "references": [], + "annotations": [], + "parent": "ID-7" + }, + { + "id": "ANN-9", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [], + "references": [], + "annotations": [], + "parent": "ID-7" + }, + { + "id": "ANN-10", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [], + "references": [], + "annotations": [], + "parent": "ID-7" + } + ] +} diff --git a/bulk-api/src/test/resources/FileSystem-lang.json b/bulk-api/src/test/resources/FileSystem-lang.json new file mode 100644 index 00000000..b844468a --- /dev/null +++ b/bulk-api/src/test/resources/FileSystem-lang.json @@ -0,0 +1,476 @@ +{ + "serializationFormatVersion": "2023.1", + "languages": [], + "nodes": [ + { + "id": "ID-2", + "classifier": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Language" + }, + "properties": [ + { + "property": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Language-version" + }, + "value": "1" + }, + { + "property": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "IKeyed-key" + }, + "value": "FileSystem-key" + }, + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "FileSystem" + } + ], + "containments": [ + { + "containment": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Language-entities" + }, + "children": [ + "ID-7", + "ID-3", + "ID-4", + "ID-5" + ] + } + ], + "references": [ + { + "reference": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Language-dependsOn" + }, + "targets": [] + } + ], + "parent": null + }, + { + "id": "ID-7", + "classifier": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Concept" + }, + "properties": [ + { + "property": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Concept-abstract" + }, + "value": "false" + }, + { + "property": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Concept-partition" + }, + "value": "true" + }, + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "Disk" + }, + { + "property": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "IKeyed-key" + }, + "value": "Disk-key" + } + ], + "containments": [ + { + "containment": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Classifier-features" + }, + "children": [ + "ID-8" + ] + } + ], + "references": [ + { + "reference": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Concept-implements" + }, + "targets": [ + { + "resolveInfo": "INamed", + "reference": "LionCore-builtins-INamed" + } + ] + } + ], + "parent": "ID-2" + }, + { + "id": "ID-8", + "classifier": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Containment" + }, + "properties": [ + { + "property": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Link-multiple" + }, + "value": "false" + }, + { + "property": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Feature-optional" + }, + "value": "false" + }, + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "root" + }, + { + "property": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "IKeyed-key" + }, + "value": "Disk-root-key" + } + ], + "containments": [], + "references": [ + { + "reference": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Link-type" + }, + "targets": [ + { + "resolveInfo": "FileSystemElement", + "reference": "ID-3" + } + ] + } + ], + "parent": "ID-7" + }, + { + "id": "ID-3", + "classifier": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Concept" + }, + "properties": [ + { + "property": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Concept-abstract" + }, + "value": "true" + }, + { + "property": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Concept-partition" + }, + "value": "false" + }, + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "FileSystemElement" + }, + { + "property": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "IKeyed-key" + }, + "value": "FileSystemElement-key" + } + ], + "containments": [ + { + "containment": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Classifier-features" + }, + "children": [] + } + ], + "references": [ + { + "reference": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Concept-implements" + }, + "targets": [ + { + "resolveInfo": "INamed", + "reference": "LionCore-builtins-INamed" + } + ] + } + ], + "parent": "ID-2" + }, + { + "id": "ID-4", + "classifier": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Concept" + }, + "properties": [ + { + "property": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Concept-abstract" + }, + "value": "false" + }, + { + "property": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Concept-partition" + }, + "value": "false" + }, + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "File" + }, + { + "property": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "IKeyed-key" + }, + "value": "File-key" + } + ], + "containments": [ + { + "containment": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Classifier-features" + }, + "children": [] + } + ], + "references": [ + { + "reference": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Concept-extends" + }, + "targets": [ + { + "resolveInfo": "FileSystemElement", + "reference": "ID-3" + } + ] + }, + { + "reference": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Concept-implements" + }, + "targets": [] + } + ], + "parent": "ID-2" + }, + { + "id": "ID-5", + "classifier": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Concept" + }, + "properties": [ + { + "property": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Concept-abstract" + }, + "value": "false" + }, + { + "property": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Concept-partition" + }, + "value": "false" + }, + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "Folder" + }, + { + "property": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "IKeyed-key" + }, + "value": "Folder-key" + } + ], + "containments": [ + { + "containment": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Classifier-features" + }, + "children": [ + "ID-6" + ] + } + ], + "references": [ + { + "reference": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Concept-extends" + }, + "targets": [ + { + "resolveInfo": "FileSystemElement", + "reference": "ID-3" + } + ] + }, + { + "reference": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Concept-implements" + }, + "targets": [] + } + ], + "parent": "ID-2" + }, + { + "id": "ID-6", + "classifier": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Containment" + }, + "properties": [ + { + "property": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Link-multiple" + }, + "value": "true" + }, + { + "property": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Feature-optional" + }, + "value": "false" + }, + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "listing" + }, + { + "property": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "IKeyed-key" + }, + "value": "Folder-listing-key" + } + ], + "containments": [], + "references": [ + { + "reference": { + "language": "LionCore-M3", + "version": "2023.1", + "key": "Link-type" + }, + "targets": [ + { + "resolveInfo": "FileSystemElement", + "reference": "ID-3" + } + ] + } + ], + "parent": "ID-5" + } + ] +} \ No newline at end of file diff --git a/bulk-api/src/test/resources/add-new-annotation/Disk-add-new-annotation-partition.json b/bulk-api/src/test/resources/add-new-annotation/Disk-add-new-annotation-partition.json new file mode 100644 index 00000000..d017f6ee --- /dev/null +++ b/bulk-api/src/test/resources/add-new-annotation/Disk-add-new-annotation-partition.json @@ -0,0 +1,516 @@ +{ + "serializationFormatVersion": "2023.1", + "languages": [ + { + "key": "-default-key-FileSystem", + "version": "2023.1" + }, + { + "key": "LionCore-builtins", + "version": "2023.1" + } + ], + "nodes": [ + { + "id": "ID-2", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Disk-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "Disk_A" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Disk-root-key" + }, + "children": [ + "ID-3" + ] + } + ], + "references": [], + "annotations": [], + "parent": null + }, + { + "id": "ID-3", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "root" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-4", + "ID-5", + "ID-6", + "ID-7" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-2" + }, + { + "id": "ID-4", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-8", + "ID-9", + "ID-10" + ] + } + ], + "references": [ + { + "reference": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-linked-key" + }, + "targets": [ + { + "resolveInfo": null, + "reference": "ID-10" + }, + { + "resolveInfo": null, + "reference": "ID-8" + } + ] + } + ], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-8", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-a" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-9", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-b" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-10", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-c" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-5", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-11", + "ID-12" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-11", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-a" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-5" + }, + { + "id": "ID-12", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-13", + "ID-14", + "ID-15" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-5" + }, + { + "id": "ID-13", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b--i" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-14", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b-ii" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-15", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b-iii" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-6", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-3" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-7", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-4" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [ + "ANN-1", + "ANN-2" + ], + "parent": "ID-3" + }, + { + "id": "ANN-1", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [ + ], + "references": [], + "annotations": [], + "parent": "ID-7" + }, + { + "id": "ANN-2", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [ + ], + "references": [], + "annotations": [], + "parent": "ID-7" + } + ] +} diff --git a/bulk-api/src/test/resources/add-new-annotation/Disk-add-new-annotation-two-nodes.json b/bulk-api/src/test/resources/add-new-annotation/Disk-add-new-annotation-two-nodes.json new file mode 100644 index 00000000..bb285df8 --- /dev/null +++ b/bulk-api/src/test/resources/add-new-annotation/Disk-add-new-annotation-two-nodes.json @@ -0,0 +1,62 @@ +{ + "serializationFormatVersion": "2023.1", + "languages": [ + { + "key": "-default-key-FileSystem", + "version": "2023.1" + }, + { + "key": "LionCore-builtins", + "version": "2023.1" + } + ], + "nodes": [ + { + "id": "ID-7", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-4" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [ + "ANN-1", + "ANN-2" + ], + "parent": "ID-3" + }, + { + "id": "ANN-2", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [], + "references": [], + "annotations": [], + "parent": "ID-7" + } + ] +} diff --git a/bulk-api/src/test/resources/add-new-nodes/Disk-add-new-nodes-partition.json b/bulk-api/src/test/resources/add-new-nodes/Disk-add-new-nodes-partition.json new file mode 100644 index 00000000..04391b57 --- /dev/null +++ b/bulk-api/src/test/resources/add-new-nodes/Disk-add-new-nodes-partition.json @@ -0,0 +1,563 @@ +{ + "serializationFormatVersion": "2023.1", + "languages": [ + { + "key": "-default-key-FileSystem", + "version": "2023.1" + }, + { + "key": "LionCore-builtins", + "version": "2023.1" + } + ], + "nodes": [ + { + "id": "ID-2", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Disk-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "Disk_A" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Disk-root-key" + }, + "children": [ + "ID-3" + ] + } + ], + "references": [], + "annotations": [], + "parent": null + }, + { + "id": "ID-3", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "root" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-4", + "ID-5", + "ID-6", + "ID-7" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-2" + }, + { + "id": "ID-4", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-8", + "ID-9", + "ID-10" + ] + } + ], + "references": [ + { + "reference": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-linked-key" + }, + "targets": [ + { + "resolveInfo": null, + "reference": "ID-10" + }, + { + "resolveInfo": null, + "reference": "ID-8" + } + ] + } + ], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-8", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-a" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-9", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-b" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-10", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-c" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-5", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-11", + "ID-12" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-11", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-a" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-5" + }, + { + "id": "ID-12", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-13", + "ID-14", + "ID-15" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-5" + }, + { + "id": "ID-13", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b--i" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-14", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b-ii" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-15", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b-iii" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-6", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-3" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-7", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-4" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [ + "ANN-1", + "ANN-9", + "ANN-10" + ], + "parent": "ID-3" + }, + { + "id": "ID-20", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-20" + } + ], + "containments": [], + "references": [], + "annotations": [], + "parent": "ANN-1" + }, + { + "id": "ANN-1", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-20" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-7" + }, + { + "id": "ANN-9", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [ + ], + "references": [], + "annotations": [], + "parent": "ID-7" + }, + { + "id": "ANN-10", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [ + ], + "references": [], + "annotations": [], + "parent": "ID-7" + } + ] +} diff --git a/bulk-api/src/test/resources/add-new-nodes/Disk-add-new-nodes-single-node.json b/bulk-api/src/test/resources/add-new-nodes/Disk-add-new-nodes-single-node.json new file mode 100644 index 00000000..871cd478 --- /dev/null +++ b/bulk-api/src/test/resources/add-new-nodes/Disk-add-new-nodes-single-node.json @@ -0,0 +1,70 @@ +{ + "serializationFormatVersion": "2023.1", + "languages": [ + { + "key": "-default-key-FileSystem", + "version": "2023.1" + }, + { + "key": "LionCore-builtins", + "version": "2023.1" + } + ], + "nodes": [ + { + "id": "ID-20", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-20" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ANN-1" + }, + { + "id": "ANN-1", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-20" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-7" + } + ] +} diff --git a/bulk-api/src/test/resources/add-new-property-with-value/Disk-Property-add-property-partition.json b/bulk-api/src/test/resources/add-new-property-with-value/Disk-Property-add-property-partition.json new file mode 100644 index 00000000..444d5d77 --- /dev/null +++ b/bulk-api/src/test/resources/add-new-property-with-value/Disk-Property-add-property-partition.json @@ -0,0 +1,539 @@ +{ + "serializationFormatVersion": "2023.1", + "languages": [ + { + "key": "-default-key-FileSystem", + "version": "2023.1" + }, + { + "key": "LionCore-builtins", + "version": "2023.1" + } + ], + "nodes": [ + { + "id": "ID-2", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Disk-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "Disk_A" + }, + { + "property": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "FileSystem-virtual-key" + }, + "value": "true" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Disk-root-key" + }, + "children": [ + "ID-3" + ] + } + ], + "references": [], + "annotations": [], + "parent": null + }, + { + "id": "ID-3", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "root" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-4", + "ID-5", + "ID-6", + "ID-7" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-2" + }, + { + "id": "ID-4", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-8", + "ID-9", + "ID-10" + ] + } + ], + "references": [ + { + "reference": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-linked-key" + }, + "targets": [ + { + "resolveInfo": null, + "reference": "ID-10" + }, + { + "resolveInfo": null, + "reference": "ID-8" + } + ] + } + ], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-8", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-a" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-9", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-b" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-10", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-c" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-5", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-11", + "ID-12" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-11", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-a" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-5" + }, + { + "id": "ID-12", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-13", + "ID-14", + "ID-15" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-5" + }, + { + "id": "ID-13", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b--i" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-14", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b-ii" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-15", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b-iii" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-6", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-3" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-7", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-4" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [ + "ANN-1", + "ANN-9", + "ANN-10" + ], + "parent": "ID-3" + }, + { + "id": "ANN-1", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [ + ], + "references": [], + "annotations": [], + "parent": "ID-7" + }, + { + "id": "ANN-9", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [ + ], + "references": [], + "annotations": [], + "parent": "ID-7" + }, + { + "id": "ANN-10", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [ + ], + "references": [], + "annotations": [], + "parent": "ID-7" + } + ] +} diff --git a/bulk-api/src/test/resources/add-new-property-with-value/Disk-Property-add-property-single-node.json b/bulk-api/src/test/resources/add-new-property-with-value/Disk-Property-add-property-single-node.json new file mode 100644 index 00000000..8206f08d --- /dev/null +++ b/bulk-api/src/test/resources/add-new-property-with-value/Disk-Property-add-property-single-node.json @@ -0,0 +1,56 @@ +{ + "serializationFormatVersion": "2023.1", + "languages": [ + { + "key": "-default-key-FileSystem", + "version": "2023.1" + }, + { + "key": "LionCore-builtins", + "version": "2023.1" + } + ], + "nodes": [ + { + "id": "ID-2", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Disk-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "Disk_A" + }, + { + "property": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "FileSystem-virtual-key" + }, + "value": "true" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Disk-root-key" + }, + "children": [ + "ID-3" + ] + } + ], + "references": [], + "annotations": [], + "parent": null + } + ] +} diff --git a/bulk-api/src/test/resources/add-reference/Disk_add-reference-partition.json b/bulk-api/src/test/resources/add-reference/Disk_add-reference-partition.json new file mode 100644 index 00000000..7333e9ae --- /dev/null +++ b/bulk-api/src/test/resources/add-reference/Disk_add-reference-partition.json @@ -0,0 +1,532 @@ +{ + "serializationFormatVersion": "2023.1", + "languages": [ + { + "key": "-default-key-FileSystem", + "version": "2023.1" + }, + { + "key": "LionCore-builtins", + "version": "2023.1" + } + ], + "nodes": [ + { + "id": "ID-2", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Disk-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "Disk_A" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Disk-root-key" + }, + "children": [ + "ID-3" + ] + } + ], + "references": [], + "annotations": [], + "parent": null + }, + { + "id": "ID-3", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "root" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-4", + "ID-5", + "ID-6", + "ID-7" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-2" + }, + { + "id": "ID-4", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-8", + "ID-9", + "ID-10" + ] + } + ], + "references": [ + { + "reference": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-linked-key" + }, + "targets": [ + { + "resolveInfo": null, + "reference": "ID-10" + }, + { + "resolveInfo": null, + "reference": "ID-8" + }, + { + "resolveInfo": null, + "reference": "ID-3" + } + ] + } + ], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-8", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-a" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-9", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-b" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-10", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-c" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-5", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-11", + "ID-12" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-11", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-a" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-5" + }, + { + "id": "ID-12", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-13", + "ID-14", + "ID-15" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-5" + }, + { + "id": "ID-13", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b--i" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-14", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b-ii" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-15", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b-iii" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-6", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-3" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-7", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-4" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [ + "ANN-1", + "ANN-9", + "ANN-10" + ], + "parent": "ID-3" + }, + { + "id": "ANN-1", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [], + "references": [], + "annotations": [], + "parent": "ID-7" + }, + { + "id": "ANN-9", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [], + "references": [], + "annotations": [], + "parent": "ID-7" + }, + { + "id": "ANN-10", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [], + "references": [], + "annotations": [], + "parent": "ID-7" + } + ] +} diff --git a/bulk-api/src/test/resources/add-reference/Disk_add-reference-single-node.json b/bulk-api/src/test/resources/add-reference/Disk_add-reference-single-node.json new file mode 100644 index 00000000..58bd31db --- /dev/null +++ b/bulk-api/src/test/resources/add-reference/Disk_add-reference-single-node.json @@ -0,0 +1,72 @@ +{ + "serializationFormatVersion": "2023.1", + "languages": [ + { + "key": "-default-key-FileSystem", + "version": "2023.1" + }, + { + "key": "LionCore-builtins", + "version": "2023.1" + } + ], + "nodes": [ + { + "id": "ID-4", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-8", + "ID-9", + "ID-10" + ] + } + ], + "references": [ + { + "reference": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-linked-key" + }, + "targets": [ + { + "resolveInfo": null, + "reference": "ID-10" + }, + { + "resolveInfo": null, + "reference": "ID-8" + }, + { + "resolveInfo": null, + "reference": "ID-3" + } + ] + } + ], + "annotations": [], + "parent": "ID-3" + } + ] +} diff --git a/bulk-api/src/test/resources/change-property-value/Disk_Property_value_changed-partition.json b/bulk-api/src/test/resources/change-property-value/Disk_Property_value_changed-partition.json new file mode 100644 index 00000000..8f42c5dc --- /dev/null +++ b/bulk-api/src/test/resources/change-property-value/Disk_Property_value_changed-partition.json @@ -0,0 +1,513 @@ +{ + "serializationFormatVersion": "2023.1", + "languages": [ + { + "key": "-default-key-FileSystem", + "version": "2023.1" + }, + { + "key": "LionCore-builtins", + "version": "2023.1" + } + ], + "nodes": [ + { + "id": "ID-2", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Disk-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "Disk_A" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Disk-root-key" + }, + "children": [ + "ID-3" + ] + } + ], + "references": [], + "annotations": [], + "parent": null + }, + { + "id": "ID-3", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "root-new-value" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-4", + "ID-5", + "ID-6", + "ID-7" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-2" + }, + { + "id": "ID-4", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-8", + "ID-9", + "ID-10" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-8", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-a" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-9", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-b" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-10", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-c" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-5", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-11", + "ID-12" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-11", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-a" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-5" + }, + { + "id": "ID-12", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-13", + "ID-14", + "ID-15" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-5" + }, + { + "id": "ID-13", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b--i" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-14", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b-ii" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-15", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b-iii" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-6", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-3" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-7", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-4" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [ + "ANN-1", + "ANN-9", + "ANN-10" + ], + "parent": "ID-3" + }, + { + "id": "ANN-1", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [ + ], + "references": [], + "annotations": [], + "parent": "ID-7" + }, + { + "id": "ANN-9", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [ + ], + "references": [], + "annotations": [], + "parent": "ID-7" + }, + { + "id": "ANN-10", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [ + ], + "references": [], + "annotations": [], + "parent": "ID-7" + } + ] +} diff --git a/bulk-api/src/test/resources/change-property-value/Disk_Property_value_changed-single-node.json b/bulk-api/src/test/resources/change-property-value/Disk_Property_value_changed-single-node.json new file mode 100644 index 00000000..fada116c --- /dev/null +++ b/bulk-api/src/test/resources/change-property-value/Disk_Property_value_changed-single-node.json @@ -0,0 +1,51 @@ +{ + "serializationFormatVersion": "2023.1", + "languages": [ + { + "key": "-default-key-FileSystem", + "version": "2023.1" + }, + { + "key": "LionCore-builtins", + "version": "2023.1" + } + ], + "nodes": [ + { + "id": "ID-3", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "root-new-value" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-4", + "ID-5", + "ID-6", + "ID-7" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-2" + } + ] +} diff --git a/bulk-api/src/test/resources/move-child/Disk-move-child-partition.json b/bulk-api/src/test/resources/move-child/Disk-move-child-partition.json new file mode 100644 index 00000000..ffed4fb4 --- /dev/null +++ b/bulk-api/src/test/resources/move-child/Disk-move-child-partition.json @@ -0,0 +1,528 @@ +{ + "serializationFormatVersion": "2023.1", + "languages": [ + { + "key": "-default-key-FileSystem", + "version": "2023.1" + }, + { + "key": "LionCore-builtins", + "version": "2023.1" + } + ], + "nodes": [ + { + "id": "ID-2", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Disk-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "Disk_A" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Disk-root-key" + }, + "children": [ + "ID-3" + ] + } + ], + "references": [], + "annotations": [], + "parent": null + }, + { + "id": "ID-3", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "root" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-4", + "ID-5", + "ID-6", + "ID-7" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-2" + }, + { + "id": "ID-4", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-8", + "ID-10" + ] + } + ], + "references": [ + { + "reference": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-linked-key" + }, + "targets": [ + { + "resolveInfo": null, + "reference": "ID-10" + }, + { + "resolveInfo": null, + "reference": "ID-8" + } + ] + } + ], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-8", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-a" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "annotations": [], + "references": [], + "parent": "ID-4" + }, + { + "id": "ID-9", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-b" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-5" + }, + { + "id": "ID-10", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-c" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-5", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-9", + "ID-11", + "ID-12" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-11", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-a" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-5" + }, + { + "id": "ID-12", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-13", + "ID-14", + "ID-15" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-5" + }, + { + "id": "ID-13", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b--i" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-14", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b-ii" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-15", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b-iii" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-6", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-3" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-7", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-4" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [ + "ANN-1", + "ANN-9", + "ANN-10" + ], + "parent": "ID-3" + }, + { + "id": "ANN-1", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [], + "references": [], + "annotations": [], + "parent": "ID-7" + }, + { + "id": "ANN-9", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [], + "references": [], + "annotations": [], + "parent": "ID-7" + }, + { + "id": "ANN-10", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [], + "references": [], + "annotations": [], + "parent": "ID-7" + } + ] +} diff --git a/bulk-api/src/test/resources/move-child/Disk-move-child-single-node.json b/bulk-api/src/test/resources/move-child/Disk-move-child-single-node.json new file mode 100644 index 00000000..22deeb12 --- /dev/null +++ b/bulk-api/src/test/resources/move-child/Disk-move-child-single-node.json @@ -0,0 +1,50 @@ +{ + "serializationFormatVersion": "2023.1", + "languages": [ + { + "key": "-default-key-FileSystem", + "version": "2023.1" + }, + { + "key": "LionCore-builtins", + "version": "2023.1" + } + ], + "nodes": [ + { + "id": "ID-5", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-9", + "ID-11", + "ID-12" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-3" + } + ] +} diff --git a/bulk-api/src/test/resources/move-child/Disk-move-child-two-nodes-2.json b/bulk-api/src/test/resources/move-child/Disk-move-child-two-nodes-2.json new file mode 100644 index 00000000..87a7c198 --- /dev/null +++ b/bulk-api/src/test/resources/move-child/Disk-move-child-two-nodes-2.json @@ -0,0 +1,81 @@ +{ + "serializationFormatVersion": "2023.1", + "languages": [ + { + "key": "-default-key-FileSystem", + "version": "2023.1" + }, + { + "key": "LionCore-builtins", + "version": "2023.1" + } + ], + "nodes": [ + { + "id": "ID-9", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-b" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-5" + }, + { + "id": "ID-5", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-9", + "ID-11", + "ID-12" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-3" + } + ] +} diff --git a/bulk-api/src/test/resources/move-child/Disk-move-child-two-nodes.json b/bulk-api/src/test/resources/move-child/Disk-move-child-two-nodes.json new file mode 100644 index 00000000..086f912e --- /dev/null +++ b/bulk-api/src/test/resources/move-child/Disk-move-child-two-nodes.json @@ -0,0 +1,102 @@ +{ + "serializationFormatVersion": "2023.1", + "languages": [ + { + "key": "-default-key-FileSystem", + "version": "2023.1" + }, + { + "key": "LionCore-builtins", + "version": "2023.1" + } + ], + "nodes": [ + { + "id": "ID-4", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-8", + "ID-10" + ] + } + ], + "references": [ + { + "reference": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-linked-key" + }, + "targets": [ + { + "resolveInfo": null, + "reference": "ID-10" + }, + { + "resolveInfo": null, + "reference": "ID-8" + } + ] + } + ], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-5", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-9", + "ID-11", + "ID-12" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-3" + } + ] +} diff --git a/bulk-api/src/test/resources/remove-annotation/Disk-remove-annotation-partition.json b/bulk-api/src/test/resources/remove-annotation/Disk-remove-annotation-partition.json new file mode 100644 index 00000000..4e0141a7 --- /dev/null +++ b/bulk-api/src/test/resources/remove-annotation/Disk-remove-annotation-partition.json @@ -0,0 +1,485 @@ +{ + "serializationFormatVersion": "2023.1", + "languages": [ + { + "key": "-default-key-FileSystem", + "version": "2023.1" + }, + { + "key": "LionCore-builtins", + "version": "2023.1" + } + ], + "nodes": [ + { + "id": "ID-2", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Disk-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "Disk_A" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Disk-root-key" + }, + "children": [ + "ID-3" + ] + } + ], + "references": [], + "annotations": [], + "parent": null + }, + { + "id": "ID-3", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "root" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-4", + "ID-5", + "ID-6", + "ID-7" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-2" + }, + { + "id": "ID-4", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-8", + "ID-9", + "ID-10" + ] + } + ], + "references": [ + { + "reference": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-linked-key" + }, + "targets": [ + { + "resolveInfo": null, + "reference": "ID-10" + }, + { + "resolveInfo": null, + "reference": "ID-8" + } + ] + } + ], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-8", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-a" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-9", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-b" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-10", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-c" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-5", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-11", + "ID-12" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-11", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-a" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-5" + }, + { + "id": "ID-12", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-13", + "ID-14", + "ID-15" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-5" + }, + { + "id": "ID-13", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b--i" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-14", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b-ii" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-15", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b-iii" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-6", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-3" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-7", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-4" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-3" + } + ] +} diff --git a/bulk-api/src/test/resources/remove-annotation/Disk-remove-annotation-single-node.json b/bulk-api/src/test/resources/remove-annotation/Disk-remove-annotation-single-node.json new file mode 100644 index 00000000..fca08bf1 --- /dev/null +++ b/bulk-api/src/test/resources/remove-annotation/Disk-remove-annotation-single-node.json @@ -0,0 +1,46 @@ +{ + "serializationFormatVersion": "2023.1", + "languages": [ + { + "key": "-default-key-FileSystem", + "version": "2023.1" + }, + { + "key": "LionCore-builtins", + "version": "2023.1" + } + ], + "nodes": [ + { + "id": "ID-7", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-4" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-3" + } + ] +} diff --git a/bulk-api/src/test/resources/remove-child/Disk-remove-child-partition.json b/bulk-api/src/test/resources/remove-child/Disk-remove-child-partition.json new file mode 100644 index 00000000..933efd7a --- /dev/null +++ b/bulk-api/src/test/resources/remove-child/Disk-remove-child-partition.json @@ -0,0 +1,416 @@ +{ + "serializationFormatVersion": "2023.1", + "languages": [ + { + "key": "-default-key-FileSystem", + "version": "2023.1" + }, + { + "key": "LionCore-builtins", + "version": "2023.1" + } + ], + "nodes": [ + { + "id": "ID-2", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Disk-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "Disk_A" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Disk-root-key" + }, + "children": [ + "ID-3" + ] + } + ], + "references": [], + "annotations": [], + "parent": null + }, + { + "id": "ID-3", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "root" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-5", + "ID-6", + "ID-7" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-2" + }, + { + "id": "ID-5", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-9", + "ID-11", + "ID-12" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-9", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-b" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-5" + }, + { + "id": "ID-11", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-a" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-5" + }, + { + "id": "ID-12", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-13", + "ID-14", + "ID-15" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-5" + }, + { + "id": "ID-13", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b--i" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-14", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b-ii" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-15", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b-iii" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-6", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-3" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-7", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-4" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [ + "ANN-1", + "ANN-9", + "ANN-10" + ], + "parent": "ID-3" + }, + { + "id": "ANN-1", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [ + ], + "references": [], + "annotations": [], + "parent": "ID-7" + }, + { + "id": "ANN-9", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [ + ], + "references": [], + "annotations": [], + "parent": "ID-7" + }, + { + "id": "ANN-10", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [ + ], + "references": [], + "annotations": [], + "parent": "ID-7" + } + ] +} diff --git a/bulk-api/src/test/resources/remove-child/Disk-remove-child-single-node.json b/bulk-api/src/test/resources/remove-child/Disk-remove-child-single-node.json new file mode 100644 index 00000000..33d35590 --- /dev/null +++ b/bulk-api/src/test/resources/remove-child/Disk-remove-child-single-node.json @@ -0,0 +1,85 @@ +{ + "serializationFormatVersion": "2023.1", + "languages": [ + { + "key": "-default-key-FileSystem", + "version": "2023.1" + }, + { + "key": "LionCore-builtins", + "version": "2023.1" + } + ], + "nodes": [ + { + "id": "ID-3", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "root" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-5", + "ID-6", + "ID-7" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-2" + }, + { + "id": "ID-5", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-9", + "ID-11", + "ID-12" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-3" + } + ] +} diff --git a/bulk-api/src/test/resources/remove-reference/Disk-remove-reference-partition.json b/bulk-api/src/test/resources/remove-reference/Disk-remove-reference-partition.json new file mode 100644 index 00000000..19c1da66 --- /dev/null +++ b/bulk-api/src/test/resources/remove-reference/Disk-remove-reference-partition.json @@ -0,0 +1,513 @@ +{ + "serializationFormatVersion": "2023.1", + "languages": [ + { + "key": "-default-key-FileSystem", + "version": "2023.1" + }, + { + "key": "LionCore-builtins", + "version": "2023.1" + } + ], + "nodes": [ + { + "id": "ID-2", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Disk-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "Disk_A" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Disk-root-key" + }, + "children": [ + "ID-3" + ] + } + ], + "references": [], + "annotations": [], + "parent": null + }, + { + "id": "ID-3", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "root" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-4", + "ID-5", + "ID-6", + "ID-7" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-2" + }, + { + "id": "ID-4", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-8", + "ID-9", + "ID-10" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-8", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-a" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-9", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-b" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-10", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-c" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-5", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-11", + "ID-12" + ] + } + ], + "annotations": [], + "references": [], + "parent": "ID-3" + }, + { + "id": "ID-11", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-a" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-5" + }, + { + "id": "ID-12", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-13", + "ID-14", + "ID-15" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-5" + }, + { + "id": "ID-13", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b--i" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-14", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b-ii" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-15", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b-iii" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-6", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-3" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-7", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-4" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [ + "ANN-1", + "ANN-9", + "ANN-10" + ], + "parent": "ID-3" + }, + { + "id": "ANN-1", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [ + ], + "references": [], + "annotations": [], + "parent": "ID-7" + }, + { + "id": "ANN-9", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [ + ], + "references": [], + "annotations": [], + "parent": "ID-7" + }, + { + "id": "ANN-10", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [ + ], + "references": [], + "annotations": [], + "parent": "ID-7" + } + ] +} diff --git a/bulk-api/src/test/resources/remove-reference/Disk-remove-reference-single-node.json b/bulk-api/src/test/resources/remove-reference/Disk-remove-reference-single-node.json new file mode 100644 index 00000000..7d01ec0d --- /dev/null +++ b/bulk-api/src/test/resources/remove-reference/Disk-remove-reference-single-node.json @@ -0,0 +1,50 @@ +{ + "serializationFormatVersion": "2023.1", + "languages": [ + { + "key": "-default-key-FileSystem", + "version": "2023.1" + }, + { + "key": "LionCore-builtins", + "version": "2023.1" + } + ], + "nodes": [ + { + "id": "ID-4", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-8", + "ID-9", + "ID-10" + ] + } + ], + "annotations": [], + "references": [], + "parent": "ID-3" + } + ] +} diff --git a/bulk-api/src/test/resources/reorder-annotations/reorder-annotations-partition.json b/bulk-api/src/test/resources/reorder-annotations/reorder-annotations-partition.json new file mode 100644 index 00000000..04bbf2df --- /dev/null +++ b/bulk-api/src/test/resources/reorder-annotations/reorder-annotations-partition.json @@ -0,0 +1,528 @@ +{ + "serializationFormatVersion": "2023.1", + "languages": [ + { + "key": "-default-key-FileSystem", + "version": "2023.1" + }, + { + "key": "LionCore-builtins", + "version": "2023.1" + } + ], + "nodes": [ + { + "id": "ID-2", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Disk-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "Disk_A" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Disk-root-key" + }, + "children": [ + "ID-3" + ] + } + ], + "references": [], + "annotations": [], + "parent": null + }, + { + "id": "ID-3", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "root" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-4", + "ID-5", + "ID-6", + "ID-7" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-2" + }, + { + "id": "ID-4", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-8", + "ID-9", + "ID-10" + ] + } + ], + "references": [ + { + "reference": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-linked-key" + }, + "targets": [ + { + "resolveInfo": null, + "reference": "ID-10" + }, + { + "resolveInfo": null, + "reference": "ID-8" + } + ] + } + ], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-8", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-a" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-9", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-b" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-10", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-c" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-5", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-11", + "ID-12" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-11", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-a" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-5" + }, + { + "id": "ID-12", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-13", + "ID-14", + "ID-15" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-5" + }, + { + "id": "ID-13", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b--i" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-14", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b-ii" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-15", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b-iii" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-6", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-3" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-7", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-4" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [ + "ANN-1", + "ANN-9", + "ANN-10" + ], + "parent": "ID-3" + }, + { + "id": "ANN-1", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [], + "references": [], + "annotations": [], + "parent": "ID-7" + }, + { + "id": "ANN-9", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [], + "references": [], + "annotations": [], + "parent": "ID-7" + }, + { + "id": "ANN-10", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [], + "references": [], + "annotations": [], + "parent": "ID-7" + } + ] +} diff --git a/bulk-api/src/test/resources/reorder-annotations/reorder-annotations-single-node.json b/bulk-api/src/test/resources/reorder-annotations/reorder-annotations-single-node.json new file mode 100644 index 00000000..e3e19f7c --- /dev/null +++ b/bulk-api/src/test/resources/reorder-annotations/reorder-annotations-single-node.json @@ -0,0 +1,50 @@ +{ + "serializationFormatVersion": "2023.1", + "languages": [ + { + "key": "-default-key-FileSystem", + "version": "2023.1" + }, + { + "key": "LionCore-builtins", + "version": "2023.1" + } + ], + "nodes": [ + { + "id": "ID-7", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-4" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [ + "ANN-1", + "ANN-9", + "ANN-10" + ], + "parent": "ID-3" + } + ] +} diff --git a/bulk-api/src/test/resources/reorder-children/reorder-children-partition.json b/bulk-api/src/test/resources/reorder-children/reorder-children-partition.json new file mode 100644 index 00000000..ef1b695e --- /dev/null +++ b/bulk-api/src/test/resources/reorder-children/reorder-children-partition.json @@ -0,0 +1,531 @@ +{ + "serializationFormatVersion": "2023.1", + "languages": [ + { + "key": "-default-key-FileSystem", + "version": "2023.1" + }, + { + "key": "LionCore-builtins", + "version": "2023.1" + } + ], + "nodes": [ + { + "id": "ID-2", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Disk-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "Disk_A" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Disk-root-key" + }, + "children": [ + "ID-3" + ] + } + ], + "references": [], + "annotations": [], + "parent": null + }, + { + "id": "ID-3", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "root" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-4", + "ID-6", + "ID-7", + "ID-5" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-2" + }, + { + "id": "ID-4", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-8", + "ID-9", + "ID-10" + ] + } + ], + "references": [ + { + "reference": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-linked-key" + }, + "targets": [ + { + "resolveInfo": null, + "reference": "ID-10" + }, + { + "resolveInfo": null, + "reference": "ID-8" + } + ] + } + ], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-8", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-a" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-9", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-b" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-10", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-c" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-5", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-11", + "ID-12" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-11", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-a" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-5" + }, + { + "id": "ID-12", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-13", + "ID-14", + "ID-15" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-5" + }, + { + "id": "ID-13", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b--i" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-14", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b-ii" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-15", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b-iii" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-6", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-3" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-7", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-4" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [ + "ANN-1", + "ANN-9", + "ANN-10" + ], + "parent": "ID-3" + }, + { + "id": "ANN-1", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [ + ], + "references": [], + "annotations": [], + "parent": "ID-7" + }, + { + "id": "ANN-9", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [ + ], + "references": [], + "annotations": [], + "parent": "ID-7" + }, + { + "id": "ANN-10", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [ + ], + "references": [], + "annotations": [], + "parent": "ID-7" + } + ] +} diff --git a/bulk-api/src/test/resources/reorder-children/reorder-children-single-node.json b/bulk-api/src/test/resources/reorder-children/reorder-children-single-node.json new file mode 100644 index 00000000..c1e18f09 --- /dev/null +++ b/bulk-api/src/test/resources/reorder-children/reorder-children-single-node.json @@ -0,0 +1,51 @@ +{ + "serializationFormatVersion": "2023.1", + "languages": [ + { + "key": "-default-key-FileSystem", + "version": "2023.1" + }, + { + "key": "LionCore-builtins", + "version": "2023.1" + } + ], + "nodes": [ + { + "id": "ID-3", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "root" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-4", + "ID-6", + "ID-7", + "ID-5" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-2" + } + ] +} diff --git a/bulk-api/src/test/resources/reorder-reference-targets/reorder-reference-targets-partition.json b/bulk-api/src/test/resources/reorder-reference-targets/reorder-reference-targets-partition.json new file mode 100644 index 00000000..7b7d6dd6 --- /dev/null +++ b/bulk-api/src/test/resources/reorder-reference-targets/reorder-reference-targets-partition.json @@ -0,0 +1,531 @@ +{ + "serializationFormatVersion": "2023.1", + "languages": [ + { + "key": "-default-key-FileSystem", + "version": "2023.1" + }, + { + "key": "LionCore-builtins", + "version": "2023.1" + } + ], + "nodes": [ + { + "id": "ID-2", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Disk-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "Disk_A" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Disk-root-key" + }, + "children": [ + "ID-3" + ] + } + ], + "references": [], + "annotations": [], + "parent": null + }, + { + "id": "ID-3", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "root" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-4", + "ID-5", + "ID-6", + "ID-7" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-2" + }, + { + "id": "ID-4", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-8", + "ID-9", + "ID-10" + ] + } + ], + "references": [ + { + "reference": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-linked-key" + }, + "targets": [ + { + "resolveInfo": null, + "reference": "ID-8" + }, + { + "resolveInfo": null, + "reference": "ID-10" + } + ] + } + ], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-8", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-a" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-9", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-b" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-10", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1-c" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-4" + }, + { + "id": "ID-5", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-11", + "ID-12" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-11", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-a" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-5" + }, + { + "id": "ID-12", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-13", + "ID-14", + "ID-15" + ] + } + ], + "references": [], + "annotations": [], + "parent": "ID-5" + }, + { + "id": "ID-13", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b--i" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-14", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b-ii" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-15", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-2-b-iii" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-12" + }, + { + "id": "ID-6", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-3" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [], + "parent": "ID-3" + }, + { + "id": "ID-7", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-4" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [] + } + ], + "references": [], + "annotations": [ + "ANN-1", + "ANN-9", + "ANN-10" + ], + "parent": "ID-3" + }, + { + "id": "ANN-1", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [ + ], + "references": [], + "annotations": [], + "parent": "ID-7" + }, + { + "id": "ANN-9", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [ + ], + "references": [], + "annotations": [], + "parent": "ID-7" + }, + { + "id": "ANN-10", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [], + "containments": [ + ], + "references": [], + "annotations": [], + "parent": "ID-7" + } + ] +} diff --git a/bulk-api/src/test/resources/reorder-reference-targets/reorder-reference-targets-single-node.json b/bulk-api/src/test/resources/reorder-reference-targets/reorder-reference-targets-single-node.json new file mode 100644 index 00000000..09b75e6d --- /dev/null +++ b/bulk-api/src/test/resources/reorder-reference-targets/reorder-reference-targets-single-node.json @@ -0,0 +1,68 @@ +{ + "serializationFormatVersion": "2023.1", + "languages": [ + { + "key": "-default-key-FileSystem", + "version": "2023.1" + }, + { + "key": "LionCore-builtins", + "version": "2023.1" + } + ], + "nodes": [ + { + "id": "ID-4", + "classifier": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "folder-1" + } + ], + "containments": [ + { + "containment": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-listing-key" + }, + "children": [ + "ID-8", + "ID-9", + "ID-10" + ] + } + ], + "references": [ + { + "reference": { + "language": "-default-key-FileSystem", + "version": "2023.1", + "key": "Folder-linked-key" + }, + "targets": [ + { + "resolveInfo": null, + "reference": "ID-8" + }, + { + "resolveInfo": null, + "reference": "ID-10" + } + ] + } + ], + "annotations": [], + "parent": "ID-3" + } + ] +} diff --git a/bulk-api/src/test/resources/retrieve-baseline.json b/bulk-api/src/test/resources/retrieve-baseline.json new file mode 100644 index 00000000..00f58fe1 --- /dev/null +++ b/bulk-api/src/test/resources/retrieve-baseline.json @@ -0,0 +1,448 @@ +{ + "serializationFormatVersion": "2023.1", + "languages": [ + { + "key": "FileSystem-key", + "version": "1" + }, + { + "key": "LionCore-builtins", + "version": "2023.1" + } + ], + "nodes": [ + { + "id": "partition-id", + "classifier": { + "language": "FileSystem-key", + "version": "1", + "key": "Disk-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "Partition" + } + ], + "containments": [ + { + "containment": { + "language": "FileSystem-key", + "version": "1", + "key": "Disk-root-key" + }, + "children": [ + "3783922071929604053" + ] + } + ], + "references": [], + "annotations": [], + "parent": null + }, + { + "id": "3783922071929604053", + "classifier": { + "language": "FileSystem-key", + "version": "1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "something" + } + ], + "containments": [ + { + "containment": { + "language": "FileSystem-key", + "version": "1", + "key": "Folder-listing-key" + }, + "children": [ + "3783922071929604110", + "midnode-id" + ] + } + ], + "references": [], + "annotations": [], + "parent": "partition-id" + }, + { + "id": "3783922071929604110", + "classifier": { + "language": "FileSystem-key", + "version": "1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "f" + } + ], + "containments": [ + { + "containment": { + "language": "FileSystem-key", + "version": "1", + "key": "Folder-listing-key" + }, + "children": [ + "3783922071929604060", + "leaf-id" + ] + } + ], + "references": [], + "annotations": [], + "parent": "3783922071929604053" + }, + { + "id": "3783922071929604060", + "classifier": { + "language": "FileSystem-key", + "version": "1", + "key": "File-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "1" + } + ], + "containments": [], + "references": [], + "annotations": [], + "parent": "3783922071929604110" + }, + { + "id": "leaf-id", + "classifier": { + "language": "FileSystem-key", + "version": "1", + "key": "File-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "Leaf" + } + ], + "containments": [], + "references": [], + "annotations": [], + "parent": "3783922071929604110" + }, + { + "id": "midnode-id", + "classifier": { + "language": "FileSystem-key", + "version": "1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "Midnode" + } + ], + "containments": [ + { + "containment": { + "language": "FileSystem-key", + "version": "1", + "key": "Folder-listing-key" + }, + "children": [ + "3783922071929604075", + "3783922071929604254" + ] + } + ], + "references": [], + "annotations": [], + "parent": "3783922071929604053" + }, + { + "id": "3783922071929604075", + "classifier": { + "language": "FileSystem-key", + "version": "1", + "key": "File-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "d" + } + ], + "containments": [], + "references": [], + "annotations": [], + "parent": "midnode-id" + }, + { + "id": "3783922071929604254", + "classifier": { + "language": "FileSystem-key", + "version": "1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "d" + } + ], + "containments": [ + { + "containment": { + "language": "FileSystem-key", + "version": "1", + "key": "Folder-listing-key" + }, + "children": [ + "3783922071929604312" + ] + } + ], + "references": [], + "annotations": [], + "parent": "midnode-id" + }, + { + "id": "3783922071929604312", + "classifier": { + "language": "FileSystem-key", + "version": "1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "d" + } + ], + "containments": [ + { + "containment": { + "language": "FileSystem-key", + "version": "1", + "key": "Folder-listing-key" + }, + "children": [ + "3783922071929604070" + ] + } + ], + "references": [], + "annotations": [], + "parent": "3783922071929604254" + }, + { + "id": "3783922071929604070", + "classifier": { + "language": "FileSystem-key", + "version": "1", + "key": "File-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "2" + } + ], + "containments": [], + "references": [], + "annotations": [], + "parent": "3783922071929604312" + }, + { + "id": "other-partition-id", + "classifier": { + "language": "FileSystem-key", + "version": "1", + "key": "Disk-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "OtherPartition" + } + ], + "containments": [ + { + "containment": { + "language": "FileSystem-key", + "version": "1", + "key": "Disk-root-key" + }, + "children": [ + "other-midnode-id" + ] + } + ], + "references": [], + "annotations": [], + "parent": null + }, + { + "id": "other-midnode-id", + "classifier": { + "language": "FileSystem-key", + "version": "1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "OtherMidnode" + } + ], + "containments": [ + { + "containment": { + "language": "FileSystem-key", + "version": "1", + "key": "Folder-listing-key" + }, + "children": [ + "other-leaf-id", + "third-midnode-id" + ] + } + ], + "references": [], + "annotations": [], + "parent": "other-partition-id" + }, + { + "id": "other-leaf-id", + "classifier": { + "language": "FileSystem-key", + "version": "1", + "key": "File-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "OtherLeaf" + } + ], + "containments": [], + "references": [], + "annotations": [], + "parent": "other-midnode-id" + }, + { + "id": "third-midnode-id", + "classifier": { + "language": "FileSystem-key", + "version": "1", + "key": "Folder-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "ThirdMidnode" + } + ], + "containments": [ + { + "containment": { + "language": "FileSystem-key", + "version": "1", + "key": "Folder-listing-key" + }, + "children": [ + "third-leaf-id" + ] + } + ], + "references": [], + "annotations": [], + "parent": "other-midnode-id" + }, + { + "id": "third-leaf-id", + "classifier": { + "language": "FileSystem-key", + "version": "1", + "key": "File-key" + }, + "properties": [ + { + "property": { + "language": "LionCore-builtins", + "version": "2023.1", + "key": "LionCore-builtins-INamed-name" + }, + "value": "ThirdLeaf" + } + ], + "containments": [], + "references": [], + "annotations": [], + "parent": "third-midnode-id" + } + ] +} \ No newline at end of file diff --git a/core/src/main/java/io/lionweb/lioncore/java/serialization/data/SerializedChunk.java b/core/src/main/java/io/lionweb/lioncore/java/serialization/data/SerializedChunk.java index 7676d58d..2814a8ef 100644 --- a/core/src/main/java/io/lionweb/lioncore/java/serialization/data/SerializedChunk.java +++ b/core/src/main/java/io/lionweb/lioncore/java/serialization/data/SerializedChunk.java @@ -72,9 +72,9 @@ public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof SerializedChunk)) return false; SerializedChunk that = (SerializedChunk) o; - return serializationFormatVersion.equals(that.serializationFormatVersion) - && languages.equals(that.languages) - && classifierInstances.equals(that.classifierInstances); + return Objects.equals(serializationFormatVersion, that.serializationFormatVersion) + && Objects.equals(languages, that.languages) + && Objects.equals(classifierInstances, that.classifierInstances); } @Override diff --git a/settings.gradle b/settings.gradle index d8698a25..b45e8a91 100644 --- a/settings.gradle +++ b/settings.gradle @@ -2,7 +2,7 @@ rootProject.name = 'lionweb-java' include('core') include('emf') include('emf-builtins') - +include('bulk-api') dependencyResolutionManagement { versionCatalogs {