blob: 990ee693ddcd39e904e78da178d938eb6c3e3627 [file] [log] [blame]
/*
* Copyright 2015 Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.pcepio.protocol;
import org.onosproject.pcepio.exceptions.PcepParseException;
/**
* Abstraction of an entity Provides PcInitiatedLspRequest for PCEP Initiate message.
* Reference : PCE initiated tunnel setup draft-ietf-pce-pce-initiated-lsp-03.
*/
public interface PcInitiatedLspRequest {
/**
* Returns object of PcepSrpObject.
*
* @return srpObject PCEP SRP object
*/
PcepSrpObject getSrpObject();
/**
* Returns object of PcepLspObject.
*
* @return lspObject PCEP LSP object
*/
PcepLspObject getLspObject();
/**
* Returns object of PcepEndPointsObject.
*
* @return endPointsObject PCEP EndPoints object
*/
PcepEndPointsObject getEndPointsObject();
/**
* Returns object of PcepEroObject.
*
* @return eroObject PCEP ERO object
*/
PcepEroObject getEroObject();
/**
* Returns object of PcepAttribute.
*
* @return pcepAttribute PCEP Attributes
*/
PcepAttribute getPcepAttribute();
/**
* Sets PcepSrpObject.
*
* @param srpobj PCEP SRP object
*/
void setSrpObject(PcepSrpObject srpobj);
/**
* Sets PcepLspObject.
*
* @param lspObject PCEP LSP object
*/
void setLspObject(PcepLspObject lspObject);
/**
* Sets PcepEndPointsObject.
*
* @param endPointsObject PCEP EndPoints object
*/
void setEndPointsObject(PcepEndPointsObject endPointsObject);
/**
* Sets PcepEroObject.
*
* @param eroObject PCEP ERO object
*/
void setEroObject(PcepEroObject eroObject);
/**
* Sets PcepAttribute.
*
* @param pcepAttribute PCEP Attributes
*/
void setPcepAttribute(PcepAttribute pcepAttribute);
/**
* Prints the attribute of PC-INITIATED LSP INITIATION REQUEST.
*/
void print();
/**
* Builder interface with get and set functions to build PcInitiatedLspRequest.
*/
public interface Builder {
/**
* Builds PcInitiatedLspRequest.
*
* @return PcInitiatedLspRequest
* @throws PcepParseException when mandatory object is not set
*/
PcInitiatedLspRequest build() throws PcepParseException;
/**
* Returns object of PcepSrpObject.
*
* @return srpObject
*/
PcepSrpObject getSrpObject();
/**
* Returns object of PcepLspObject.
*
* @return lspObject
*/
PcepLspObject getLspObject();
/**
* Returns object of PcepEndPointsObject.
*
* @return endPointsObject
*/
PcepEndPointsObject getEndPointsObject();
/**
* Returns object of PcepEroObject.
*
* @return eroObject
*/
PcepEroObject getEroObject();
/**
* Returns object of PcepAttribute.
*
* @return pcepAttribute
*/
PcepAttribute getPcepAttribute();
/**
* Sets PcepSrpObject.
*
* @param srpobj PCEP SRP Object
* @return builder by setting PcepSrpObject
*/
Builder setSrpObject(PcepSrpObject srpobj);
/**
* Sets PcepLspObject.
*
* @param lspObject PCEP LSP Object
* @return builder by setting PcepLspObject
*/
Builder setLspObject(PcepLspObject lspObject);
/**
* Sets PcepEndPointsObject.
*
* @param endPointsObject EndPoints Object
* @return builder by setting PcepEndPointsObject
*/
Builder setEndPointsObject(PcepEndPointsObject endPointsObject);
/**
* Sets PcepEroObject.
*
* @param eroObject PCEP ERO Object
* @return builder by setting PcepEroObject
*/
Builder setEroObject(PcepEroObject eroObject);
/**
* Sets PcepAttribute.
*
* @param pcepAttribute PCEP Attributes
* @return builder by setting PcepAttribute
*/
Builder setPcepAttribute(PcepAttribute pcepAttribute);
}
}