aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/protocols/pcep/pcepio/src/main/java/org/onosproject/pcepio/protocol/PcepError.java
blob: b61bfb9f92972e2560f3f6170a6750fb7568b42e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
/*
 * 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 java.util.LinkedList;

import org.jboss.netty.buffer.ChannelBuffer;
import org.onosproject.pcepio.exceptions.PcepParseException;

/**
 * Abstraction of an entity which provides PCEP error for PCEP error message.
 */
public interface PcepError {

    /**
     * Returns the PcepRPObject List.
     *
     * @return list of type PcepRPObject
     */
    LinkedList<PcepRPObject> getRPObjList();

    /**
     * Sets the RP Objects lists.
     *
     * @param llRPObjList list of type PcepRPObject
     */
    void setRPObjList(LinkedList<PcepRPObject> llRPObjList);

    /**
     * Returns the PcepTEObject List.
     *
     * @return list of type PcepTEObject
     */
    LinkedList<PcepTEObject> getTEObjList();

    /**
     * Sets the TE Objects lists.
     *
     * @param llTEObjList list of type PcepTEObject
     */
    void setTEObjList(LinkedList<PcepTEObject> llTEObjList);

    /**
     * Returns the PcepErrorObject.
     *
     * @return list of type PcepErrorObject
     */
    LinkedList<PcepErrorObject> getErrorObjList();

    /**
     * Sets the Error Objects lists.
     *
     * @param llErrorObjList list of type PcepErrorObject
     */
    void setErrorObjList(LinkedList<PcepErrorObject> llErrorObjList);

    /**
     * Writes the byte stream of PCEP error to the channel buffer.
     *
     * @param bb of type channel buffer
     * @return object length index
     * @throws PcepParseException while writing Error part into ChannelBuffer
     */
    int write(ChannelBuffer bb) throws PcepParseException;

    /**
     * Builder interface with get and set functions to build PcepError.
     */
    interface Builder {

        /**
         * Builds PcepError Object.
         *
         * @return PcepError Object
         */
        PcepError build();

        /**
         * Returns the PcepRPObject.
         *
         * @return list of type PcepRPObject
         */
        LinkedList<PcepRPObject> getRPObjList();

        /**
         * Sets RP Object lists and returns its builder.
         *
         * @param llRPObjList list of type PcepRpObject
         * @return builder by setting Linked list of RP Object
         */
        Builder setRPObjList(LinkedList<PcepRPObject> llRPObjList);

        /**
         * Returns the PcepTEObject.
         *
         * @return llTEObjList of type PcepTEObject
         */
        LinkedList<PcepTEObject> getTEObjList();

        /**
         * Sets TE Object lists and returns its builder.
         *
         * @param llTEObjList list of type PcepTEObject
         * @return builder by setting list of type PcepTEObject
         */
        Builder setTEObjList(LinkedList<PcepTEObject> llTEObjList);

        /**
         * Returns the PcepErrorObject.
         *
         * @return list of type PcepErrorObject
         */
        LinkedList<PcepErrorObject> getErrorObjList();

        /**
         * Sets Error Object lists and returns its builder.
         *
         * @param llErrorObjList list of type PcepErrorObject
         * @return builder by setting list of type PcepErrorObject
         */
        Builder setErrorObjList(LinkedList<PcepErrorObject> llErrorObjList);
    }
}