Teach YANG parser to retain DeclarationReference
[yangtools.git] / yang / yang-parser-rfc7950 / src / main / java / org / opendaylight / yangtools / yang / parser / rfc7950 / stmt / meta / DefaultStatementSupport.java
index 3cc0f91389b2d538b157508715a5c2131dc3d537..be34bba3bad9b8bf7b34f767e186c19a76ac6773 100644 (file)
@@ -13,6 +13,7 @@ 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.DefaultEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.DefaultStatement;
+import org.opendaylight.yangtools.yang.model.parser.api.YangParserConfiguration;
 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.AbstractStringStatementSupport;
@@ -22,17 +23,12 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
 
 public final class DefaultStatementSupport
         extends AbstractStringStatementSupport<DefaultStatement, DefaultEffectiveStatement> {
-    private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder(
-        YangStmtMapping.DEFAULT).build();
-    private static final DefaultStatementSupport INSTANCE = new DefaultStatementSupport();
+    private static final SubstatementValidator SUBSTATEMENT_VALIDATOR =
+        SubstatementValidator.builder(YangStmtMapping.DEFAULT).build();
 
-    private DefaultStatementSupport() {
+    public DefaultStatementSupport(final YangParserConfiguration config) {
         // Note: if we start interpreting the string we'll need to use StatementPolicy.declaredCopy()
-        super(YangStmtMapping.DEFAULT, StatementPolicy.contextIndependent());
-    }
-
-    public static DefaultStatementSupport getInstance() {
-        return INSTANCE;
+        super(YangStmtMapping.DEFAULT, StatementPolicy.contextIndependent(), config);
     }
 
     @Override
@@ -46,11 +42,6 @@ public final class DefaultStatementSupport
         return DeclaredStatements.createDefault(ctx.getRawArgument(), substatements);
     }
 
-    @Override
-    protected DefaultStatement createEmptyDeclared(final StmtContext<String, DefaultStatement, ?> ctx) {
-        return DeclaredStatements.createDefault(ctx.getRawArgument());
-    }
-
     @Override
     protected DefaultEffectiveStatement createEffective(final Current<String, DefaultStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {