[ONOS-8140][VOL-4152][SDFAB-94] Adding annotations to flow objectives
Change-Id: I4568b7d3bf4d5322395bbe14683ce48f93bd914e
diff --git a/core/api/src/main/java/org/onosproject/net/flowobjective/DefaultNextObjective.java b/core/api/src/main/java/org/onosproject/net/flowobjective/DefaultNextObjective.java
index 36656c4..32635cb 100644
--- a/core/api/src/main/java/org/onosproject/net/flowobjective/DefaultNextObjective.java
+++ b/core/api/src/main/java/org/onosproject/net/flowobjective/DefaultNextObjective.java
@@ -18,6 +18,8 @@
import com.google.common.annotations.Beta;
import com.google.common.collect.ImmutableList;
import org.onosproject.core.ApplicationId;
+import org.onosproject.net.AbstractAnnotated;
+import org.onosproject.net.Annotations;
import org.onosproject.net.flow.TrafficSelector;
import org.onosproject.net.flow.TrafficTreatment;
@@ -35,7 +37,8 @@
* Default implementation of a next objective.
*/
@Beta
-public final class DefaultNextObjective implements NextObjective {
+public final class DefaultNextObjective extends AbstractAnnotated
+ implements NextObjective {
private final List<NextTreatment> treatments;
private final ApplicationId appId;
@@ -46,6 +49,7 @@
private final TrafficSelector meta;
private DefaultNextObjective(Builder builder) {
+ super(builder.annotations);
this.treatments = builder.treatments;
this.appId = builder.appId;
this.type = builder.type;
@@ -147,6 +151,7 @@
.add("appId", appId())
.add("permanent", permanent())
.add("timeout", timeout())
+ .add("annotations", annotations())
.toString();
}
@@ -173,6 +178,7 @@
private Operation op;
private ObjectiveContext context;
private TrafficSelector meta;
+ private Annotations annotations;
private final ImmutableList.Builder<NextTreatment> listBuilder
= ImmutableList.builder();
@@ -190,6 +196,7 @@
this.meta = objective.meta();
this.appId = objective.appId();
this.op = objective.op();
+ this.annotations = objective.annotations();
}
@Override
@@ -261,6 +268,12 @@
}
@Override
+ public Builder withAnnotations(Annotations annotations) {
+ this.annotations = annotations;
+ return this;
+ }
+
+ @Override
public NextObjective add() {
return add(null);
}