From 23e8f5e8ff582df0892e3072114bf996397d1460 Mon Sep 17 00:00:00 2001 From: Ivan Yakubenko Date: Tue, 17 Oct 2023 10:15:51 +0300 Subject: [PATCH] 30130 - add lazy loading for sdmx 3.0 and plus requests --- .../sdmx30/LazyMaintainableArtefactImpl.java | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 sdmx30-infomodel/src/main/java/com/epam/jsdmx/infomodel/sdmx30/LazyMaintainableArtefactImpl.java diff --git a/sdmx30-infomodel/src/main/java/com/epam/jsdmx/infomodel/sdmx30/LazyMaintainableArtefactImpl.java b/sdmx30-infomodel/src/main/java/com/epam/jsdmx/infomodel/sdmx30/LazyMaintainableArtefactImpl.java new file mode 100644 index 0000000..91a0884 --- /dev/null +++ b/sdmx30-infomodel/src/main/java/com/epam/jsdmx/infomodel/sdmx30/LazyMaintainableArtefactImpl.java @@ -0,0 +1,58 @@ +package com.epam.jsdmx.infomodel.sdmx30; + +import java.util.Set; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Getter +@Setter +@NoArgsConstructor +public class LazyMaintainableArtefactImpl extends MaintainableArtefactImpl { + + private boolean targetArtefact; + private ArtefactReference artefactReference; + private Set referencedArtefacts; + + public LazyMaintainableArtefactImpl(ArtefactReference reference) { + setId(reference.getId()); + setVersion(Version.createFromString(reference.getVersionString())); + setOrganizationId(reference.getOrganisationId()); + this.artefactReference = reference; + } + + public LazyMaintainableArtefactImpl(MaintainableArtefact maintainableArtefact) { + super(maintainableArtefact); + } + + @Override + public StructureClass getStructureClass() { + return artefactReference.getStructureClass(); + } + + @Override + public Set getReferencedArtefacts() { + return referencedArtefacts; + } + + @Override + public ArtefactReference toReference() { + return this.artefactReference; + } + + @Override + public MaintainableArtefact toStub() { + return this; + } + + @Override + public MaintainableArtefact toCompleteStub() { + return this; + } + + @Override + protected MaintainableArtefactImpl createInstance() { + return this; + } +} \ No newline at end of file