Convert trivial CopyPolicy users to StatementPolicy
[yangtools.git] / yang / openconfig-parser-support / src / main / java / org / opendaylight / yangtools / openconfig / parser / AbstractHashedValueStatementSupport.java
index 2b6f5be867b81b82aa5e8ffd2fdfffa60f3e8acd..5cfa08245f34f0a180aad69b222cb45b64016c65 100644 (file)
@@ -14,6 +14,7 @@ import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.openconfig.model.api.OpenConfigHashedValueEffectiveStatement;
 import org.opendaylight.yangtools.openconfig.model.api.OpenConfigHashedValueStatement;
 import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
@@ -21,6 +22,8 @@ import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredStatement.WithoutArgument.WithSubstatements;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseVoidStatementSupport;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
+import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
+import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
 
@@ -48,13 +51,12 @@ abstract class AbstractHashedValueStatementSupport
         private final @NonNull StatementDefinition definition;
         private final SchemaPath path;
 
-        Effective(final OpenConfigHashedValueStatement declared,
-                final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
-                final StmtContext<Void, OpenConfigHashedValueStatement, ?> ctx) {
-            super(declared.argument(), declared, substatements, ctx);
-            definition = ctx.getPublicDefinition();
-            path = ctx.coerceParentContext().getSchemaPath().get().createChild(
-                ctx.getPublicDefinition().getStatementName());
+        Effective(final Current<Void, OpenConfigHashedValueStatement> stmt,
+                final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+            super(stmt, substatements);
+            definition = stmt.publicDefinition();
+            path = SchemaPathSupport.wrap(stmt.getEffectiveParent().getSchemaPath()
+                    .createChild(stmt.publicDefinition().getStatementName()));
         }
 
         @Override
@@ -65,7 +67,7 @@ abstract class AbstractHashedValueStatementSupport
         @Override
         @Deprecated
         public SchemaPath getPath() {
-            return path;
+            return SchemaNodeDefaults.throwUnsupportedIfNull(this, path);
         }
 
         @Override
@@ -77,7 +79,7 @@ abstract class AbstractHashedValueStatementSupport
     private final SubstatementValidator validator;
 
     AbstractHashedValueStatementSupport(final StatementDefinition definition) {
-        super(definition);
+        super(definition, StatementPolicy.contextIndependent());
         this.validator = SubstatementValidator.builder(definition).build();
     }
 
@@ -100,17 +102,10 @@ abstract class AbstractHashedValueStatementSupport
     }
 
     @Override
-    protected final OpenConfigHashedValueEffectiveStatement createEffective(
-            final StmtContext<Void, OpenConfigHashedValueStatement, OpenConfigHashedValueEffectiveStatement> ctx,
-            final OpenConfigHashedValueStatement declared,
+    protected OpenConfigHashedValueEffectiveStatement createEffective(
+            final Current<Void, OpenConfigHashedValueStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return new Effective(declared, substatements, ctx);
+        return new Effective(stmt, substatements);
     }
 
-    @Override
-    protected final OpenConfigHashedValueEffectiveStatement createEmptyEffective(
-            final StmtContext<Void, OpenConfigHashedValueStatement, OpenConfigHashedValueEffectiveStatement> ctx,
-            final OpenConfigHashedValueStatement declared) {
-        return createEffective(ctx, declared, ImmutableList.of());
-    }
 }