import org.opendaylight.yangtools.yang.model.repo.spi.SchemaSourceListener;
import org.opendaylight.yangtools.yang.model.repo.util.FilesystemSchemaSourceCache;
import org.opendaylight.yangtools.yang.parser.repo.SharedSchemaRepository;
-import org.opendaylight.yangtools.yang.parser.util.TextToASTTransformer;
+import org.opendaylight.yangtools.yang.parser.rfc6020.repo.TextToASTTransformer;
public class SimpleModuleTest {
import org.opendaylight.yangtools.yang.common.Revision;
import org.opendaylight.yangtools.yang.model.api.ModuleImport;
import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
-import org.opendaylight.yangtools.yang.parser.impl.util.YangModelDependencyInfo;
+import org.opendaylight.yangtools.yang.parser.rfc6020.repo.YangModelDependencyInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.opendaylight.yangtools.yang.model.api.ModuleImport;
import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier;
import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
-import org.opendaylight.yangtools.yang.parser.impl.util.YangModelDependencyInfo;
+import org.opendaylight.yangtools.yang.parser.rfc6020.repo.YangModelDependencyInfo;
final class RevisionDependencyResolver extends DependencyResolver {
import org.opendaylight.yangtools.yang.model.api.ModuleImport;
import org.opendaylight.yangtools.yang.model.repo.api.SemVerSourceIdentifier;
import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
-import org.opendaylight.yangtools.yang.parser.impl.util.YangModelDependencyInfo;
+import org.opendaylight.yangtools.yang.parser.rfc6020.repo.YangModelDependencyInfo;
final class SemVerDependencyResolver extends DependencyResolver {
import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
import org.opendaylight.yangtools.yang.model.repo.api.StatementParserMode;
import org.opendaylight.yangtools.yang.parser.impl.DefaultReactors;
-import org.opendaylight.yangtools.yang.parser.impl.util.YangModelDependencyInfo;
+import org.opendaylight.yangtools.yang.parser.rfc6020.repo.ASTSchemaSource;
+import org.opendaylight.yangtools.yang.parser.rfc6020.repo.YangModelDependencyInfo;
import org.opendaylight.yangtools.yang.parser.rfc6020.repo.YangStatementStreamSource;
import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor.BuildAction;
-import org.opendaylight.yangtools.yang.parser.util.ASTSchemaSource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.opendaylight.yangtools.yang.model.repo.spi.SchemaSourceRegistration;
import org.opendaylight.yangtools.yang.model.repo.spi.SchemaSourceRegistry;
import org.opendaylight.yangtools.yang.model.repo.util.InMemorySchemaSourceCache;
-import org.opendaylight.yangtools.yang.parser.util.ASTSchemaSource;
-import org.opendaylight.yangtools.yang.parser.util.TextToASTTransformer;
+import org.opendaylight.yangtools.yang.parser.rfc6020.repo.ASTSchemaSource;
+import org.opendaylight.yangtools.yang.parser.rfc6020.repo.TextToASTTransformer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
-package org.opendaylight.yangtools.yang.parser.util;
+package org.opendaylight.yangtools.yang.parser.rfc6020.repo;
import static java.util.Objects.requireNonNull;
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.impl.util.YangModelDependencyInfo;
/**
* Abstract Syntax Tree representation of a schema source. This representation is internal to the YANG parser
this.symbolicName = symbolicName;
}
- /**
- * Create a new instance of AST representation for a abstract syntax tree, performing minimal semantic analysis
- * to acquire dependency information.
- *
- * @param identifier
- * SourceIdentifier of yang schema source.
- * @param tree
- * ANTLR abstract syntax tree
- * @return A new representation instance.
- * @throws YangSyntaxErrorException
- * if we fail to extract dependency information.
- */
- public static ASTSchemaSource create(@Nonnull final SourceIdentifier identifier,
- @Nonnull final ParserRuleContext tree) throws YangSyntaxErrorException {
- return create(identifier, null, tree);
- }
-
/**
* Create a new instance of AST representation for a abstract syntax tree, performing minimal semantic analysis
* to acquire dependency information.
* @param symbolicName
* Symbolic name
* @param identifier
- * SourceIdentifier of yang schema source.
+ * SourceIdentifier of YANG schema source.
* @param tree
* ANTLR abstract syntax tree
* @return A new representation instance.
* @throws YangSyntaxErrorException
* if we fail to extract dependency information.
*/
- public static ASTSchemaSource create(@Nonnull final String symbolicName, @Nonnull final SourceIdentifier identifier,
- @Nonnull final ParserRuleContext tree) throws YangSyntaxErrorException {
- return create(identifier, symbolicName, tree);
- }
-
- private static ASTSchemaSource create(@Nonnull final SourceIdentifier identifier,
+ static ASTSchemaSource create(@Nonnull final SourceIdentifier identifier,
@Nullable final String symbolicName, @Nonnull final ParserRuleContext tree)
throws YangSyntaxErrorException {
final YangModelDependencyInfo depInfo = YangModelDependencyInfo.fromAST(identifier, tree);
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
-package org.opendaylight.yangtools.yang.parser.util;
+package org.opendaylight.yangtools.yang.parser.rfc6020.repo;
import com.google.common.annotations.Beta;
import com.google.common.util.concurrent.Futures;
import java.io.IOException;
-import java.util.Optional;
import org.antlr.v4.runtime.ParserRuleContext;
import org.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException;
import org.opendaylight.yangtools.yang.model.repo.api.SchemaRepository;
import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource;
import org.opendaylight.yangtools.yang.model.repo.spi.SchemaSourceRegistry;
import org.opendaylight.yangtools.yang.model.repo.util.SchemaSourceTransformer;
-import org.opendaylight.yangtools.yang.parser.rfc6020.repo.YangStatementStreamSource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
// TODO: missing validation (YangModelBasicValidationListener should be re-implemented to new parser)
- final Optional<String> opt = text.getSymbolicName();
- final ASTSchemaSource result = opt.isPresent() ? ASTSchemaSource.create(opt.get(), text.getIdentifier(), ctx)
- : ASTSchemaSource.create(text.getIdentifier(), ctx);
-
- return result;
+ return ASTSchemaSource.create(text.getIdentifier(), text.getSymbolicName().orElse(null), ctx);
}
}
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
-package org.opendaylight.yangtools.yang.parser.impl.util;
+package org.opendaylight.yangtools.yang.parser.rfc6020.repo;
import static com.google.common.base.Preconditions.checkArgument;
import static java.util.Objects.requireNonNull;
+import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Splitter;
import com.google.common.base.Strings;
import com.google.common.collect.ImmutableSet;
import org.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException;
import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource;
-import org.opendaylight.yangtools.yang.parser.rfc6020.repo.YangStatementStreamSource;
import org.opendaylight.yangtools.yang.parser.spi.source.DeclarationInTextSource;
import org.opendaylight.yangtools.yang.parser.spi.source.StatementSourceReference;
import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.SupportedExtensionsMapping;
* @return {@link YangModelDependencyInfo}
* @throws YangSyntaxErrorException If the AST is not a valid YANG module/submodule
*/
- public static YangModelDependencyInfo fromAST(final SourceIdentifier source, final ParserRuleContext tree)
+ static YangModelDependencyInfo fromAST(final SourceIdentifier source, final ParserRuleContext tree)
throws YangSyntaxErrorException {
if (tree instanceof StatementContext) {
* @throws IllegalArgumentException
* If input stream is not valid YANG stream
*/
+ @VisibleForTesting
public static YangModelDependencyInfo forResource(final Class<?> refClass, final String resourceName)
throws IOException, YangSyntaxErrorException {
final YangStatementStreamSource source = YangStatementStreamSource.create(
import java.io.IOException;
import org.junit.Test;
import org.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException;
+import org.opendaylight.yangtools.yang.parser.rfc6020.repo.YangModelDependencyInfo;
public class YangModelDependencyInfoTest {
import org.junit.Test;
import org.opendaylight.yangtools.yang.model.repo.api.RevisionSourceIdentifier;
import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
-import org.opendaylight.yangtools.yang.parser.impl.util.YangModelDependencyInfo;
+import org.opendaylight.yangtools.yang.parser.rfc6020.repo.YangModelDependencyInfo;
@Deprecated
public class DependencyResolverTest {
import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceFilter;
import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource;
import org.opendaylight.yangtools.yang.model.util.SchemaContextUtil;
-import org.opendaylight.yangtools.yang.parser.util.ASTSchemaSource;
-import org.opendaylight.yangtools.yang.parser.util.TextToASTTransformer;
+import org.opendaylight.yangtools.yang.parser.rfc6020.repo.ASTSchemaSource;
+import org.opendaylight.yangtools.yang.parser.rfc6020.repo.TextToASTTransformer;
public class MultipleRevImportBug6875Test {
private static final String BAR_NS = "bar";
import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceFilter;
import org.opendaylight.yangtools.yang.model.repo.api.StatementParserMode;
import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource;
-import org.opendaylight.yangtools.yang.parser.util.ASTSchemaSource;
-import org.opendaylight.yangtools.yang.parser.util.TextToASTTransformer;
+import org.opendaylight.yangtools.yang.parser.rfc6020.repo.ASTSchemaSource;
+import org.opendaylight.yangtools.yang.parser.rfc6020.repo.TextToASTTransformer;
public class OpenconfigVerSharedSchemaRepositoryTest {
import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource;
import org.opendaylight.yangtools.yang.model.repo.spi.PotentialSchemaSource;
-import org.opendaylight.yangtools.yang.parser.util.ASTSchemaSource;
-import org.opendaylight.yangtools.yang.parser.util.TextToASTTransformer;
+import org.opendaylight.yangtools.yang.parser.rfc6020.repo.ASTSchemaSource;
+import org.opendaylight.yangtools.yang.parser.rfc6020.repo.TextToASTTransformer;
public class SharedSchemaContextFactoryTest {
import org.opendaylight.yangtools.yang.model.repo.spi.PotentialSchemaSource;
import org.opendaylight.yangtools.yang.model.repo.spi.SchemaSourceListener;
import org.opendaylight.yangtools.yang.model.repo.util.FilesystemSchemaSourceCache;
-import org.opendaylight.yangtools.yang.parser.util.ASTSchemaSource;
-import org.opendaylight.yangtools.yang.parser.util.TextToASTTransformer;
+import org.opendaylight.yangtools.yang.parser.rfc6020.repo.ASTSchemaSource;
+import org.opendaylight.yangtools.yang.parser.rfc6020.repo.TextToASTTransformer;
public class SharedSchemaRepositoryTest {
import org.opendaylight.yangtools.yang.model.repo.api.SchemaContextFactory;
import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceFilter;
import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource;
-import org.opendaylight.yangtools.yang.parser.util.ASTSchemaSource;
-import org.opendaylight.yangtools.yang.parser.util.TextToASTTransformer;
+import org.opendaylight.yangtools.yang.parser.rfc6020.repo.ASTSchemaSource;
+import org.opendaylight.yangtools.yang.parser.rfc6020.repo.TextToASTTransformer;
public class SharedSchemaRepositoryWithFeaturesTest {
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
-package org.opendaylight.yangtools.yang.parser.util;
+package org.opendaylight.yangtools.yang.parser.rfc6020.repo;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;