diff options
Diffstat (limited to 'cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/InventoryPersistence.java')
-rw-r--r-- | cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/InventoryPersistence.java | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/InventoryPersistence.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/InventoryPersistence.java new file mode 100644 index 000000000..cb4b04e4a --- /dev/null +++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/inventory/InventoryPersistence.java @@ -0,0 +1,147 @@ +/* + * ============LICENSE_START======================================================= + * Copyright (C) 2022-2024 Nordix Foundation + * Modifications Copyright (C) 2023 TechMahindra Ltd. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.cps.ncmp.impl.inventory; + +import java.util.Collection; +import java.util.List; +import java.util.Map; +import org.onap.cps.ncmp.api.inventory.models.CompositeState; +import org.onap.cps.ncmp.impl.inventory.models.YangModelCmHandle; +import org.onap.cps.spi.model.DataNode; +import org.onap.cps.spi.model.ModuleDefinition; +import org.onap.cps.spi.model.ModuleReference; + +public interface InventoryPersistence extends NcmpPersistence { + + /** + * Get the Cm Handle Composite State from the data node. + * + * @param cmHandleId cm handle id + * @return the cm handle composite state + */ + CompositeState getCmHandleState(String cmHandleId); + + /** + * Save the cm handles state. + * + * @param cmHandleId cm handle id + * @param compositeState composite state + */ + void saveCmHandleState(String cmHandleId, CompositeState compositeState); + + /** + * Save all cm handles states in batch. + * + * @param cmHandleStatePerCmHandleId contains cm handle id and updated state + */ + void saveCmHandleStateBatch(Map<String, CompositeState> cmHandleStatePerCmHandleId); + + /** + * This method retrieves DMI service name, DMI properties and the state for a given cm handle. + * + * @param cmHandleId the id of the cm handle + * @return yang model cm handle + */ + YangModelCmHandle getYangModelCmHandle(String cmHandleId); + + /** + * This method retrieves DMI service name, DMI properties and the state for a given cm handle. + * + * @param cmHandleIds a list of the ids of the cm handles + * @return collection of yang model cm handles + */ + Collection<YangModelCmHandle> getYangModelCmHandles(Collection<String> cmHandleIds); + + /** + * Method to return module definitions by cmHandleId. + * + * @param cmHandleId cm handle ID + * @return a collection of module definitions (moduleName, revision and yang resource content) + */ + Collection<ModuleDefinition> getModuleDefinitionsByCmHandleId(String cmHandleId); + + /** + * Method to return module definitions for the given parameters. + * + * @param cmHandleId cm-handle identifier + * @param moduleName module name + * @param moduleRevision the revision of the module + * @return list of module definitions (module name, revision, yang resource content) + */ + Collection<ModuleDefinition> getModuleDefinitionsByCmHandleAndModule(String cmHandleId, + String moduleName, + String moduleRevision); + + /** + * Method to return module references by cmHandleId. + * + * @param cmHandleId cm handle ID + * @return a collection of module references (moduleName and revision) + */ + Collection<ModuleReference> getYangResourcesModuleReferences(String cmHandleId); + + /** + * Method to save cmHandle. + * + * @param yangModelCmHandle cmHandle represented as Yang Model + */ + void saveCmHandle(YangModelCmHandle yangModelCmHandle); + + /** + * Method to save batch of cm handles. + * + * @param yangModelCmHandles cm handle represented as Yang Models + */ + void saveCmHandleBatch(List<YangModelCmHandle> yangModelCmHandles); + + /** + * Get data node with the given cm handle id. + * + * @param cmHandleId cmHandle ID + * @return data node + */ + Collection<DataNode> getCmHandleDataNodeByCmHandleId(String cmHandleId); + + /** + * Get data node with the given alternate id. + * + * @param alternateId alternate ID + * @return data node + */ + DataNode getCmHandleDataNodeByAlternateId(String alternateId); + + /** + * Get collection of data nodes of given cm handles. + * + * @param cmHandleIds collection of cmHandle IDs + * @return collection of data nodes + */ + Collection<DataNode> getCmHandleDataNodes(Collection<String> cmHandleIds); + + /** + * get CM handles that has given module names. + * + * @param moduleNamesForQuery module names + * @return Collection of CM handle Ids + */ + Collection<String> getCmHandleIdsWithGivenModules(Collection<String> moduleNamesForQuery); +} |