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());