blob: 8d1c89e24430e833d8507f1dfdfb6bc1571ff68f [file] [log] [blame]
Sho SHIMIZU74361c12015-08-11 12:31:48 -07001/*
2 * Copyright 2015 Open Networking Laboratory
3 *
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
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
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.
15 */
16
17package org.onosproject.pcepio.protocol;
18
19import org.onosproject.pcepio.exceptions.PcepParseException;
20
Sho SHIMIZU74361c12015-08-11 12:31:48 -070021/**
22 * Abstraction of an entity providing PCEP Update Request List.
23 */
24public interface PcepUpdateRequest {
25
26 /**
27 * Returns object of PCEP SRP Object.
28 *
29 * @return srpObject of type PCEP SRP Object
30 */
31 PcepSrpObject getSrpObject();
32
33 /**
34 * Returns object of PCEP LSP Object.
35 *
36 * @return lspObject of type PCEP LSP Object
37 */
38 PcepLspObject getLspObject();
39
40 /**
41 * Returns object of PCEP MSG PATH.
42 *
43 * @return msgPath of type PCEP MSG PATH
44 */
45 PcepMsgPath getMsgPath();
46
47 /**
48 * Sets the PCEP SRP Object.
49 *
50 * @param srpObject object of type PCEP SRP Object
51 */
52 void setSrpObject(PcepSrpObject srpObject);
53
54 /**
55 * Sets the PCEP LSP Object.
56 *
57 * @param lspObject object of type PCEP LSP Object
58 */
59 void setLspObject(PcepLspObject lspObject);
60
61 /**
62 * sets the PCEP MSG PATH.
63 *
64 * @param msgPath object of type PCEP MSG PATH
65 */
66 void setMsgPath(PcepMsgPath msgPath);
67
68 /**
Sho SHIMIZU74361c12015-08-11 12:31:48 -070069 * Builder interface with get and set functions to build PcepUpdateRequest.
70 */
Sho SHIMIZU260f6ef2015-08-11 13:53:31 -070071 interface Builder {
Sho SHIMIZU74361c12015-08-11 12:31:48 -070072
73 /**
74 * Builds PcepUpdateRequest.
75 *
76 * @return PcepUpdateRequest
77 * @throws PcepParseException if mandatory object is not set
78 */
79 PcepUpdateRequest build() throws PcepParseException;
80
81 /**
82 * Returns PcepSrpObject.
83 *
84 * @return srpObject
85 */
86 PcepSrpObject getSrpObject();
87
88 /**
89 * Returns PcepLspObject.
90 *
91 * @return lspObject
92 */
93 PcepLspObject getLspObject();
94
95 /**
96 * Returns PcepMsgPath.
97 *
98 * @return msgPath
99 */
100 PcepMsgPath getMsgPath();
101
102 /**
103 * Sets the SRP Object.
104 *
105 * @param srpObj of type PcepSrpObject
106 * @return builder by setting PcepSrpObject
107 */
108 Builder setSrpObject(PcepSrpObject srpObj);
109
110 /**
111 * Sets the LSP Object.
112 *
113 * @param lspObject of type PcepLspObject
114 * @return builder by setting PcepLspObject
115 */
116 Builder setLspObject(PcepLspObject lspObject);
117
118 /**
119 * Sets the Path Object.
120 *
121 * @param msgPath of type PcepMsgPath
122 * @return builder by setting PcepMsgPath
123 */
124 Builder setMsgPath(PcepMsgPath msgPath);
125 }
Sho SHIMIZU260f6ef2015-08-11 13:53:31 -0700126}