ONOS-3124 Sketch of simplified intent domain service

Change-Id: I6d8304214897ba75a299bfd9bd90b4591ae8eb04
diff --git a/incubator/api/src/main/java/org/onosproject/incubator/net/domain/IntentDomainService.java b/incubator/api/src/main/java/org/onosproject/incubator/net/domain/IntentDomainService.java
index 41508ad..330e0da 100644
--- a/incubator/api/src/main/java/org/onosproject/incubator/net/domain/IntentDomainService.java
+++ b/incubator/api/src/main/java/org/onosproject/incubator/net/domain/IntentDomainService.java
@@ -16,9 +16,10 @@
 package org.onosproject.incubator.net.domain;
 
 import com.google.common.annotations.Beta;
-import org.onlab.graph.Graph;
+import org.onosproject.event.ListenerService;
 import org.onosproject.net.DeviceId;
 
+import java.util.List;
 import java.util.Set;
 
 /**
@@ -26,7 +27,8 @@
  * domain providers.
  */
 @Beta
-public interface IntentDomainService {
+public interface IntentDomainService
+        extends ListenerService<IntentDomainEvent, IntentDomainListener> {
 
     /**
      * Returns the intent domain for the given id.
@@ -52,25 +54,21 @@
     Set<IntentDomain> getDomains(DeviceId deviceId);
 
     /**
-     * Returns the graph of intent domains and connection devices.
+     * Requests an intent primitive from the intent domain.
      *
-     * @return graph of network domains
+     * @param domainId id of target domain
+     * @param primitive intent primitive
+     * @return set of intent resources that satisfy the primitive
      */
-    Graph<DomainVertex, DomainEdge> getDomainGraph();
+    List<IntentResource> request(IntentDomainId domainId, IntentPrimitive primitive);
 
     /**
-     * Adds the specified listener for intent domain events.
+     * Submits an intent resource to the intent domain for installation.
      *
-     * @param listener listener to be added
+     * @param domainId id of target domain
+     * @param resource intent resource
      */
-    void addListener(IntentDomainListener listener);
-
-    /**
-     * Removes the specified listener for intent domain events.
-     *
-     * @param listener listener to be removed
-     */
-    void removeListener(IntentDomainListener listener);
+    void submit(IntentDomainId domainId, IntentResource resource);
 }