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();