yang model revise: adds util methods and common types 33/39233/4
authorIsaku Yamahata <isaku.yamahata@intel.com>
Wed, 18 May 2016 06:28:42 +0000 (23:28 -0700)
committerIsaku Yamahata <isaku.yamahata@intel.com>
Fri, 10 Jun 2016 07:05:07 +0000 (00:05 -0700)
This patch is a preparation for yang model clean up to introduce
to utility methods and common type, ip-prefix-or-address.

Change-Id: Idb566523a2f66899c558fb12c7a8e76d7d330be0
Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com>
model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/neutron/types/rev160517/IpPrefixOrAddressBuilder.java [new file with mode: 0644]
model/src/main/yang/neutron-types.yang [new file with mode: 0644]

diff --git a/model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/neutron/types/rev160517/IpPrefixOrAddressBuilder.java b/model/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/neutron/types/rev160517/IpPrefixOrAddressBuilder.java
new file mode 100644 (file)
index 0000000..664affc
--- /dev/null
@@ -0,0 +1,29 @@
+package org.opendaylight.yang.gen.v1.urn.opendaylight.neutron.types.rev160517;
+
+
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress;
+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.IpPrefix;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpPrefixBuilder;
+
+
+/**
+ * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
+ * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
+ *
+ * The reason behind putting it under src/main/java is:
+ * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
+ * loss of user code.
+ *
+ */
+public class IpPrefixOrAddressBuilder {
+    public static IpPrefixOrAddress getDefaultInstance(final java.lang.String defaultValue) {
+        try {
+            IpPrefix ipPrefix = IpPrefixBuilder.getDefaultInstance(defaultValue);
+            return new IpPrefixOrAddress(ipPrefix);
+        } catch (IllegalArgumentException e) {
+            IpAddress ipAddress = IpAddressBuilder.getDefaultInstance(defaultValue);
+            return new IpPrefixOrAddress(ipAddress);
+        }
+    }
+}
diff --git a/model/src/main/yang/neutron-types.yang b/model/src/main/yang/neutron-types.yang
new file mode 100644 (file)
index 0000000..9289725
--- /dev/null
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2016 Intel Corporation.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+module neutron-types {
+
+    yang-version 1;
+
+    namespace "urn:opendaylight:neutron-types";
+
+    prefix neutron-types;
+
+    // It requires rfc6991 (revision 2013-07-15), but odl don't have it, so this patch verify build will fail.
+    import ietf-inet-types { prefix "inet"; revision-date 2010-09-24; }
+
+    organization "OpenDaylight Neutron Group";
+
+    contact "Isaku Yamahata <isaku.yamahata@gmail.com>";
+
+    description "This YANG module defines common typedefs for Openstack Neutron";
+
+    revision "2016-05-17" {
+        description
+                "OpenDaylight Boron release";
+    }
+
+    typedef ip-prefix-or-address {
+        description "ip prefix or ip address";
+        type union {
+            type inet:ip-prefix;
+            type inet:ip-address;
+        }
+    }
+}
+