import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
-import org.opendaylight.yangtools.yang.parser.spi.meta.CopyType;
-import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour.StorageNodeType;
import org.opendaylight.yangtools.yang.parser.spi.source.StatementSourceReference;
final class SubstatementContext<A, D extends DeclaredStatement<A>, E extends EffectiveStatement<A, D>> extends
private SubstatementContext(final SubstatementContext<A, D, E> original,
final StatementContextBase<?, ?, ?> parent) {
super(original);
- this.parent = requireNonNull(parent, "Parent must not be null");
- this.argument = original.argument;
+ this.parent = requireNonNull(parent);
+ argument = original.argument;
}
- SubstatementContext(final StatementContextBase<?, ?, ?> parent, final StatementDefinitionContext<A, D, E> def,
+ SubstatementContext(final OriginalStmtCtx<?, ?, ?> parent, final StatementDefinitionContext<A, D, E> def,
final StatementSourceReference ref, final String rawArgument) {
super(def, ref, rawArgument);
- this.parent = requireNonNull(parent, "Parent must not be null");
- this.argument = def.parseArgumentValue(this, rawArgument());
- }
-
- SubstatementContext(final StatementContextBase<?, ?, ?> parent, final StatementDefinitionContext<A, D, E> def,
- final StatementSourceReference ref, final A argument) {
- super(def, ref, null);
- this.parent = requireNonNull(parent, "Parent must not be null");
- this.argument = argument != null ? argument : def.parseArgumentValue(this, null);
- }
-
- // FIXME: YANGTOOLS-784: this constructor is only called in contexts where a different implementation
- // would be more appropriate
- SubstatementContext(final StatementContextBase<?, ?, ?> parent, final StatementDefinitionContext<A, D, E> def,
- final StatementSourceReference ref, final String rawArgument, final A argument, final CopyType copyType) {
- super(def, ref, rawArgument, copyType);
- this.parent = requireNonNull(parent, "Parent must not be null");
- this.argument = argument;
+ this.parent = requireNonNull(parent);
+ argument = def.parseArgumentValue(this, rawArgument());
}
@Override
}
@Override
- public StorageNodeType getStorageNodeType() {
- return StorageNodeType.STATEMENT_LOCAL;
- }
-
- @Override
- public StatementContextBase<?, ?, ?> getParentNamespaceStorage() {
+ public StatementContextBase<?, ?, ?> getParentStorage() {
return parent;
}