Interfaces added for PCEP messages and PCEP Controller

Change-Id: Id678b6832b42bcf4a437322996244d224c4052d0
diff --git a/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/PcepMsgPath.java b/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/PcepMsgPath.java
new file mode 100755
index 0000000..de2d19a
--- /dev/null
+++ b/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/PcepMsgPath.java
@@ -0,0 +1,107 @@
+package org.onosproject.pcepio.protocol;

+

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

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

+

+/**

+ * Abstraction of an entity Provides PCEP Message PAth for update message.

+ * Reference :PCE extensions for stateful draft-ietf-pce-stateful-pce-10.

+ */

+public interface PcepMsgPath {

+

+    /**

+     * Returns object of PcepEroObject.

+     *

+     * @return eroObject

+     */

+    PcepEroObject getEroObject();

+

+    /**

+     * Returns object of PcepAttribute.

+     *

+     * @return pcepAttribute

+     */

+    PcepAttribute getPcepAttribute();

+

+    /**

+     * Sets PcepEroObject.

+     *

+     * @param eroObject PCEP ERO Object.

+     */

+    void setEroObject(PcepEroObject eroObject);

+

+    /**

+     * Sets PcepAttribute.

+     *

+     * @param pcepAttribute PCEP-Attribute.

+     */

+    void setPcepAttribute(PcepAttribute pcepAttribute);

+

+    /**

+     * reads ERO object and attribute list.

+     *

+     * @param bb of type channel buffer

+     * @return PcepMsgPath

+     * @throws PcepParseException while parsing Message Path from Channel Buffer.

+     */

+    public PcepMsgPath read(ChannelBuffer bb) throws PcepParseException;

+

+    /**

+     * writes ERO object and attribute list to channel.

+     *

+     * @param bb of type channel buffer

+     * @return object length index

+     * @throws PcepParseException while writing Message Path into Channel Buffer.

+     */

+

+    public int write(ChannelBuffer bb) throws PcepParseException;

+

+    /**

+     * Prints the attributes of PCEP message path.

+     */

+    void print();

+

+    /**

+     * Builder interface with get and set functions to build PcepMsgPath.

+     */

+    public interface Builder {

+

+        /**

+         * Builds PcepMsgPath.

+         *

+         * @return PcepMsgPath

+         * @throws PcepParseException when mandatory object is not set

+         */

+        PcepMsgPath build() throws PcepParseException;

+

+        /**

+         * Returns object of PcepEroObject.

+         *

+         * @return PcepEroObject

+         */

+        PcepEroObject getEroObject();

+

+        /**

+         * Returns object of PcepAttribute.

+         *

+         * @return pcepAttribute

+         */

+        PcepAttribute getPcepAttribute();

+

+        /**

+         * Sets PcepEroObject.

+         *

+         * @param eroObject PcepEroObject

+         * @return Builder by setting ERO object.

+         */

+        Builder setEroObject(PcepEroObject eroObject);

+

+        /**

+         * Sets PcepAttribute.

+         *

+         * @param pcepAttribute PCEP-Attribute

+         * @return Builder by setting PCEP-Attribute.

+         */

+        Builder setPcepAttribute(PcepAttribute pcepAttribute);

+    }

+}