Refactored intermediate IntentUpdate classes
Change-Id: I3d4a435ef4aa97559d5407d49f45519098c3f193
diff --git a/core/net/src/main/java/org/onosproject/net/intent/impl/Installed.java b/core/net/src/main/java/org/onosproject/net/intent/impl/Installed.java
index 316821b..a3a7e1d 100644
--- a/core/net/src/main/java/org/onosproject/net/intent/impl/Installed.java
+++ b/core/net/src/main/java/org/onosproject/net/intent/impl/Installed.java
@@ -15,60 +15,21 @@
*/
package org.onosproject.net.intent.impl;
-import com.google.common.collect.ImmutableList;
-import org.onosproject.net.flow.FlowRuleBatchOperation;
-import org.onosproject.net.intent.Intent;
-import org.onosproject.net.intent.IntentState;
-
-import java.util.LinkedList;
-import java.util.List;
+import org.onosproject.net.intent.IntentData;
import static com.google.common.base.Preconditions.checkNotNull;
-import static org.onosproject.net.intent.IntentState.FAILED;
import static org.onosproject.net.intent.IntentState.INSTALLING;
class Installed implements CompletedIntentUpdate {
- // TODO: define an interface and use it, instead of IntentManager
- private final IntentManager intentManager;
- private final Intent intent;
- private final List<Intent> installables;
- private IntentState intentState;
- private final List<FlowRuleBatchOperation> batches;
- private int currentBatch = 0;
+ private final IntentData intentData;
- Installed(IntentManager intentManager,
- Intent intent, List<Intent> installables, List<FlowRuleBatchOperation> batches) {
- this.intentManager = checkNotNull(intentManager);
- this.intent = checkNotNull(intent);
- this.installables = ImmutableList.copyOf(checkNotNull(installables));
- this.batches = new LinkedList<>(checkNotNull(batches));
- this.intentState = INSTALLING;
+ Installed(IntentData intentData) {
+ this.intentData = checkNotNull(intentData);
+ this.intentData.setState(INSTALLING);
}
- @Override
- public void batchSuccess() {
- currentBatch++;
- }
-
- @Override
- public List<Intent> allInstallables() {
- return installables;
- }
-
- @Override
- public FlowRuleBatchOperation currentBatch() {
- return currentBatch < batches.size() ? batches.get(currentBatch) : null;
- }
-
- @Override
- public void batchFailed() {
- for (int i = batches.size() - 1; i >= currentBatch; i--) {
- batches.remove(i);
- }
- intentState = FAILED;
- batches.addAll(intentManager.uninstallIntent(intent, installables));
-
- // TODO we might want to try to recompile the new intent
+ public IntentData data() {
+ return intentData;
}
}