X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=cps-service%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fcps%2Fspi%2FCpsModulePersistenceService.java;h=0e90e84f1edda5c6560ef5d7c747e4789c6deb3d;hb=697caa85dd35d5996d604935987e43b61b5811c2;hp=63f1f36c735a782ff8b6d1320493e576c7cb9ed4;hpb=45b0d293c2d625c6d352d71a743f832c5e287c4e;p=cps.git diff --git a/cps-service/src/main/java/org/onap/cps/spi/CpsModulePersistenceService.java b/cps-service/src/main/java/org/onap/cps/spi/CpsModulePersistenceService.java old mode 100644 new mode 100755 index 63f1f36c7..0e90e84f1 --- a/cps-service/src/main/java/org/onap/cps/spi/CpsModulePersistenceService.java +++ b/cps-service/src/main/java/org/onap/cps/spi/CpsModulePersistenceService.java @@ -1,13 +1,14 @@ /* * ============LICENSE_START======================================================= - * Copyright (C) 2020 Nordix Foundation - * Modifications Copyright (C) 2020 Bell Canada. All rights reserved. + * Copyright (C) 2020-2022 Nordix Foundation + * Modifications Copyright (C) 2020-2022 Bell Canada. * ================================================================================ * 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. @@ -39,11 +40,73 @@ public interface CpsModulePersistenceService { void storeSchemaSet(String dataspaceName, String schemaSetName, Map yangResourcesNameToContentMap); /** - * Returns Modules references per specific namespace / schemaSetName. + * Stores a schema set from new modules and existing modules. + * + * @param dataspaceName Dataspace name + * @param schemaSetName Schema set name + * @param newModuleNameToContentMap YANG resources map where key is a module name and value is content + * @param moduleReferences List of YANG resources module references + */ + void storeSchemaSetFromModules(String dataspaceName, String schemaSetName, + Map newModuleNameToContentMap, Collection moduleReferences); + + /** + * Deletes Schema Set. + * + * @param dataspaceName dataspace name + * @param schemaSetName schema set name + */ + void deleteSchemaSet(String dataspaceName, String schemaSetName); + + /** + * Returns YANG resources per specific dataspace / schemaSetName. * - * @param namespace module namespace + * @param dataspaceName dataspace name * @param schemaSetName schema set name - * @return collection of ModuleRef + * @return YANG resources (files) map where key is a name and value is content + */ + Map getYangSchemaResources(String dataspaceName, String schemaSetName); + + /** + * Returns YANG resources per specific dataspace / anchorName. + * + * @param dataspaceName dataspace name + * @param anchorName anchor name + * @return YANG resources (files) map where key is a name and value is content */ - Collection getModuleReferences(String namespace, String schemaSetName); + Map getYangSchemaSetResources(String dataspaceName, String anchorName); + + /** + * Returns YANG resources module references for the given dataspace name. + * + * @param dataspaceName dataspace name + * @return Collection of all YANG resources module information in the database + */ + Collection getYangResourceModuleReferences(String dataspaceName); + + /** + * Get YANG resource module references for the given anchor name and dataspace name. + * + * @param dataspaceName dataspace name + * @param anchorName anchor name + * @return a collection of module names and revisions + */ + Collection getYangResourceModuleReferences(String dataspaceName, String anchorName); + + /** + * Remove unused Yang Resource Modules. + */ + void deleteUnusedYangResourceModules(); + + /** + * Identify new module references from those returned by a node compared to what is in CPS already. + * The system will ignore the namespace of all module references. + * + * @param moduleReferencesToCheck the module references ot check + * @returns Collection of {@link ModuleReference} (namespace will be always blank) + * + */ + Collection identifyNewModuleReferences( + Collection moduleReferencesToCheck); + }