Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1140)

Unified Diff: analyzer/lib/src/generated/source_io.dart

Issue 1400473008: Roll Observatory packages and add a roll script (Closed) Base URL: git@github.com:dart-lang/observatory_pub_packages.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « analyzer/lib/src/generated/source.dart ('k') | analyzer/lib/src/generated/static_type_analyzer.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: analyzer/lib/src/generated/source_io.dart
diff --git a/analyzer/lib/src/generated/source_io.dart b/analyzer/lib/src/generated/source_io.dart
deleted file mode 100644
index 9c40d7461b4666ffb553a8b69545968bc2b0ee28..0000000000000000000000000000000000000000
--- a/analyzer/lib/src/generated/source_io.dart
+++ /dev/null
@@ -1,562 +0,0 @@
-// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// This code was auto-generated, is not intended to be edited, and is subject to
-// significant change. Please see the README file for more information.
-
-library engine.source.io;
-
-import 'dart:collection';
-
-import 'engine.dart';
-import 'java_core.dart';
-import 'java_engine.dart';
-import 'java_io.dart';
-import 'source.dart';
-
-export 'source.dart';
-
-/**
- * Instances of the class [DirectoryBasedSourceContainer] represent a source container that
- * contains all sources within a given directory.
- */
-class DirectoryBasedSourceContainer implements SourceContainer {
- /**
- * The container's path (not `null`).
- */
- String _path;
-
- /**
- * Construct a container representing the specified directory and containing any sources whose
- * [Source.fullName] starts with the directory's path. This is a convenience method,
- * fully equivalent to [DirectoryBasedSourceContainer.con2].
- *
- * @param directory the directory (not `null`)
- */
- DirectoryBasedSourceContainer.con1(JavaFile directory)
- : this.con2(directory.getPath());
-
- /**
- * Construct a container representing the specified path and containing any sources whose
- * [Source.fullName] starts with the specified path.
- *
- * @param path the path (not `null` and not empty)
- */
- DirectoryBasedSourceContainer.con2(String path) {
- this._path = _appendFileSeparator(path);
- }
-
- @override
- int get hashCode => _path.hashCode;
-
- /**
- * Answer the receiver's path, used to determine if a source is contained in the receiver.
- *
- * @return the path (not `null`, not empty)
- */
- String get path => _path;
-
- @override
- bool operator ==(Object obj) =>
- (obj is DirectoryBasedSourceContainer) && obj.path == path;
-
- @override
- bool contains(Source source) => source.fullName.startsWith(_path);
-
- @override
- String toString() => "SourceContainer[$_path]";
-
- /**
- * Append the system file separator to the given path unless the path already ends with a
- * separator.
- *
- * @param path the path to which the file separator is to be added
- * @return a path that ends with the system file separator
- */
- static String _appendFileSeparator(String path) {
- if (path == null ||
- path.length <= 0 ||
- path.codeUnitAt(path.length - 1) == JavaFile.separatorChar) {
- return path;
- }
- return "$path${JavaFile.separator}";
- }
-}
-
-/**
- * Instances of the class `FileBasedSource` implement a source that represents a file.
- */
-class FileBasedSource extends Source {
- /**
- * A function that changes the way that files are read off of disk.
- */
- static Function fileReadMode = (String s) => s;
-
- /**
- * Map from encoded URI/filepath pair to a unique integer identifier. This
- * identifier is used for equality tests and hash codes.
- *
- * The URI and filepath are joined into a pair by separating them with an '@'
- * character.
- */
- static final Map<String, int> _idTable = new HashMap<String, int>();
-
- /**
- * The URI from which this source was originally derived.
- */
- final Uri uri;
-
- /**
- * The unique ID associated with this [FileBasedSource].
- */
- final int id;
-
- /**
- * The file represented by this source.
- */
- final JavaFile file;
-
- /**
- * The cached absolute path of this source.
- */
- String _absolutePath;
-
- /**
- * The cached encoding for this source.
- */
- String _encoding;
-
- /**
- * Initialize a newly created source object to represent the given [file]. If
- * a [uri] is given, then it will be used as the URI from which the source was
- * derived, otherwise a `file:` URI will be created based on the [file].
- */
- FileBasedSource(JavaFile file, [Uri uri])
- : this.uri = (uri == null ? file.toURI() : uri),
- this.file = file,
- id = _idTable.putIfAbsent(
- '${uri == null ? file.toURI() : uri}@${file.getPath()}',
- () => _idTable.length);
-
- /**
- * Initialize a newly created source object.
- *
- * @param file the file represented by this source
- */
- @deprecated // Use new FileBasedSource(file)
- FileBasedSource.con1(JavaFile file) : this(file);
-
- /**
- * Initialize a newly created source object.
- *
- * @param file the file represented by this source
- * @param uri the URI from which this source was originally derived
- */
- @deprecated // Use new FileBasedSource(file, uri)
- FileBasedSource.con2(Uri uri, JavaFile file)
- : uri = uri,
- file = file,
- id = _idTable.putIfAbsent(
- '$uri@${file.getPath()}', () => _idTable.length);
-
- @override
- TimestampedData<String> get contents {
- return PerformanceStatistics.io.makeCurrentWhile(() {
- return contentsFromFile;
- });
- }
-
- /**
- * Get the contents and timestamp of the underlying file.
- *
- * Clients should consider using the the method [AnalysisContext.getContents]
- * because contexts can have local overrides of the content of a source that the source is not
- * aware of.
- *
- * @return the contents of the source paired with the modification stamp of the source
- * @throws Exception if the contents of this source could not be accessed
- * See [contents].
- */
- TimestampedData<String> get contentsFromFile {
- return new TimestampedData<String>(
- file.lastModified(), fileReadMode(file.readAsStringSync()));
- }
-
- @override
- String get encoding {
- if (_encoding == null) {
- _encoding = uri.toString();
- }
- return _encoding;
- }
-
- @override
- String get fullName {
- if (_absolutePath == null) {
- _absolutePath = file.getAbsolutePath();
- }
- return _absolutePath;
- }
-
- @override
- int get hashCode => id;
-
- @override
- bool get isInSystemLibrary => uri.scheme == DartUriResolver.DART_SCHEME;
-
- @override
- int get modificationStamp => file.lastModified();
-
- @override
- String get shortName => file.getName();
-
- @override
- UriKind get uriKind {
- String scheme = uri.scheme;
- if (scheme == PackageUriResolver.PACKAGE_SCHEME) {
- return UriKind.PACKAGE_URI;
- } else if (scheme == DartUriResolver.DART_SCHEME) {
- return UriKind.DART_URI;
- } else if (scheme == FileUriResolver.FILE_SCHEME) {
- return UriKind.FILE_URI;
- }
- return UriKind.FILE_URI;
- }
-
- @override
- bool operator ==(Object object) =>
- object is FileBasedSource && id == object.id;
-
- @override
- bool exists() => file.isFile();
-
- @override
- Uri resolveRelativeUri(Uri containedUri) {
- try {
- Uri baseUri = uri;
- bool isOpaque = uri.isAbsolute && !uri.path.startsWith('/');
- if (isOpaque) {
- String scheme = uri.scheme;
- String part = uri.path;
- if (scheme == DartUriResolver.DART_SCHEME && part.indexOf('/') < 0) {
- part = "$part/$part.dart";
- }
- baseUri = parseUriWithException("$scheme:/$part");
- }
- Uri result = baseUri.resolveUri(containedUri);
- if (isOpaque) {
- result = parseUriWithException(
- "${result.scheme}:${result.path.substring(1)}");
- }
- return result;
- } catch (exception, stackTrace) {
- throw new AnalysisException(
- "Could not resolve URI ($containedUri) relative to source ($uri)",
- new CaughtException(exception, stackTrace));
- }
- }
-
- @override
- String toString() {
- if (file == null) {
- return "<unknown source>";
- }
- return file.getAbsolutePath();
- }
-}
-
-/**
- * Instances of the class `FileUriResolver` resolve `file` URI's.
- */
-class FileUriResolver extends UriResolver {
- /**
- * The name of the `file` scheme.
- */
- static String FILE_SCHEME = "file";
-
- @override
- Source resolveAbsolute(Uri uri) {
- if (!isFileUri(uri)) {
- return null;
- }
- return new FileBasedSource(new JavaFile.fromUri(uri), uri);
- }
-
- @override
- Uri restoreAbsolute(Source source) {
- if (source is FileBasedSource) {
- return new Uri.file(source.fullName);
- }
- return null;
- }
-
- /**
- * Return `true` if the given URI is a `file` URI.
- *
- * @param uri the URI being tested
- * @return `true` if the given URI is a `file` URI
- */
- static bool isFileUri(Uri uri) => uri.scheme == FILE_SCHEME;
-}
-
-/**
- * Instances of interface `LocalSourcePredicate` are used to determine if the given
- * [Source] is "local" in some sense, so can be updated.
- */
-abstract class LocalSourcePredicate {
- /**
- * Instance of [LocalSourcePredicate] that always returns `false`.
- */
- static final LocalSourcePredicate FALSE = new LocalSourcePredicate_FALSE();
-
- /**
- * Instance of [LocalSourcePredicate] that always returns `true`.
- */
- static final LocalSourcePredicate TRUE = new LocalSourcePredicate_TRUE();
-
- /**
- * Instance of [LocalSourcePredicate] that returns `true` for all [Source]s
- * except of SDK.
- */
- static final LocalSourcePredicate NOT_SDK =
- new LocalSourcePredicate_NOT_SDK();
-
- /**
- * Determines if the given [Source] is local.
- *
- * @param source the [Source] to analyze
- * @return `true` if the given [Source] is local
- */
- bool isLocal(Source source);
-}
-
-class LocalSourcePredicate_FALSE implements LocalSourcePredicate {
- @override
- bool isLocal(Source source) => false;
-}
-
-class LocalSourcePredicate_NOT_SDK implements LocalSourcePredicate {
- @override
- bool isLocal(Source source) => source.uriKind != UriKind.DART_URI;
-}
-
-class LocalSourcePredicate_TRUE implements LocalSourcePredicate {
- @override
- bool isLocal(Source source) => true;
-}
-
-/**
- * Instances of the class `PackageUriResolver` resolve `package` URI's in the context of
- * an application.
- *
- * For the purposes of sharing analysis, the path to each package under the "packages" directory
- * should be canonicalized, but to preserve relative links within a package, the remainder of the
- * path from the package directory to the leaf should not.
- */
-class PackageUriResolver extends UriResolver {
- /**
- * The name of the `package` scheme.
- */
- static String PACKAGE_SCHEME = "package";
-
- /**
- * Log exceptions thrown with the message "Required key not available" only once.
- */
- static bool _CanLogRequiredKeyIoException = true;
-
- /**
- * The package directories that `package` URI's are assumed to be relative to.
- */
- final List<JavaFile> _packagesDirectories;
-
- /**
- * Initialize a newly created resolver to resolve `package` URI's relative to the given
- * package directories.
- *
- * @param packagesDirectories the package directories that `package` URI's are assumed to be
- * relative to
- */
- PackageUriResolver(this._packagesDirectories) {
- if (_packagesDirectories.length < 1) {
- throw new IllegalArgumentException(
- "At least one package directory must be provided");
- }
- }
-
- /**
- * If the list of package directories contains one element, return it.
- * Otherwise raise an exception. Intended for testing.
- */
- String get packagesDirectory_forTesting {
- int length = _packagesDirectories.length;
- if (length != 1) {
- throw new Exception('Expected 1 package directory, found $length');
- }
- return _packagesDirectories[0].getPath();
- }
-
- /**
- * Answer the canonical file for the specified package.
- *
- * @param packagesDirectory the "packages" directory (not `null`)
- * @param pkgName the package name (not `null`, not empty)
- * @param relPath the path relative to the package directory (not `null`, no leading slash,
- * but may be empty string)
- * @return the file (not `null`)
- */
- JavaFile getCanonicalFile(
- JavaFile packagesDirectory, String pkgName, String relPath) {
- JavaFile pkgDir = new JavaFile.relative(packagesDirectory, pkgName);
- try {
- pkgDir = pkgDir.getCanonicalFile();
- } on JavaIOException catch (exception, stackTrace) {
- if (!exception.toString().contains("Required key not available")) {
- AnalysisEngine.instance.logger.logError("Canonical failed: $pkgDir",
- new CaughtException(exception, stackTrace));
- } else if (_CanLogRequiredKeyIoException) {
- _CanLogRequiredKeyIoException = false;
- AnalysisEngine.instance.logger.logError("Canonical failed: $pkgDir",
- new CaughtException(exception, stackTrace));
- }
- }
- return new JavaFile.relative(pkgDir, relPath.replaceAll(
- '/', new String.fromCharCode(JavaFile.separatorChar)));
- }
-
- @override
- Source resolveAbsolute(Uri uri) {
- if (!isPackageUri(uri)) {
- return null;
- }
- String path = uri.path;
- if (path == null) {
- path = uri.path;
- if (path == null) {
- return null;
- }
- }
- String pkgName;
- String relPath;
- int index = path.indexOf('/');
- if (index == -1) {
- // No slash
- pkgName = path;
- relPath = "";
- } else if (index == 0) {
- // Leading slash is invalid
- return null;
- } else {
- // <pkgName>/<relPath>
- pkgName = path.substring(0, index);
- relPath = path.substring(index + 1);
- }
- for (JavaFile packagesDirectory in _packagesDirectories) {
- JavaFile resolvedFile = new JavaFile.relative(packagesDirectory, path);
- if (resolvedFile.exists()) {
- JavaFile canonicalFile =
- getCanonicalFile(packagesDirectory, pkgName, relPath);
- if (_isSelfReference(packagesDirectory, canonicalFile)) {
- uri = canonicalFile.toURI();
- }
- return new FileBasedSource(canonicalFile, uri);
- }
- }
- return new FileBasedSource(
- getCanonicalFile(_packagesDirectories[0], pkgName, relPath), uri);
- }
-
- @override
- Uri restoreAbsolute(Source source) {
- String sourcePath = source.fullName;
- for (JavaFile packagesDirectory in _packagesDirectories) {
- List<JavaFile> pkgFolders = packagesDirectory.listFiles();
- if (pkgFolders != null) {
- for (JavaFile pkgFolder in pkgFolders) {
- try {
- String pkgCanonicalPath = pkgFolder.getCanonicalPath();
- if (sourcePath.startsWith(pkgCanonicalPath)) {
- String relPath = sourcePath.substring(pkgCanonicalPath.length);
- return parseUriWithException(
- "$PACKAGE_SCHEME:${pkgFolder.getName()}$relPath");
- }
- } catch (e) {}
- }
- }
- }
- return null;
- }
-
- /**
- * @return `true` if "file" was found in "packagesDir", and it is part of the "lib" folder
- * of the application that contains in this "packagesDir".
- */
- bool _isSelfReference(JavaFile packagesDir, JavaFile file) {
- JavaFile rootDir = packagesDir.getParentFile();
- if (rootDir == null) {
- return false;
- }
- String rootPath = rootDir.getAbsolutePath();
- String filePath = file.getAbsolutePath();
- return filePath.startsWith("$rootPath/lib");
- }
-
- /**
- * Return `true` if the given URI is a `package` URI.
- *
- * @param uri the URI being tested
- * @return `true` if the given URI is a `package` URI
- */
- static bool isPackageUri(Uri uri) => PACKAGE_SCHEME == uri.scheme;
-}
-
-/**
- * Instances of the class `RelativeFileUriResolver` resolve `file` URI's.
- */
-class RelativeFileUriResolver extends UriResolver {
- /**
- * The name of the `file` scheme.
- */
- static String FILE_SCHEME = "file";
-
- /**
- * The directories for the relatvie URI's
- */
- final List<JavaFile> _relativeDirectories;
-
- /**
- * The root directory for all the source trees
- */
- final JavaFile _rootDirectory;
-
- /**
- * Initialize a newly created resolver to resolve `file` URI's relative to the given root
- * directory.
- */
- RelativeFileUriResolver(this._rootDirectory, this._relativeDirectories)
- : super();
-
- @override
- Source resolveAbsolute(Uri uri) {
- String rootPath = _rootDirectory.toURI().path;
- String uriPath = uri.path;
- if (uriPath != null && uriPath.startsWith(rootPath)) {
- String filePath = uri.path.substring(rootPath.length);
- for (JavaFile dir in _relativeDirectories) {
- JavaFile file = new JavaFile.relative(dir, filePath);
- if (file.exists()) {
- return new FileBasedSource(file, uri);
- }
- }
- }
- return null;
- }
-
- /**
- * Return `true` if the given URI is a `file` URI.
- *
- * @param uri the URI being tested
- * @return `true` if the given URI is a `file` URI
- */
- static bool isFileUri(Uri uri) => uri.scheme == FILE_SCHEME;
-}
« no previous file with comments | « analyzer/lib/src/generated/source.dart ('k') | analyzer/lib/src/generated/static_type_analyzer.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698