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=a82d69acbd1e944289c47cbf471eb9f95d95a928;hpb=fa56d71bb94d88f657a9d73fb91c3036220f32ab;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 a82d69acb..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,8 +21,9 @@ package org.onap.cps.spi; +import java.util.Collection; import java.util.Map; -import org.checkerframework.checker.nullness.qual.NonNull; +import org.onap.cps.spi.model.ModuleReference; /** * Service to manage modules. @@ -35,16 +37,76 @@ public interface CpsModulePersistenceService { * @param schemaSetName schema set name * @param yangResourcesNameToContentMap YANG resources (files) map where key is a name and value is content */ - void storeSchemaSet(@NonNull String dataspaceName, @NonNull String schemaSetName, - @NonNull Map yangResourcesNameToContentMap); + 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 namespace / schemaSetName. + * Returns YANG resources per specific dataspace / schemaSetName. * - * @param namespace module namespace + * @param dataspaceName dataspace name * @param schemaSetName schema set name * @return YANG resources (files) map where key is a name and value is content */ - @NonNull - Map getYangSchemaResources(@NonNull String namespace, @NonNull String schemaSetName); + 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); + }