Move static factory methods to the utility class

Change-Id: Icf458adf78f51823e4ffa31346595fa9716485bf
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 511c0c2..c8c7e8f 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
@@ -51,6 +51,7 @@
 import org.onosproject.net.intent.MplsPathIntent;
 import org.onosproject.net.newresource.Resource;
 import org.onosproject.net.newresource.ResourceService;
+import org.onosproject.net.newresource.Resources;
 import org.onosproject.net.resource.link.LinkResourceAllocations;
 import org.slf4j.Logger;
 
@@ -125,9 +126,9 @@
         // TODO: introduce the concept of Tx and Rx resources of a port
         Set<Resource> resources = labels.entrySet().stream()
                 .flatMap(x -> Stream.of(
-                        Resource.discrete(x.getKey().src().deviceId(), x.getKey().src().port(), x.getValue())
+                        Resources.discrete(x.getKey().src().deviceId(), x.getKey().src().port(), x.getValue())
                                 .resource(),
-                        Resource.discrete(x.getKey().dst().deviceId(), x.getKey().dst().port(), x.getValue())
+                        Resources.discrete(x.getKey().dst().deviceId(), x.getKey().dst().port(), x.getValue())
                                 .resource()
                 ))
                 .collect(Collectors.toSet());
@@ -156,7 +157,7 @@
     }
 
     private Set<MplsLabel> findMplsLabel(ConnectPoint cp) {
-        return resourceService.getAvailableResources(Resource.discrete(cp.deviceId(), cp.port()).resource()).stream()
+        return resourceService.getAvailableResources(Resources.discrete(cp.deviceId(), cp.port()).resource()).stream()
                 .filter(x -> x.last() instanceof MplsLabel)
                 .map(x -> (MplsLabel) x.last())
                 .collect(Collectors.toSet());
diff --git a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/OpticalCircuitIntentCompiler.java b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/OpticalCircuitIntentCompiler.java
index a08b843..d2f92d5 100644
--- a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/OpticalCircuitIntentCompiler.java
+++ b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/OpticalCircuitIntentCompiler.java
@@ -52,6 +52,7 @@
 import org.onosproject.net.newresource.ResourceAllocation;
 import org.onosproject.net.newresource.Resource;
 import org.onosproject.net.newresource.ResourceService;
+import org.onosproject.net.newresource.Resources;
 import org.onosproject.net.resource.device.IntentSetMultimap;
 import org.onosproject.net.resource.link.LinkResourceAllocations;
 import org.osgi.service.component.ComponentContext;
@@ -160,8 +161,8 @@
         log.debug("Compiling optical circuit intent between {} and {}", src, dst);
 
         // Reserve OduClt ports
-        Resource srcPortResource = Resource.discrete(src.deviceId(), src.port()).resource();
-        Resource dstPortResource = Resource.discrete(dst.deviceId(), dst.port()).resource();
+        Resource srcPortResource = Resources.discrete(src.deviceId(), src.port()).resource();
+        Resource dstPortResource = Resources.discrete(dst.deviceId(), dst.port()).resource();
         List<ResourceAllocation> allocation = resourceService.allocate(intent.id(), srcPortResource, dstPortResource);
         if (allocation.isEmpty()) {
             throw new IntentCompilationException("Unable to reserve ports for intent " + intent);
@@ -312,7 +313,8 @@
         if (ochCP != null) {
             OchPort ochPort = (OchPort) deviceService.getPort(ochCP.deviceId(), ochCP.port());
             Optional<IntentId> intentId =
-                    resourceService.getResourceAllocations(Resource.discrete(ochCP.deviceId(), ochCP.port()).resource())
+                    resourceService.getResourceAllocations(
+                            Resources.discrete(ochCP.deviceId(), ochCP.port()).resource())
                             .stream()
                             .map(ResourceAllocation::consumer)
                             .filter(x -> x instanceof IntentId)
@@ -334,7 +336,7 @@
 
             Optional<IntentId> intentId =
                     resourceService.getResourceAllocations(
-                            Resource.discrete(oduPort.deviceId(), port.number()).resource())
+                            Resources.discrete(oduPort.deviceId(), port.number()).resource())
                             .stream()
                             .map(ResourceAllocation::consumer)
                             .filter(x -> x instanceof IntentId)
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 690f3c2..2f04cfd 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
@@ -46,6 +46,7 @@
 import org.onosproject.net.newresource.ResourceAllocation;
 import org.onosproject.net.newresource.Resource;
 import org.onosproject.net.newresource.ResourceService;
+import org.onosproject.net.newresource.Resources;
 import org.onosproject.net.resource.link.LinkResourceAllocations;
 import org.onosproject.net.topology.LinkWeight;
 import org.onosproject.net.topology.Topology;
@@ -109,8 +110,8 @@
         log.debug("Compiling optical connectivity intent between {} and {}", src, dst);
 
         // Reserve OCh ports
-        Resource srcPortResource = Resource.discrete(src.deviceId(), src.port()).resource();
-        Resource dstPortResource = Resource.discrete(dst.deviceId(), dst.port()).resource();
+        Resource srcPortResource = Resources.discrete(src.deviceId(), src.port()).resource();
+        Resource dstPortResource = Resources.discrete(dst.deviceId(), dst.port()).resource();
         List<ResourceAllocation> allocation = resourceService.allocate(intent.id(), srcPortResource, dstPortResource);
         if (allocation.isEmpty()) {
             throw new IntentCompilationException("Unable to reserve ports for intent " + intent);
@@ -183,8 +184,8 @@
         List<OchSignal> minLambda = findFirstLambda(lambdas, slotCount());
         List<Resource> lambdaResources = path.links().stream()
                 .flatMap(x -> Stream.of(
-                        Resource.discrete(x.src().deviceId(), x.src().port()).resource(),
-                        Resource.discrete(x.dst().deviceId(), x.dst().port()).resource()
+                        Resources.discrete(x.src().deviceId(), x.src().port()).resource(),
+                        Resources.discrete(x.dst().deviceId(), x.dst().port()).resource()
                 ))
                 .flatMap(x -> minLambda.stream().map(l -> x.child(l)))
                 .collect(Collectors.toList());
@@ -213,8 +214,8 @@
     private Set<OchSignal> findCommonLambdasOverLinks(List<Link> links) {
         return links.stream()
                 .flatMap(x -> Stream.of(
-                        Resource.discrete(x.src().deviceId(), x.src().port()).resource(),
-                        Resource.discrete(x.dst().deviceId(), x.dst().port()).resource()
+                        Resources.discrete(x.src().deviceId(), x.src().port()).resource(),
+                        Resources.discrete(x.dst().deviceId(), x.dst().port()).resource()
                 ))
                 .map(resourceService::getAvailableResources)
                 .map(x -> Iterables.filter(x, r -> r.last() instanceof OchSignal))
diff --git a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/PathIntentCompiler.java b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/PathIntentCompiler.java
index 842e5e0..7473ce5 100644
--- a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/PathIntentCompiler.java
+++ b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/PathIntentCompiler.java
@@ -46,6 +46,7 @@
 import org.onosproject.net.intent.impl.IntentCompilationException;
 import org.onosproject.net.newresource.Resource;
 import org.onosproject.net.newresource.ResourceService;
+import org.onosproject.net.newresource.Resources;
 import org.onosproject.net.resource.link.LinkResourceAllocations;
 import org.slf4j.Logger;
 
@@ -252,9 +253,9 @@
         //same VLANID is used for both directions
         Set<Resource> resources = vlanIds.entrySet().stream()
                 .flatMap(x -> Stream.of(
-                        Resource.discrete(x.getKey().src().deviceId(), x.getKey().src().port(), x.getValue())
+                        Resources.discrete(x.getKey().src().deviceId(), x.getKey().src().port(), x.getValue())
                                 .resource(),
-                        Resource.discrete(x.getKey().dst().deviceId(), x.getKey().dst().port(), x.getValue())
+                        Resources.discrete(x.getKey().dst().deviceId(), x.getKey().dst().port(), x.getValue())
                                 .resource()
                 ))
                 .collect(Collectors.toSet());
@@ -282,7 +283,7 @@
     }
 
     private Set<VlanId> findVlanId(ConnectPoint cp) {
-        return resourceService.getAvailableResources(Resource.discrete(cp.deviceId(), cp.port()).resource()).stream()
+        return resourceService.getAvailableResources(Resources.discrete(cp.deviceId(), cp.port()).resource()).stream()
                 .filter(x -> x.last() instanceof VlanId)
                 .map(x -> (VlanId) x.last())
                 .collect(Collectors.toSet());
diff --git a/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceDeviceListener.java b/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceDeviceListener.java
index 2a85fbb..64691d5 100644
--- a/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceDeviceListener.java
+++ b/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceDeviceListener.java
@@ -40,6 +40,7 @@
 import org.onosproject.net.newresource.ResourceAdminService;
 import org.onosproject.net.newresource.BandwidthCapacity;
 import org.onosproject.net.newresource.Resource;
+import org.onosproject.net.newresource.Resources;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -118,15 +119,15 @@
     }
 
     private void registerDeviceResource(Device device) {
-        executor.submit(() -> adminService.registerResources(Resource.discrete(device.id()).resource()));
+        executor.submit(() -> adminService.registerResources(Resources.discrete(device.id()).resource()));
     }
 
     private void unregisterDeviceResource(Device device) {
-        executor.submit(() -> adminService.unregisterResources(Resource.discrete(device.id()).resource()));
+        executor.submit(() -> adminService.unregisterResources(Resources.discrete(device.id()).resource()));
     }
 
     private void registerPortResource(Device device, Port port) {
-        Resource portPath = Resource.discrete(device.id(), port.number()).resource();
+        Resource portPath = Resources.discrete(device.id(), port.number()).resource();
         executor.submit(() -> {
             adminService.registerResources(portPath);
 
@@ -174,7 +175,7 @@
     }
 
     private void unregisterPortResource(Device device, Port port) {
-        Resource resource = Resource.discrete(device.id(), port.number()).resource();
+        Resource resource = Resources.discrete(device.id(), port.number()).resource();
         executor.submit(() -> adminService.unregisterResources(resource));
     }
 
diff --git a/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceNetworkConfigListener.java b/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceNetworkConfigListener.java
index b8d373b..e98a3c3 100644
--- a/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceNetworkConfigListener.java
+++ b/core/net/src/main/java/org/onosproject/net/newresource/impl/ResourceNetworkConfigListener.java
@@ -17,7 +17,6 @@
 
 import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkNotNull;
-import static org.onosproject.net.newresource.Resource.continuous;
 import static org.slf4j.LoggerFactory.getLogger;
 
 import java.util.Set;
@@ -30,6 +29,7 @@
 import org.onosproject.net.config.NetworkConfigService;
 import org.onosproject.net.newresource.BandwidthCapacity;
 import org.onosproject.net.newresource.ResourceAdminService;
+import org.onosproject.net.newresource.Resources;
 import org.slf4j.Logger;
 
 import com.google.common.annotations.Beta;
@@ -93,8 +93,8 @@
 
         switch (event.type()) {
         case CONFIG_ADDED:
-            if (!adminService.registerResources(continuous(cp.deviceId(),
-                                                           cp.port(), Bandwidth.class)
+            if (!adminService.registerResources(Resources.continuous(cp.deviceId(),
+                    cp.port(), Bandwidth.class)
                     .resource(bwCapacity.capacity().bps()))) {
                 log.info("Failed to register Bandwidth for {}, attempting update", cp);
 
@@ -115,9 +115,9 @@
 
         case CONFIG_REMOVED:
             // FIXME Following should be an update to the value based on port speed
-            if (!adminService.unregisterResources(continuous(cp.deviceId(),
-                                                             cp.port(),
-                                                             Bandwidth.class).resource(0))) {
+            if (!adminService.unregisterResources(Resources.continuous(cp.deviceId(),
+                    cp.port(),
+                    Bandwidth.class).resource(0))) {
                 log.warn("Failed to unregister Bandwidth for {}", cp);
             }
             break;
@@ -147,12 +147,13 @@
         // but both unregisterResources(..) and  registerResources(..)
         // returns true (success)
 
-        if (!adminService.unregisterResources(continuous(cp.deviceId(), cp.port(), Bandwidth.class).resource(0))) {
+        if (!adminService.unregisterResources(
+                Resources.continuous(cp.deviceId(), cp.port(), Bandwidth.class).resource(0))) {
             log.warn("unregisterResources for {} failed", cp);
         }
-        return adminService.registerResources(continuous(cp.deviceId(),
-                                                         cp.port(),
-                                                         Bandwidth.class).resource(bwCapacity.capacity().bps()));
+        return adminService.registerResources(Resources.continuous(cp.deviceId(),
+                cp.port(),
+                Bandwidth.class).resource(bwCapacity.capacity().bps()));
     }
 
 }
diff --git a/core/net/src/test/java/org/onosproject/net/intent/impl/ObjectiveTrackerTest.java b/core/net/src/test/java/org/onosproject/net/intent/impl/ObjectiveTrackerTest.java
index 7c1036e..eb5a4bc 100644
--- a/core/net/src/test/java/org/onosproject/net/intent/impl/ObjectiveTrackerTest.java
+++ b/core/net/src/test/java/org/onosproject/net/intent/impl/ObjectiveTrackerTest.java
@@ -41,7 +41,7 @@
 import org.onosproject.net.link.LinkEvent;
 import org.onosproject.net.newresource.ResourceEvent;
 import org.onosproject.net.newresource.ResourceListener;
-import org.onosproject.net.newresource.Resource;
+import org.onosproject.net.newresource.Resources;
 import org.onosproject.net.topology.Topology;
 import org.onosproject.net.topology.TopologyEvent;
 import org.onosproject.net.topology.TopologyListener;
@@ -232,7 +232,7 @@
     @Test
     public void testResourceEvent() throws Exception {
         ResourceEvent event = new ResourceEvent(RESOURCE_ADDED,
-                Resource.discrete(DeviceId.deviceId("a"), PortNumber.portNumber(1)).resource());
+                Resources.discrete(DeviceId.deviceId("a"), PortNumber.portNumber(1)).resource());
         resourceListener.event(event);
 
         assertThat(