Use LF as line separator

Change-Id: Iaaed8d5bf5157ceba403f53cf86dd535a70f41f8
diff --git a/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepRPObjectVer1.java b/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepRPObjectVer1.java
index afb85bf..3a4890d 100644
--- a/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepRPObjectVer1.java
+++ b/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/ver1/PcepRPObjectVer1.java
@@ -1,439 +1,439 @@
-/*

- * 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.ver1;

-

-import java.util.LinkedList;

-import java.util.ListIterator;

-

-import org.jboss.netty.buffer.ChannelBuffer;

-import org.onosproject.pcepio.exceptions.PcepParseException;

-import org.onosproject.pcepio.protocol.PcepRPObject;

-import org.onosproject.pcepio.types.PcepObjectHeader;

-import org.onosproject.pcepio.types.PcepValueType;

-import org.slf4j.Logger;

-import org.slf4j.LoggerFactory;

-

-import com.google.common.base.MoreObjects;

-

-/**

- * Provides PCEP RP object.

- */

-public class PcepRPObjectVer1 implements PcepRPObject {

-

-    /*

-     *  RP Object.

-    0                   1                   2                   3

-    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

-    |                          Flags                    |O|B|R| Pri |

-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

-    |                        Request-ID-number                      |

-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

-    |                                                               |

-    //                      Optional TLVs                          //

-    |                                                               |

-    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

-     */

-

-    protected static final Logger log = LoggerFactory.getLogger(PcepRPObjectVer1.class);

-

-    public static final byte RP_OBJ_TYPE = 1;

-    public static final byte RP_OBJ_CLASS = 2;

-    public static final byte RP_OBJECT_VERSION = 1;

-    public static final short RP_OBJ_MINIMUM_LENGTH = 12;

-

-    public static final int DEFAULT_REQUEST_ID_NUM = 0;

-    //Signalled , all default values to be checked.

-    public static final boolean DEFAULT_OFLAG = false;

-    public static final boolean DEFAULT_BFLAG = false;

-    public static final boolean DEFAULT_RFLAG = false;

-    public static final byte DEFAULT_PRIFLAG = 0;

-    public static final int OBJECT_HEADER_LENGTH = 4;

-    public static final int OFLAG_SHIFT_VALUE = 5;

-    public static final int BFLAG_SHIFT_VALUE = 4;

-    public static final int RFLAG_SHIFT_VALUE = 3;

-    public static final int OFLAG_TEMP_SHIFT_VALUE = 0x20;

-    public static final int BFLAG_TEMP_SHIFT_VALUE = 0x10;

-    public static final int RFLAG_TEMP_SHIFT_VALUE = 0x08;

-    public static final int PRIFLAG_TEMP_SHIFT_VALUE = 0x07;

-    public static final int BIT_SET = 1;

-    public static final int BIT_RESET = 0;

-    public static final int MINIMUM_COMMON_HEADER_LENGTH = 4;

-

-    public static final PcepObjectHeader DEFAULT_RP_OBJECT_HEADER = new PcepObjectHeader(RP_OBJ_CLASS, RP_OBJ_TYPE,

-            PcepObjectHeader.REQ_OBJ_OPTIONAL_PROCESS, PcepObjectHeader.RSP_OBJ_PROCESSED, RP_OBJ_MINIMUM_LENGTH);

-

-    private PcepObjectHeader rpObjHeader;

-    private int iRequestIdNum;

-    private boolean bOFlag;

-    private boolean bBFlag;

-    private boolean bRFlag;

-    private byte yPriFlag; // 3bytes

-    private LinkedList<PcepValueType> llOptionalTlv;

-

-    /**

-     * Constructor to initialize variables.

-     *

-     * @param rpObjHeader RP-OBJECT header

-     * @param iRequestIdNum Request-ID-number

-     * @param bOFlag O-flag

-     * @param bBFlag B-flag

-     * @param bRFlag R-flag

-     * @param yPriFlag Pri-flag

-     * @param llOptionalTlv linked list of Optional TLV

-     */

-    public PcepRPObjectVer1(PcepObjectHeader rpObjHeader, int iRequestIdNum, boolean bOFlag, boolean bBFlag,

-            boolean bRFlag, byte yPriFlag, LinkedList<PcepValueType> llOptionalTlv) {

-        this.rpObjHeader = rpObjHeader;

-        this.iRequestIdNum = iRequestIdNum;

-        this.bOFlag = bOFlag;

-        this.bBFlag = bBFlag;

-        this.bRFlag = bRFlag;

-        this.yPriFlag = yPriFlag;

-        this.llOptionalTlv = llOptionalTlv;

-    }

-

-    /**

-     * Sets RP Object header.

-     *

-     * @param obj RP Object header

-     */

-    public void setRPObjHeader(PcepObjectHeader obj) {

-        this.rpObjHeader = obj;

-    }

-

-    @Override

-    public void setRequestIdNum(int iRequestIdNum) {

-        this.iRequestIdNum = iRequestIdNum;

-    }

-

-    @Override

-    public void setOFlag(boolean bOFlag) {

-        this.bOFlag = bOFlag;

-    }

-

-    @Override

-    public void setBFlag(boolean bBFlag) {

-        this.bBFlag = bBFlag;

-    }

-

-    @Override

-    public void setRFlag(boolean bRFlag) {

-        this.bRFlag = bRFlag;

-    }

-

-    @Override

-    public void setPriFlag(byte yPriFlag) {

-        this.yPriFlag = yPriFlag;

-    }

-

-    /**

-     * Returns RP Object header.

-     *

-     * @return rpObjHeader

-     */

-    public PcepObjectHeader getRPObjHeader() {

-        return this.rpObjHeader;

-    }

-

-    @Override

-    public int getRequestIdNum() {

-        return this.iRequestIdNum;

-    }

-

-    @Override

-    public boolean getOFlag() {

-        return this.bOFlag;

-    }

-

-    @Override

-    public boolean getBFlag() {

-        return this.bBFlag;

-    }

-

-    @Override

-    public boolean getRFlag() {

-        return this.bRFlag;

-    }

-

-    @Override

-    public byte getPriFlag() {

-        return this.yPriFlag;

-    }

-

-    /**

-     * Reads the channel buffer and returns the object of PcepRPObject.

-     *

-     * @param cb of type channel buffer

-     * @return the object of PcepRPObject

-     * @throws PcepParseException if mandatory fields are missing

-     */

-    public static PcepRPObject read(ChannelBuffer cb) throws PcepParseException {

-        log.debug("read");

-        PcepObjectHeader rpObjHeader;

-        int iRequestIdNum;

-        boolean bOFlag;

-        boolean bBFlag;

-        boolean bRFlag;

-        byte yPriFlag; // 3bytes

-        LinkedList<PcepValueType> llOptionalTlv = new LinkedList<PcepValueType>();

-

-        rpObjHeader = PcepObjectHeader.read(cb);

-

-        //take only LspObject buffer.

-        ChannelBuffer tempCb = cb.readBytes(rpObjHeader.getObjLen() - OBJECT_HEADER_LENGTH);

-

-        int iTemp = tempCb.readInt();

-        yPriFlag = (byte) (iTemp & PRIFLAG_TEMP_SHIFT_VALUE);

-        bOFlag = (iTemp & OFLAG_TEMP_SHIFT_VALUE) == OFLAG_TEMP_SHIFT_VALUE ? true : false;

-        bBFlag = (iTemp & BFLAG_TEMP_SHIFT_VALUE) == BFLAG_TEMP_SHIFT_VALUE ? true : false;

-        bRFlag = (iTemp & RFLAG_TEMP_SHIFT_VALUE) == RFLAG_TEMP_SHIFT_VALUE ? true : false;

-

-        iRequestIdNum = tempCb.readInt();

-

-        // parse optional TLV

-        llOptionalTlv = parseOptionalTlv(tempCb);

-

-        return new PcepRPObjectVer1(rpObjHeader, iRequestIdNum, bOFlag, bBFlag, bRFlag, yPriFlag, llOptionalTlv);

-    }

-

-    @Override

-    public int write(ChannelBuffer cb) throws PcepParseException {

-

-        //write Object header

-        int objStartIndex = cb.writerIndex();

-

-        int objLenIndex = rpObjHeader.write(cb);

-

-        if (objLenIndex <= 0) {

-            throw new PcepParseException("ObjectLength Index is " + objLenIndex);

-        }

-        int iTemp;

-        iTemp = (yPriFlag);

-

-        iTemp = (bOFlag) ? (iTemp | OFLAG_SHIFT_VALUE) : iTemp;

-        iTemp = (bBFlag) ? (iTemp | BFLAG_SHIFT_VALUE) : iTemp;

-        iTemp = (bRFlag) ? (iTemp | RFLAG_SHIFT_VALUE) : iTemp;

-

-        cb.writeInt(iTemp);

-        cb.writeInt(iRequestIdNum);

-

-        // Add optional TLV

-        packOptionalTlv(cb);

-

-        //Update object length now

-        int length = cb.writerIndex() - objStartIndex;

-

-        //will be helpful during print().

-        rpObjHeader.setObjLen((short) length);

-

-        cb.setShort(objLenIndex, (short) length);

-        return cb.writerIndex();

-    }

-

-    /**

-     * Returns list of optional tlvs.

-     *

-     * @param cb of type channel buffer.

-     * @return llOutOptionalTlv linked list of Optional TLV

-     * @throws PcepParseException if mandatory fields are missing

-     */

-    protected static LinkedList<PcepValueType> parseOptionalTlv(ChannelBuffer cb) throws PcepParseException {

-

-        LinkedList<PcepValueType> llOutOptionalTlv = new LinkedList<PcepValueType>();

-        //Currently no optional TLvs, will be added based on requirements.

-        return llOutOptionalTlv;

-    }

-

-    /**

-     * Returns optional tlvs.

-     *

-     * @param cb of type channel buffer

-     * @return llOptionalTlv linked list of Optional TLV

-     */

-    protected int packOptionalTlv(ChannelBuffer cb) {

-

-        ListIterator<PcepValueType> listIterator = llOptionalTlv.listIterator();

-        while (listIterator.hasNext()) {

-            listIterator.next().write(cb);

-        }

-

-        return cb.writerIndex();

-    }

-

-    /**

-     * Builder class for PCEP rp object.

-     */

-    public static class Builder implements PcepRPObject.Builder {

-

-        private boolean bIsHeaderSet = false;

-        private boolean bIsRequestIdNumSet = false;

-        private boolean bIsOFlagSet = false;

-        private boolean bIsRFlagset = false;

-        private boolean bIsBFlagSet = false;

-        private boolean bIsPriFlagSet = false;

-

-        private PcepObjectHeader rpObjHeader;

-        private int requestIdNum;

-        private boolean bOFlag;

-        private boolean bBFlag;

-        private boolean bRFlag;

-        private byte yPriFlag;

-        private LinkedList<PcepValueType> llOptionalTlv = new LinkedList<PcepValueType>();

-

-        private boolean bIsPFlagSet = false;

-        private boolean bPFlag;

-

-        private boolean bIsIFlagSet = false;

-        private boolean bIFlag;

-

-        @Override

-        public PcepRPObject build() {

-            PcepObjectHeader lspObjHeader = this.bIsHeaderSet ? this.rpObjHeader : DEFAULT_RP_OBJECT_HEADER;

-

-            int requestIdNum = this.bIsRequestIdNumSet ? this.requestIdNum : DEFAULT_REQUEST_ID_NUM;

-            boolean bOFlag = this.bIsOFlagSet ? this.bOFlag : DEFAULT_OFLAG;

-            boolean bBFlag = this.bIsBFlagSet ? this.bBFlag : DEFAULT_BFLAG;

-            boolean bRFlag = this.bIsRFlagset ? this.bRFlag : DEFAULT_RFLAG;

-            byte yPriFlag = this.bIsPriFlagSet ? this.yPriFlag : DEFAULT_PRIFLAG;

-

-            if (bIsPFlagSet) {

-                lspObjHeader.setPFlag(bPFlag);

-            }

-

-            if (bIsIFlagSet) {

-                lspObjHeader.setIFlag(bIFlag);

-            }

-

-            return new PcepRPObjectVer1(lspObjHeader, requestIdNum, bOFlag, bBFlag, bRFlag, yPriFlag, llOptionalTlv);

-        }

-

-        @Override

-        public PcepObjectHeader getRPObjHeader() {

-            return this.rpObjHeader;

-        }

-

-        @Override

-        public Builder setRPObjHeader(PcepObjectHeader obj) {

-            this.rpObjHeader = obj;

-            this.bIsHeaderSet = true;

-            return this;

-        }

-

-        @Override

-        public int getRequestIdNum() {

-            return this.requestIdNum;

-        }

-

-        @Override

-        public Builder setRequestIdNum(int value) {

-            this.requestIdNum = value;

-            this.bIsRequestIdNumSet = true;

-            return this;

-        }

-

-        @Override

-        public Builder setOFlag(boolean value) {

-            this.bOFlag = value;

-            this.bIsOFlagSet = true;

-            return this;

-        }

-

-        @Override

-        public boolean getBFlag() {

-            return this.bBFlag;

-        }

-

-        @Override

-        public Builder setBFlag(boolean value) {

-            this.bBFlag = value;

-            this.bIsBFlagSet = true;

-            return this;

-        }

-

-        @Override

-        public boolean getRFlag() {

-            return this.bRFlag;

-        }

-

-        @Override

-        public Builder setRFlag(boolean value) {

-            this.bRFlag = value;

-            this.bIsRFlagset = true;

-            return this;

-        }

-

-        @Override

-        public byte getPriFlag() {

-            return this.yPriFlag;

-        }

-

-        @Override

-        public Builder setPriFlag(byte value) {

-            this.yPriFlag = value;

-            this.bIsPriFlagSet = true;

-            return this;

-        }

-

-        @Override

-        public Builder setOptionalTlv(LinkedList<PcepValueType> llOptionalTlv) {

-            this.llOptionalTlv = llOptionalTlv;

-            return this;

-        }

-

-        @Override

-        public LinkedList<PcepValueType> getOptionalTlv() {

-            return this.llOptionalTlv;

-        }

-

-        @Override

-        public Builder setPFlag(boolean value) {

-            this.bPFlag = value;

-            this.bIsPFlagSet = true;

-            return this;

-        }

-

-        @Override

-        public Builder setIFlag(boolean value) {

-            this.bIFlag = value;

-            this.bIsIFlagSet = true;

-            return this;

-        }

-

-        @Override

-        public boolean getOFlag() {

-            return this.bOFlag;

-        }

-

-    }

-

-    @Override

-    public LinkedList<PcepValueType> getOptionalTlv() {

-        return this.llOptionalTlv;

-    }

-

-    @Override

-    public void setOptionalTlv(LinkedList<PcepValueType> llOptionalTlv) {

-        this.llOptionalTlv = llOptionalTlv;

-    }

-

-    @Override

-    public String toString() {

-        return MoreObjects.toStringHelper(getClass()).add("ObjectHeader", rpObjHeader).add("OFlag", (bOFlag) ? 1 : 0)

-                .add("BFlag", (bBFlag) ? 1 : 0).add("RFlag", (bRFlag) ? 1 : 0).add("PriFlag", yPriFlag)

-                .add("RequestIdNumber", iRequestIdNum).add("OptionalTlv", llOptionalTlv).toString();

-    }

-}

+/*
+ * 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.ver1;
+
+import java.util.LinkedList;
+import java.util.ListIterator;
+
+import org.jboss.netty.buffer.ChannelBuffer;
+import org.onosproject.pcepio.exceptions.PcepParseException;
+import org.onosproject.pcepio.protocol.PcepRPObject;
+import org.onosproject.pcepio.types.PcepObjectHeader;
+import org.onosproject.pcepio.types.PcepValueType;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.google.common.base.MoreObjects;
+
+/**
+ * Provides PCEP RP object.
+ */
+public class PcepRPObjectVer1 implements PcepRPObject {
+
+    /*
+     *  RP Object.
+    0                   1                   2                   3
+    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    |                          Flags                    |O|B|R| Pri |
+    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    |                        Request-ID-number                      |
+    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+    |                                                               |
+    //                      Optional TLVs                          //
+    |                                                               |
+    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+     */
+
+    protected static final Logger log = LoggerFactory.getLogger(PcepRPObjectVer1.class);
+
+    public static final byte RP_OBJ_TYPE = 1;
+    public static final byte RP_OBJ_CLASS = 2;
+    public static final byte RP_OBJECT_VERSION = 1;
+    public static final short RP_OBJ_MINIMUM_LENGTH = 12;
+
+    public static final int DEFAULT_REQUEST_ID_NUM = 0;
+    //Signalled , all default values to be checked.
+    public static final boolean DEFAULT_OFLAG = false;
+    public static final boolean DEFAULT_BFLAG = false;
+    public static final boolean DEFAULT_RFLAG = false;
+    public static final byte DEFAULT_PRIFLAG = 0;
+    public static final int OBJECT_HEADER_LENGTH = 4;
+    public static final int OFLAG_SHIFT_VALUE = 5;
+    public static final int BFLAG_SHIFT_VALUE = 4;
+    public static final int RFLAG_SHIFT_VALUE = 3;
+    public static final int OFLAG_TEMP_SHIFT_VALUE = 0x20;
+    public static final int BFLAG_TEMP_SHIFT_VALUE = 0x10;
+    public static final int RFLAG_TEMP_SHIFT_VALUE = 0x08;
+    public static final int PRIFLAG_TEMP_SHIFT_VALUE = 0x07;
+    public static final int BIT_SET = 1;
+    public static final int BIT_RESET = 0;
+    public static final int MINIMUM_COMMON_HEADER_LENGTH = 4;
+
+    public static final PcepObjectHeader DEFAULT_RP_OBJECT_HEADER = new PcepObjectHeader(RP_OBJ_CLASS, RP_OBJ_TYPE,
+            PcepObjectHeader.REQ_OBJ_OPTIONAL_PROCESS, PcepObjectHeader.RSP_OBJ_PROCESSED, RP_OBJ_MINIMUM_LENGTH);
+
+    private PcepObjectHeader rpObjHeader;
+    private int iRequestIdNum;
+    private boolean bOFlag;
+    private boolean bBFlag;
+    private boolean bRFlag;
+    private byte yPriFlag; // 3bytes
+    private LinkedList<PcepValueType> llOptionalTlv;
+
+    /**
+     * Constructor to initialize variables.
+     *
+     * @param rpObjHeader RP-OBJECT header
+     * @param iRequestIdNum Request-ID-number
+     * @param bOFlag O-flag
+     * @param bBFlag B-flag
+     * @param bRFlag R-flag
+     * @param yPriFlag Pri-flag
+     * @param llOptionalTlv linked list of Optional TLV
+     */
+    public PcepRPObjectVer1(PcepObjectHeader rpObjHeader, int iRequestIdNum, boolean bOFlag, boolean bBFlag,
+            boolean bRFlag, byte yPriFlag, LinkedList<PcepValueType> llOptionalTlv) {
+        this.rpObjHeader = rpObjHeader;
+        this.iRequestIdNum = iRequestIdNum;
+        this.bOFlag = bOFlag;
+        this.bBFlag = bBFlag;
+        this.bRFlag = bRFlag;
+        this.yPriFlag = yPriFlag;
+        this.llOptionalTlv = llOptionalTlv;
+    }
+
+    /**
+     * Sets RP Object header.
+     *
+     * @param obj RP Object header
+     */
+    public void setRPObjHeader(PcepObjectHeader obj) {
+        this.rpObjHeader = obj;
+    }
+
+    @Override
+    public void setRequestIdNum(int iRequestIdNum) {
+        this.iRequestIdNum = iRequestIdNum;
+    }
+
+    @Override
+    public void setOFlag(boolean bOFlag) {
+        this.bOFlag = bOFlag;
+    }
+
+    @Override
+    public void setBFlag(boolean bBFlag) {
+        this.bBFlag = bBFlag;
+    }
+
+    @Override
+    public void setRFlag(boolean bRFlag) {
+        this.bRFlag = bRFlag;
+    }
+
+    @Override
+    public void setPriFlag(byte yPriFlag) {
+        this.yPriFlag = yPriFlag;
+    }
+
+    /**
+     * Returns RP Object header.
+     *
+     * @return rpObjHeader
+     */
+    public PcepObjectHeader getRPObjHeader() {
+        return this.rpObjHeader;
+    }
+
+    @Override
+    public int getRequestIdNum() {
+        return this.iRequestIdNum;
+    }
+
+    @Override
+    public boolean getOFlag() {
+        return this.bOFlag;
+    }
+
+    @Override
+    public boolean getBFlag() {
+        return this.bBFlag;
+    }
+
+    @Override
+    public boolean getRFlag() {
+        return this.bRFlag;
+    }
+
+    @Override
+    public byte getPriFlag() {
+        return this.yPriFlag;
+    }
+
+    /**
+     * Reads the channel buffer and returns the object of PcepRPObject.
+     *
+     * @param cb of type channel buffer
+     * @return the object of PcepRPObject
+     * @throws PcepParseException if mandatory fields are missing
+     */
+    public static PcepRPObject read(ChannelBuffer cb) throws PcepParseException {
+        log.debug("read");
+        PcepObjectHeader rpObjHeader;
+        int iRequestIdNum;
+        boolean bOFlag;
+        boolean bBFlag;
+        boolean bRFlag;
+        byte yPriFlag; // 3bytes
+        LinkedList<PcepValueType> llOptionalTlv = new LinkedList<PcepValueType>();
+
+        rpObjHeader = PcepObjectHeader.read(cb);
+
+        //take only LspObject buffer.
+        ChannelBuffer tempCb = cb.readBytes(rpObjHeader.getObjLen() - OBJECT_HEADER_LENGTH);
+
+        int iTemp = tempCb.readInt();
+        yPriFlag = (byte) (iTemp & PRIFLAG_TEMP_SHIFT_VALUE);
+        bOFlag = (iTemp & OFLAG_TEMP_SHIFT_VALUE) == OFLAG_TEMP_SHIFT_VALUE ? true : false;
+        bBFlag = (iTemp & BFLAG_TEMP_SHIFT_VALUE) == BFLAG_TEMP_SHIFT_VALUE ? true : false;
+        bRFlag = (iTemp & RFLAG_TEMP_SHIFT_VALUE) == RFLAG_TEMP_SHIFT_VALUE ? true : false;
+
+        iRequestIdNum = tempCb.readInt();
+
+        // parse optional TLV
+        llOptionalTlv = parseOptionalTlv(tempCb);
+
+        return new PcepRPObjectVer1(rpObjHeader, iRequestIdNum, bOFlag, bBFlag, bRFlag, yPriFlag, llOptionalTlv);
+    }
+
+    @Override
+    public int write(ChannelBuffer cb) throws PcepParseException {
+
+        //write Object header
+        int objStartIndex = cb.writerIndex();
+
+        int objLenIndex = rpObjHeader.write(cb);
+
+        if (objLenIndex <= 0) {
+            throw new PcepParseException("ObjectLength Index is " + objLenIndex);
+        }
+        int iTemp;
+        iTemp = (yPriFlag);
+
+        iTemp = (bOFlag) ? (iTemp | OFLAG_SHIFT_VALUE) : iTemp;
+        iTemp = (bBFlag) ? (iTemp | BFLAG_SHIFT_VALUE) : iTemp;
+        iTemp = (bRFlag) ? (iTemp | RFLAG_SHIFT_VALUE) : iTemp;
+
+        cb.writeInt(iTemp);
+        cb.writeInt(iRequestIdNum);
+
+        // Add optional TLV
+        packOptionalTlv(cb);
+
+        //Update object length now
+        int length = cb.writerIndex() - objStartIndex;
+
+        //will be helpful during print().
+        rpObjHeader.setObjLen((short) length);
+
+        cb.setShort(objLenIndex, (short) length);
+        return cb.writerIndex();
+    }
+
+    /**
+     * Returns list of optional tlvs.
+     *
+     * @param cb of type channel buffer.
+     * @return llOutOptionalTlv linked list of Optional TLV
+     * @throws PcepParseException if mandatory fields are missing
+     */
+    protected static LinkedList<PcepValueType> parseOptionalTlv(ChannelBuffer cb) throws PcepParseException {
+
+        LinkedList<PcepValueType> llOutOptionalTlv = new LinkedList<PcepValueType>();
+        //Currently no optional TLvs, will be added based on requirements.
+        return llOutOptionalTlv;
+    }
+
+    /**
+     * Returns optional tlvs.
+     *
+     * @param cb of type channel buffer
+     * @return llOptionalTlv linked list of Optional TLV
+     */
+    protected int packOptionalTlv(ChannelBuffer cb) {
+
+        ListIterator<PcepValueType> listIterator = llOptionalTlv.listIterator();
+        while (listIterator.hasNext()) {
+            listIterator.next().write(cb);
+        }
+
+        return cb.writerIndex();
+    }
+
+    /**
+     * Builder class for PCEP rp object.
+     */
+    public static class Builder implements PcepRPObject.Builder {
+
+        private boolean bIsHeaderSet = false;
+        private boolean bIsRequestIdNumSet = false;
+        private boolean bIsOFlagSet = false;
+        private boolean bIsRFlagset = false;
+        private boolean bIsBFlagSet = false;
+        private boolean bIsPriFlagSet = false;
+
+        private PcepObjectHeader rpObjHeader;
+        private int requestIdNum;
+        private boolean bOFlag;
+        private boolean bBFlag;
+        private boolean bRFlag;
+        private byte yPriFlag;
+        private LinkedList<PcepValueType> llOptionalTlv = new LinkedList<PcepValueType>();
+
+        private boolean bIsPFlagSet = false;
+        private boolean bPFlag;
+
+        private boolean bIsIFlagSet = false;
+        private boolean bIFlag;
+
+        @Override
+        public PcepRPObject build() {
+            PcepObjectHeader lspObjHeader = this.bIsHeaderSet ? this.rpObjHeader : DEFAULT_RP_OBJECT_HEADER;
+
+            int requestIdNum = this.bIsRequestIdNumSet ? this.requestIdNum : DEFAULT_REQUEST_ID_NUM;
+            boolean bOFlag = this.bIsOFlagSet ? this.bOFlag : DEFAULT_OFLAG;
+            boolean bBFlag = this.bIsBFlagSet ? this.bBFlag : DEFAULT_BFLAG;
+            boolean bRFlag = this.bIsRFlagset ? this.bRFlag : DEFAULT_RFLAG;
+            byte yPriFlag = this.bIsPriFlagSet ? this.yPriFlag : DEFAULT_PRIFLAG;
+
+            if (bIsPFlagSet) {
+                lspObjHeader.setPFlag(bPFlag);
+            }
+
+            if (bIsIFlagSet) {
+                lspObjHeader.setIFlag(bIFlag);
+            }
+
+            return new PcepRPObjectVer1(lspObjHeader, requestIdNum, bOFlag, bBFlag, bRFlag, yPriFlag, llOptionalTlv);
+        }
+
+        @Override
+        public PcepObjectHeader getRPObjHeader() {
+            return this.rpObjHeader;
+        }
+
+        @Override
+        public Builder setRPObjHeader(PcepObjectHeader obj) {
+            this.rpObjHeader = obj;
+            this.bIsHeaderSet = true;
+            return this;
+        }
+
+        @Override
+        public int getRequestIdNum() {
+            return this.requestIdNum;
+        }
+
+        @Override
+        public Builder setRequestIdNum(int value) {
+            this.requestIdNum = value;
+            this.bIsRequestIdNumSet = true;
+            return this;
+        }
+
+        @Override
+        public Builder setOFlag(boolean value) {
+            this.bOFlag = value;
+            this.bIsOFlagSet = true;
+            return this;
+        }
+
+        @Override
+        public boolean getBFlag() {
+            return this.bBFlag;
+        }
+
+        @Override
+        public Builder setBFlag(boolean value) {
+            this.bBFlag = value;
+            this.bIsBFlagSet = true;
+            return this;
+        }
+
+        @Override
+        public boolean getRFlag() {
+            return this.bRFlag;
+        }
+
+        @Override
+        public Builder setRFlag(boolean value) {
+            this.bRFlag = value;
+            this.bIsRFlagset = true;
+            return this;
+        }
+
+        @Override
+        public byte getPriFlag() {
+            return this.yPriFlag;
+        }
+
+        @Override
+        public Builder setPriFlag(byte value) {
+            this.yPriFlag = value;
+            this.bIsPriFlagSet = true;
+            return this;
+        }
+
+        @Override
+        public Builder setOptionalTlv(LinkedList<PcepValueType> llOptionalTlv) {
+            this.llOptionalTlv = llOptionalTlv;
+            return this;
+        }
+
+        @Override
+        public LinkedList<PcepValueType> getOptionalTlv() {
+            return this.llOptionalTlv;
+        }
+
+        @Override
+        public Builder setPFlag(boolean value) {
+            this.bPFlag = value;
+            this.bIsPFlagSet = true;
+            return this;
+        }
+
+        @Override
+        public Builder setIFlag(boolean value) {
+            this.bIFlag = value;
+            this.bIsIFlagSet = true;
+            return this;
+        }
+
+        @Override
+        public boolean getOFlag() {
+            return this.bOFlag;
+        }
+
+    }
+
+    @Override
+    public LinkedList<PcepValueType> getOptionalTlv() {
+        return this.llOptionalTlv;
+    }
+
+    @Override
+    public void setOptionalTlv(LinkedList<PcepValueType> llOptionalTlv) {
+        this.llOptionalTlv = llOptionalTlv;
+    }
+
+    @Override
+    public String toString() {
+        return MoreObjects.toStringHelper(getClass()).add("ObjectHeader", rpObjHeader).add("OFlag", (bOFlag) ? 1 : 0)
+                .add("BFlag", (bBFlag) ? 1 : 0).add("RFlag", (bRFlag) ? 1 : 0).add("PriFlag", yPriFlag)
+                .add("RequestIdNumber", iRequestIdNum).add("OptionalTlv", llOptionalTlv).toString();
+    }
+}