01a048b766dfefa24b04f096b2a5157ffc0bd480
[onosfw.git] /
1 /*
2  * Copyright 2014-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 package org.onosproject.net.resource.link;
17
18 import com.google.common.annotations.Beta;
19 import com.google.common.base.MoreObjects;
20 import org.onosproject.net.resource.ResourceRequest;
21 import org.onosproject.net.resource.ResourceType;
22
23 import static com.google.common.base.Preconditions.checkNotNull;
24
25 /**
26  * Representation of a request for lambda resource.
27  */
28 public class MplsLabelResourceRequest implements ResourceRequest {
29
30     private final MplsLabel mplsLabel;
31
32     /**
33      * Constructs a request specifying the given MPLS label.
34      *
35      * @param mplsLabel MPLS label to be requested
36      */
37     @Beta
38     public MplsLabelResourceRequest(MplsLabel mplsLabel) {
39         this.mplsLabel = checkNotNull(mplsLabel);
40     }
41
42     /**
43      * Constructs a request asking an arbitrary available MPLS label.
44      *
45      * @deprecated in Emu Release
46      */
47     @Deprecated
48     public MplsLabelResourceRequest() {
49         this.mplsLabel = null;
50     }
51
52     /**
53      * Returns the MPLS label this request expects.
54      *
55      * @return the MPLS label this request expects
56      */
57     @Beta
58     public MplsLabel mplsLabel() {
59         return mplsLabel;
60     }
61
62     @Override
63     public ResourceType type() {
64         return ResourceType.MPLS_LABEL;
65     }
66
67     @Override
68     public String toString() {
69         return MoreObjects.toStringHelper(this)
70                 .add("mplsLabel", mplsLabel)
71                 .toString();
72     }
73 }