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=3d02e9210625b75419089a3f5612f386c3b997ea;hp=7feae367e848a4870c8c18c4123ae66687d340ca;hpb=966f3ab710bd1bebaa81e2394627df47a3f98909;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 7feae367e..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. @@ -20,29 +21,15 @@ package org.onap.cps.spi; +import java.util.Collection; import java.util.Map; +import org.onap.cps.spi.model.ModuleReference; /** * Service to manage modules. */ public interface CpsModulePersistenceService { - /** - * TODO - * clean up method to conform with spi proposal - https://jira.onap.org/browse/CPS-103 - * Store the module from a yang model in the database. - * @deprecated - * - * @param namespace module namespace - * @param moduleContent module content - * @param revision module revision - * @param dataspaceName the name of the dataspace the module is associated with - */ - @Deprecated(forRemoval = true) - void storeModule(final String namespace, final String moduleContent, final String revision, - final String dataspaceName); - - /** * Stores Schema Set. * @@ -52,4 +39,74 @@ public interface CpsModulePersistenceService { */ void storeSchemaSet(String dataspaceName, String schemaSetName, Map yangResourcesNameToContentMap); + /** + * 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 dataspaceName dataspace name + * @param schemaSetName schema set name + * @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 + */ + 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); + }