import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
import org.opendaylight.yangtools.yang.model.api.DerivableSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults;
import org.opendaylight.yangtools.yang.model.api.SchemaPath;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.ChoiceEffectiveStatement;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.AugmentationTargetMixin;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.DataSchemaNodeMixin;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.MandatoryMixin;
-import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
final class ChoiceEffectiveStatementImpl extends WithSubstatements<QName, ChoiceStatement, ChoiceEffectiveStatement>
implements ChoiceEffectiveStatement, ChoiceSchemaNode, DerivableSchemaNode,
MandatoryMixin<QName, ChoiceStatement> {
private final CaseSchemaNode defaultCase;
private final ChoiceSchemaNode original;
- private final @NonNull SchemaPath path;
+ private final @Nullable SchemaPath path;
private final int flags;
ChoiceEffectiveStatementImpl(final ChoiceStatement declared,
- final StmtContext<QName, ChoiceStatement, ChoiceEffectiveStatement> ctx,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final int flags,
- final @Nullable CaseSchemaNode defaultCase, final @Nullable ChoiceSchemaNode original) {
- super(declared, ctx, substatements);
+ final SchemaPath path, final @Nullable CaseSchemaNode defaultCase,
+ final @Nullable ChoiceSchemaNode original) {
+ super(declared, substatements);
+ this.path = path;
this.flags = flags;
- this.path = ctx.getSchemaPath().get();
this.defaultCase = defaultCase;
this.original = original;
}
}
@Override
+ @Deprecated
public SchemaPath getPath() {
- return path;
+ return SchemaNodeDefaults.throwUnsupportedIfNull(this, path);
}
@Override
}
@Override
- public Collection<? extends CaseSchemaNode> getCases() {
+ public Collection<? extends @NonNull CaseSchemaNode> getCases() {
return filterEffectiveStatements(CaseSchemaNode.class);
}
return Optional.ofNullable(defaultCase);
}
+ @Override
+ public ChoiceEffectiveStatement asEffectiveStatement() {
+ return this;
+ }
+
@Override
public String toString() {
return ChoiceEffectiveStatementImpl.class.getSimpleName() + "[" + "qname=" + getQName() + "]";