Fixed SchemaPath resolution for base YANG types.
[controller.git] / opendaylight / sal / yang-prototype / yang / yang-model-util / src / main / java / org / opendaylight / controller / yang / model / util / IdentityrefType.java
index 3837f72a8ae6d937e6d96f2e4c79da2865330a41..533318e39e3c15e8ac5fc1fcde2ac5d36fb669f0 100644 (file)
@@ -7,7 +7,9 @@
   */\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
@@ -24,16 +26,32 @@ import org.opendaylight.controller.yang.model.api.type.IdentityrefTypeDefinition
 public class IdentityrefType implements IdentityrefTypeDefinition {\r
 \r
     private final QName name = BaseTypes.constructQName("identityref");\r
-    private final SchemaPath path = BaseTypes.schemaPath(name);\r
+    private final SchemaPath path;\r
     private final String description = "The identityref type is used to reference an existing identity.";\r
     private final String reference = "https://tools.ietf.org/html/rfc6020#section-9.10";\r
+    private final IdentityrefTypeDefinition baseType;\r
 \r
     private final QName identity;\r
 \r
     private String units = "";\r
 \r
-    public IdentityrefType(QName identity) {\r
+    private IdentityrefType(QName identity) {\r
         this.identity = identity;\r
+        this.path = BaseTypes.schemaPath(name);\r
+        this.baseType = this;\r
+    }\r
+\r
+    public IdentityrefType(QName identity, SchemaPath schemaPath) {\r
+        this.identity = identity;\r
+        this.path = schemaPath;\r
+        this.baseType = new IdentityrefType(identity);\r
+    }\r
+\r
+    public IdentityrefType(final List<String> actualPath,\r
+            final URI namespace, final Date revision, final QName identity) {\r
+        this.identity = identity;\r
+        this.path = BaseTypes.schemaPath(actualPath, namespace, revision);\r
+        this.baseType = new IdentityrefType(identity);\r
     }\r
 \r
     @Override\r
@@ -83,7 +101,7 @@ public class IdentityrefType implements IdentityrefTypeDefinition {
 \r
     @Override\r
     public IdentityrefTypeDefinition getBaseType() {\r
-        return this;\r
+        return baseType;\r
     }\r
 \r
 }\r