[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/DefaultForwardingObjective.java b/core/api/src/main/java/org/onosproject/net/flowobjective/DefaultForwardingObjective.java
index a44b05b..bea1e96 100644
--- a/core/api/src/main/java/org/onosproject/net/flowobjective/DefaultForwardingObjective.java
+++ b/core/api/src/main/java/org/onosproject/net/flowobjective/DefaultForwardingObjective.java
@@ -18,6 +18,8 @@
import com.google.common.annotations.Beta;
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;
@@ -32,7 +34,8 @@
* Default implementation of a forwarding objective.
*/
@Beta
-public final class DefaultForwardingObjective implements ForwardingObjective {
+public final class DefaultForwardingObjective extends AbstractAnnotated
+ implements ForwardingObjective {
private final TrafficSelector selector;
private final Flag flag;
@@ -49,6 +52,7 @@
private final int id;
private DefaultForwardingObjective(Builder builder) {
+ super(builder.annotations);
this.selector = builder.selector;
this.flag = builder.flag;
this.permanent = builder.permanent;
@@ -169,6 +173,7 @@
.add("appId", appId())
.add("permanent", permanent())
.add("timeout", timeout())
+ .add("annotations", annotations())
.toString();
}
@@ -212,6 +217,8 @@
private Operation op;
private ObjectiveContext context;
private TrafficSelector meta;
+ private Annotations annotations;
+
// Creates an empty builder
private Builder() {
@@ -229,6 +236,7 @@
this.treatment = objective.treatment();
this.op = objective.op();
this.meta = objective.meta();
+ this.annotations = objective.annotations();
}
@Override
@@ -287,6 +295,12 @@
}
@Override
+ public Builder withAnnotations(Annotations annotations) {
+ this.annotations = annotations;
+ return this;
+ }
+
+ @Override
public ForwardingObjective add() {
checkNotNull(selector, "Must have a selector");
checkNotNull(flag, "A flag must be set");