Update the API generation code and code generation sample 71/671/1
authorLukas Sedlak <lsedlak@cisco.com>
Thu, 11 Apr 2013 21:47:40 +0000 (14:47 -0700)
committerMartin Vitez <mvitez@cisco.com>
Wed, 24 Jul 2013 11:44:42 +0000 (13:44 +0200)
Fixed bug in generation of package names.

Change-Id: I8314f44ddf08aceb29b0ccccbb81d2c0eaf54d1d
Signed-off-by: Tony Tkacik <ttkacik@cisco.com>
Signed-off-by: Martin Vitez <mvitez@cisco.com>
yang-model-api/src/main/java/org/opendaylight/controller/yang/model/api/UsesNode.java
yang-model-util/src/main/java/org/opendaylight/controller/yang/model/util/BaseTypes.java
yang-model-util/src/main/java/org/opendaylight/controller/yang/model/util/Leafref.java

index 715dce7027d2d72fa5804254e8ec60b5cb79c816..91fde5bd5c9bc17f1229a7405410500af1125aaa 100644 (file)
@@ -7,12 +7,16 @@
  */\r
 package org.opendaylight.controller.yang.model.api;\r
 \r
+import java.util.Map;\r
 import java.util.Set;\r
 \r
 public interface UsesNode {\r
 \r
     SchemaPath getGroupingPath();\r
+    \r
     Set<AugmentationSchema> getAugmentations();\r
+    \r
     boolean isAugmenting();\r
-\r
+    \r
+    Map<SchemaPath, SchemaNode> getRefines();\r
 }\r
index 5e8a641fc393d89c090b45c24628be73077d5b1e..3f5d3ed6cca3689586fd886e09089b78e4cfb7a4 100644 (file)
@@ -1,46 +1,70 @@
-/*
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  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
- */
-package org.opendaylight.controller.yang.model.util;
-
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.opendaylight.controller.yang.common.QName;
-import org.opendaylight.controller.yang.model.api.SchemaPath;
-
-public final class BaseTypes {
-
-    private BaseTypes() {}
-
-    public static final URI BaseTypesNamespace = URI
-            .create("urn:ietf:params:xml:ns:yang:1");
-
-    /**
-     * Construct QName for Built-in base Yang type. The namespace for
-     * built-in base yang types is defined as: urn:ietf:params:xml:ns:yang:1
-     * 
-     * @param typeName yang type name
-     * @return built-in base yang type QName.
-     */
-    public static final QName constructQName(final String typeName) {
-        return new QName(BaseTypesNamespace, typeName);
-    }
-
-    /**
-     * Creates Schema Path from Qname.
-     * 
-     * @param typeName yang type QName
-     * @return Schema Path from Qname.
-     */
-    public static final SchemaPath schemaPath(final QName typeName) {
-        final List<QName> pathList = new ArrayList<QName>();
-        pathList.add(typeName);
-        return new SchemaPath(pathList, true);
-    }
-}
+/*\r
+ * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
+ *\r
+ * This program and the accompanying materials are made available under the\r
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
+ * and is available at http://www.eclipse.org/legal/epl-v10.html\r
+ */\r
+package org.opendaylight.controller.yang.model.util;\r
+\r
+import java.net.URI;\r
+import java.util.ArrayList;\r
+import java.util.Date;\r
+import java.util.List;\r
+\r
+import org.opendaylight.controller.yang.common.QName;\r
+import org.opendaylight.controller.yang.model.api.SchemaPath;\r
+\r
+public final class BaseTypes {\r
+\r
+    private BaseTypes() {}\r
+\r
+    public static final URI BaseTypesNamespace = URI\r
+            .create("urn:ietf:params:xml:ns:yang:1");\r
+\r
+    /**\r
+     * Construct QName for Built-in base Yang type. The namespace for\r
+     * built-in base yang types is defined as: urn:ietf:params:xml:ns:yang:1\r
+     * \r
+     * @param typeName yang type name\r
+     * @return built-in base yang type QName.\r
+     */\r
+    public static final QName constructQName(final String typeName) {\r
+        return new QName(BaseTypesNamespace, typeName);\r
+    }\r
+\r
+    /**\r
+     * Creates Schema Path from Qname.\r
+     * \r
+     * @param typeName yang type QName\r
+     * @return Schema Path from Qname.\r
+     */\r
+    public static final SchemaPath schemaPath(final QName typeName) {\r
+        final List<QName> pathList = new ArrayList<QName>();\r
+        pathList.add(typeName);\r
+        return new SchemaPath(pathList, true);\r
+    }\r
+    \r
+    /**\r
+     * Creates Schema Path from List of partial paths defined as Strings, module Namespace and\r
+     * module latest Revision Date.\r
+     * \r
+     * @param actualPath List of partial paths\r
+     * @param namespace Module Namespace\r
+     * @param revision Revision Date\r
+     * @return Schema Path\r
+     */\r
+    public static final SchemaPath schemaPath(final List<String> actualPath, final URI namespace, final Date revision) {\r
+        if (actualPath == null) {\r
+            throw new IllegalArgumentException("The actual path List MUST be specified.");\r
+        }\r
+        final List<QName> pathList = new ArrayList<QName>();\r
+        for (final String path : actualPath) {\r
+            final QName qname = new QName(namespace, revision, path);\r
+            if (qname != null) {\r
+                pathList.add(qname);\r
+            }\r
+        }\r
+        return new SchemaPath(pathList, true);\r
+    }\r
+}\r
index 21fdbde5fea6b7ede3d3ee8da8afa06e7e80c9d4..32181162906b2d1ade73af544d883b61e7348282 100644 (file)
-/*
-  * Copyright (c) 2013 Cisco Systems, Inc. and others.  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
-  */
-package org.opendaylight.controller.yang.model.util;
-
-import java.util.Collections;
-import java.util.List;
-
-import org.opendaylight.controller.yang.common.QName;
-import org.opendaylight.controller.yang.model.api.RevisionAwareXPath;
-import org.opendaylight.controller.yang.model.api.SchemaPath;
-import org.opendaylight.controller.yang.model.api.Status;
-import org.opendaylight.controller.yang.model.api.UnknownSchemaNode;
-import org.opendaylight.controller.yang.model.api.type.LeafrefTypeDefinition;
-
-/**
- * The <code>default</code> implementation of Instance Leafref Type Definition interface.
- *
- * @see LeafrefTypeDefinition
- */
-public class Leafref implements LeafrefTypeDefinition {
-    private static final QName name = BaseTypes.constructQName("leafref");
-    private static final String description = "The leafref type is used to reference a " +
-               "particular leaf instance in the data tree.";
-    private static final String reference = "https://tools.ietf.org/html/rfc6020#section-9.9";
-    private final SchemaPath path = BaseTypes.schemaPath(name);
-    private final RevisionAwareXPath xpath;
-    private final String units = "";
-
-    public Leafref(RevisionAwareXPath xpath) {
-        super();
-        this.xpath = xpath;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.opendaylight.controller.yang.model.api.TypeDefinition#getBaseType()
-     */
-    @Override
-    public LeafrefTypeDefinition getBaseType() {
-        return this;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.opendaylight.controller.yang.model.api.TypeDefinition#getUnits()
-     */
-    @Override
-    public String getUnits() {
-        return units;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.opendaylight.controller.yang.model.api.TypeDefinition#getDefaultValue()
-     */
-    @Override
-    public Object getDefaultValue() {
-        return this;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.opendaylight.controller.yang.model.api.SchemaNode#getQName()
-     */
-    @Override
-    public QName getQName() {
-        return name;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.opendaylight.controller.yang.model.api.SchemaNode#getPath()
-     */
-    @Override
-    public SchemaPath getPath() {
-        return path;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.opendaylight.controller.yang.model.api.SchemaNode#getDescription()
-     */
-    @Override
-    public String getDescription() {
-        return description;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.opendaylight.controller.yang.model.api.SchemaNode#getReference()
-     */
-    @Override
-    public String getReference() {
-        return reference;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.opendaylight.controller.yang.model.api.SchemaNode#getStatus()
-     */
-    @Override
-    public Status getStatus() {
-        return Status.CURRENT;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.opendaylight.controller.yang.model.api.SchemaNode#getExtensionSchemaNodes()
-     */
-    @Override
-    public List<UnknownSchemaNode> getUnknownSchemaNodes() {
-        return Collections.emptyList();
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.opendaylight.controller.yang.model.api.type.LeafrefTypeDefinition#getPathStatement()
-     */
-    @Override
-    public RevisionAwareXPath getPathStatement() {
-        return xpath;
-    }
-
-    @Override
-    public int hashCode() {
-        final int prime = 31;
-        int result = 1;
-        result = prime * result + ((path == null) ? 0 : path.hashCode());
-        result = prime * result + ((units == null) ? 0 : units.hashCode());
-        result = prime * result + ((xpath == null) ? 0 : xpath.hashCode());
-        return result;
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (this == obj) {
-            return true;
-        }
-        if (obj == null) {
-            return false;
-        }
-        if (getClass() != obj.getClass()) {
-            return false;
-        }
-        Leafref other = (Leafref) obj;
-        if (path == null) {
-            if (other.path != null) {
-                return false;
-            }
-        } else if (!path.equals(other.path)) {
-            return false;
-        }
-        if (units == null) {
-            if (other.units != null) {
-                return false;
-            }
-        } else if (!units.equals(other.units)) {
-            return false;
-        }
-        if (xpath == null) {
-            if (other.xpath != null) {
-                return false;
-            }
-        } else if (!xpath.equals(other.xpath)) {
-            return false;
-        }
-        return true;
-    }
-
-    @Override
-    public String toString() {
-        StringBuilder builder = new StringBuilder();
-        builder.append("Leafref [path=");
-        builder.append(path);
-        builder.append(", xpath=");
-        builder.append(xpath);
-        builder.append(", units=");
-        builder.append(units);
-        builder.append("]");
-        return builder.toString();
-    }
-}
+/*\r
+ * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
+ *\r
+ * This program and the accompanying materials are made available under the\r
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
+ * and is available at http://www.eclipse.org/legal/epl-v10.html\r
+ */\r
+package org.opendaylight.controller.yang.model.util;\r
+\r
+import java.net.URI;\r
+import java.util.Collections;\r
+import java.util.Date;\r
+import java.util.List;\r
+\r
+import org.opendaylight.controller.yang.common.QName;\r
+import org.opendaylight.controller.yang.model.api.RevisionAwareXPath;\r
+import org.opendaylight.controller.yang.model.api.SchemaPath;\r
+import org.opendaylight.controller.yang.model.api.Status;\r
+import org.opendaylight.controller.yang.model.api.UnknownSchemaNode;\r
+import org.opendaylight.controller.yang.model.api.type.LeafrefTypeDefinition;\r
+\r
+/**\r
+ * The <code>default</code> implementation of Instance Leafref Type Definition\r
+ * interface.\r
+ * \r
+ * @see LeafrefTypeDefinition\r
+ */\r
+public class Leafref implements LeafrefTypeDefinition {\r
+    private static final QName name = BaseTypes.constructQName("leafref");\r
+    private static final String description = "The leafref type is used to reference a "\r
+            + "particular leaf instance in the data tree.";\r
+    private static final String reference = "https://tools.ietf.org/html/rfc6020#section-9.9";\r
+    private final SchemaPath path;\r
+    private final RevisionAwareXPath xpath;\r
+    private final String units = "";\r
+    private final LeafrefTypeDefinition baseType;\r
+\r
+    private Leafref(final RevisionAwareXPath xpath) {\r
+        this.xpath = xpath;\r
+        this.path = BaseTypes.schemaPath(name);\r
+        this.baseType = this;\r
+    }\r
+    \r
+    public Leafref(final List<String> actualPath, final URI namespace,\r
+            final Date revision, final RevisionAwareXPath xpath) {\r
+        super();\r
+        this.path = BaseTypes.schemaPath(actualPath, namespace, revision);\r
+        this.xpath = xpath;\r
+        baseType = new Leafref(xpath);\r
+    }\r
+    \r
+    public Leafref(final List<String> actualPath, final URI namespace,\r
+            final Date revision, final LeafrefTypeDefinition baseType,\r
+            final RevisionAwareXPath xpath) {\r
+        super();\r
+        this.path = BaseTypes.schemaPath(actualPath, namespace, revision);\r
+        this.xpath = xpath;\r
+        this.baseType = baseType;\r
+    }\r
+\r
+    /*\r
+     * (non-Javadoc)\r
+     * \r
+     * @see\r
+     * org.opendaylight.controller.yang.model.api.TypeDefinition#getBaseType()\r
+     */\r
+    @Override\r
+    public LeafrefTypeDefinition getBaseType() {\r
+        return baseType;\r
+    }\r
+\r
+    /*\r
+     * (non-Javadoc)\r
+     * \r
+     * @see org.opendaylight.controller.yang.model.api.TypeDefinition#getUnits()\r
+     */\r
+    @Override\r
+    public String getUnits() {\r
+        return units;\r
+    }\r
+\r
+    /*\r
+     * (non-Javadoc)\r
+     * \r
+     * @see\r
+     * org.opendaylight.controller.yang.model.api.TypeDefinition#getDefaultValue\r
+     * ()\r
+     */\r
+    @Override\r
+    public Object getDefaultValue() {\r
+        return this;\r
+    }\r
+\r
+    /*\r
+     * (non-Javadoc)\r
+     * \r
+     * @see org.opendaylight.controller.yang.model.api.SchemaNode#getQName()\r
+     */\r
+    @Override\r
+    public QName getQName() {\r
+        return name;\r
+    }\r
+\r
+    /*\r
+     * (non-Javadoc)\r
+     * \r
+     * @see org.opendaylight.controller.yang.model.api.SchemaNode#getPath()\r
+     */\r
+    @Override\r
+    public SchemaPath getPath() {\r
+        return path;\r
+    }\r
+\r
+    /*\r
+     * (non-Javadoc)\r
+     * \r
+     * @see\r
+     * org.opendaylight.controller.yang.model.api.SchemaNode#getDescription()\r
+     */\r
+    @Override\r
+    public String getDescription() {\r
+        return description;\r
+    }\r
+\r
+    /*\r
+     * (non-Javadoc)\r
+     * \r
+     * @see org.opendaylight.controller.yang.model.api.SchemaNode#getReference()\r
+     */\r
+    @Override\r
+    public String getReference() {\r
+        return reference;\r
+    }\r
+\r
+    /*\r
+     * (non-Javadoc)\r
+     * \r
+     * @see org.opendaylight.controller.yang.model.api.SchemaNode#getStatus()\r
+     */\r
+    @Override\r
+    public Status getStatus() {\r
+        return Status.CURRENT;\r
+    }\r
+\r
+    /*\r
+     * (non-Javadoc)\r
+     * \r
+     * @see\r
+     * org.opendaylight.controller.yang.model.api.SchemaNode#getExtensionSchemaNodes\r
+     * ()\r
+     */\r
+    @Override\r
+    public List<UnknownSchemaNode> getUnknownSchemaNodes() {\r
+        return Collections.emptyList();\r
+    }\r
+\r
+    /*\r
+     * (non-Javadoc)\r
+     * \r
+     * @see\r
+     * org.opendaylight.controller.yang.model.api.type.LeafrefTypeDefinition\r
+     * #getPathStatement()\r
+     */\r
+    @Override\r
+    public RevisionAwareXPath getPathStatement() {\r
+        return xpath;\r
+    }\r
+\r
+    @Override\r
+    public int hashCode() {\r
+        final int prime = 31;\r
+        int result = 1;\r
+        result = prime * result + ((path == null) ? 0 : path.hashCode());\r
+        result = prime * result + ((units == null) ? 0 : units.hashCode());\r
+        result = prime * result + ((xpath == null) ? 0 : xpath.hashCode());\r
+        return result;\r
+    }\r
+\r
+    @Override\r
+    public boolean equals(Object obj) {\r
+        if (this == obj) {\r
+            return true;\r
+        }\r
+        if (obj == null) {\r
+            return false;\r
+        }\r
+        if (getClass() != obj.getClass()) {\r
+            return false;\r
+        }\r
+        Leafref other = (Leafref) obj;\r
+        if (path == null) {\r
+            if (other.path != null) {\r
+                return false;\r
+            }\r
+        } else if (!path.equals(other.path)) {\r
+            return false;\r
+        }\r
+        if (units == null) {\r
+            if (other.units != null) {\r
+                return false;\r
+            }\r
+        } else if (!units.equals(other.units)) {\r
+            return false;\r
+        }\r
+        if (xpath == null) {\r
+            if (other.xpath != null) {\r
+                return false;\r
+            }\r
+        } else if (!xpath.equals(other.xpath)) {\r
+            return false;\r
+        }\r
+        return true;\r
+    }\r
+\r
+    @Override\r
+    public String toString() {\r
+        StringBuilder builder = new StringBuilder();\r
+        builder.append("Leafref [path=");\r
+        builder.append(path);\r
+        builder.append(", xpath=");\r
+        builder.append(xpath);\r
+        builder.append(", units=");\r
+        builder.append(units);\r
+        builder.append("]");\r
+        return builder.toString();\r
+    }\r
+}\r