BUG-6497: Do not lose augmentation statement order
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / stmt / rfc6020 / effective / GroupingEffectiveStatementImpl.java
index b5c95cd82e954b8702fdf95e340b1bf071e8af2b..7f0275d600cea71a2f2ed7477e42ceb57f63f4dc 100644 (file)
@@ -20,42 +20,32 @@ import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.GroupingStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext.TypeOfCopy;
-import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils;
 
 public class GroupingEffectiveStatementImpl extends
         AbstractEffectiveDocumentedDataNodeContainer<QName, GroupingStatement> implements GroupingDefinition {
     private final QName qname;
     private final SchemaPath path;
-
-    private boolean addedByUses;
-    private List<UnknownSchemaNode> unknownNodes;
+    private final boolean addedByUses;
+    private final List<UnknownSchemaNode> unknownNodes;
 
     public GroupingEffectiveStatementImpl(
             final StmtContext<QName, GroupingStatement, EffectiveStatement<QName, GroupingStatement>> ctx) {
         super(ctx);
 
         qname = ctx.getStatementArgument();
-        path = Utils.getSchemaPath(ctx);
-
-        initCopyType(ctx);
-        initSubstatementCollections();
-    }
-
-    private void initCopyType(
-            final StmtContext<QName, GroupingStatement, EffectiveStatement<QName, GroupingStatement>> ctx) {
+        path = ctx.getSchemaPath().get();
 
+        // initCopyType
         List<TypeOfCopy> copyTypesFromOriginal = ctx.getCopyHistory();
-
         if (copyTypesFromOriginal.contains(TypeOfCopy.ADDED_BY_USES)) {
             addedByUses = true;
+        } else {
+            addedByUses = false;
         }
-    }
 
-    private void initSubstatementCollections() {
+        // initSubstatementCollections
         Collection<? extends EffectiveStatement<?, ?>> effectiveSubstatements = effectiveSubstatements();
-
         unknownNodes = new LinkedList<>();
-
         for (EffectiveStatement<?, ?> effectiveStatement : effectiveSubstatements) {
             if (effectiveStatement instanceof UnknownSchemaNode) {
                 UnknownSchemaNode unknownNode = (UnknownSchemaNode) effectiveStatement;