Rename ResourcePath.Key to ResourceId for naming consistency
Change-Id: Idb34624f897b0fd5745f26758a007c171f4cd774
diff --git a/core/api/src/main/java/org/onosproject/net/newresource/ResourceId.java b/core/api/src/main/java/org/onosproject/net/newresource/ResourceId.java
new file mode 100644
index 0000000..f32579f
--- /dev/null
+++ b/core/api/src/main/java/org/onosproject/net/newresource/ResourceId.java
@@ -0,0 +1,102 @@
+/*
+ * Copyright 2016 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.net.newresource;
+
+import com.google.common.annotations.Beta;
+import com.google.common.base.MoreObjects;
+import com.google.common.collect.ImmutableList;
+import org.onosproject.net.DeviceId;
+import org.onosproject.net.PortNumber;
+
+import java.util.Objects;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+
+/**
+ * Represents identifier of resource.
+ * This class is exposed to public, but intended to use only in ResourceStore implementations.
+ */
+@Beta
+public final class ResourceId {
+ static final ResourceId ROOT = new ResourceId();
+
+ final ImmutableList<Object> components;
+
+ static ResourceId of(DeviceId device, Object... components) {
+ return new ResourceId(ImmutableList.builder()
+ .add(device)
+ .add(components)
+ .build());
+ }
+
+ static ResourceId of(DeviceId device, PortNumber port, Object... components) {
+ return new ResourceId(ImmutableList.builder()
+ .add(device)
+ .add(port)
+ .add(components)
+ .build());
+ }
+
+ private ResourceId(ImmutableList<Object> components) {
+ this.components = checkNotNull(components);
+ }
+
+ // for serializer
+ private ResourceId() {
+ this.components = ImmutableList.of();
+ }
+
+ // IndexOutOfBoundsException is raised when the instance is equal to ROOT
+ ResourceId parent() {
+ if (components.size() == 1) {
+ return ROOT;
+ } else {
+ return new ResourceId(components.subList(0, components.size() - 1));
+ }
+ }
+
+ ResourceId child(Object child) {
+ return new ResourceId(ImmutableList.builder()
+ .add(components)
+ .add(child)
+ .build());
+ }
+
+ @Override
+ public int hashCode() {
+ return components.hashCode();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (!(obj instanceof ResourceId)) {
+ return false;
+ }
+
+ ResourceId other = (ResourceId) obj;
+ return Objects.equals(this.components, other.components);
+ }
+
+ @Override
+ public String toString() {
+ return MoreObjects.toStringHelper(this)
+ .add("components", components)
+ .toString();
+ }
+}
diff --git a/core/api/src/main/java/org/onosproject/net/newresource/ResourcePath.java b/core/api/src/main/java/org/onosproject/net/newresource/ResourcePath.java
index d07e516..35a66d8 100644
--- a/core/api/src/main/java/org/onosproject/net/newresource/ResourcePath.java
+++ b/core/api/src/main/java/org/onosproject/net/newresource/ResourcePath.java
@@ -17,7 +17,6 @@
import com.google.common.annotations.Beta;
import com.google.common.base.MoreObjects;
-import com.google.common.collect.ImmutableList;
import org.onosproject.net.DeviceId;
import org.onosproject.net.PortNumber;
@@ -49,12 +48,12 @@
public abstract class ResourcePath {
private final Discrete parent;
- private final Key key;
+ private final ResourceId id;
public static final Discrete ROOT = new Discrete();
public static ResourcePath discrete(DeviceId device) {
- return new Discrete(Key.of(device));
+ return new Discrete(ResourceId.of(device));
}
/**
@@ -65,7 +64,7 @@
* @return resource path instance
*/
public static ResourcePath discrete(DeviceId device, Object... components) {
- return new Discrete(Key.of(device, components));
+ return new Discrete(ResourceId.of(device, components));
}
/**
@@ -77,7 +76,7 @@
* @return resource path instance
*/
public static ResourcePath discrete(DeviceId device, PortNumber port, Object... components) {
- return new Discrete(Key.of(device, port, components));
+ return new Discrete(ResourceId.of(device, port, components));
}
/**
@@ -92,7 +91,7 @@
checkArgument(components.length > 0,
"Length of components must be greater thant 0, but " + components.length);
- return new Continuous(Key.of(device, components), value);
+ return new Continuous(ResourceId.of(device, components), value);
}
/**
@@ -105,29 +104,29 @@
* @return resource path instance
*/
public static ResourcePath continuous(double value, DeviceId device, PortNumber port, Object... components) {
- return new Continuous(Key.of(device, port, components), value);
+ return new Continuous(ResourceId.of(device, port, components), value);
}
/**
* Creates an resource path from the specified key.
*
- * @param key key of the path
+ * @param id key of the path
*/
- protected ResourcePath(Key key) {
- checkNotNull(key);
+ protected ResourcePath(ResourceId id) {
+ checkNotNull(id);
- this.key = key;
- if (key.components.size() == 1) {
+ this.id = id;
+ if (id.components.size() == 1) {
this.parent = ROOT;
} else {
- this.parent = new Discrete(key.parent());
+ this.parent = new Discrete(id.parent());
}
}
// for serialization
private ResourcePath() {
this.parent = null;
- this.key = Key.ROOT;
+ this.id = ResourceId.ROOT;
}
/**
@@ -136,7 +135,7 @@
* @return the components of this resource path
*/
public List<Object> components() {
- return key.components;
+ return id.components;
}
/**
@@ -160,7 +159,7 @@
public ResourcePath child(Object child) {
checkState(this instanceof Discrete);
- return new Discrete(key().child(child));
+ return new Discrete(id().child(child));
}
/**
@@ -174,7 +173,7 @@
public ResourcePath child(Object child, double value) {
checkState(this instanceof Discrete);
- return new Continuous(key.child(child), value);
+ return new Continuous(id.child(child), value);
}
/**
@@ -184,10 +183,10 @@
* The return value is equal to the last object of {@code components()}.
*/
public Object last() {
- if (key.components.isEmpty()) {
+ if (id.components.isEmpty()) {
return null;
}
- return key.components.get(key.components.size() - 1);
+ return id.components.get(id.components.size() - 1);
}
/**
@@ -195,13 +194,13 @@
*
* @return the key of this resource path
*/
- public Key key() {
- return key;
+ public ResourceId id() {
+ return id;
}
@Override
public int hashCode() {
- return key.hashCode();
+ return id.hashCode();
}
@Override
@@ -213,13 +212,13 @@
return false;
}
final ResourcePath that = (ResourcePath) obj;
- return Objects.equals(this.key, that.key);
+ return Objects.equals(this.id, that.id);
}
@Override
public String toString() {
return MoreObjects.toStringHelper(this)
- .add("key", key)
+ .add("key", id)
.toString();
}
@@ -237,7 +236,7 @@
super();
}
- private Discrete(Key key) {
+ private Discrete(ResourceId key) {
super(key);
}
}
@@ -253,14 +252,14 @@
public static final class Continuous extends ResourcePath {
private final double value;
- private Continuous(Key key, double value) {
+ private Continuous(ResourceId key, double value) {
super(key);
this.value = value;
}
@Override
public int hashCode() {
- return Objects.hash(this.key(), this.value);
+ return Objects.hash(this.id(), this.value);
}
@Override
@@ -278,7 +277,7 @@
}
final Continuous other = (Continuous) obj;
- return Objects.equals(this.key(), other.key());
+ return Objects.equals(this.id(), other.id());
}
/**
@@ -291,79 +290,4 @@
}
}
- /**
- * Represents key of resource path used as a key in ResourceStore.
- * This class is exposed to public, but intended to use only in ResourceStore implementations.
- */
- @Beta
- public static final class Key {
- private static final Key ROOT = new Key();
-
- private final ImmutableList<Object> components;
-
- private static Key of(DeviceId device, Object... components) {
- return new Key(ImmutableList.builder()
- .add(device)
- .add(components)
- .build());
- }
-
- private static Key of(DeviceId device, PortNumber port, Object... components) {
- return new Key(ImmutableList.builder()
- .add(device)
- .add(port)
- .add(components)
- .build());
- }
-
- private Key(ImmutableList<Object> components) {
- this.components = checkNotNull(components);
- }
-
- // for serializer
- private Key() {
- this.components = ImmutableList.of();
- }
-
- // IndexOutOfBoundsException is raised when the instance is equal to ROOT
- private Key parent() {
- if (components.size() == 1) {
- return ROOT;
- } else {
- return new Key(components.subList(0, components.size() - 1));
- }
- }
-
- private Key child(Object child) {
- return new Key(ImmutableList.builder()
- .add(components)
- .add(child)
- .build());
- }
-
- @Override
- public int hashCode() {
- return components.hashCode();
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (!(obj instanceof Key)) {
- return false;
- }
-
- Key other = (Key) obj;
- return Objects.equals(this.components, other.components);
- }
-
- @Override
- public String toString() {
- return MoreObjects.toStringHelper(this)
- .add("components", components)
- .toString();
- }
- }
}
diff --git a/core/api/src/test/java/org/onosproject/net/newresource/ResourcePathTest.java b/core/api/src/test/java/org/onosproject/net/newresource/ResourcePathTest.java
index 23bbb27..83d9b44 100644
--- a/core/api/src/test/java/org/onosproject/net/newresource/ResourcePathTest.java
+++ b/core/api/src/test/java/org/onosproject/net/newresource/ResourcePathTest.java
@@ -60,18 +60,18 @@
}
@Test
- public void testKeyEquality() {
- ResourcePath.Key key1 = ResourcePath.discrete(D1, P1, VLAN1).key();
- ResourcePath.Key sameAsKey1 = ResourcePath.discrete(D1, P1, VLAN1).key();
- ResourcePath.Key key2 = ResourcePath.discrete(D2, P1, VLAN1).key();
- ResourcePath.Key key3 = ResourcePath.continuous(BW1.bps(), D1, P1, BW1).key();
+ public void testIdEquality() {
+ ResourceId id1 = ResourcePath.discrete(D1, P1, VLAN1).id();
+ ResourceId sameAsId1 = ResourcePath.discrete(D1, P1, VLAN1).id();
+ ResourceId id2 = ResourcePath.discrete(D2, P1, VLAN1).id();
+ ResourceId id3 = ResourcePath.continuous(BW1.bps(), D1, P1, BW1).id();
// intentionally set a different value
- ResourcePath.Key sameAsKey3 = ResourcePath.continuous(BW2.bps(), D1, P1, BW1).key();
+ ResourceId sameAsId3 = ResourcePath.continuous(BW2.bps(), D1, P1, BW1).id();
new EqualsTester()
- .addEqualityGroup(key1, sameAsKey1)
- .addEqualityGroup(key2)
- .addEqualityGroup(key3, sameAsKey3);
+ .addEqualityGroup(id1, sameAsId1)
+ .addEqualityGroup(id2)
+ .addEqualityGroup(id3, sameAsId3);
}
@Test
diff --git a/core/store/serializers/src/main/java/org/onosproject/store/serializers/KryoNamespaces.java b/core/store/serializers/src/main/java/org/onosproject/store/serializers/KryoNamespaces.java
index f20a1e5..de72fd2 100644
--- a/core/store/serializers/src/main/java/org/onosproject/store/serializers/KryoNamespaces.java
+++ b/core/store/serializers/src/main/java/org/onosproject/store/serializers/KryoNamespaces.java
@@ -172,6 +172,7 @@
import org.onosproject.net.link.DefaultLinkDescription;
import org.onosproject.net.meter.MeterId;
import org.onosproject.net.newresource.ResourceAllocation;
+import org.onosproject.net.newresource.ResourceId;
import org.onosproject.net.newresource.ResourcePath;
import org.onosproject.net.packet.DefaultOutboundPacket;
import org.onosproject.net.packet.DefaultPacketRequest;
@@ -430,7 +431,7 @@
ResourcePath.class,
ResourcePath.Discrete.class,
ResourcePath.Continuous.class,
- ResourcePath.Key.class,
+ ResourceId.class,
ResourceAllocation.class,
// Constraints
LambdaConstraint.class,
diff --git a/core/store/serializers/src/test/java/org/onosproject/store/serializers/KryoSerializerTest.java b/core/store/serializers/src/test/java/org/onosproject/store/serializers/KryoSerializerTest.java
index 0d88e9f..a318068 100644
--- a/core/store/serializers/src/test/java/org/onosproject/store/serializers/KryoSerializerTest.java
+++ b/core/store/serializers/src/test/java/org/onosproject/store/serializers/KryoSerializerTest.java
@@ -379,7 +379,7 @@
@Test
public void testResourceKey() {
- testSerializedEquals(ResourcePath.discrete(DID1, P1).key());
+ testSerializedEquals(ResourcePath.discrete(DID1, P1).id());
}
@Test