import com.google.common.collect.ImmutableList;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.Status;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
-import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
/**
@Override
protected final @NonNull E createDeclaredEffective(final StmtContext<QName, D, E> ctx,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final D declared) {
- return createDeclaredEffective(computeFlags(ctx, substatements), ctx, substatements, declared);
+ return createDeclaredEffective(historyAndStatusFlags(ctx, substatements), ctx, substatements, declared);
}
protected abstract @NonNull E createDeclaredEffective(int flags, @NonNull StmtContext<QName, D, E> ctx,
@Override
protected final E createUndeclaredEffective(final StmtContext<QName, D, E> ctx,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- return createUndeclaredEffective(computeFlags(ctx, substatements), ctx, substatements);
+ return createUndeclaredEffective(historyAndStatusFlags(ctx, substatements), ctx, substatements);
}
protected abstract @NonNull E createUndeclaredEffective(int flags, @NonNull StmtContext<QName, D, E> ctx,
@NonNull ImmutableList<? extends EffectiveStatement<?, ?>> substatements);
-
- private static int computeFlags(final StmtContext<?, ?, ?> ctx,
- final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- return new FlagsBuilder()
- .setHistory(ctx.getCopyHistory())
- .setStatus(findFirstArgument(substatements, StatusEffectiveStatement.class, Status.CURRENT))
- .toFlags();
- }
}
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.Status;
import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
+import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder;
import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractQNameStatementSupport;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
final ImmutableList<? extends EffectiveStatement<?, ?>> statements, final Class<E> type, final A defValue) {
return BaseStatementSupport.findFirstArgument(statements, type, defValue);
}
+
+ protected static final int historyAndStatusFlags(final StmtContext<?, ?, ?> ctx,
+ final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+ return new FlagsBuilder()
+ .setHistory(ctx.getCopyHistory())
+ .setStatus(findFirstArgument(substatements, StatusEffectiveStatement.class, Status.CURRENT))
+ .toFlags();
+ }
}
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import org.opendaylight.yangtools.yang.common.QName;
-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.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.ActionStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.InputStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.OutputStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
import org.opendaylight.yangtools.yang.parser.rfc7950.namespace.ChildSchemaNodeNamespace;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseQNameStatementSupport;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.input.InputStatementRFC7950Support;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.output.OutputStatementRFC7950Support;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
SourceException.throwIf(StmtContextUtils.hasParentOfType(ctx, YangStmtMapping.MODULE), ref,
"Action %s is defined at the top level of a module", argument);
- return new ActionEffectiveStatementImpl(declared, ctx.getSchemaPath().get(), computeFlags(ctx, substatements),
- ctx, substatements);
+ return new ActionEffectiveStatementImpl(declared, ctx.getSchemaPath().get(),
+ historyAndStatusFlags(ctx, substatements), ctx, substatements);
}
@Override
throw new IllegalStateException("Missing implicit input/output statements at "
+ ctx.getStatementSourceReference());
}
-
- private static int computeFlags(final StmtContext<?, ?, ?> ctx,
- final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- return new FlagsBuilder()
- .setHistory(ctx.getCopyHistory())
- .setStatus(findFirstArgument(substatements, StatusEffectiveStatement.class, Status.CURRENT))
- .toFlags();
- }
-
}
import com.google.common.collect.ImmutableList;
import org.opendaylight.yangtools.yang.common.QName;
-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.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.GroupingEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.GroupingStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseQNameStatementSupport;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder;
import org.opendaylight.yangtools.yang.parser.spi.GroupingNamespace;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext.Mutable;
protected final GroupingEffectiveStatement createEffective(
final StmtContext<QName, GroupingStatement, GroupingEffectiveStatement> ctx,
final GroupingStatement declared, final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- return new GroupingEffectiveStatementImpl(declared, ctx, substatements, new FlagsBuilder()
- .setHistory(ctx.getCopyHistory())
- .setStatus(findFirstArgument(substatements, StatusEffectiveStatement.class, Status.CURRENT))
- .toFlags());
+ return new GroupingEffectiveStatementImpl(declared, ctx, substatements,
+ historyAndStatusFlags(ctx, substatements));
}
@Override
import com.google.common.collect.ImmutableList;
import org.opendaylight.yangtools.yang.common.QName;
-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.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.NotificationEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.NotificationStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
import org.opendaylight.yangtools.yang.parser.rfc7950.namespace.ChildSchemaNodeNamespace;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseQNameStatementSupport;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext.Mutable;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils;
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
checkEffective(ctx);
- final int flags = new FlagsBuilder()
- .setHistory(ctx.getCopyHistory())
- .setStatus(findFirstArgument(substatements, StatusEffectiveStatement.class, Status.CURRENT))
- .toFlags();
-
- return new NotificationEffectiveStatementImpl(declared, flags, ctx, substatements);
+ return new NotificationEffectiveStatementImpl(declared, historyAndStatusFlags(ctx, substatements), ctx,
+ substatements);
}
@Override
import org.opendaylight.yangtools.yang.common.YangVersion;
import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
import org.opendaylight.yangtools.yang.model.api.SchemaNode;
-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.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier;
import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Descendant;
import org.opendaylight.yangtools.yang.model.api.stmt.SchemaTreeEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.UsesEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.UsesStatement;
import org.opendaylight.yangtools.yang.parser.rfc7950.namespace.ChildSchemaNodeNamespace;
import org.opendaylight.yangtools.yang.parser.rfc7950.reactor.YangValidationBundles;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseQNameStatementSupport;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.refine.RefineEffectiveStatementImpl;
import org.opendaylight.yangtools.yang.parser.spi.GroupingNamespace;
import org.opendaylight.yangtools.yang.parser.spi.meta.CopyType;
final StmtContext<QName, UsesStatement, UsesEffectiveStatement> ctx, final UsesStatement declared,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
final GroupingDefinition sourceGrouping = getSourceGrouping(ctx);
- final int flags = computeFlags(ctx, substatements);
+ final int flags = historyAndStatusFlags(ctx, substatements);
final QName argument = ctx.coerceStatementArgument();
if (declared.argument().equals(argument)) {
return new RegularLocalUsesEffectiveStatement(declared, sourceGrouping, flags, substatements);
protected UsesEffectiveStatement createEmptyEffective(
final StmtContext<QName, UsesStatement, UsesEffectiveStatement> ctx, final UsesStatement declared) {
final GroupingDefinition sourceGrouping = getSourceGrouping(ctx);
- final int flags = computeFlags(ctx, ImmutableList.of());
+ final int flags = historyAndStatusFlags(ctx, ImmutableList.of());
final QName argument = ctx.coerceStatementArgument();
return argument.equals(declared.argument())
? new EmptyLocalUsesEffectiveStatement(declared, sourceGrouping, flags)
.buildEffective();
}
- private static int computeFlags(final StmtContext<QName, UsesStatement, UsesEffectiveStatement> ctx,
- final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
- return new FlagsBuilder()
- .setHistory(ctx.getCopyHistory())
- .setStatus(findFirstArgument(substatements, StatusEffectiveStatement.class, Status.CURRENT))
- .toFlags();
- }
-
/**
* Copy statements from a grouping to a target node.
*