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;
}