Refactored intermediate IntentUpdate classes

Change-Id: I3d4a435ef4aa97559d5407d49f45519098c3f193
diff --git a/core/net/src/main/java/org/onosproject/net/intent/impl/Withdrawn.java b/core/net/src/main/java/org/onosproject/net/intent/impl/Withdrawn.java
index a313fea..6ea20ae 100644
--- a/core/net/src/main/java/org/onosproject/net/intent/impl/Withdrawn.java
+++ b/core/net/src/main/java/org/onosproject/net/intent/impl/Withdrawn.java
@@ -15,53 +15,22 @@
  */
 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 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.WITHDRAWING;
 
 class Withdrawn 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 final List<FlowRuleBatchOperation> batches;
-    private int currentBatch;
+    private final IntentData intentData;
 
-    Withdrawn(IntentManager intentManager,
-              Intent intent, List<Intent> installables, List<FlowRuleBatchOperation> batches) {
-        this.intentManager = checkNotNull(intentManager);
-        this.intent = checkNotNull(intent);
-        this.installables = ImmutableList.copyOf(installables);
-        this.batches = new LinkedList<>(batches);
-        this.currentBatch = 0;
+    Withdrawn(IntentData intentData) {
+        this.intentData = checkNotNull(intentData);
+        this.intentData.setState(WITHDRAWING);
     }
 
     @Override
-    public List<Intent> allInstallables() {
-        return installables;
-    }
-
-    @Override
-    public void batchSuccess() {
-        currentBatch++;
-    }
-
-    @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);
-        }
-        batches.addAll(intentManager.uninstallIntent(intent, installables));
+    public IntentData data() {
+        return intentData;
     }
 }