Graduate ChildSchemaNodeNamespace as SchemaTreeNamespace
[yangtools.git] / yang / odlext-parser-support / src / main / java / org / opendaylight / yangtools / odlext / parser / AnyxmlStatementSupportOverride.java
index dd3053903519f6007f99f8903ee069940f016758..e7f52455f29e30794efe20621638d0e5f884c6fb 100644 (file)
@@ -9,6 +9,7 @@ package org.opendaylight.yangtools.odlext.parser;
 
 import java.util.Map;
 import java.util.Optional;
+import org.opendaylight.yangtools.odlext.model.api.AnyxmlSchemaLocationEffectiveStatement;
 import org.opendaylight.yangtools.odlext.model.api.AnyxmlSchemaLocationStatement;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
@@ -17,8 +18,8 @@ import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
 import org.opendaylight.yangtools.yang.model.api.stmt.AnyxmlEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.AnyxmlStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier;
-import org.opendaylight.yangtools.yang.parser.rfc7950.namespace.SchemaNodeIdentifierBuildNamespace;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.anyxml.AnyxmlStatementSupport;
+import org.opendaylight.yangtools.yang.parser.spi.SchemaTreeNamespace;
 import org.opendaylight.yangtools.yang.parser.spi.meta.ForwardingStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
@@ -28,9 +29,6 @@ public final class AnyxmlStatementSupportOverride
         extends ForwardingStatementSupport<QName, AnyxmlStatement, AnyxmlEffectiveStatement> {
     private static final AnyxmlStatementSupportOverride INSTANCE = new AnyxmlStatementSupportOverride();
 
-    private final StatementSupport<QName, AnyxmlStatement, AnyxmlEffectiveStatement> delegate =
-            new AnyxmlStatementSupport();
-
     private AnyxmlStatementSupportOverride() {
 
     }
@@ -41,21 +39,21 @@ public final class AnyxmlStatementSupportOverride
 
     @Override
     protected StatementSupport<QName, AnyxmlStatement, AnyxmlEffectiveStatement> delegate() {
-        return delegate;
+        return AnyxmlStatementSupport.getInstance();
     }
 
     @Override
     public Class<? extends EffectiveStatement<?, ?>> getEffectiveRepresentationClass() {
         // FIXME: this is not entirely accurate?
-        return delegate.getEffectiveRepresentationClass();
+        return delegate().getEffectiveRepresentationClass();
     }
 
     @Override
     public AnyxmlEffectiveStatement createEffective(
             final StmtContext<QName, AnyxmlStatement, AnyxmlEffectiveStatement> ctx) {
-        final AnyxmlEffectiveStatement delegateStatement = delegate.createEffective(ctx);
+        final AnyxmlEffectiveStatement delegateStatement = delegate().createEffective(ctx);
         final Map<StatementDefinition, Mutable<SchemaNodeIdentifier, AnyxmlSchemaLocationStatement,
-            EffectiveStatement<SchemaNodeIdentifier, AnyxmlSchemaLocationStatement>>> schemaLocations =
+            AnyxmlSchemaLocationEffectiveStatement>> schemaLocations =
                 ctx.getAllFromCurrentStmtCtxNamespace(AnyxmlSchemaLocationNamespace.class);
         if (schemaLocations != null && !schemaLocations.isEmpty()) {
             final SchemaNodeIdentifier anyXmlSchemaNodeIdentifier = schemaLocations.values().iterator().next()
@@ -72,7 +70,7 @@ public final class AnyxmlStatementSupportOverride
     private static Optional<ContainerSchemaNode> getAnyXmlSchema(
             final StmtContext<QName, AnyxmlStatement, AnyxmlEffectiveStatement> ctx,
             final SchemaNodeIdentifier contentSchemaPath) {
-        return SchemaNodeIdentifierBuildNamespace.findNode(ctx.getRoot(), contentSchemaPath)
+        return SchemaTreeNamespace.findNode(ctx.getRoot(), contentSchemaPath)
                 .map(StmtContext::buildEffective)
                 .filter(ContainerSchemaNode.class::isInstance).map(ContainerSchemaNode.class::cast);
     }