Finalize Match/Action Objects - ONOS-1728
* Added equals() and hashCode() methods to objects with IDs
* Added/Updates Javadocs
* Implemented rudimentary execute and query methods for
Operations in the MatchActionModule. Operations are preserved
but not actually executed currently.
* Implemented factories for MatchActionOperationsId and
MatchActionOperations
* Added unit tests to check creation and execution of MatchAction
* Added unit tests for new Immutable classes
Change-Id: Id865d04fd1048d00e533736c95c3052148041d95
diff --git a/src/main/java/net/onrc/onos/core/matchaction/MatchActionModule.java b/src/main/java/net/onrc/onos/core/matchaction/MatchActionModule.java
index 557932e..9ed031c 100644
--- a/src/main/java/net/onrc/onos/core/matchaction/MatchActionModule.java
+++ b/src/main/java/net/onrc/onos/core/matchaction/MatchActionModule.java
@@ -1,6 +1,9 @@
package net.onrc.onos.core.matchaction;
+import java.util.Collections;
import java.util.EventListener;
+import java.util.HashSet;
+import java.util.List;
import java.util.Set;
import net.onrc.onos.api.flowmanager.ConflictDetectionPolicy;
@@ -11,6 +14,19 @@
*/
public class MatchActionModule implements MatchActionService {
+ private final HashSet<MatchAction> currentOperations = new HashSet<>();
+
+ private boolean processMatchActionEntries(
+ final List<MatchActionOperationEntry> entries) {
+ int successfulOperations = 0;
+ for (final MatchActionOperationEntry entry : entries) {
+ if (currentOperations.add(entry.getTarget())) {
+ successfulOperations++;
+ }
+ }
+ return entries.size() == successfulOperations;
+ }
+
@Override
public boolean addMatchAction(MatchAction matchAction) {
return false;
@@ -18,14 +34,12 @@
@Override
public Set<MatchAction> getMatchActions() {
- // TODO Auto-generated method stub
- return null;
+ return Collections.unmodifiableSet(currentOperations);
}
@Override
public boolean executeOperations(final MatchActionOperations operations) {
- // TODO Auto-generated method stub
- return false;
+ return processMatchActionEntries(operations.getOperations());
}
@Override