Added Support for Union Type def resolving and bug fixes.
[controller.git] / opendaylight / sal / yang-prototype / yang / yang-model-util / src / main / java / org / opendaylight / controller / yang / model / util / InstanceIdentifier.java
index e4f62546f68abfebdfbc295869b223c3c4d170f3..8139d5b50b50bb302d1e5802b5a01ac74c8545b8 100644 (file)
@@ -22,39 +22,40 @@ import org.opendaylight.controller.yang.model.api.type.InstanceIdentifierTypeDef
  *
  * @see InstanceIdentifierTypeDefinition
  */
-public class InstanceIdentifier implements InstanceIdentifierTypeDefinition {
-
+public final class InstanceIdentifier implements InstanceIdentifierTypeDefinition {
     private static final QName name = BaseTypes
             .constructQName("instance-identifier");
     private static final String description = "The instance-identifier built-in type is used to " +
                "uniquely identify a particular instance node in the data tree.";
     private static final String reference = "https://tools.ietf.org/html/rfc6020#section-9.13";
 
-    private final transient SchemaPath path = BaseTypes.schemaPath(name);
+    private final transient SchemaPath path;
     private final RevisionAwareXPath xpath;
     private final String units = "";
-
+    private final InstanceIdentifierTypeDefinition baseType;
     private final boolean requireInstance;
 
-    public InstanceIdentifier(RevisionAwareXPath xpath, boolean requireInstance) {
+    public InstanceIdentifier(final SchemaPath path, RevisionAwareXPath xpath, boolean requireInstance) {
         super();
+        this.path = path;
         this.xpath = xpath;
         this.requireInstance = requireInstance;
+        this.baseType = this;
     }
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see org.opendaylight.controller.yang.model.api.TypeDefinition#getBaseType()
      */
     @Override
     public InstanceIdentifierTypeDefinition getBaseType() {
-        return this;
+        return baseType;
     }
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see org.opendaylight.controller.yang.model.api.TypeDefinition#getUnits()
      */
     @Override
@@ -64,7 +65,7 @@ public class InstanceIdentifier implements InstanceIdentifierTypeDefinition {
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see org.opendaylight.controller.yang.model.api.TypeDefinition#getDefaultValue()
      */
     @Override
@@ -74,7 +75,7 @@ public class InstanceIdentifier implements InstanceIdentifierTypeDefinition {
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see org.opendaylight.controller.yang.model.api.SchemaNode#getQName()
      */
     @Override
@@ -84,7 +85,7 @@ public class InstanceIdentifier implements InstanceIdentifierTypeDefinition {
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see org.opendaylight.controller.yang.model.api.SchemaNode#getPath()
      */
     @Override
@@ -94,7 +95,7 @@ public class InstanceIdentifier implements InstanceIdentifierTypeDefinition {
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see org.opendaylight.controller.yang.model.api.SchemaNode#getDescription()
      */
     @Override
@@ -104,7 +105,7 @@ public class InstanceIdentifier implements InstanceIdentifierTypeDefinition {
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see org.opendaylight.controller.yang.model.api.SchemaNode#getReference()
      */
     @Override
@@ -114,7 +115,7 @@ public class InstanceIdentifier implements InstanceIdentifierTypeDefinition {
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see org.opendaylight.controller.yang.model.api.SchemaNode#getStatus()
      */
     @Override
@@ -124,7 +125,7 @@ public class InstanceIdentifier implements InstanceIdentifierTypeDefinition {
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see org.opendaylight.controller.yang.model.api.SchemaNode#getExtensionSchemaNodes()
      */
     @Override
@@ -134,7 +135,7 @@ public class InstanceIdentifier implements InstanceIdentifierTypeDefinition {
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see org.opendaylight.controller.yang.model.api.type.InstanceIdentifierTypeDefinition#
      * getPathStatement()
      */
@@ -145,7 +146,7 @@ public class InstanceIdentifier implements InstanceIdentifierTypeDefinition {
 
     /*
      * (non-Javadoc)
-     * 
+     *
      * @see org.opendaylight.controller.yang.model.api.type.InstanceIdentifierTypeDefinition#
      * requireInstance()
      */