the return of the flowentry

Change-Id: I7dbeb6af2014a4df5b0beb7fe0157eaaac63bd0f
diff --git a/providers/openflow/flow/src/main/java/org/onlab/onos/provider/of/flow/impl/FlowRuleBuilder.java b/providers/openflow/flow/src/main/java/org/onlab/onos/provider/of/flow/impl/FlowEntryBuilder.java
similarity index 91%
rename from providers/openflow/flow/src/main/java/org/onlab/onos/provider/of/flow/impl/FlowRuleBuilder.java
rename to providers/openflow/flow/src/main/java/org/onlab/onos/provider/of/flow/impl/FlowEntryBuilder.java
index 028e857..14c2c22 100644
--- a/providers/openflow/flow/src/main/java/org/onlab/onos/provider/of/flow/impl/FlowRuleBuilder.java
+++ b/providers/openflow/flow/src/main/java/org/onlab/onos/provider/of/flow/impl/FlowEntryBuilder.java
@@ -6,11 +6,13 @@
 
 import org.onlab.onos.net.DeviceId;
 import org.onlab.onos.net.PortNumber;
+import org.onlab.onos.net.flow.DefaultFlowEntry;
 import org.onlab.onos.net.flow.DefaultFlowRule;
 import org.onlab.onos.net.flow.DefaultTrafficSelector;
 import org.onlab.onos.net.flow.DefaultTrafficTreatment;
+import org.onlab.onos.net.flow.FlowEntry;
+import org.onlab.onos.net.flow.FlowEntry.FlowEntryState;
 import org.onlab.onos.net.flow.FlowRule;
-import org.onlab.onos.net.flow.FlowRule.FlowRuleState;
 import org.onlab.onos.net.flow.TrafficSelector;
 import org.onlab.onos.net.flow.TrafficTreatment;
 import org.onlab.onos.openflow.controller.Dpid;
@@ -37,7 +39,7 @@
 
 import com.google.common.collect.Lists;
 
-public class FlowRuleBuilder {
+public class FlowEntryBuilder {
     private final Logger log = getLogger(getClass());
 
     private final OFFlowStatsEntry stat;
@@ -51,7 +53,7 @@
     private final boolean addedRule;
 
 
-    public FlowRuleBuilder(Dpid dpid, OFFlowStatsEntry entry) {
+    public FlowEntryBuilder(Dpid dpid, OFFlowStatsEntry entry) {
         this.stat = entry;
         this.match = entry.getMatch();
         this.actions = getActions(entry);
@@ -60,7 +62,7 @@
         this.addedRule = true;
     }
 
-    public FlowRuleBuilder(Dpid dpid, OFFlowRemoved removed) {
+    public FlowEntryBuilder(Dpid dpid, OFFlowRemoved removed) {
         this.match = removed.getMatch();
         this.removed = removed;
 
@@ -71,20 +73,21 @@
 
     }
 
-    public FlowRule build() {
+    public FlowEntry build() {
         if (addedRule) {
-            return new DefaultFlowRule(DeviceId.deviceId(Dpid.uri(dpid)),
+            FlowRule rule = new DefaultFlowRule(DeviceId.deviceId(Dpid.uri(dpid)),
                     buildSelector(), buildTreatment(), stat.getPriority(),
-                    FlowRuleState.ADDED, stat.getDurationSec(),
-                    stat.getPacketCount().getValue(), stat.getByteCount().getValue(),
                     stat.getCookie().getValue(), stat.getIdleTimeout());
+            return new DefaultFlowEntry(rule, FlowEntryState.ADDED,
+                    stat.getDurationSec(), stat.getPacketCount().getValue(),
+                    stat.getByteCount().getValue());
+
         } else {
-            // TODO: revisit potentially.
-            return new DefaultFlowRule(DeviceId.deviceId(Dpid.uri(dpid)),
+            FlowRule rule = new DefaultFlowRule(DeviceId.deviceId(Dpid.uri(dpid)),
                     buildSelector(), null, removed.getPriority(),
-                    FlowRuleState.REMOVED, removed.getDurationSec(),
-                    removed.getPacketCount().getValue(), removed.getByteCount().getValue(),
-                    removed.getCookie().getValue(), removed.getIdleTimeout());
+                   removed.getCookie().getValue(), removed.getIdleTimeout());
+            return new DefaultFlowEntry(rule, FlowEntryState.REMOVED, removed.getDurationSec(),
+                    removed.getPacketCount().getValue(), removed.getByteCount().getValue());
         }
     }
 
diff --git a/providers/openflow/flow/src/main/java/org/onlab/onos/provider/of/flow/impl/OpenFlowRuleProvider.java b/providers/openflow/flow/src/main/java/org/onlab/onos/provider/of/flow/impl/OpenFlowRuleProvider.java
index c4507b4..eac3c18 100644
--- a/providers/openflow/flow/src/main/java/org/onlab/onos/provider/of/flow/impl/OpenFlowRuleProvider.java
+++ b/providers/openflow/flow/src/main/java/org/onlab/onos/provider/of/flow/impl/OpenFlowRuleProvider.java
@@ -12,6 +12,7 @@
 import org.apache.felix.scr.annotations.ReferenceCardinality;
 import org.onlab.onos.ApplicationId;
 import org.onlab.onos.net.DeviceId;
+import org.onlab.onos.net.flow.FlowEntry;
 import org.onlab.onos.net.flow.FlowRule;
 import org.onlab.onos.net.flow.FlowRuleProvider;
 import org.onlab.onos.net.flow.FlowRuleProviderRegistry;
@@ -131,7 +132,7 @@
     implements OpenFlowSwitchListener, OpenFlowEventListener {
 
         private final Map<Dpid, FlowStatsCollector> collectors = Maps.newHashMap();
-        private final Multimap<DeviceId, FlowRule> completeEntries =
+        private final Multimap<DeviceId, FlowEntry> completeEntries =
                 ArrayListMultimap.create();
 
         @Override
@@ -158,7 +159,7 @@
                 //TODO: make this better
                 OFFlowRemoved removed = (OFFlowRemoved) msg;
 
-                FlowRule fr = new FlowRuleBuilder(dpid, removed).build();
+                FlowEntry fr = new FlowEntryBuilder(dpid, removed).build();
                 providerService.flowRemoved(fr);
                 break;
             case STATS_REPLY:
@@ -188,7 +189,7 @@
 
             for (OFFlowStatsEntry reply : replies.getEntries()) {
                 if (!tableMissRule(dpid, reply)) {
-                    completeEntries.put(did, new FlowRuleBuilder(dpid, reply).build());
+                    completeEntries.put(did, new FlowEntryBuilder(dpid, reply).build());
                 }
             }