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);
+ }
}
}