Refactored yang-model-parser-impl to improve readability. SchemaContextImpl moved...
[controller.git] / opendaylight / sal / yang-prototype / code-generator / yang-model-parser-impl / src / main / java / org / opendaylight / controller / yang / parser / builder / impl / UsesNodeBuilderImpl.java
index c54a0dc03673f315c349b98541d5465994db01e7..0534f9def0d59c6699afb32d227910a85e20270f 100644 (file)
@@ -26,6 +26,7 @@ import org.opendaylight.controller.yang.parser.builder.api.UsesNodeBuilder;
 import org.opendaylight.controller.yang.parser.util.RefineHolder;\r
 \r
 final class UsesNodeBuilderImpl implements UsesNodeBuilder {\r
+    private boolean built;\r
     private final UsesNodeImpl instance;\r
     private final int line;\r
     private final SchemaPath groupingPath;\r
@@ -41,21 +42,24 @@ final class UsesNodeBuilderImpl implements UsesNodeBuilder {
 \r
     @Override\r
     public UsesNode build() {\r
-        // AUGMENTATIONS\r
-        final Set<AugmentationSchema> augments = new HashSet<AugmentationSchema>();\r
-        for (AugmentationSchemaBuilder builder : addedAugments) {\r
-            augments.add(builder.build());\r
-        }\r
-        instance.setAugmentations(augments);\r
+        if(!built) {\r
+            // AUGMENTATIONS\r
+            final Set<AugmentationSchema> augments = new HashSet<AugmentationSchema>();\r
+            for (AugmentationSchemaBuilder builder : addedAugments) {\r
+                augments.add(builder.build());\r
+            }\r
+            instance.setAugmentations(augments);\r
 \r
-        // REFINES\r
-        final Map<SchemaPath, SchemaNode> refineNodes = new HashMap<SchemaPath, SchemaNode>();\r
-        for (SchemaNodeBuilder refineBuilder : refineBuilders) {\r
-            SchemaNode refineNode = refineBuilder.build();\r
-            refineNodes.put(refineNode.getPath(), refineNode);\r
-        }\r
-        instance.setRefines(refineNodes);\r
+            // REFINES\r
+            final Map<SchemaPath, SchemaNode> refineNodes = new HashMap<SchemaPath, SchemaNode>();\r
+            for (SchemaNodeBuilder refineBuilder : refineBuilders) {\r
+                SchemaNode refineNode = refineBuilder.build();\r
+                refineNodes.put(refineNode.getPath(), refineNode);\r
+            }\r
+            instance.setRefines(refineNodes);\r
 \r
+            built = true;\r
+        }\r
         return instance;\r
     }\r
 \r