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 8a042c8..f372c59 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
@@ -52,6 +52,23 @@
         return name;
     }
 
+    @Override
+    boolean isTypeOf(Class<?> type) {
+        String typeName = (String) lastComponent();
+        return typeName.equals(type.getCanonicalName());
+    }
+
+    @Override
+    boolean isSubTypeOf(Class<?> ancestor) {
+        String typeName = (String) lastComponent();
+        boolean foundInLeaf = typeName.equals(ancestor.getCanonicalName());
+        boolean foundInAncestor = components.subList(0, components.size()).stream()
+                .filter(x -> ancestor.isAssignableFrom(x.getClass()))
+                .findAny()
+                .isPresent();
+        return foundInAncestor || foundInLeaf;
+    }
+
     /**
      * {@inheritDoc}
      *
@@ -86,6 +103,10 @@
         }
     }
 
+    private Object lastComponent() {
+        return components.get(components.size() - 1);
+    }
+
     @Override
     public int hashCode() {
         return components.hashCode();
