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/newintent/IntentRuntimeModule.java b/src/main/java/net/onrc/onos/core/newintent/IntentRuntimeModule.java
new file mode 100644
index 0000000..6a2cf8c
--- /dev/null
+++ b/src/main/java/net/onrc/onos/core/newintent/IntentRuntimeModule.java
@@ -0,0 +1,101 @@
+package net.onrc.onos.core.newintent;
+
+import java.util.Collection;
+import java.util.EventListener;
+
+import net.onrc.onos.api.batchoperation.BatchOperation;
+import net.onrc.onos.api.flowmanager.ConflictDetectionPolicy;
+import net.onrc.onos.api.flowmanager.IFlow;
+import net.onrc.onos.api.intent.IIntentRuntimeService;
+import net.onrc.onos.api.intent.Intent;
+
+/**
+ * Implementation of Intent-Runtime Service.
+ * <p>
+ * TODO: Make all methods thread-safe. <br>
+ * TODO: Design methods to support the ReactiveForwarding and the SDN-IP.
+ */
+public class IntentRuntimeModule implements IIntentRuntimeService {
+
+    @Override
+    public boolean addIntent(Intent intent) {
+        BatchOperation<Intent> ops = new BatchOperation<Intent>();
+        ops.addAddOperation(intent);
+        return executeBatch(ops);
+    }
+
+    @Override
+    public boolean removeIntent(String id) {
+        BatchOperation<Intent> ops = new BatchOperation<Intent>();
+        ops.addRemoveOperation(id);
+        return executeBatch(ops);
+    }
+
+    @Override
+    public boolean updateIntent(String id, Intent intent) {
+        BatchOperation<Intent> ops = new BatchOperation<Intent>();
+        ops.addUpdateOperation(id, intent);
+        return executeBatch(ops);
+    }
+
+    @Override
+    public Intent getIntent(String id) {
+        // TODO Auto-generated method stub
+        // - retrieves intents from global distributed maps
+        return null;
+    }
+
+    @Override
+    public Collection<Intent> getIntents() {
+        // TODO Auto-generated method stub
+        // - retrieves intents from global distributed maps
+        return null;
+    }
+
+    @Override
+    public boolean executeBatch(BatchOperation<Intent> ops) {
+        // TODO Auto-generated method stub
+        // - gets flow operations using compile() method for each Intent object.
+        // - allocates resources
+        // - combines and executes flow operations using FlowManager Service.
+        // - updates global distributed maps
+        return false;
+    }
+
+    @Override
+    public Collection<IFlow> getFlows(String intentId) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    public Intent getIntentByFlow(String flowId) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    public void setConflictDetectionPolicy(ConflictDetectionPolicy policy) {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public ConflictDetectionPolicy getConflictDetectionPolicy() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    public void addEventListener(EventListener listener) {
+        // TODO Auto-generated method stub
+        // - listener for addition/removal of intents,
+        // and states changes of intents
+    }
+
+    @Override
+    public void removeEventListener(EventListener listener) {
+        // TODO Auto-generated method stub
+
+    }
+}