All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.onosproject.cfg.ComponentConfigStore Maven / Gradle / Ivy

There is a newer version: 2.7.0
Show newest version
/*
 * Copyright 2015-present Open Networking Foundation
 *
 * 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.
 */
package org.onosproject.cfg;

import com.google.common.collect.ImmutableSet;
import org.onosproject.store.Store;

import java.util.Set;

/**
 * Service for storing and distributing system-wide configurations for various
 * software components.
 */
public interface ComponentConfigStore
        extends Store {

    /**
     * Sets the value of the specified configuration property.
     *
     * @param componentName component name
     * @param name          property name
     * @param value         new property value
     */
    void setProperty(String componentName, String name, String value);

    /**
     * Sets the value of the specified configuration property.
     *
     * @param componentName component name
     * @param name          property name
     * @param value         new property value
     * @param override      true to override even if the property has been set to other value
     */
    void setProperty(String componentName, String name, String value, boolean override);

    /**
     * Clears the value of the specified configuration property thus making
     * the property take on its default value.
     *
     * @param componentName component name
     * @param name          property name
     */
    void unsetProperty(String componentName, String name);


    /**
     * Returns set of component configuration property names. This includes
     * only the names of properties whose values depart from their default.
     *
     * @param component component name
     * @return set of property names whose values are set to non-default values
     */
    default Set getProperties(String component) {
        return ImmutableSet.of();
    }

    /**
     * Returns the string value of the given component configuration property.
     * For properties whose values are set to their default this may return null.
     *
     * @param component component name
     * @param name      property name; null if no property found or if value
     *                  is default
     * @return set of property names
     */
    default String getProperty(String component, String name) {
        return null;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy