import static java.util.Objects.requireNonNull;
import com.google.common.annotations.Beta;
-import com.google.common.base.Splitter;
import com.google.common.base.Strings;
import com.google.common.collect.ImmutableSet;
import java.io.IOException;
private static final String OPENCONFIG_VERSION = OpenConfigStatements.OPENCONFIG_VERSION.getStatementName()
.getLocalName();
- @Deprecated
- private static final Splitter COLON_SPLITTER = Splitter.on(":").omitEmptyStrings().trimResults();
private final String name;
private final Revision revision;
final ImmutableSet<ModuleImport> includes,
final Optional<SemVer> semVer) {
this.name = name;
- this.revision = Revision.ofNullable(formattedRevision).orElse(null);
- this.moduleImports = imports;
- this.submoduleIncludes = includes;
- this.dependencies = ImmutableSet.<ModuleImport>builder()
+ revision = Revision.ofNullable(formattedRevision).orElse(null);
+ moduleImports = imports;
+ submoduleIncludes = includes;
+ dependencies = ImmutableSet.<ModuleImport>builder()
.addAll(moduleImports).addAll(submoduleIncludes).build();
this.semVer = semVer.orElse(null);
}
throw new IllegalArgumentException("Root of parsed AST must be either module or submodule");
}
- /**
- * Extracts {@link YangModelDependencyInfo} from input stream containing a YANG model. This parsing does not
- * validate full YANG module, only parses header up to the revisions and imports.
- *
- * @param refClass Base search class
- * @param resourceName resource name, relative to refClass
- * @return {@link YangModelDependencyInfo}
- * @throws YangSyntaxErrorException If the resource does not pass syntactic analysis
- * @throws IOException When the resource cannot be read
- * @throws IllegalArgumentException
- * If input stream is not valid YANG stream
- * @deprecated This method was used by testing framework and was deemed to be potentially useful to the outside
- * world. With Java Platform Module System, though, the resource loading rules have changed to the point
- * where we no longer can guarantee it working correctly, as the results depend on the resource path.
- * Users are advised to use {@link #forYangText(YangTextSchemaSource)}.
- */
- @Deprecated(forRemoval = true)
- public static YangModelDependencyInfo forResource(final Class<?> refClass, final String resourceName)
- throws IOException, YangSyntaxErrorException {
- return forYangText(YangTextSchemaSource.forResource(refClass, resourceName));
- }
-
/**
* Extracts {@link YangModelDependencyInfo} from a {@link YangTextSchemaSource}. This parsing does not
* validate full YANG module, only parses header up to the revisions and imports.
/**
* Returns name of parent module.
+ *
+ * @return The module this info belongs to
*/
public String getParentModule() {
return belongsTo;
ModuleImportImpl(final @NonNull String moduleName, final @Nullable Revision revision,
final @Nullable SemVer semVer) {
- this.name = requireNonNull(moduleName, "Module name must not be null.");
+ name = requireNonNull(moduleName, "Module name must not be null.");
this.revision = revision;
this.semVer = semVer;
}