6a2fdc8875e4eb67f39b1be6319983ea6fec6783
[onosfw.git] /
1 /*
2  * Copyright 2015 Open Networking Laboratory
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package org.onosproject.pcepio.protocol;
18
19 import org.onosproject.pcepio.exceptions.PcepParseException;
20
21 /**
22  * Abstraction of an entity Provides PcInitiatedLspRequest for PCEP Initiate message.
23  * Reference : PCE initiated tunnel setup draft-ietf-pce-pce-initiated-lsp-03.
24  */
25 public interface PcInitiatedLspRequest {
26
27     /**
28      * Returns object of PcepSrpObject.
29      *
30      * @return srpObject PCEP SRP object
31      */
32     PcepSrpObject getSrpObject();
33
34     /**
35      * Returns object of PcepLspObject.
36      *
37      * @return lspObject PCEP LSP object
38      */
39     PcepLspObject getLspObject();
40
41     /**
42      * Returns object of PcepEndPointsObject.
43      *
44      * @return endPointsObject PCEP EndPoints object
45      */
46     PcepEndPointsObject getEndPointsObject();
47
48     /**
49      * Returns object of PcepEroObject.
50      *
51      * @return eroObject PCEP ERO object
52      */
53     PcepEroObject getEroObject();
54
55     /**
56      * Returns object of PcepAttribute.
57      *
58      * @return pcepAttribute PCEP Attributes
59      */
60     PcepAttribute getPcepAttribute();
61
62     /**
63      * Sets PcepSrpObject.
64      *
65      * @param srpobj PCEP SRP object
66      */
67     void setSrpObject(PcepSrpObject srpobj);
68
69     /**
70      * Sets PcepLspObject.
71      *
72      * @param lspObject PCEP LSP object
73      */
74     void setLspObject(PcepLspObject lspObject);
75
76     /**
77      * Sets PcepEndPointsObject.
78      *
79      * @param endPointsObject PCEP EndPoints object
80      */
81     void setEndPointsObject(PcepEndPointsObject endPointsObject);
82
83     /**
84      * Sets PcepEroObject.
85      *
86      * @param eroObject PCEP ERO object
87      */
88     void setEroObject(PcepEroObject eroObject);
89
90     /**
91      * Sets PcepAttribute.
92      *
93      * @param pcepAttribute PCEP Attributes
94      */
95     void setPcepAttribute(PcepAttribute pcepAttribute);
96
97     /**
98      * Builder interface with get and set functions to build PcInitiatedLspRequest.
99      */
100     interface Builder {
101
102         /**
103          * Builds PcInitiatedLspRequest.
104          *
105          * @return PcInitiatedLspRequest
106          * @throws PcepParseException when mandatory object is not set
107          */
108         PcInitiatedLspRequest build() throws PcepParseException;
109
110         /**
111          * Returns object of PcepSrpObject.
112          *
113          * @return srpObject
114          */
115         PcepSrpObject getSrpObject();
116
117         /**
118          * Returns object of PcepLspObject.
119          *
120          * @return lspObject
121          */
122         PcepLspObject getLspObject();
123
124         /**
125          * Returns object of PcepEndPointsObject.
126          *
127          * @return endPointsObject
128          */
129         PcepEndPointsObject getEndPointsObject();
130
131         /**
132          * Returns object of PcepEroObject.
133          *
134          * @return eroObject
135          */
136         PcepEroObject getEroObject();
137
138         /**
139          * Returns object of PcepAttribute.
140          *
141          * @return pcepAttribute
142          */
143         PcepAttribute getPcepAttribute();
144
145         /**
146          * Sets PcepSrpObject.
147          *
148          * @param srpobj PCEP SRP Object
149          * @return builder by setting PcepSrpObject
150          */
151         Builder setSrpObject(PcepSrpObject srpobj);
152
153         /**
154          * Sets PcepLspObject.
155          *
156          * @param lspObject PCEP LSP Object
157          * @return builder by setting PcepLspObject
158          */
159         Builder setLspObject(PcepLspObject lspObject);
160
161         /**
162          * Sets PcepEndPointsObject.
163          *
164          * @param endPointsObject EndPoints Object
165          * @return builder by setting PcepEndPointsObject
166          */
167         Builder setEndPointsObject(PcepEndPointsObject endPointsObject);
168
169         /**
170          * Sets PcepEroObject.
171          *
172          * @param eroObject PCEP ERO Object
173          * @return builder by setting PcepEroObject
174          */
175         Builder setEroObject(PcepEroObject eroObject);
176
177         /**
178          * Sets PcepAttribute.
179          *
180          * @param pcepAttribute PCEP Attributes
181          * @return builder by setting PcepAttribute
182          */
183         Builder setPcepAttribute(PcepAttribute pcepAttribute);
184     }
185 }