diff options
Diffstat (limited to 'openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/impl/ZusammenAdaptorImpl.java')
-rw-r--r-- | openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/impl/ZusammenAdaptorImpl.java | 452 |
1 files changed, 207 insertions, 245 deletions
diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/impl/ZusammenAdaptorImpl.java b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/impl/ZusammenAdaptorImpl.java index 4efa2486a2..a5d61f4189 100644 --- a/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/impl/ZusammenAdaptorImpl.java +++ b/openecomp-be/lib/openecomp-core-lib/openecomp-zusammen-lib/openecomp-zusammen-core/src/main/java/org/openecomp/core/zusammen/impl/ZusammenAdaptorImpl.java @@ -43,249 +43,211 @@ import org.openecomp.core.zusammen.db.ZusammenConnector; public class ZusammenAdaptorImpl implements ZusammenAdaptor { - private ZusammenConnector connector; - - public ZusammenAdaptorImpl(ZusammenConnector connector) { - this.connector = connector; - } - - @Override - public Optional<ElementInfo> getElementInfo(SessionContext context, ElementContext elementContext, - Id elementId) { - return Optional.ofNullable(connector.getElementInfo(context, elementContext, elementId)); - } - - @Override - public Optional<Element> getElement(SessionContext context, ElementContext elementContext, - String elementId) { - return Optional.ofNullable(connector.getElement(context, elementContext, new Id(elementId))); - } - - @Override - public Optional<Element> getElementByName( - SessionContext context, ElementContext elementContext, Id parentElementId, - String elementName) { - Collection<ElementInfo> elementInfos = - connector.listElements(context, elementContext, parentElementId); - Predicate<ElementInfo> elementInfoPredicate = elementInfo -> elementInfo.getInfo() != null - && elementName.equals(elementInfo.getInfo().getName()); - return getFirstElementInfo(elementInfos, elementInfoPredicate) - .flatMap(elementInfo -> getElement(context, elementContext, - elementInfo.getId().getValue())); - } - - @Override - public Collection<ElementInfo> listElements(SessionContext context, ElementContext elementContext, - Id parentElementId) { - return connector.listElements(context, elementContext, parentElementId); - } - - @Override - public Collection<Element> listElementData(SessionContext context, - ElementContext elementContext, - Id parentElementId) { - Collection<ElementInfo> elementInfoList = connector.listElements(context, elementContext, - parentElementId); - - return elementInfoList == null - ? new ArrayList<>() - : elementInfoList.stream() - .map(elementInfo -> connector.getElement(context, elementContext, elementInfo.getId())) - .collect(Collectors.toList()); - } - - - @Override - public Collection<ElementInfo> listElementsByName( - SessionContext context, ElementContext elementContext, Id parentElementId, - String elementName) { - Optional<ElementInfo> elementInfoByName = - getElementInfoByName(context, elementContext, parentElementId, elementName); - - return elementInfoByName.isPresent() - ? connector.listElements(context, elementContext, elementInfoByName.get().getId()) - : new ArrayList<>(); - } - - @Override - public Optional<ElementInfo> getElementInfoByName( - SessionContext context, ElementContext elementContext, Id parentElementId, - String elementName) { - Collection<ElementInfo> elementInfos = - connector.listElements(context, elementContext, parentElementId); - return getFirstElementInfo(elementInfos, - elementInfo -> elementInfo.getInfo() != null - && elementName.equals(elementInfo.getInfo().getName())); - } - - @Override - public Optional<ElementConflict> getElementConflict(SessionContext context, - ElementContext elementContext, - Id elementId) { - return Optional.ofNullable(connector.getElementConflict(context, elementContext, elementId)); - } - - @Override - public Element saveElement(SessionContext context, ElementContext elementContext, - ZusammenElement element, String message) { - enrichElementHierarchyRec(context, elementContext, null, element); - return connector.saveElement(context, elementContext, element, message); - } - - @Override - public void resolveElementConflict(SessionContext context, ElementContext elementContext, - ZusammenElement element, Resolution resolution) { - connector.resolveElementConflict(context, elementContext, element, resolution); - } - - private void enrichElementHierarchyRec(SessionContext context, ElementContext - elementContext, Id parentElementId, ZusammenElement element) { - if (element.getAction() == Action.CREATE) { - return; - } - locateElementAndUpdateAction(context, elementContext, parentElementId, element); - element.getSubElements().forEach(subElement -> enrichElementHierarchyRec( - context, elementContext, element.getElementId(), (ZusammenElement) subElement)); - } - - // should be applied only for structural elements - private void locateElementAndUpdateAction(SessionContext context, ElementContext elementContext, - Id parentElementId, ZusammenElement element) { - if (element.getElementId() != null) { - return; - } - if (element.getInfo() == null || element.getInfo().getName() == null) { - throw new IllegalArgumentException("When saving element to zusammen - its Id or name must be supplied"); - } - Optional<ElementInfo> elementInfo = - getElementInfoByName(context, elementContext, parentElementId, element.getInfo().getName()); - if (elementInfo.isPresent()) { - element.setElementId(elementInfo.get().getId()); - if (element.getAction() == null) { - element.setAction(Action.IGNORE); - } - } else { - element.setAction(Action.CREATE); - } - } - - private Optional<ElementInfo> getFirstElementInfo(Collection<ElementInfo> elementInfos, - Predicate<ElementInfo> elementInfoPredicate) { - return elementInfos.stream() - .filter(elementInfoPredicate) - .findFirst(); - } - - @Override - public Collection<Item> listItems(SessionContext context) { - return connector.listItems(context); - } - - @Override - public Item getItem(SessionContext context, Id itemId) { - return connector.getItem(context, itemId); - } - - @Override - public Id createItem(SessionContext context, Info info) { - return connector.createItem(context, info); - } - - @Override - public void deleteItem(SessionContext context, Id itemId){ - connector.deleteItem(context,itemId); - } - - @Override - public void updateItem(SessionContext context, Id itemId, Info info) { - connector.updateItem(context, itemId, info); - } - - @Override - public Collection<ItemVersion> listPublicVersions(SessionContext context, Id itemId) { - return connector.listPublicVersions(context, itemId); - } - - @Override - public ItemVersion getPublicVersion(SessionContext context, Id itemId, Id versionId) { - return connector.getPublicVersion(context, itemId, versionId); - } - - @Override - public ItemVersion getVersion(SessionContext context, Id itemId, Id versionId) { - return connector.getVersion(context, itemId, versionId); - } - - @Override - public ItemVersionStatus getVersionStatus(SessionContext context, Id itemId, Id versionId) { - return connector.getVersionStatus(context, itemId, versionId); - } - - @Override - public ItemVersionConflict getVersionConflict(SessionContext context, Id itemId, Id versionId) { - return connector.getVersionConflict(context, itemId, versionId); - } - - @Override - public Id createVersion(SessionContext context, Id itemId, Id baseVersionId, ItemVersionData - itemVersionData) { - return connector.createVersion(context, itemId, baseVersionId, itemVersionData); - } - - @Override - public void updateVersion(SessionContext context, Id itemId, Id versionId, - ItemVersionData itemVersionData) { - connector.updateVersion(context, itemId, versionId, itemVersionData); - } - - @Override - public void tagVersion(SessionContext context, Id itemId, Id versionId, Tag tag) { - connector.tagVersion(context, itemId, versionId, tag); - } - - @Override - public void resetVersionHistory(SessionContext context, Id itemId, Id versionId, - String changeRef) { - connector.resetVersionHistory(context, itemId, versionId, changeRef); - } - - @Override - public void publishVersion(SessionContext context, Id itemId, Id versionId, String message) { - connector.publishVersion(context, itemId, versionId, message); - } - - @Override - public void syncVersion(SessionContext context, Id itemId, Id versionId) { - connector.syncVersion(context, itemId, versionId); - } - - @Override - public void forceSyncVersion(SessionContext context, Id itemId, Id versionId) { - connector.forceSyncVersion(context, itemId, versionId); - } - - @Override - public void cleanVersion(SessionContext context, Id itemId, Id versionId) { - connector.cleanVersion(context, itemId, versionId); - } - - @Override - public void revert(SessionContext context, Id itemId, Id versionId, Id revisionId) { - connector.revertVersionRevision(context, itemId, versionId, revisionId); - } - - @Override - public ItemVersionRevisions listRevisions(SessionContext context, Id itemId, Id versionId) { - return connector.listVersionRevisions(context, itemId, versionId); - } - - @Override - public Collection<HealthInfo> checkHealth(SessionContext context) { - return connector.checkHealth(context); - } - - @Override - public String getVersion(SessionContext context) { - return connector.getVersion(context); - } + private ZusammenConnector connector; + + public ZusammenAdaptorImpl(ZusammenConnector connector) { + this.connector = connector; + } + + @Override + public Optional<ElementInfo> getElementInfo(SessionContext context, ElementContext elementContext, Id elementId) { + return Optional.ofNullable(connector.getElementInfo(context, elementContext, elementId)); + } + + @Override + public Optional<Element> getElement(SessionContext context, ElementContext elementContext, String elementId) { + return Optional.ofNullable(connector.getElement(context, elementContext, new Id(elementId))); + } + + @Override + public Optional<Element> getElementByName(SessionContext context, ElementContext elementContext, Id parentElementId, String elementName) { + Collection<ElementInfo> elementInfos = connector.listElements(context, elementContext, parentElementId); + Predicate<ElementInfo> elementInfoPredicate = elementInfo -> elementInfo.getInfo() != null && elementName + .equals(elementInfo.getInfo().getName()); + return getFirstElementInfo(elementInfos, elementInfoPredicate) + .flatMap(elementInfo -> getElement(context, elementContext, elementInfo.getId().getValue())); + } + + @Override + public Collection<ElementInfo> listElements(SessionContext context, ElementContext elementContext, Id parentElementId) { + return connector.listElements(context, elementContext, parentElementId); + } + + @Override + public Collection<Element> listElementData(SessionContext context, ElementContext elementContext, Id parentElementId) { + Collection<ElementInfo> elementInfoList = connector.listElements(context, elementContext, parentElementId); + return elementInfoList == null ? new ArrayList<>() + : elementInfoList.stream().map(elementInfo -> connector.getElement(context, elementContext, elementInfo.getId())) + .collect(Collectors.toList()); + } + + @Override + public Collection<ElementInfo> listElementsByName(SessionContext context, ElementContext elementContext, Id parentElementId, String elementName) { + Optional<ElementInfo> elementInfoByName = getElementInfoByName(context, elementContext, parentElementId, elementName); + return elementInfoByName.isPresent() ? connector.listElements(context, elementContext, elementInfoByName.get().getId()) : new ArrayList<>(); + } + + @Override + public Optional<ElementInfo> getElementInfoByName(SessionContext context, ElementContext elementContext, Id parentElementId, String elementName) { + Collection<ElementInfo> elementInfos = connector.listElements(context, elementContext, parentElementId); + return getFirstElementInfo(elementInfos, elementInfo -> elementInfo.getInfo() != null && elementName.equals(elementInfo.getInfo().getName())); + } + + @Override + public Optional<ElementConflict> getElementConflict(SessionContext context, ElementContext elementContext, Id elementId) { + return Optional.ofNullable(connector.getElementConflict(context, elementContext, elementId)); + } + + @Override + public Element saveElement(SessionContext context, ElementContext elementContext, ZusammenElement element, String message) { + enrichElementHierarchyRec(context, elementContext, null, element); + return connector.saveElement(context, elementContext, element, message); + } + + @Override + public void resolveElementConflict(SessionContext context, ElementContext elementContext, ZusammenElement element, Resolution resolution) { + connector.resolveElementConflict(context, elementContext, element, resolution); + } + + private void enrichElementHierarchyRec(SessionContext context, ElementContext elementContext, Id parentElementId, ZusammenElement element) { + if (element.getAction() == Action.CREATE) { + return; + } + locateElementAndUpdateAction(context, elementContext, parentElementId, element); + element.getSubElements() + .forEach(subElement -> enrichElementHierarchyRec(context, elementContext, element.getElementId(), (ZusammenElement) subElement)); + } + + // should be applied only for structural elements + private void locateElementAndUpdateAction(SessionContext context, ElementContext elementContext, Id parentElementId, ZusammenElement element) { + if (element.getElementId() != null) { + return; + } + if (element.getInfo() == null || element.getInfo().getName() == null) { + throw new IllegalArgumentException("When saving element to zusammen - its Id or name must be supplied"); + } + Optional<ElementInfo> elementInfo = getElementInfoByName(context, elementContext, parentElementId, element.getInfo().getName()); + if (elementInfo.isPresent()) { + element.setElementId(elementInfo.get().getId()); + if (element.getAction() == null) { + element.setAction(Action.IGNORE); + } + } else { + element.setAction(Action.CREATE); + } + } + + private Optional<ElementInfo> getFirstElementInfo(Collection<ElementInfo> elementInfos, Predicate<ElementInfo> elementInfoPredicate) { + return elementInfos.stream().filter(elementInfoPredicate).findFirst(); + } + + @Override + public Collection<Item> listItems(SessionContext context) { + return connector.listItems(context); + } + + @Override + public Item getItem(SessionContext context, Id itemId) { + return connector.getItem(context, itemId); + } + + @Override + public Id createItem(SessionContext context, Info info) { + return connector.createItem(context, info); + } + + @Override + public void deleteItem(SessionContext context, Id itemId) { + connector.deleteItem(context, itemId); + } + + @Override + public void updateItem(SessionContext context, Id itemId, Info info) { + connector.updateItem(context, itemId, info); + } + + @Override + public Collection<ItemVersion> listPublicVersions(SessionContext context, Id itemId) { + return connector.listPublicVersions(context, itemId); + } + + @Override + public ItemVersion getPublicVersion(SessionContext context, Id itemId, Id versionId) { + return connector.getPublicVersion(context, itemId, versionId); + } + + @Override + public ItemVersion getVersion(SessionContext context, Id itemId, Id versionId) { + return connector.getVersion(context, itemId, versionId); + } + + @Override + public ItemVersionStatus getVersionStatus(SessionContext context, Id itemId, Id versionId) { + return connector.getVersionStatus(context, itemId, versionId); + } + + @Override + public ItemVersionConflict getVersionConflict(SessionContext context, Id itemId, Id versionId) { + return connector.getVersionConflict(context, itemId, versionId); + } + + @Override + public Id createVersion(SessionContext context, Id itemId, Id baseVersionId, ItemVersionData itemVersionData) { + return connector.createVersion(context, itemId, baseVersionId, itemVersionData); + } + + @Override + public void updateVersion(SessionContext context, Id itemId, Id versionId, ItemVersionData itemVersionData) { + connector.updateVersion(context, itemId, versionId, itemVersionData); + } + + @Override + public void tagVersion(SessionContext context, Id itemId, Id versionId, Tag tag) { + connector.tagVersion(context, itemId, versionId, tag); + } + + @Override + public void resetVersionHistory(SessionContext context, Id itemId, Id versionId, String changeRef) { + connector.resetVersionHistory(context, itemId, versionId, changeRef); + } + + @Override + public void publishVersion(SessionContext context, Id itemId, Id versionId, String message) { + connector.publishVersion(context, itemId, versionId, message); + } + + @Override + public void syncVersion(SessionContext context, Id itemId, Id versionId) { + connector.syncVersion(context, itemId, versionId); + } + + @Override + public void forceSyncVersion(SessionContext context, Id itemId, Id versionId) { + connector.forceSyncVersion(context, itemId, versionId); + } + + @Override + public void cleanVersion(SessionContext context, Id itemId, Id versionId) { + connector.cleanVersion(context, itemId, versionId); + } + + @Override + public void revert(SessionContext context, Id itemId, Id versionId, Id revisionId) { + connector.revertVersionRevision(context, itemId, versionId, revisionId); + } + + @Override + public ItemVersionRevisions listRevisions(SessionContext context, Id itemId, Id versionId) { + return connector.listVersionRevisions(context, itemId, versionId); + } + + @Override + public Collection<HealthInfo> checkHealth(SessionContext context) { + return connector.checkHealth(context); + } + + @Override + public String getVersion(SessionContext context) { + return connector.getVersion(context); + } } |