[Emu] openTAM: FlowStatisticManager, DistributedFlowStatisticStore, get-flow-stats CLI Implementation and NewAdaptiveFlowStatsCollector update and typo

 - GetFlowStatistics.java
   .Fixed function name typo: immediateLoad()
 - SummaryFlowEntryWithLoad.java
   .Added javadoc
 - TypedFlowEntryWithLoad.java
   .Added javadoc,
   .and replace checknotnull and throw NullPointerException in typedPollInterval() at line 104

Change-Id: I23d2eaf234d0affeb5f927275148d9165c66c774
diff --git a/core/api/src/main/java/org/onosproject/net/statistic/FlowStatisticStore.java b/core/api/src/main/java/org/onosproject/net/statistic/FlowStatisticStore.java
new file mode 100644
index 0000000..3c2aa89
--- /dev/null
+++ b/core/api/src/main/java/org/onosproject/net/statistic/FlowStatisticStore.java
@@ -0,0 +1,65 @@
+/*

+ * Copyright 2015 Open Networking Laboratory

+ *

+ * Licensed under the Apache License, Version 2.0 (the "License");

+ * you may not use this file except in compliance with the License.

+ * You may obtain a copy of the License at

+ *

+ *     http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing, software

+ * distributed under the License is distributed on an "AS IS" BASIS,

+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

+ * See the License for the specific language governing permissions and

+ * limitations under the License.

+ */

+

+package org.onosproject.net.statistic;

+

+import org.onosproject.net.ConnectPoint;

+import org.onosproject.net.flow.FlowEntry;

+import org.onosproject.net.flow.FlowRule;

+

+import java.util.Set;

+

+/**

+ * Flow Store to house the computed statistics.

+ */

+public interface FlowStatisticStore {

+    /**

+     * Remove entries associated with this rule.

+     *

+     * @param rule {@link org.onosproject.net.flow.FlowRule}

+     */

+    void removeFlowStatistic(FlowRule rule);

+

+    /**

+     * Adds a flow stats observation for a flow rule. The previous flow will be removed.

+     *

+     * @param rule a {@link org.onosproject.net.flow.FlowEntry}

+     */

+    void addFlowStatistic(FlowEntry rule);

+

+    /**

+     * Updates a stats observation for a flow rule. The old flow stats will be moved to previous stats.

+     *

+     * @param rule a {@link org.onosproject.net.flow.FlowEntry}

+     */

+    void updateFlowStatistic(FlowEntry rule);

+

+    /**

+     * Fetches the current observed flow stats values.

+     *

+     * @param connectPoint the port to fetch information for

+     * @return set of current flow rules

+     */

+    Set<FlowEntry> getCurrentFlowStatistic(ConnectPoint connectPoint);

+

+    /**

+     * Fetches the current observed flow stats values.

+     *

+     * @param connectPoint the port to fetch information for

+     * @return set of current values

+     */

+    Set<FlowEntry> getPreviousFlowStatistic(ConnectPoint connectPoint);

+}