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.ver1;
19 import org.onosproject.pcepio.protocol.PcInitiatedLspRequest;
20 import org.onosproject.pcepio.protocol.PcepAttribute;
21 import org.onosproject.pcepio.protocol.PcepBandwidthObject;
22 import org.onosproject.pcepio.protocol.PcepCloseMsg;
23 import org.onosproject.pcepio.protocol.PcepEndPointsObject;
24 import org.onosproject.pcepio.protocol.PcepEroObject;
25 import org.onosproject.pcepio.protocol.PcepErrorInfo;
26 import org.onosproject.pcepio.protocol.PcepError;
27 import org.onosproject.pcepio.protocol.PcepErrorMsg;
28 import org.onosproject.pcepio.protocol.PcepErrorObject;
29 import org.onosproject.pcepio.protocol.PcepFactory;
30 import org.onosproject.pcepio.protocol.PcepFecObjectIPv4Adjacency;
31 import org.onosproject.pcepio.protocol.PcepInitiateMsg;
32 import org.onosproject.pcepio.protocol.PcepIroObject;
33 import org.onosproject.pcepio.protocol.PcepKeepaliveMsg;
34 import org.onosproject.pcepio.protocol.PcepLabelObject;
35 import org.onosproject.pcepio.protocol.PcepLabelRangeObject;
36 import org.onosproject.pcepio.protocol.PcepLabelRangeResvMsg;
37 import org.onosproject.pcepio.protocol.PcepLabelUpdate;
38 import org.onosproject.pcepio.protocol.PcepLabelUpdateMsg;
39 import org.onosproject.pcepio.protocol.PcepLspObject;
40 import org.onosproject.pcepio.protocol.PcepLspaObject;
41 import org.onosproject.pcepio.protocol.PcepMessage;
42 import org.onosproject.pcepio.protocol.PcepMessageReader;
43 import org.onosproject.pcepio.protocol.PcepMetricObject;
44 import org.onosproject.pcepio.protocol.PcepMsgPath;
45 import org.onosproject.pcepio.protocol.PcepOpenMsg;
46 import org.onosproject.pcepio.protocol.PcepOpenObject;
47 import org.onosproject.pcepio.protocol.PcepReportMsg;
48 import org.onosproject.pcepio.protocol.PcepRroObject;
49 import org.onosproject.pcepio.protocol.PcepSrpObject;
50 import org.onosproject.pcepio.protocol.PcepStateReport;
51 import org.onosproject.pcepio.protocol.PcepUpdateMsg;
52 import org.onosproject.pcepio.protocol.PcepUpdateRequest;
53 import org.onosproject.pcepio.protocol.PcepVersion;
56 * Provides PCEP Factory and returns builder classes for all objects and messages.
58 public class PcepFactoryVer1 implements PcepFactory {
60 public static final PcepFactoryVer1 INSTANCE = new PcepFactoryVer1();
63 public PcepOpenMsg.Builder buildOpenMsg() {
64 return new PcepOpenMsgVer1.Builder();
68 public PcepOpenObject.Builder buildOpenObject() {
69 return new PcepOpenObjectVer1.Builder();
73 public PcepKeepaliveMsg.Builder buildKeepaliveMsg() {
74 return new PcepKeepaliveMsgVer1.Builder();
78 public PcepCloseMsg.Builder buildCloseMsg() {
79 return new PcepCloseMsgVer1.Builder();
83 public PcepUpdateMsg.Builder buildUpdateMsg() {
84 return new PcepUpdateMsgVer1.Builder();
88 public PcepReportMsg.Builder buildReportMsg() {
89 return new PcepReportMsgVer1.Builder();
93 public PcepInitiateMsg.Builder buildPcepInitiateMsg() {
94 return new PcepInitiateMsgVer1.Builder();
98 public PcepLspObject.Builder buildLspObject() {
99 return new PcepLspObjectVer1.Builder();
103 public PcepMessageReader<PcepMessage> getReader() {
104 return PcepMessageVer1.READER;
108 public PcepVersion getVersion() {
109 return PcepVersion.PCEP_1;
113 public PcepSrpObject.Builder buildSrpObject() {
114 return new PcepSrpObjectVer1.Builder();
118 public PcepEndPointsObject.Builder buildEndPointsObject() {
119 return new PcepEndPointsObjectVer1.Builder();
123 public PcepEroObject.Builder buildEroObject() {
124 return new PcepEroObjectVer1.Builder();
128 public PcepRroObject.Builder buildRroObject() {
129 return new PcepRroObjectVer1.Builder();
133 public PcepLspaObject.Builder buildLspaObject() {
134 return new PcepLspaObjectVer1.Builder();
138 public PcepIroObject.Builder buildIroObject() {
139 return new PcepIroObjectVer1.Builder();
143 public PcepMetricObject.Builder buildMetricObject() {
144 return new PcepMetricObjectVer1.Builder();
148 public PcepBandwidthObject.Builder buildBandwidthObject() {
149 return new PcepBandwidthObjectVer1.Builder();
153 public PcepMsgPath.Builder buildPcepMsgPath() {
154 return new PcepMsgPathVer1.Builder();
158 public PcepStateReport.Builder buildPcepStateReport() {
159 return new PcepStateReportVer1.Builder();
163 public PcepUpdateRequest.Builder buildPcepUpdateRequest() {
164 return new PcepUpdateRequestVer1.Builder();
168 public PcInitiatedLspRequest.Builder buildPcInitiatedLspRequest() {
169 return new PcInitiatedLspRequestVer1.Builder();
173 public PcepAttribute.Builder buildPcepAttribute() {
174 return new PcepAttributeVer1.Builder();
178 public PcepLabelUpdateMsg.Builder buildPcepLabelUpdateMsg() {
179 return new PcepLabelUpdateMsgVer1.Builder();
183 public PcepLabelUpdate.Builder buildPcepLabelUpdateObject() {
184 return new PcepLabelUpdateVer1.Builder();
188 public PcepLabelObject.Builder buildLabelObject() {
189 return new PcepLabelObjectVer1.Builder();
193 public PcepErrorMsg.Builder buildPcepErrorMsg() {
194 return new PcepErrorMsgVer1.Builder();
198 public PcepErrorObject.Builder buildPcepErrorObject() {
199 return new PcepErrorObjectVer1.Builder();
203 public PcepFecObjectIPv4Adjacency.Builder buildFecIpv4Adjacency() {
204 return new PcepFecObjectIPv4AdjacencyVer1.Builder();
208 public PcepErrorInfo.Builder buildPcepErrorInfo() {
209 return new PcepErrorInfoVer1.Builder();
213 public PcepError.Builder buildPcepError() {
214 return new PcepErrorVer1.Builder();
218 public PcepLabelRangeObject.Builder buildPcepLabelRangeObject() {
219 return new PcepLabelRangeObjectVer1.Builder();
223 public PcepLabelRangeResvMsg.Builder buildPcepLabelRangeResvMsg() {
224 return new PcepLabelRangeResvMsgVer1.Builder();