CPS-341 Support for multiple data tree instances under 1 anchor
[cps.git] / cps-service / src / main / java / org / onap / cps / spi / CpsDataPersistenceService.java
index 28b18b3..b9da4af 100644 (file)
@@ -3,6 +3,7 @@
  *  Copyright (C) 2020-2022 Nordix Foundation.
  *  Modifications Copyright (C) 2021 Pantheon.tech
  *  Modifications Copyright (C) 2022 Bell Canada
+ *  Modifications Copyright (C) 2022 TechMahindra Ltd.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -35,15 +36,26 @@ import org.onap.cps.spi.model.DataNode;
  */
 public interface CpsDataPersistenceService {
 
+
     /**
      * Store a datanode.
      *
      * @param dataspaceName dataspace name
      * @param anchorName    anchor name
      * @param dataNode      data node
+     * @deprecated Please use {@link #storeDataNodes(String, String, Collection)} as it supports multiple data nodes.
      */
+    @Deprecated
     void storeDataNode(String dataspaceName, String anchorName, DataNode dataNode);
 
+    /**
+     * Store multiple datanodes at once.
+     * @param dataspaceName dataspace name
+     * @param anchorName    anchor name
+     * @param dataNodes     data nodes
+     */
+    void storeDataNodes(String dataspaceName, String anchorName, Collection<DataNode> dataNodes);
+
     /**
      * Add a child to a Fragment.
      *
@@ -54,6 +66,16 @@ public interface CpsDataPersistenceService {
      */
     void addChildDataNode(String dataspaceName, String anchorName, String parentXpath, DataNode dataNode);
 
+    /**
+     * Add multiple children to a Fragment.
+     *
+     * @param dataspaceName dataspace name
+     * @param anchorName    anchor name
+     * @param parentXpath   parent xpath
+     * @param dataNodes     collection of dataNodes
+     */
+    void addChildDataNodes(String dataspaceName, String anchorName, String parentXpath, Collection<DataNode> dataNodes);
+
     /**
      * Adds list child elements to a Fragment.
      *
@@ -62,7 +84,6 @@ public interface CpsDataPersistenceService {
      * @param parentNodeXpath        parent node xpath
      * @param listElementsCollection collection of data nodes representing list elements
      */
-
     void addListElements(String dataspaceName, String anchorName, String parentNodeXpath,
         Collection<DataNode> listElementsCollection);