diff options
5 files changed, 12 insertions, 10 deletions
diff --git a/cps-ri/src/main/java/org/onap/cps/spi/impl/CpsAdminPersistenceServiceImpl.java b/cps-ri/src/main/java/org/onap/cps/spi/impl/CpsAdminPersistenceServiceImpl.java index cd3c30b97b..9f33b2fa50 100755 --- a/cps-ri/src/main/java/org/onap/cps/spi/impl/CpsAdminPersistenceServiceImpl.java +++ b/cps-ri/src/main/java/org/onap/cps/spi/impl/CpsAdminPersistenceServiceImpl.java @@ -30,6 +30,7 @@ import javax.transaction.Transactional; import org.onap.cps.spi.CpsAdminPersistenceService; import org.onap.cps.spi.entities.AnchorEntity; import org.onap.cps.spi.entities.DataspaceEntity; +import org.onap.cps.spi.entities.YangResourceModuleReference; import org.onap.cps.spi.exceptions.AlreadyDefinedException; import org.onap.cps.spi.exceptions.ModuleNamesNotFoundException; import org.onap.cps.spi.model.Anchor; @@ -131,7 +132,7 @@ public class CpsAdminPersistenceServiceImpl implements CpsAdminPersistenceServic final Collection<String> inputModuleNames) { final Collection<String> retrievedModuleNames = yangResourceRepository.findAllModuleReferences(dataspaceName, inputModuleNames) - .stream().map(module -> module.getModuleName()) + .stream().map(YangResourceModuleReference::getModuleName) .collect(Collectors.toList()); if (retrievedModuleNames.isEmpty()) { dataspaceRepository.getByName(dataspaceName); diff --git a/cps-ri/src/main/java/org/onap/cps/spi/impl/CpsDataPersistenceServiceImpl.java b/cps-ri/src/main/java/org/onap/cps/spi/impl/CpsDataPersistenceServiceImpl.java index 8dc6c2f69c..c616c8face 100644 --- a/cps-ri/src/main/java/org/onap/cps/spi/impl/CpsDataPersistenceServiceImpl.java +++ b/cps-ri/src/main/java/org/onap/cps/spi/impl/CpsDataPersistenceServiceImpl.java @@ -91,7 +91,8 @@ public class CpsDataPersistenceServiceImpl implements CpsDataPersistenceService private static final Gson GSON = new GsonBuilder().create(); private static final String REG_EX_FOR_OPTIONAL_LIST_INDEX = "(\\[@[\\s\\S]+?]){0,1})"; - private static final String REG_EX_FOR_LIST_ELEMENT_KEY_PREDICATE = "\\[(\\@([^/]*?)){0,99}( and)*\\]$"; + private static final Pattern REG_EX_PATTERN_FOR_LIST_ELEMENT_KEY_PREDICATE = + Pattern.compile("\\[(\\@([^\\/]{0,9999}))\\]$"); @Override public void addChildDataNode(final String dataspaceName, final String anchorName, final String parentXpath, @@ -361,8 +362,7 @@ public class CpsDataPersistenceServiceImpl implements CpsDataPersistenceService final String parentNodeXpath = targetXpath.substring(0, targetXpath.lastIndexOf('/')); final FragmentEntity parentFragmentEntity = getFragmentByXpath(dataspaceName, anchorName, parentNodeXpath); final String lastXpathElement = targetXpath.substring(targetXpath.lastIndexOf('/')); - final boolean isListElement = Pattern.compile(REG_EX_FOR_LIST_ELEMENT_KEY_PREDICATE) - .matcher(lastXpathElement).find(); + final boolean isListElement = REG_EX_PATTERN_FOR_LIST_ELEMENT_KEY_PREDICATE.matcher(lastXpathElement).find(); boolean targetExist; if (isListElement) { targetExist = deleteDataNode(parentFragmentEntity, targetXpath); diff --git a/cps-service/src/main/java/org/onap/cps/api/impl/CpsAdminServiceImpl.java b/cps-service/src/main/java/org/onap/cps/api/impl/CpsAdminServiceImpl.java index 4640a0fb31..faff7b611b 100755 --- a/cps-service/src/main/java/org/onap/cps/api/impl/CpsAdminServiceImpl.java +++ b/cps-service/src/main/java/org/onap/cps/api/impl/CpsAdminServiceImpl.java @@ -64,6 +64,6 @@ public class CpsAdminServiceImpl implements CpsAdminService { @Override public Collection<String> queryAnchorNames(final String dataspaceName, final Collection<String> moduleNames) { final Collection<Anchor> anchors = cpsAdminPersistenceService.queryAnchors(dataspaceName, moduleNames); - return anchors.stream().map(anchor -> anchor.getName()).collect(Collectors.toList()); + return anchors.stream().map(Anchor::getName).collect(Collectors.toList()); } } diff --git a/cps-service/src/main/java/org/onap/cps/spi/exceptions/DataNodeNotFoundException.java b/cps-service/src/main/java/org/onap/cps/spi/exceptions/DataNodeNotFoundException.java index b717a2b183..db10c88b92 100755 --- a/cps-service/src/main/java/org/onap/cps/spi/exceptions/DataNodeNotFoundException.java +++ b/cps-service/src/main/java/org/onap/cps/spi/exceptions/DataNodeNotFoundException.java @@ -27,7 +27,7 @@ package org.onap.cps.spi.exceptions; public class DataNodeNotFoundException extends DataValidationException { private static final long serialVersionUID = 7786740001662205407L; - + private static final String DATANODE_NOT_FOUND = "DataNode not found"; /** * Constructor. * @@ -36,9 +36,10 @@ public class DataNodeNotFoundException extends DataValidationException { * @param xpath datanode xpath * @param additionalInformation additional information */ + public DataNodeNotFoundException(final String dataspaceName, final String anchorName, final String xpath, final String additionalInformation) { - super("DataNode not found", String + super(DATANODE_NOT_FOUND, String .format("DataNode with xpath %s was not found for anchor %s and dataspace %s, %s.", xpath, anchorName, dataspaceName, additionalInformation)); } @@ -51,7 +52,7 @@ public class DataNodeNotFoundException extends DataValidationException { * @param xpath datanode xpath */ public DataNodeNotFoundException(final String dataspaceName, final String anchorName, final String xpath) { - super("DataNode not found", String + super(DATANODE_NOT_FOUND, String .format("DataNode with xpath %s was not found for anchor %s and dataspace %s.", xpath, anchorName, dataspaceName)); } @@ -63,7 +64,7 @@ public class DataNodeNotFoundException extends DataValidationException { * @param anchorName the anchor name */ public DataNodeNotFoundException(final String dataspaceName, final String anchorName) { - super("DataNode not found", String.format( + super(DATANODE_NOT_FOUND, String.format( "DataNode not found for anchor %s and dataspace %s.", anchorName, dataspaceName)); } } diff --git a/docs/cps-path.rst b/docs/cps-path.rst index 5834d68e1e..bc46681d1c 100644 --- a/docs/cps-path.rst +++ b/docs/cps-path.rst @@ -113,7 +113,7 @@ leaf-conditions - ``/shops/bookstore/categories[@numberOfBooks=1]`` - ``//categories[@name="Kids"]`` - ``//categories[@name='Kids']`` - - ``//categories[@code=1]/book[@title='Dune' and price=5]`` + - ``//categories[@code=1]/books/book[@title='Dune' and @price=5]`` **Limitations** - Only the last list or container can be queried leaf values. Any ancestor list will have to be referenced by its key name-value pair(s). |