*/
package org.opendaylight.yangtools.yang.parser.repo;
-import static com.google.common.base.Preconditions.checkArgument;
import static java.util.Objects.requireNonNull;
import static org.opendaylight.yangtools.util.concurrent.FluentFutures.immediateFluentFuture;
import java.util.Map.Entry;
import java.util.Set;
import java.util.concurrent.ExecutionException;
-import org.antlr.v4.runtime.ParserRuleContext;
import org.eclipse.jdt.annotation.NonNull;
import org.gaul.modernizer_maven_annotations.SuppressModernizer;
import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.model.repo.api.SchemaResolutionException;
import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
import org.opendaylight.yangtools.yang.model.repo.api.StatementParserMode;
-import org.opendaylight.yangtools.yang.parser.antlr.YangStatementParser.StatementContext;
import org.opendaylight.yangtools.yang.parser.rfc7950.repo.ASTSchemaSource;
import org.opendaylight.yangtools.yang.parser.rfc7950.repo.YangModelDependencyInfo;
import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
config.getModulesDeviatedByModules().ifPresent(parser::setModulesWithSupportedDeviations);
for (final Entry<SourceIdentifier, ASTSchemaSource> entry : srcs.entrySet()) {
- final ASTSchemaSource ast = entry.getValue();
- final ParserRuleContext parserRuleCtx = ast.getAST();
- checkArgument(parserRuleCtx instanceof StatementContext, "Unsupported context class %s for source %s",
- parserRuleCtx.getClass(), entry.getKey());
-
try {
parser.addSource(entry.getValue());
} catch (YangSyntaxErrorException | IOException e) {
import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceRepresentation;
import org.opendaylight.yangtools.yang.model.repo.api.SemVerSourceIdentifier;
import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
+import org.opendaylight.yangtools.yang.parser.antlr.YangStatementParser.StatementContext;
/**
* Abstract Syntax Tree representation of a schema source. This representation is internal to the YANG parser
implements SchemaSourceRepresentation {
private final @NonNull YangModelDependencyInfo depInfo;
private final @NonNull SemVerSourceIdentifier semVerId;
- private final @NonNull ParserRuleContext tree;
+ private final @NonNull StatementContext tree;
private final @Nullable String symbolicName;
private ASTSchemaSource(final @NonNull SourceIdentifier identifier, final @NonNull SemVerSourceIdentifier semVerId,
- final @NonNull ParserRuleContext tree, final @NonNull YangModelDependencyInfo depInfo,
+ final @NonNull StatementContext tree, final @NonNull YangModelDependencyInfo depInfo,
@Nullable final String symbolicName) {
super(identifier);
this.depInfo = requireNonNull(depInfo);
* if we fail to extract dependency information.
*/
static @NonNull ASTSchemaSource create(final @NonNull SourceIdentifier identifier,
- final @Nullable String symbolicName, final @NonNull ParserRuleContext tree)
+ final @Nullable String symbolicName, final @NonNull StatementContext tree)
throws YangSyntaxErrorException {
final YangModelDependencyInfo depInfo = YangModelDependencyInfo.fromAST(identifier, tree);
final SourceIdentifier id = getSourceId(depInfo);
return depInfo;
}
+ @NonNull StatementContext tree() {
+ return tree;
+ }
+
private static @NonNull SourceIdentifier getSourceId(final @NonNull YangModelDependencyInfo depInfo) {
final String name = depInfo.getName();
return depInfo.getFormattedRevision() == null ? RevisionSourceIdentifier.create(name)
*/
package org.opendaylight.yangtools.yang.parser.rfc7950.repo;
-import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Verify.verifyNotNull;
import static java.util.Objects.requireNonNull;
* @return A new {@link YangStatementStreamSource}
*/
public static YangStatementStreamSource create(final ASTSchemaSource source) {
- final ParserRuleContext ast = source.getAST();
- checkArgument(ast instanceof StatementContext,
- "Unsupported context class %s for source %s", ast.getClass(), source.getIdentifier());
- return create(source.getIdentifier(), (StatementContext) ast, source.getSymbolicName().orElse(null));
+ return create(source.getIdentifier(), source.tree(), source.getSymbolicName().orElse(null));
}
public static YangStatementStreamSource create(final SourceIdentifier identifier, final StatementContext context,