Refactored YangModelParserImpl
[controller.git] / opendaylight / sal / yang-prototype / code-generator / yang-model-parser-impl / src / main / java / org / opendaylight / controller / yang / model / parser / builder / impl / ModuleBuilder.java
index 90a4547f38f90054c139eaa2f8f753e20c28883e..d22295ae66e3b0eb6d0fb6928cccc88a1c05c19e 100644 (file)
@@ -24,6 +24,7 @@ import org.opendaylight.controller.yang.model.api.Deviation;
 import org.opendaylight.controller.yang.model.api.ExtensionDefinition;\r
 import org.opendaylight.controller.yang.model.api.FeatureDefinition;\r
 import org.opendaylight.controller.yang.model.api.GroupingDefinition;\r
+import org.opendaylight.controller.yang.model.api.IdentitySchemaNode;\r
 import org.opendaylight.controller.yang.model.api.Module;\r
 import org.opendaylight.controller.yang.model.api.ModuleImport;\r
 import org.opendaylight.controller.yang.model.api.NotificationDefinition;\r
@@ -71,6 +72,7 @@ public class ModuleBuilder implements Builder {
     private final Map<List<String>, UsesNodeBuilder> addedUsesNodes = new HashMap<List<String>, UsesNodeBuilder>();\r
     private final Map<List<String>, RpcDefinitionBuilder> addedRpcs = new HashMap<List<String>, RpcDefinitionBuilder>();\r
     private final Set<NotificationBuilder> addedNotifications = new HashSet<NotificationBuilder>();\r
+    private final Set<IdentitySchemaNodeBuilder> addedIdentities = new HashSet<IdentitySchemaNodeBuilder>();\r
     private final Map<List<String>, FeatureBuilder> addedFeatures = new HashMap<List<String>, FeatureBuilder>();\r
     private final Map<String, DeviationBuilder> addedDeviations = new HashMap<String, DeviationBuilder>();\r
     private final Map<List<String>, TypeDefinitionBuilder> addedTypedefs = new HashMap<List<String>, TypeDefinitionBuilder>();\r
@@ -85,7 +87,6 @@ public class ModuleBuilder implements Builder {
     }\r
 \r
 \r
-\r
     /**\r
      * Build new Module object based on this builder.\r
      */\r
@@ -142,6 +143,13 @@ public class ModuleBuilder implements Builder {
         }\r
         instance.setExtensionSchemaNodes(extensions);\r
 \r
+        // IDENTITIES\r
+        final Set<IdentitySchemaNode> identities = new HashSet<IdentitySchemaNode>();\r
+        for(IdentitySchemaNodeBuilder idBuilder : addedIdentities) {\r
+            identities.add(idBuilder.build());\r
+        }\r
+        instance.setIdentities(identities);\r
+\r
         return instance;\r
     }\r
 \r
@@ -153,6 +161,14 @@ public class ModuleBuilder implements Builder {
         return dirtyNodes;\r
     }\r
 \r
+    public Set<AugmentationSchemaBuilder> getAddedAugments() {\r
+        return addedAugments;\r
+    }\r
+\r
+    public Set<IdentitySchemaNodeBuilder> getAddedIdentities() {\r
+        return addedIdentities;\r
+    }\r
+\r
     public String getName() {\r
         return name;\r
     }\r
@@ -165,10 +181,6 @@ public class ModuleBuilder implements Builder {
         return revision;\r
     }\r
 \r
-    public Set<AugmentationSchemaBuilder> getAddedAugments() {\r
-        return addedAugments;\r
-    }\r
-\r
     public void addDirtyNode(List<String> path) {\r
         List<String> dirtyNodePath = new ArrayList<String>(path);\r
         TypeAwareBuilder nodeBuilder = (TypeAwareBuilder) moduleNodes\r
@@ -468,6 +480,13 @@ public class ModuleBuilder implements Builder {
         return builder;\r
     }\r
 \r
+    public IdentitySchemaNodeBuilder addIdentity(QName qname) {\r
+        IdentitySchemaNodeBuilder builder = new IdentitySchemaNodeBuilder(qname);\r
+        addedIdentities.add(builder);\r
+\r
+        return builder;\r
+    }\r
+\r
     public void addConfiguration(boolean configuration, List<String> parentPath) {\r
         Builder builder = moduleNodes.get(parentPath);\r
         if (builder instanceof DeviationBuilder) {\r
@@ -506,6 +525,7 @@ public class ModuleBuilder implements Builder {
         private Set<GroupingDefinition> groupings = Collections.emptySet();\r
         private Set<UsesNode> uses = Collections.emptySet();\r
         private List<ExtensionDefinition> extensionSchemaNodes = Collections.emptyList();\r
+        private Set<IdentitySchemaNode> identities = Collections.emptySet();\r
 \r
         private ModuleImpl(String name) {\r
             this.name = name;\r
@@ -709,6 +729,17 @@ public class ModuleBuilder implements Builder {
             }\r
         }\r
 \r
+        @Override\r
+        public Set<IdentitySchemaNode> getIdentities() {\r
+            return identities;\r
+        }\r
+\r
+        private void setIdentities(Set<IdentitySchemaNode> identities) {\r
+            if(identities != null) {\r
+                this.identities = identities;\r
+            }\r
+        }\r
+\r
         @Override\r
         public DataSchemaNode getDataChildByName(QName name) {\r
             return childNodes.get(name);\r