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();