Sho SHIMIZU
Committed by Gerrit Code Review

Rename ResourcePath.Key to ResourceId for naming consistency

Change-Id: Idb34624f897b0fd5745f26758a007c171f4cd774
1 +/*
2 + * Copyright 2016 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.newresource;
17 +
18 +import com.google.common.annotations.Beta;
19 +import com.google.common.base.MoreObjects;
20 +import com.google.common.collect.ImmutableList;
21 +import org.onosproject.net.DeviceId;
22 +import org.onosproject.net.PortNumber;
23 +
24 +import java.util.Objects;
25 +
26 +import static com.google.common.base.Preconditions.checkNotNull;
27 +
28 +/**
29 + * Represents identifier of resource.
30 + * This class is exposed to public, but intended to use only in ResourceStore implementations.
31 + */
32 +@Beta
33 +public final class ResourceId {
34 + static final ResourceId ROOT = new ResourceId();
35 +
36 + final ImmutableList<Object> components;
37 +
38 + static ResourceId of(DeviceId device, Object... components) {
39 + return new ResourceId(ImmutableList.builder()
40 + .add(device)
41 + .add(components)
42 + .build());
43 + }
44 +
45 + static ResourceId of(DeviceId device, PortNumber port, Object... components) {
46 + return new ResourceId(ImmutableList.builder()
47 + .add(device)
48 + .add(port)
49 + .add(components)
50 + .build());
51 + }
52 +
53 + private ResourceId(ImmutableList<Object> components) {
54 + this.components = checkNotNull(components);
55 + }
56 +
57 + // for serializer
58 + private ResourceId() {
59 + this.components = ImmutableList.of();
60 + }
61 +
62 + // IndexOutOfBoundsException is raised when the instance is equal to ROOT
63 + ResourceId parent() {
64 + if (components.size() == 1) {
65 + return ROOT;
66 + } else {
67 + return new ResourceId(components.subList(0, components.size() - 1));
68 + }
69 + }
70 +
71 + ResourceId child(Object child) {
72 + return new ResourceId(ImmutableList.builder()
73 + .add(components)
74 + .add(child)
75 + .build());
76 + }
77 +
78 + @Override
79 + public int hashCode() {
80 + return components.hashCode();
81 + }
82 +
83 + @Override
84 + public boolean equals(Object obj) {
85 + if (this == obj) {
86 + return true;
87 + }
88 + if (!(obj instanceof ResourceId)) {
89 + return false;
90 + }
91 +
92 + ResourceId other = (ResourceId) obj;
93 + return Objects.equals(this.components, other.components);
94 + }
95 +
96 + @Override
97 + public String toString() {
98 + return MoreObjects.toStringHelper(this)
99 + .add("components", components)
100 + .toString();
101 + }
102 +}
...@@ -17,7 +17,6 @@ package org.onosproject.net.newresource; ...@@ -17,7 +17,6 @@ package org.onosproject.net.newresource;
17 17
18 import com.google.common.annotations.Beta; 18 import com.google.common.annotations.Beta;
19 import com.google.common.base.MoreObjects; 19 import com.google.common.base.MoreObjects;
20 -import com.google.common.collect.ImmutableList;
21 import org.onosproject.net.DeviceId; 20 import org.onosproject.net.DeviceId;
22 import org.onosproject.net.PortNumber; 21 import org.onosproject.net.PortNumber;
23 22
...@@ -49,12 +48,12 @@ import static com.google.common.base.Preconditions.checkState; ...@@ -49,12 +48,12 @@ import static com.google.common.base.Preconditions.checkState;
49 public abstract class ResourcePath { 48 public abstract class ResourcePath {
50 49
51 private final Discrete parent; 50 private final Discrete parent;
52 - private final Key key; 51 + private final ResourceId id;
53 52
54 public static final Discrete ROOT = new Discrete(); 53 public static final Discrete ROOT = new Discrete();
55 54
56 public static ResourcePath discrete(DeviceId device) { 55 public static ResourcePath discrete(DeviceId device) {
57 - return new Discrete(Key.of(device)); 56 + return new Discrete(ResourceId.of(device));
58 } 57 }
59 58
60 /** 59 /**
...@@ -65,7 +64,7 @@ public abstract class ResourcePath { ...@@ -65,7 +64,7 @@ public abstract class ResourcePath {
65 * @return resource path instance 64 * @return resource path instance
66 */ 65 */
67 public static ResourcePath discrete(DeviceId device, Object... components) { 66 public static ResourcePath discrete(DeviceId device, Object... components) {
68 - return new Discrete(Key.of(device, components)); 67 + return new Discrete(ResourceId.of(device, components));
69 } 68 }
70 69
71 /** 70 /**
...@@ -77,7 +76,7 @@ public abstract class ResourcePath { ...@@ -77,7 +76,7 @@ public abstract class ResourcePath {
77 * @return resource path instance 76 * @return resource path instance
78 */ 77 */
79 public static ResourcePath discrete(DeviceId device, PortNumber port, Object... components) { 78 public static ResourcePath discrete(DeviceId device, PortNumber port, Object... components) {
80 - return new Discrete(Key.of(device, port, components)); 79 + return new Discrete(ResourceId.of(device, port, components));
81 } 80 }
82 81
83 /** 82 /**
...@@ -92,7 +91,7 @@ public abstract class ResourcePath { ...@@ -92,7 +91,7 @@ public abstract class ResourcePath {
92 checkArgument(components.length > 0, 91 checkArgument(components.length > 0,
93 "Length of components must be greater thant 0, but " + components.length); 92 "Length of components must be greater thant 0, but " + components.length);
94 93
95 - return new Continuous(Key.of(device, components), value); 94 + return new Continuous(ResourceId.of(device, components), value);
96 } 95 }
97 96
98 /** 97 /**
...@@ -105,29 +104,29 @@ public abstract class ResourcePath { ...@@ -105,29 +104,29 @@ public abstract class ResourcePath {
105 * @return resource path instance 104 * @return resource path instance
106 */ 105 */
107 public static ResourcePath continuous(double value, DeviceId device, PortNumber port, Object... components) { 106 public static ResourcePath continuous(double value, DeviceId device, PortNumber port, Object... components) {
108 - return new Continuous(Key.of(device, port, components), value); 107 + return new Continuous(ResourceId.of(device, port, components), value);
109 } 108 }
110 109
111 /** 110 /**
112 * Creates an resource path from the specified key. 111 * Creates an resource path from the specified key.
113 * 112 *
114 - * @param key key of the path 113 + * @param id key of the path
115 */ 114 */
116 - protected ResourcePath(Key key) { 115 + protected ResourcePath(ResourceId id) {
117 - checkNotNull(key); 116 + checkNotNull(id);
118 117
119 - this.key = key; 118 + this.id = id;
120 - if (key.components.size() == 1) { 119 + if (id.components.size() == 1) {
121 this.parent = ROOT; 120 this.parent = ROOT;
122 } else { 121 } else {
123 - this.parent = new Discrete(key.parent()); 122 + this.parent = new Discrete(id.parent());
124 } 123 }
125 } 124 }
126 125
127 // for serialization 126 // for serialization
128 private ResourcePath() { 127 private ResourcePath() {
129 this.parent = null; 128 this.parent = null;
130 - this.key = Key.ROOT; 129 + this.id = ResourceId.ROOT;
131 } 130 }
132 131
133 /** 132 /**
...@@ -136,7 +135,7 @@ public abstract class ResourcePath { ...@@ -136,7 +135,7 @@ public abstract class ResourcePath {
136 * @return the components of this resource path 135 * @return the components of this resource path
137 */ 136 */
138 public List<Object> components() { 137 public List<Object> components() {
139 - return key.components; 138 + return id.components;
140 } 139 }
141 140
142 /** 141 /**
...@@ -160,7 +159,7 @@ public abstract class ResourcePath { ...@@ -160,7 +159,7 @@ public abstract class ResourcePath {
160 public ResourcePath child(Object child) { 159 public ResourcePath child(Object child) {
161 checkState(this instanceof Discrete); 160 checkState(this instanceof Discrete);
162 161
163 - return new Discrete(key().child(child)); 162 + return new Discrete(id().child(child));
164 } 163 }
165 164
166 /** 165 /**
...@@ -174,7 +173,7 @@ public abstract class ResourcePath { ...@@ -174,7 +173,7 @@ public abstract class ResourcePath {
174 public ResourcePath child(Object child, double value) { 173 public ResourcePath child(Object child, double value) {
175 checkState(this instanceof Discrete); 174 checkState(this instanceof Discrete);
176 175
177 - return new Continuous(key.child(child), value); 176 + return new Continuous(id.child(child), value);
178 } 177 }
179 178
180 /** 179 /**
...@@ -184,10 +183,10 @@ public abstract class ResourcePath { ...@@ -184,10 +183,10 @@ public abstract class ResourcePath {
184 * The return value is equal to the last object of {@code components()}. 183 * The return value is equal to the last object of {@code components()}.
185 */ 184 */
186 public Object last() { 185 public Object last() {
187 - if (key.components.isEmpty()) { 186 + if (id.components.isEmpty()) {
188 return null; 187 return null;
189 } 188 }
190 - return key.components.get(key.components.size() - 1); 189 + return id.components.get(id.components.size() - 1);
191 } 190 }
192 191
193 /** 192 /**
...@@ -195,13 +194,13 @@ public abstract class ResourcePath { ...@@ -195,13 +194,13 @@ public abstract class ResourcePath {
195 * 194 *
196 * @return the key of this resource path 195 * @return the key of this resource path
197 */ 196 */
198 - public Key key() { 197 + public ResourceId id() {
199 - return key; 198 + return id;
200 } 199 }
201 200
202 @Override 201 @Override
203 public int hashCode() { 202 public int hashCode() {
204 - return key.hashCode(); 203 + return id.hashCode();
205 } 204 }
206 205
207 @Override 206 @Override
...@@ -213,13 +212,13 @@ public abstract class ResourcePath { ...@@ -213,13 +212,13 @@ public abstract class ResourcePath {
213 return false; 212 return false;
214 } 213 }
215 final ResourcePath that = (ResourcePath) obj; 214 final ResourcePath that = (ResourcePath) obj;
216 - return Objects.equals(this.key, that.key); 215 + return Objects.equals(this.id, that.id);
217 } 216 }
218 217
219 @Override 218 @Override
220 public String toString() { 219 public String toString() {
221 return MoreObjects.toStringHelper(this) 220 return MoreObjects.toStringHelper(this)
222 - .add("key", key) 221 + .add("key", id)
223 .toString(); 222 .toString();
224 } 223 }
225 224
...@@ -237,7 +236,7 @@ public abstract class ResourcePath { ...@@ -237,7 +236,7 @@ public abstract class ResourcePath {
237 super(); 236 super();
238 } 237 }
239 238
240 - private Discrete(Key key) { 239 + private Discrete(ResourceId key) {
241 super(key); 240 super(key);
242 } 241 }
243 } 242 }
...@@ -253,14 +252,14 @@ public abstract class ResourcePath { ...@@ -253,14 +252,14 @@ public abstract class ResourcePath {
253 public static final class Continuous extends ResourcePath { 252 public static final class Continuous extends ResourcePath {
254 private final double value; 253 private final double value;
255 254
256 - private Continuous(Key key, double value) { 255 + private Continuous(ResourceId key, double value) {
257 super(key); 256 super(key);
258 this.value = value; 257 this.value = value;
259 } 258 }
260 259
261 @Override 260 @Override
262 public int hashCode() { 261 public int hashCode() {
263 - return Objects.hash(this.key(), this.value); 262 + return Objects.hash(this.id(), this.value);
264 } 263 }
265 264
266 @Override 265 @Override
...@@ -278,7 +277,7 @@ public abstract class ResourcePath { ...@@ -278,7 +277,7 @@ public abstract class ResourcePath {
278 } 277 }
279 278
280 final Continuous other = (Continuous) obj; 279 final Continuous other = (Continuous) obj;
281 - return Objects.equals(this.key(), other.key()); 280 + return Objects.equals(this.id(), other.id());
282 } 281 }
283 282
284 /** 283 /**
...@@ -291,79 +290,4 @@ public abstract class ResourcePath { ...@@ -291,79 +290,4 @@ public abstract class ResourcePath {
291 } 290 }
292 } 291 }
293 292
294 - /**
295 - * Represents key of resource path used as a key in ResourceStore.
296 - * This class is exposed to public, but intended to use only in ResourceStore implementations.
297 - */
298 - @Beta
299 - public static final class Key {
300 - private static final Key ROOT = new Key();
301 -
302 - private final ImmutableList<Object> components;
303 -
304 - private static Key of(DeviceId device, Object... components) {
305 - return new Key(ImmutableList.builder()
306 - .add(device)
307 - .add(components)
308 - .build());
309 - }
310 -
311 - private static Key of(DeviceId device, PortNumber port, Object... components) {
312 - return new Key(ImmutableList.builder()
313 - .add(device)
314 - .add(port)
315 - .add(components)
316 - .build());
317 - }
318 -
319 - private Key(ImmutableList<Object> components) {
320 - this.components = checkNotNull(components);
321 - }
322 -
323 - // for serializer
324 - private Key() {
325 - this.components = ImmutableList.of();
326 - }
327 -
328 - // IndexOutOfBoundsException is raised when the instance is equal to ROOT
329 - private Key parent() {
330 - if (components.size() == 1) {
331 - return ROOT;
332 - } else {
333 - return new Key(components.subList(0, components.size() - 1));
334 - }
335 - }
336 -
337 - private Key child(Object child) {
338 - return new Key(ImmutableList.builder()
339 - .add(components)
340 - .add(child)
341 - .build());
342 - }
343 -
344 - @Override
345 - public int hashCode() {
346 - return components.hashCode();
347 - }
348 -
349 - @Override
350 - public boolean equals(Object obj) {
351 - if (this == obj) {
352 - return true;
353 - }
354 - if (!(obj instanceof Key)) {
355 - return false;
356 - }
357 -
358 - Key other = (Key) obj;
359 - return Objects.equals(this.components, other.components);
360 - }
361 -
362 - @Override
363 - public String toString() {
364 - return MoreObjects.toStringHelper(this)
365 - .add("components", components)
366 - .toString();
367 - }
368 - }
369 } 293 }
......
...@@ -60,18 +60,18 @@ public class ResourcePathTest { ...@@ -60,18 +60,18 @@ public class ResourcePathTest {
60 } 60 }
61 61
62 @Test 62 @Test
63 - public void testKeyEquality() { 63 + public void testIdEquality() {
64 - ResourcePath.Key key1 = ResourcePath.discrete(D1, P1, VLAN1).key(); 64 + ResourceId id1 = ResourcePath.discrete(D1, P1, VLAN1).id();
65 - ResourcePath.Key sameAsKey1 = ResourcePath.discrete(D1, P1, VLAN1).key(); 65 + ResourceId sameAsId1 = ResourcePath.discrete(D1, P1, VLAN1).id();
66 - ResourcePath.Key key2 = ResourcePath.discrete(D2, P1, VLAN1).key(); 66 + ResourceId id2 = ResourcePath.discrete(D2, P1, VLAN1).id();
67 - ResourcePath.Key key3 = ResourcePath.continuous(BW1.bps(), D1, P1, BW1).key(); 67 + ResourceId id3 = ResourcePath.continuous(BW1.bps(), D1, P1, BW1).id();
68 // intentionally set a different value 68 // intentionally set a different value
69 - ResourcePath.Key sameAsKey3 = ResourcePath.continuous(BW2.bps(), D1, P1, BW1).key(); 69 + ResourceId sameAsId3 = ResourcePath.continuous(BW2.bps(), D1, P1, BW1).id();
70 70
71 new EqualsTester() 71 new EqualsTester()
72 - .addEqualityGroup(key1, sameAsKey1) 72 + .addEqualityGroup(id1, sameAsId1)
73 - .addEqualityGroup(key2) 73 + .addEqualityGroup(id2)
74 - .addEqualityGroup(key3, sameAsKey3); 74 + .addEqualityGroup(id3, sameAsId3);
75 } 75 }
76 76
77 @Test 77 @Test
......
...@@ -172,6 +172,7 @@ import org.onosproject.net.intent.constraint.WaypointConstraint; ...@@ -172,6 +172,7 @@ import org.onosproject.net.intent.constraint.WaypointConstraint;
172 import org.onosproject.net.link.DefaultLinkDescription; 172 import org.onosproject.net.link.DefaultLinkDescription;
173 import org.onosproject.net.meter.MeterId; 173 import org.onosproject.net.meter.MeterId;
174 import org.onosproject.net.newresource.ResourceAllocation; 174 import org.onosproject.net.newresource.ResourceAllocation;
175 +import org.onosproject.net.newresource.ResourceId;
175 import org.onosproject.net.newresource.ResourcePath; 176 import org.onosproject.net.newresource.ResourcePath;
176 import org.onosproject.net.packet.DefaultOutboundPacket; 177 import org.onosproject.net.packet.DefaultOutboundPacket;
177 import org.onosproject.net.packet.DefaultPacketRequest; 178 import org.onosproject.net.packet.DefaultPacketRequest;
...@@ -430,7 +431,7 @@ public final class KryoNamespaces { ...@@ -430,7 +431,7 @@ public final class KryoNamespaces {
430 ResourcePath.class, 431 ResourcePath.class,
431 ResourcePath.Discrete.class, 432 ResourcePath.Discrete.class,
432 ResourcePath.Continuous.class, 433 ResourcePath.Continuous.class,
433 - ResourcePath.Key.class, 434 + ResourceId.class,
434 ResourceAllocation.class, 435 ResourceAllocation.class,
435 // Constraints 436 // Constraints
436 LambdaConstraint.class, 437 LambdaConstraint.class,
......
...@@ -379,7 +379,7 @@ public class KryoSerializerTest { ...@@ -379,7 +379,7 @@ public class KryoSerializerTest {
379 379
380 @Test 380 @Test
381 public void testResourceKey() { 381 public void testResourceKey() {
382 - testSerializedEquals(ResourcePath.discrete(DID1, P1).key()); 382 + testSerializedEquals(ResourcePath.discrete(DID1, P1).id());
383 } 383 }
384 384
385 @Test 385 @Test
......