Skeletons for Intent-runtime, Flow-manager and Match-action modules.

This task is a part of ONOS-1395.
(Sub-tasks: ONOS-1397, ONOS-1398, ONOS-1400)

Change-Id: I30064f658b6c193aee8419079dad380163364475
diff --git a/src/main/java/net/onrc/onos/core/matchaction/IMatchActionService.java b/src/main/java/net/onrc/onos/core/matchaction/IMatchActionService.java
new file mode 100644
index 0000000..9b829a5
--- /dev/null
+++ b/src/main/java/net/onrc/onos/core/matchaction/IMatchActionService.java
@@ -0,0 +1,79 @@
+package net.onrc.onos.core.matchaction;
+
+import java.util.Collection;
+import java.util.EventListener;
+
+import net.onrc.onos.api.flowmanager.ConflictDetectionPolicy;
+
+/**
+ * An interface for the match-action service.
+ */
+public interface IMatchActionService {
+    /**
+     * Adds a new match-action entry.
+     *
+     * @param matchAction MatchAction object to be added.
+     * @return true if succeeded, false otherwise.
+     */
+    boolean addMatchAction(MatchAction matchAction);
+
+    /**
+     * Removes the existing match-action entry.
+     *
+     * @param id ID for MatchaAction object to be removed.
+     * @return true if succeeded, false otherwise.
+     */
+    boolean removeMatchAction(String id);
+
+    /**
+     * Replaces the existing match-action entry by specified match-action entry.
+     *
+     * @param matchAction MatchAction object which overwrites existing
+     *        match-action.
+     * @return true if succeeded, false otherwise.
+     */
+    boolean updateMatchAction(MatchAction matchAction);
+
+    /**
+     * Gets the set of match-action entries.
+     *
+     * @return The set of match-action entries.
+     */
+    Collection<MatchAction> getMatchActions();
+
+    /**
+     * Executes match-action operation plan.
+     *
+     * @param plan MatchActionPlan to be executed.
+     * @return true if succeeded, false otherwise.
+     */
+    boolean executePlan(MatchActionPlan plan);
+
+    /**
+     * Sets a conflict detection policy.
+     *
+     * @param policy ConflictDetectionPolicy object to be set.
+     */
+    void setConflictDetectionPolicy(ConflictDetectionPolicy policy);
+
+    /**
+     * Gets the conflict detection policy.
+     *
+     * @return ConflictDetectionPolicy object being applied currently.
+     */
+    ConflictDetectionPolicy getConflictDetectionPolicy();
+
+    /**
+     * Adds event listener to this service.
+     *
+     * @param listener EventListener to be added.
+     */
+    void addEventListener(EventListener listener);
+
+    /**
+     * Removes event listener from this service.
+     *
+     * @param listener EventListener to be removed.
+     */
+    void removeEventListener(EventListener listener);
+}