Retain DeclarationReference in DeclaredStatements
[yangtools.git] / yang / yang-parser-rfc7950 / src / main / java / org / opendaylight / yangtools / yang / parser / rfc7950 / stmt / meta / OrganizationStatementSupport.java
index ac7b0c5fef3782847d9cbe18081fdca8ceba2840..496ce3ef2905951457ab540b900b6966f28185ad 100644 (file)
@@ -9,10 +9,13 @@ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta;
 
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
+import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.OrganizationEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.OrganizationStatement;
+import org.opendaylight.yangtools.yang.model.parser.api.YangParserConfiguration;
+import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatementDecorators;
 import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractInternedStringStatementSupport;
@@ -20,17 +23,11 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
 
 public final class OrganizationStatementSupport
         extends AbstractInternedStringStatementSupport<OrganizationStatement, OrganizationEffectiveStatement> {
-    private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder(
-        YangStmtMapping.ORGANIZATION)
-        .build();
-    private static final OrganizationStatementSupport INSTANCE = new OrganizationStatementSupport();
+    private static final SubstatementValidator SUBSTATEMENT_VALIDATOR =
+        SubstatementValidator.builder(YangStmtMapping.ORGANIZATION).build();
 
-    private OrganizationStatementSupport() {
-        super(YangStmtMapping.ORGANIZATION, StatementPolicy.reject());
-    }
-
-    public static OrganizationStatementSupport getInstance() {
-        return INSTANCE;
+    public OrganizationStatementSupport(final YangParserConfiguration config) {
+        super(YangStmtMapping.ORGANIZATION, StatementPolicy.reject(), config);
     }
 
     @Override
@@ -44,6 +41,12 @@ public final class OrganizationStatementSupport
         return DeclaredStatements.createOrganization(argument, substatements);
     }
 
+    @Override
+    protected OrganizationStatement attachDeclarationReference(final OrganizationStatement stmt,
+            final DeclarationReference reference) {
+        return DeclaredStatementDecorators.decorateOrganization(stmt, reference);
+    }
+
     @Override
     protected OrganizationStatement createEmptyDeclared(final String argument) {
         return DeclaredStatements.createOrganization(argument);