import java.util.Optional;
import java.util.Set;
import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.concepts.Immutable;
import org.opendaylight.yangtools.yang.common.Ordering;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.ElementCountConstraint;
import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
import org.opendaylight.yangtools.yang.model.api.Status;
import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.ListStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.OrderedByEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseSchemaTreeStatementSupport;
+import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements;
+import org.opendaylight.yangtools.yang.model.spi.meta.SubstatementIndexingException;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStmtUtils;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.SubstatementIndexingException;
+import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractSchemaTreeStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Parent;
import org.slf4j.LoggerFactory;
@Beta
-public final class ListStatementSupport extends BaseSchemaTreeStatementSupport<ListStatement, ListEffectiveStatement> {
+public final class ListStatementSupport
+ extends AbstractSchemaTreeStatementSupport<ListStatement, ListEffectiveStatement> {
private static final Logger LOG = LoggerFactory.getLogger(ListStatementSupport.class);
private static final ImmutableSet<YangStmtMapping> UNINSTANTIATED_DATATREE_STATEMENTS = ImmutableSet.of(
YangStmtMapping.GROUPING, YangStmtMapping.NOTIFICATION, YangStmtMapping.INPUT, YangStmtMapping.OUTPUT);
@Override
protected ListStatement createDeclared(final StmtContext<QName, ListStatement, ?> ctx,
final ImmutableList<? extends DeclaredStatement<?>> substatements) {
- return new RegularListStatement(ctx.getArgument(), substatements);
+ return DeclaredStatements.createList(ctx.getArgument(), substatements);
}
@Override
protected ListStatement createEmptyDeclared(final StmtContext<QName, ListStatement, ?> ctx) {
- return new EmptyListStatement(ctx.getArgument());
+ return DeclaredStatements.createList(ctx.getArgument());
}
@Override
final int flags = computeFlags(stmt, original.effectiveSubstatements());
if (original instanceof RegularListEffectiveStatement) {
return new RegularListEffectiveStatement((RegularListEffectiveStatement) original,
- (ListSchemaNode) stmt.original(), stmt.wrapSchemaPath(), flags);
+ (ListSchemaNode) stmt.original(), stmt.effectivePath(), flags);
} else if (original instanceof EmptyListEffectiveStatement) {
return new RegularListEffectiveStatement((EmptyListEffectiveStatement) original,
- (ListSchemaNode) stmt.original(), stmt.wrapSchemaPath(), flags);
+ (ListSchemaNode) stmt.original(), stmt.effectivePath(), flags);
} else {
// Safe fallback
return super.copyEffective(stmt, original);
final Optional<ElementCountConstraint> elementCountConstraint =
EffectiveStmtUtils.createElementCountConstraint(substatements);
- final SchemaPath path = stmt.wrapSchemaPath();
+ final Immutable path = stmt.effectivePath();
final ListSchemaNode original = (ListSchemaNode) stmt.original();
try {
return original == null && !elementCountConstraint.isPresent()