Refactor ResourcePath internal implementation

Change-Id: Idb3aa467b4d0e8181adf0d1766812a038b5408ac
diff --git a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/MplsPathIntentCompiler.java b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/MplsPathIntentCompiler.java
index acc5a5d..b75ca5d 100644
--- a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/MplsPathIntentCompiler.java
+++ b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/MplsPathIntentCompiler.java
@@ -146,8 +146,8 @@
 
     private Optional<MplsLabel> findMplsLabel(LinkKey link) {
         return resourceService.getAvailableResources(new ResourcePath(link)).stream()
-                .filter(x -> x.lastComponent() instanceof MplsLabel)
-                .map(x -> (MplsLabel) x.lastComponent())
+                .filter(x -> x.last() instanceof MplsLabel)
+                .map(x -> (MplsLabel) x.last())
                 .findFirst();
     }
 
diff --git a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/OpticalConnectivityIntentCompiler.java b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/OpticalConnectivityIntentCompiler.java
index d6725b7..05caa66 100644
--- a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/OpticalConnectivityIntentCompiler.java
+++ b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/OpticalConnectivityIntentCompiler.java
@@ -183,7 +183,7 @@
         IndexedLambda minLambda = findFirstLambda(lambdas);
         List<ResourcePath> lambdaResources = path.links().stream()
                 .map(x -> new ResourcePath(linkKey(x.src(), x.dst())))
-                .map(x -> ResourcePath.child(x, minLambda))
+                .map(x -> x.child(minLambda))
                 .collect(Collectors.toList());
 
         List<ResourceAllocation> allocations = resourceService.allocate(intent.id(), lambdaResources);
@@ -198,8 +198,8 @@
         return links.stream()
                 .map(x -> new ResourcePath(linkKey(x.src(), x.dst())))
                 .map(resourceService::getAvailableResources)
-                .map(x -> Iterables.filter(x, r -> r.lastComponent() instanceof IndexedLambda))
-                .map(x -> Iterables.transform(x, r -> (IndexedLambda) r.lastComponent()))
+                .map(x -> Iterables.filter(x, r -> r.last() instanceof IndexedLambda))
+                .map(x -> Iterables.transform(x, r -> (IndexedLambda) r.last()))
                 .map(x -> (Set<IndexedLambda>) ImmutableSet.copyOf(x))
                 .reduce(Sets::intersection)
                 .orElse(Collections.emptySet());
diff --git a/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceManager.java b/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceManager.java
index 77a32f4..1c6930b 100644
--- a/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceManager.java
+++ b/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceManager.java
@@ -169,7 +169,7 @@
         checkNotNull(children);
         checkArgument(!children.isEmpty());
 
-        List<ResourcePath> resources = Lists.transform(children, x -> ResourcePath.child(parent, x));
+        List<ResourcePath> resources = Lists.transform(children, parent::child);
         return store.register(resources);
     }
 
@@ -179,7 +179,7 @@
         checkNotNull(children);
         checkArgument(!children.isEmpty());
 
-        List<ResourcePath> resources = Lists.transform(children, x -> ResourcePath.child(parent, x));
+        List<ResourcePath> resources = Lists.transform(children, parent::child);
         return store.unregister(resources);
     }