Make sure invokeOperation is set once
[controller.git] / opendaylight / adsal / switchmanager / implementation / src / main / java / org / opendaylight / controller / switchmanager / internal / IControllerProperties.java
1 /*
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8
9 package org.opendaylight.controller.switchmanager.internal;
10
11 import java.util.Map;
12
13 import org.opendaylight.controller.sal.core.Property;
14 import org.opendaylight.controller.sal.utils.Status;
15
16 /**
17  * The class ControllerProperties is a global store
18  * for controller properties. Use this api to store/retrieve properties
19  * that are container independent.
20  *
21  * This is visible only to switch manager. Hence its a part of
22  * switch manager internal bundle.
23  */
24 public interface IControllerProperties {
25
26     /**
27      * Return all the global properties of the controller
28      *
29      * @return map of {@link org.opendaylight.controller.sal.core.Property} such
30      *         as {@link org.opendaylight.controller.sal.core.Description}
31      *         and/or {@link org.opendaylight.controller.sal.core.Tier} etc.
32      */
33     public Map<String, Property> getControllerProperties();
34
35     /**
36      * Return a specific property of the controller given the property name
37      *
38      * @param propertyName
39      *            the property name specified by
40      *            {@link org.opendaylight.controller.sal.core.Property} and its
41      *            extended classes
42      * @return {@link org.opendaylight.controller.sal.core.Property}
43      */
44     public Property getControllerProperty(String propertyName);
45
46     /**
47      * Set a specific property of the controller
48      *
49      * @param property
50      *            {@link org.opendaylight.controller.sal.core.Property}
51      * @return Status
52      */
53     public Status setControllerProperty(Property property);
54
55     /**
56      * Remove a property of a node
57      *
58      * @param propertyName
59      *            the property name specified by
60      *            {@link org.opendaylight.controller.sal.core.Property} and its
61      *            extended classes
62      * @return success or failed reason
63      */
64     public Status removeControllerProperty(String propertyName);
65
66 }