Migrate lisp-proto implementation to IETF YANG model
[lispflowmapping.git] / mappingservice / lisp-proto / src / main / java / org / opendaylight / yang / gen / v1 / urn / ietf / params / xml / ns / yang / ietf / lisp / address / types / rev151105 / SimpleAddressBuilder.java
index 2ee4042846580e07ca77555c4bc6932dfed32e7a..b6620efc3106e75b21bf1e22333bee6529b1e45c 100644 (file)
@@ -1,5 +1,9 @@
 package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105;
 
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddressBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpPrefixBuilder;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.MacAddress;
+
 
 /**
  * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
@@ -12,8 +16,52 @@ package org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.addre
  */
 public class SimpleAddressBuilder {
 
-    public static SimpleAddress getDefaultInstance(java.lang.String defaultValue) {
-        throw new java.lang.UnsupportedOperationException("Not yet implemented");
+    public static SimpleAddress getDefaultInstance(String defaultValue) {
+        SimpleAddress address = tryIpAddress(defaultValue);
+        if (address != null) {
+            return address;
+        }
+
+        address = tryIpPrefix(defaultValue);
+        if (address != null) {
+            return address;
+        }
+
+        address = tryMacAddress(defaultValue);
+        if (address != null) {
+            return address;
+        }
+
+        // XXX need support for MAC addresses and AS numbers
+        address = new SimpleAddress(new DistinguishedNameType(defaultValue));
+
+        return address;
     }
 
+    private static SimpleAddress tryIpAddress(String defaultValue) {
+        try {
+            SimpleAddress address = new SimpleAddress(IpAddressBuilder.getDefaultInstance(defaultValue));
+            return address;
+        } catch (IllegalArgumentException e) {
+            return null;
+        }
+    }
+
+    private static SimpleAddress tryIpPrefix(String defaultValue) {
+        try {
+            SimpleAddress address = new SimpleAddress(IpPrefixBuilder.getDefaultInstance(defaultValue));
+            return address;
+        } catch (IllegalArgumentException e) {
+            return null;
+        }
+    }
+
+    private static SimpleAddress tryMacAddress(String defaultValue) {
+        try {
+            SimpleAddress address = new SimpleAddress(new MacAddress(defaultValue));
+            return address;
+        } catch (IllegalArgumentException e) {
+            return null;
+        }
+    }
 }