Flow Objective implementation

Provides an abstraction which isolates the application from any pipeline
knowledge. By using the provided objectives applications can express
their forwarding desires in a pipeline agnostic way. The objectives
are then consumed by a driver for the specific device who converts them
into the appropriate pipeline coherent flows.

Change-Id: I74a68b4971c367c0cd5b7de9d877abdd117afa98
diff --git a/core/api/src/main/java/org/onosproject/net/behaviour/PipelinerContext.java b/core/api/src/main/java/org/onosproject/net/behaviour/PipelinerContext.java
index c2c6dfd..d0ca42b 100644
--- a/core/api/src/main/java/org/onosproject/net/behaviour/PipelinerContext.java
+++ b/core/api/src/main/java/org/onosproject/net/behaviour/PipelinerContext.java
@@ -16,6 +16,7 @@
 package org.onosproject.net.behaviour;
 
 import org.onlab.osgi.ServiceDirectory;
+import org.onosproject.net.flowobjective.FlowObjectiveStore;
 
 /**
  * Processing context and supporting services for the pipeline behaviour.
@@ -30,5 +31,11 @@
      */
     ServiceDirectory directory();
 
+    /**
+     * Returns the Objective Store where data can be stored and retrieved.
+     * @return the flow objective store
+     */
+    FlowObjectiveStore store();
+
     // TODO: add means to store and access shared state
 }