Augment provider service to query mapping value from protocol layer

Change-Id: Ib6f03102ea2b720968117f032293e09c11cbf619
diff --git a/apps/mappingmanagement/mgr/src/main/java/org/onosproject/mapping/impl/MappingManager.java b/apps/mappingmanagement/mgr/src/main/java/org/onosproject/mapping/impl/MappingManager.java
index 289bb2a..4f0ed79 100644
--- a/apps/mappingmanagement/mgr/src/main/java/org/onosproject/mapping/impl/MappingManager.java
+++ b/apps/mappingmanagement/mgr/src/main/java/org/onosproject/mapping/impl/MappingManager.java
@@ -27,6 +27,7 @@
 import org.onosproject.mapping.MappingAdminService;
 import org.onosproject.mapping.MappingEntry;
 import org.onosproject.mapping.MappingEvent;
+import org.onosproject.mapping.MappingKey;
 import org.onosproject.mapping.MappingListener;
 import org.onosproject.mapping.MappingProvider;
 import org.onosproject.mapping.MappingProviderRegistry;
@@ -35,6 +36,7 @@
 import org.onosproject.mapping.MappingStore;
 import org.onosproject.mapping.MappingStore.Type;
 import org.onosproject.mapping.MappingStoreDelegate;
+import org.onosproject.mapping.MappingValue;
 import org.onosproject.net.Device;
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.device.DeviceService;
@@ -134,6 +136,21 @@
     }
 
     /**
+     * Obtains a mapping value associated a mapping key.
+     *
+     * @param mappingKey a given mapping key
+     * @return a mapping value
+     */
+    private MappingValue getMappingValueByMappingKey(MappingKey mappingKey) {
+        for (MappingEntry entry : store.getAllMappingEntries(Type.MAP_DATABASE)) {
+            if (entry.key().equals(mappingKey)) {
+                return entry.value();
+            }
+        }
+        return null;
+    }
+
+    /**
      * Store delegate.
      */
     private class InternalStoreDelegate implements MappingStoreDelegate {
@@ -163,5 +180,10 @@
         public void mappingAdded(MappingEntry mappingEntry, Type type) {
             storeMappingEntry(type, mappingEntry);
         }
+
+        @Override
+        public MappingValue mappingQueried(MappingKey mappingKey) {
+            return getMappingValueByMappingKey(mappingKey);
+        }
     }
 }