[ONOS-5750] Improve MappingEntryBuilder to convert LCAF to ext addr

Change-Id: I0353575633bbe1073413b61ad134634716ad75b4
diff --git a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/addresses/ExtensionMappingAddressWrapper.java b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/addresses/ExtensionMappingAddressWrapper.java
index a3a539a..474af5a 100644
--- a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/addresses/ExtensionMappingAddressWrapper.java
+++ b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/addresses/ExtensionMappingAddressWrapper.java
@@ -16,7 +16,6 @@
 package org.onosproject.mapping.addresses;
 
 import org.onosproject.net.DeviceId;
-import org.onosproject.net.flow.criteria.ExtensionSelector;
 
 import java.util.Objects;
 
@@ -25,17 +24,18 @@
  */
 public final class ExtensionMappingAddressWrapper implements MappingAddress {
 
-    private final ExtensionSelector extensionSelector;
+    private final ExtensionMappingAddress extensionMappingAddress;
     private final DeviceId deviceId;
 
     /**
      * Default constructor of ExtensionMappingAddressWrapper.
      *
-     * @param extensionSelector extension selector
-     * @param deviceId          device identifier
+     * @param extensionMappingAddress extension mapping address
+     * @param deviceId device identifier
      */
-    public ExtensionMappingAddressWrapper(ExtensionSelector extensionSelector, DeviceId deviceId) {
-        this.extensionSelector = extensionSelector;
+    public ExtensionMappingAddressWrapper(ExtensionMappingAddress extensionMappingAddress,
+                                          DeviceId deviceId) {
+        this.extensionMappingAddress = extensionMappingAddress;
         this.deviceId = deviceId;
     }
 
@@ -45,12 +45,12 @@
     }
 
     /**
-     * Returns the extension selector.
+     * Returns the extension mapping address.
      *
-     * @return extension selector
+     * @return extension mapping address
      */
-    public ExtensionSelector extensionSelector() {
-        return extensionSelector;
+    public ExtensionMappingAddress extensionMappingAddress() {
+        return extensionMappingAddress;
     }
 
     /**
@@ -64,12 +64,12 @@
 
     @Override
     public String toString() {
-        return type().toString() + TYPE_SEPARATOR + deviceId + "/" + extensionSelector;
+        return type().toString() + TYPE_SEPARATOR + extensionMappingAddress;
     }
 
     @Override
     public int hashCode() {
-        return Objects.hash(type().ordinal(), extensionSelector, deviceId);
+        return Objects.hash(type().ordinal(), extensionMappingAddress);
     }
 
     @Override
@@ -79,7 +79,7 @@
         }
         if (obj instanceof ExtensionMappingAddressWrapper) {
             ExtensionMappingAddressWrapper that = (ExtensionMappingAddressWrapper) obj;
-            return Objects.equals(extensionSelector, that.extensionSelector) &&
+            return Objects.equals(extensionMappingAddress, that.extensionMappingAddress) &&
                     Objects.equals(deviceId, that.deviceId);
         }
         return false;
diff --git a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/addresses/MappingAddresses.java b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/addresses/MappingAddresses.java
index a47dae0..1a3cafe 100644
--- a/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/addresses/MappingAddresses.java
+++ b/apps/mappingmanagement/api/src/main/java/org/onosproject/mapping/addresses/MappingAddresses.java
@@ -17,6 +17,7 @@
 
 import org.onlab.packet.IpPrefix;
 import org.onlab.packet.MacAddress;
+import org.onosproject.net.DeviceId;
 
 /**
  * Factory class for creating various mapping addresses.
@@ -77,4 +78,16 @@
     public static IPMappingAddress ipv6MappingAddress(IpPrefix ip) {
         return new IPMappingAddress(ip, MappingAddress.Type.IPV6);
     }
+
+    /**
+     * Creates an extension mapping address wrapper.
+     *
+     * @param address extension mapping address
+     * @param deviceId device identifier
+     * @return extension mapping address wrapper
+     */
+    public static ExtensionMappingAddressWrapper
+                  extensionMappingAddressWrapper(ExtensionMappingAddress address, DeviceId deviceId) {
+        return new ExtensionMappingAddressWrapper(address, deviceId);
+    }
 }