Add a method to get resource type name: simpleTypeName()
last() is removed as the new method takes over its role
Change-Id: Id3737529787da5d5bb513355cdbc443f2b7b17e2
diff --git a/core/api/src/main/java/org/onosproject/net/newresource/ContinuousResource.java b/core/api/src/main/java/org/onosproject/net/newresource/ContinuousResource.java
index 00221ae..33e25c5 100644
--- a/core/api/src/main/java/org/onosproject/net/newresource/ContinuousResource.java
+++ b/core/api/src/main/java/org/onosproject/net/newresource/ContinuousResource.java
@@ -49,6 +49,11 @@
}
@Override
+ public String simpleTypeName() {
+ return id.simpleTypeName();
+ }
+
+ @Override
public boolean isTypeOf(Class<?> type) {
checkNotNull(type);
@@ -98,14 +103,6 @@
}
@Override
- public Object last() {
- if (id.components().isEmpty()) {
- return null;
- }
- return id.components().get(id.components().size() - 1);
- }
-
- @Override
public DiscreteResource child(Object child) {
throw new UnsupportedOperationException();
}
diff --git a/core/api/src/main/java/org/onosproject/net/newresource/ContinuousResourceId.java b/core/api/src/main/java/org/onosproject/net/newresource/ContinuousResourceId.java
index 4c8f466..8a042c8 100644
--- a/core/api/src/main/java/org/onosproject/net/newresource/ContinuousResourceId.java
+++ b/core/api/src/main/java/org/onosproject/net/newresource/ContinuousResourceId.java
@@ -47,6 +47,11 @@
return components;
}
+ @Override
+ String simpleTypeName() {
+ return name;
+ }
+
/**
* {@inheritDoc}
*
diff --git a/core/api/src/main/java/org/onosproject/net/newresource/DiscreteResource.java b/core/api/src/main/java/org/onosproject/net/newresource/DiscreteResource.java
index beb564a..cc3b30a 100644
--- a/core/api/src/main/java/org/onosproject/net/newresource/DiscreteResource.java
+++ b/core/api/src/main/java/org/onosproject/net/newresource/DiscreteResource.java
@@ -46,6 +46,11 @@
}
@Override
+ public String simpleTypeName() {
+ return id.simpleTypeName();
+ }
+
+ @Override
public boolean isTypeOf(Class<?> type) {
checkNotNull(type);
@@ -80,14 +85,6 @@
return Optional.of(value);
}
- @Override
- public Object last() {
- if (id.components().isEmpty()) {
- return null;
- }
- return id.components().get(id.components().size() - 1);
- }
-
private boolean isRoot() {
return id.equals(ResourceId.ROOT);
}
diff --git a/core/api/src/main/java/org/onosproject/net/newresource/DiscreteResourceId.java b/core/api/src/main/java/org/onosproject/net/newresource/DiscreteResourceId.java
index 0e38f5e..70e0119 100644
--- a/core/api/src/main/java/org/onosproject/net/newresource/DiscreteResourceId.java
+++ b/core/api/src/main/java/org/onosproject/net/newresource/DiscreteResourceId.java
@@ -45,6 +45,15 @@
}
@Override
+ String simpleTypeName() {
+ if (components.isEmpty()) {
+ return "Root";
+ }
+
+ return components.get(components.size() - 1).getClass().getSimpleName();
+ }
+
+ @Override
public DiscreteResourceId child(Object child) {
checkArgument(!(child instanceof Class<?>));
diff --git a/core/api/src/main/java/org/onosproject/net/newresource/Resource.java b/core/api/src/main/java/org/onosproject/net/newresource/Resource.java
index 5572592..1548717 100644
--- a/core/api/src/main/java/org/onosproject/net/newresource/Resource.java
+++ b/core/api/src/main/java/org/onosproject/net/newresource/Resource.java
@@ -48,6 +48,17 @@
ResourceId id();
/**
+ * Returns the simple type name of this resource.
+ *
+ * Example:<br>
+ * Resource: DeviceId:1/PortNumber:1/VlanId:200<br>
+ * Simple type name: VlanId<br>
+ *
+ * @return the simple type name of this resource
+ */
+ String simpleTypeName();
+
+ /**
* Checks if the type of this instance is the specified type.
*
* @param type type of resource to be checked
@@ -75,14 +86,6 @@
<T> Optional<T> valueAs(Class<T> type);
/**
- * Returns the last component of this instance.
- *
- * @return the last component of this instance.
- * The return value is equal to the last object of {@code components()}.
- */
- Object last();
-
- /**
* Returns the parent resource of this instance.
* E.g. if this resource is Link:1/VLAN ID:100, the return value is the resource for Link:1.
*
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
index 8fcccb7..002dc87 100644
--- a/core/api/src/main/java/org/onosproject/net/newresource/ResourceId.java
+++ b/core/api/src/main/java/org/onosproject/net/newresource/ResourceId.java
@@ -29,6 +29,8 @@
abstract ImmutableList<Object> components();
+ abstract String simpleTypeName();
+
/**
* Returns the parent resource ID of this instance.
*