Added range type to subject-feature-definition/parameter
[groupbasedpolicy.git] / renderers / opflex / src / main / java / org / opendaylight / groupbasedpolicy / renderer / opflex / EprOperation.java
1 /*
2  * Copyright (c) 2014 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.groupbasedpolicy.renderer.opflex;
10
11 import java.util.concurrent.ScheduledExecutorService;
12
13 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
14 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
15
16 /**
17  * Interface for managing operations with the Endpoint Registry.
18  * An operation is the smallest granularity of interaction with
19  * the Endpoint Registry. Put (create/update), Delete, and Read
20  * operations are supported.
21  *
22  * @author thbachma
23  *
24  */
25 public interface EprOperation {
26         /**
27          * Callback interface used to provide notifications
28          * to other objects.
29          *
30          * @author thbachma
31          *
32          */
33     public interface EprOpCallback {
34         public void callback(EprOperation op);
35     }
36
37     /**
38      * Perform a PUT operation, which can be either a
39      * creation or update of an element of the Endpoint
40      * Registry
41      *
42      * @param wt
43      */
44         public void put(WriteTransaction wt);
45
46         /**
47          * Perform a DELETE operation for the requested Endpoint.
48          *
49          * @param wt
50          */
51         public void delete(WriteTransaction wt);
52
53         /**
54          * Return the data associated with the requested Endpoint.
55          *
56          * @param rot
57          * @param executor
58          */
59         public void read(ReadOnlyTransaction rot,
60                         ScheduledExecutorService executor);
61
62         /**
63          * Set the callback notification
64          *
65          * @param callback
66          */
67         public void setCallback(EprOpCallback callback);
68 }