Initial Match Action Module implementation
This patch set implements the Match Action framework that
Brian and I have been working on. Still a work in progress,
not all implementations complete, and not all javadocs and
tests in place.
Unit tests are currently not working, so they are commented out.
Change-Id: I61d79555c6bbb2d5437b2433613ab47ab8cea4f6
diff --git a/src/main/java/net/onrc/onos/core/matchaction/MatchActionOperations.java b/src/main/java/net/onrc/onos/core/matchaction/MatchActionOperations.java
index c865203..e87fcda 100644
--- a/src/main/java/net/onrc/onos/core/matchaction/MatchActionOperations.java
+++ b/src/main/java/net/onrc/onos/core/matchaction/MatchActionOperations.java
@@ -2,18 +2,22 @@
import net.onrc.onos.api.batchoperation.BatchOperation;
+import java.util.HashSet;
+import java.util.Set;
+
import static com.google.common.base.Preconditions.checkNotNull;
/**
* The MatchActionOperations class holds a list of MatchActionOperationEntry
* objects to be executed together as one set.
- * <p/>
- * Objects of this class are immutable.
*/
-public final class MatchActionOperations
+public class MatchActionOperations
extends BatchOperation<MatchActionOperationEntry> {
private final MatchActionOperationsId id;
+ private MatchActionOperationsState state;
+ private final Set<MatchActionOperationsId> dependencies;
+
/**
* The MatchAction operators.
*/
@@ -30,6 +34,8 @@
*/
public MatchActionOperations(final MatchActionOperationsId newId) {
id = checkNotNull(newId);
+ state = MatchActionOperationsState.INIT;
+ dependencies = new HashSet<>();
}
/**
@@ -41,6 +47,38 @@
return id;
}
+ /**
+ * Gets the state of the Match Action Operations.
+ *
+ * @return state of the operations
+ */
+ public MatchActionOperationsState getState() {
+ return state;
+ }
+
+ /**
+ * Sets the state of the Match Action Operations.
+ *
+ * @param newState new state of the operations
+ */
+ public void setState(final MatchActionOperationsState newState) {
+ state = newState;
+ }
+
+ /**
+ * Gets the set of IDs of operations that are dependent on this
+ * operation.
+ *
+ * @return set of operations IDs of dependent operations
+ */
+ public Set<MatchActionOperationsId> getDependencies() {
+ return dependencies;
+ }
+
+ public void addDependency(MatchActionOperationsId dependentOperationId) {
+ dependencies.add(dependentOperationId);
+ }
+
@Override
public int hashCode() {
return id.hashCode();