2 * Copyright 2015 Open Networking Laboratory
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 package org.onosproject.pcepio.protocol;
19 import org.onosproject.pcepio.exceptions.PcepParseException;
22 * Abstraction of an entity Provides PcInitiatedLspRequest for PCEP Initiate message.
23 * Reference : PCE initiated tunnel setup draft-ietf-pce-pce-initiated-lsp-03.
25 public interface PcInitiatedLspRequest {
28 * Returns object of PcepSrpObject.
30 * @return srpObject PCEP SRP object
32 PcepSrpObject getSrpObject();
35 * Returns object of PcepLspObject.
37 * @return lspObject PCEP LSP object
39 PcepLspObject getLspObject();
42 * Returns object of PcepEndPointsObject.
44 * @return endPointsObject PCEP EndPoints object
46 PcepEndPointsObject getEndPointsObject();
49 * Returns object of PcepEroObject.
51 * @return eroObject PCEP ERO object
53 PcepEroObject getEroObject();
56 * Returns object of PcepAttribute.
58 * @return pcepAttribute PCEP Attributes
60 PcepAttribute getPcepAttribute();
65 * @param srpobj PCEP SRP object
67 void setSrpObject(PcepSrpObject srpobj);
72 * @param lspObject PCEP LSP object
74 void setLspObject(PcepLspObject lspObject);
77 * Sets PcepEndPointsObject.
79 * @param endPointsObject PCEP EndPoints object
81 void setEndPointsObject(PcepEndPointsObject endPointsObject);
86 * @param eroObject PCEP ERO object
88 void setEroObject(PcepEroObject eroObject);
93 * @param pcepAttribute PCEP Attributes
95 void setPcepAttribute(PcepAttribute pcepAttribute);
98 * Builder interface with get and set functions to build PcInitiatedLspRequest.
103 * Builds PcInitiatedLspRequest.
105 * @return PcInitiatedLspRequest
106 * @throws PcepParseException when mandatory object is not set
108 PcInitiatedLspRequest build() throws PcepParseException;
111 * Returns object of PcepSrpObject.
115 PcepSrpObject getSrpObject();
118 * Returns object of PcepLspObject.
122 PcepLspObject getLspObject();
125 * Returns object of PcepEndPointsObject.
127 * @return endPointsObject
129 PcepEndPointsObject getEndPointsObject();
132 * Returns object of PcepEroObject.
136 PcepEroObject getEroObject();
139 * Returns object of PcepAttribute.
141 * @return pcepAttribute
143 PcepAttribute getPcepAttribute();
146 * Sets PcepSrpObject.
148 * @param srpobj PCEP SRP Object
149 * @return builder by setting PcepSrpObject
151 Builder setSrpObject(PcepSrpObject srpobj);
154 * Sets PcepLspObject.
156 * @param lspObject PCEP LSP Object
157 * @return builder by setting PcepLspObject
159 Builder setLspObject(PcepLspObject lspObject);
162 * Sets PcepEndPointsObject.
164 * @param endPointsObject EndPoints Object
165 * @return builder by setting PcepEndPointsObject
167 Builder setEndPointsObject(PcepEndPointsObject endPointsObject);
170 * Sets PcepEroObject.
172 * @param eroObject PCEP ERO Object
173 * @return builder by setting PcepEroObject
175 Builder setEroObject(PcepEroObject eroObject);
178 * Sets PcepAttribute.
180 * @param pcepAttribute PCEP Attributes
181 * @return builder by setting PcepAttribute
183 Builder setPcepAttribute(PcepAttribute pcepAttribute);