Remove dependency on LinkResourceService from Constraint

Change-Id: Ib9c488331b22eef6769a767c6186ef7d2e8b1501
diff --git a/core/api/src/main/java/org/onosproject/net/intent/constraint/LatencyConstraint.java b/core/api/src/main/java/org/onosproject/net/intent/constraint/LatencyConstraint.java
index aecef87..1e0d12a 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/constraint/LatencyConstraint.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/constraint/LatencyConstraint.java
@@ -20,7 +20,7 @@
 import org.onosproject.net.Link;
 import org.onosproject.net.Path;
 import org.onosproject.net.intent.Constraint;
-import org.onosproject.net.resource.link.LinkResourceService;
+import org.onosproject.net.intent.ResourceContext;
 
 import java.time.Duration;
 import java.time.temporal.ChronoUnit;
@@ -54,14 +54,26 @@
         return latency;
     }
 
+    // doesn't use LinkResourceService
     @Override
-    public double cost(Link link, LinkResourceService resourceService) {
+    public double cost(Link link, ResourceContext context) {
+        // explicitly call a method not depending on LinkResourceService
+        return cost(link);
+    }
+
+    private double cost(Link link) {
         return getAnnotatedValue(link, LATENCY);
     }
 
+    // doesn't use LinkResourceService
     @Override
-    public boolean validate(Path path, LinkResourceService resourceService) {
-        double pathLatency = path.links().stream().mapToDouble(link -> cost(link, resourceService)).sum();
+    public boolean validate(Path path, ResourceContext context) {
+        // explicitly call a method not depending on LinkResourceService
+        return validate(path);
+    }
+
+    private boolean validate(Path path) {
+        double pathLatency = path.links().stream().mapToDouble(this::cost).sum();
         return Duration.of((long) pathLatency, ChronoUnit.MICROS).compareTo(latency) <= 0;
     }