Fixed missing static constant QNAME in identity classes. 76/3576/1
authorTony Tkacik <ttkacik@cisco.com>
Mon, 9 Dec 2013 13:56:41 +0000 (14:56 +0100)
committerTony Tkacik <ttkacik@cisco.com>
Mon, 9 Dec 2013 13:56:41 +0000 (14:56 +0100)
Signed-off-by: Tony Tkacik <ttkacik@cisco.com>
code-generator/binding-generator-impl/src/main/java/org/opendaylight/yangtools/sal/binding/generator/impl/BindingGeneratorImpl.xtend
code-generator/binding-generator-impl/src/main/java/org/opendaylight/yangtools/sal/binding/generator/impl/ModuleContext.java

index 4d694bba9270a351159ba1aa7f7a9bfaaa22727f..88fb52d4639c34e34bbba7305b6a6b11fca0a085 100644 (file)
@@ -573,8 +573,12 @@ public class BindingGeneratorImpl implements BindingGenerator {
             val gto = new GeneratedTOBuilderImpl(returnTypePkgName, returnTypeName).toInstance();
             newType.setExtendsType(gto);
         }
-        newType.setAbstract(true);
-        genCtx.get(module).addIdentityType(newType)
+        newType.setAbstract(true);\r
+        val qname = identity.QName;\r
+        newType.addConstant(QName.typeForClass,"QNAME",'''\r
+            org.opendaylight.yangtools.yang.common.QName.create("«qname.namespace»","«qname.formattedRevision»","«qname.localName»")\r
+        ''');
+        genCtx.get(module).addIdentityType(identity.QName,newType)
     }
 
     /**\r
index cf4885faa5b1fa3718182f2e5f9f5c42542056e1..c57f6226fcda68b80df51dc47c413a159206f3f5 100644 (file)
@@ -17,6 +17,7 @@ import java.util.Set;
 import org.opendaylight.yangtools.sal.binding.model.api.Type;
 import org.opendaylight.yangtools.sal.binding.model.api.type.builder.GeneratedTOBuilder;
 import org.opendaylight.yangtools.sal.binding.model.api.type.builder.GeneratedTypeBuilder;
+import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.AugmentationSchema;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 
@@ -27,7 +28,7 @@ public final class ModuleContext {
     private final Map<SchemaPath, GeneratedTypeBuilder> childNodes = new HashMap<SchemaPath, GeneratedTypeBuilder>();
     private final Map<SchemaPath, GeneratedTypeBuilder> groupings = new HashMap<SchemaPath, GeneratedTypeBuilder>();
     private final Map<SchemaPath, GeneratedTypeBuilder> cases = new HashMap<SchemaPath, GeneratedTypeBuilder>();
-    private final Set<GeneratedTOBuilder> identities = new HashSet<GeneratedTOBuilder>();
+    private final Map<QName,GeneratedTOBuilder> identities = new HashMap<>();
     private final Set<GeneratedTypeBuilder> topLevelNodes = new HashSet<GeneratedTypeBuilder>();
     private final List<GeneratedTypeBuilder> augmentations = new ArrayList<GeneratedTypeBuilder>();
     private final Map<Type,AugmentationSchema> typeToAugmentation = new HashMap<>();
@@ -58,7 +59,7 @@ public final class ModuleContext {
         for (GeneratedTypeBuilder b : cases.values()) {
             result.add(b.toInstance());
         }
-        for (GeneratedTOBuilder b : identities) {
+        for (GeneratedTOBuilder b : identities.values()) {
             result.add(b.toInstance());
         }
         for (GeneratedTypeBuilder b : topLevelNodes) {
@@ -110,8 +111,8 @@ public final class ModuleContext {
         cases.put(p, b);
     }
 
-    public void addIdentityType(GeneratedTOBuilder b) {
-        identities.add(b);
+    public void addIdentityType(QName name,GeneratedTOBuilder b) {
+        identities.put(name,b);
     }
 
     public void addTopLevelNodeType(GeneratedTypeBuilder b) {
@@ -138,7 +139,7 @@ public final class ModuleContext {
         return cases;
     }
 
-    public Set<GeneratedTOBuilder> getIdentities() {
+    public Map<QName,GeneratedTOBuilder> getIdentities() {
         return identities;
     }