Refactor ResourcePath internal implementation

Change-Id: Idb3aa467b4d0e8181adf0d1766812a038b5408ac
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());