| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 // This code was auto-generated, is not intended to be edited, and is subject to | 5 // This code was auto-generated, is not intended to be edited, and is subject to |
| 6 // significant change. Please see the README file for more information. | 6 // significant change. Please see the README file for more information. |
| 7 | 7 |
| 8 library engine.source; | 8 library engine.source; |
| 9 | 9 |
| 10 import 'dart:collection'; | 10 import 'dart:collection'; |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 102 } | 102 } |
| 103 } | 103 } |
| 104 } | 104 } |
| 105 | 105 |
| 106 class CustomUriResolver extends UriResolver { | 106 class CustomUriResolver extends UriResolver { |
| 107 final Map<String, String> _urlMappings; | 107 final Map<String, String> _urlMappings; |
| 108 | 108 |
| 109 CustomUriResolver(this._urlMappings); | 109 CustomUriResolver(this._urlMappings); |
| 110 | 110 |
| 111 @override | 111 @override |
| 112 Source resolveAbsolute(Uri uri) { | 112 Source resolveAbsolute(Uri uri, [Uri actualUri]) { |
| 113 String mapping = _urlMappings[uri.toString()]; | 113 String mapping = _urlMappings[uri.toString()]; |
| 114 if (mapping == null) return null; | 114 if (mapping == null) return null; |
| 115 | 115 |
| 116 Uri fileUri = new Uri.file(mapping); | 116 Uri fileUri = new Uri.file(mapping); |
| 117 if (!fileUri.isAbsolute) return null; | 117 if (!fileUri.isAbsolute) return null; |
| 118 | 118 |
| 119 JavaFile javaFile = new JavaFile.fromUri(fileUri); | 119 JavaFile javaFile = new JavaFile.fromUri(fileUri); |
| 120 return new FileBasedSource(javaFile); | 120 return new FileBasedSource(javaFile, actualUri); |
| 121 } | 121 } |
| 122 } | 122 } |
| 123 | 123 |
| 124 /** | 124 /** |
| 125 * Instances of the class `DartUriResolver` resolve `dart` URI's. | 125 * Instances of the class `DartUriResolver` resolve `dart` URI's. |
| 126 */ | 126 */ |
| 127 class DartUriResolver extends UriResolver { | 127 class DartUriResolver extends UriResolver { |
| 128 /** | 128 /** |
| 129 * The name of the `dart` scheme. | 129 * The name of the `dart` scheme. |
| 130 */ | 130 */ |
| (...skipping 18 matching lines...) Expand all Loading... |
| 149 DartUriResolver(this._sdk); | 149 DartUriResolver(this._sdk); |
| 150 | 150 |
| 151 /** | 151 /** |
| 152 * Return the [DartSdk] against which URIs are to be resolved. | 152 * Return the [DartSdk] against which URIs are to be resolved. |
| 153 * | 153 * |
| 154 * @return the [DartSdk] against which URIs are to be resolved. | 154 * @return the [DartSdk] against which URIs are to be resolved. |
| 155 */ | 155 */ |
| 156 DartSdk get dartSdk => _sdk; | 156 DartSdk get dartSdk => _sdk; |
| 157 | 157 |
| 158 @override | 158 @override |
| 159 Source resolveAbsolute(Uri uri) { | 159 Source resolveAbsolute(Uri uri, [Uri actualUri]) { |
| 160 if (!isDartUri(uri)) { | 160 if (!isDartUri(uri)) { |
| 161 return null; | 161 return null; |
| 162 } | 162 } |
| 163 return _sdk.mapDartUri(uri.toString()); | 163 return _sdk.mapDartUri(uri.toString()); |
| 164 } | 164 } |
| 165 | 165 |
| 166 /** | 166 /** |
| 167 * Return `true` if the given URI is a `dart-ext:` URI. | 167 * Return `true` if the given URI is a `dart-ext:` URI. |
| 168 * | 168 * |
| 169 * @param uriContent the textual representation of the URI being tested | 169 * @param uriContent the textual representation of the URI being tested |
| (...skipping 637 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 807 * against the source object's URI | 807 * against the source object's URI |
| 808 */ | 808 */ |
| 809 Source _internalResolveUri(Source containingSource, Uri containedUri) { | 809 Source _internalResolveUri(Source containingSource, Uri containedUri) { |
| 810 if (!containedUri.isAbsolute) { | 810 if (!containedUri.isAbsolute) { |
| 811 if (containingSource == null) { | 811 if (containingSource == null) { |
| 812 throw new AnalysisException( | 812 throw new AnalysisException( |
| 813 "Cannot resolve a relative URI without a containing source: $contain
edUri"); | 813 "Cannot resolve a relative URI without a containing source: $contain
edUri"); |
| 814 } | 814 } |
| 815 containedUri = containingSource.resolveRelativeUri(containedUri); | 815 containedUri = containingSource.resolveRelativeUri(containedUri); |
| 816 } | 816 } |
| 817 // Now check .packages. | 817 |
| 818 Uri actualUri = containedUri; |
| 819 |
| 820 // Check .packages and update target and actual URIs as appropriate. |
| 818 if (_packages != null && containedUri.scheme == 'package') { | 821 if (_packages != null && containedUri.scheme == 'package') { |
| 819 Uri packageUri = | 822 Uri packageUri = |
| 820 _packages.resolve(containedUri, notFound: (Uri packageUri) => null); | 823 _packages.resolve(containedUri, notFound: (Uri packageUri) => null); |
| 821 // Ensure scheme is set. | 824 |
| 822 if (packageUri != null && packageUri.scheme == '') { | 825 if (packageUri != null) { |
| 823 packageUri = packageUri.replace(scheme: 'file'); | 826 // Ensure scheme is set. |
| 827 if (packageUri.scheme == '') { |
| 828 packageUri = packageUri.replace(scheme: 'file'); |
| 829 } |
| 830 containedUri = packageUri; |
| 824 } | 831 } |
| 825 containedUri = packageUri; | |
| 826 } | 832 } |
| 833 |
| 827 for (UriResolver resolver in _resolvers) { | 834 for (UriResolver resolver in _resolvers) { |
| 828 Source result = resolver.resolveAbsolute(containedUri); | 835 Source result = resolver.resolveAbsolute(containedUri, actualUri); |
| 829 if (result != null) { | 836 if (result != null) { |
| 830 return result; | 837 return result; |
| 831 } | 838 } |
| 832 } | 839 } |
| 840 |
| 833 return null; | 841 return null; |
| 834 } | 842 } |
| 835 } | 843 } |
| 836 | 844 |
| 837 /** | 845 /** |
| 838 * The enumeration `SourceKind` defines the different kinds of sources that are
known to the | 846 * The enumeration `SourceKind` defines the different kinds of sources that are
known to the |
| 839 * analysis engine. | 847 * analysis engine. |
| 840 */ | 848 */ |
| 841 class SourceKind extends Enum<SourceKind> { | 849 class SourceKind extends Enum<SourceKind> { |
| 842 /** | 850 /** |
| (...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1055 * URI's for a source factory. Subclasses of this class are expected to resolve
a single scheme of | 1063 * URI's for a source factory. Subclasses of this class are expected to resolve
a single scheme of |
| 1056 * absolute URI. | 1064 * absolute URI. |
| 1057 */ | 1065 */ |
| 1058 abstract class UriResolver { | 1066 abstract class UriResolver { |
| 1059 /** | 1067 /** |
| 1060 * Resolve the given absolute URI. Return a [Source] representing the file to
which | 1068 * Resolve the given absolute URI. Return a [Source] representing the file to
which |
| 1061 * it was resolved, whether or not the resulting source exists, or `null` if i
t could not be | 1069 * it was resolved, whether or not the resulting source exists, or `null` if i
t could not be |
| 1062 * resolved because the URI is invalid. | 1070 * resolved because the URI is invalid. |
| 1063 * | 1071 * |
| 1064 * @param uri the URI to be resolved | 1072 * @param uri the URI to be resolved |
| 1073 * @param actualUri the actual uri for this source -- if `null`, the value of
[uri] will be used |
| 1065 * @return a [Source] representing the file to which given URI was resolved | 1074 * @return a [Source] representing the file to which given URI was resolved |
| 1066 */ | 1075 */ |
| 1067 Source resolveAbsolute(Uri uri); | 1076 Source resolveAbsolute(Uri uri, [Uri actualUri]); |
| 1068 | 1077 |
| 1069 /** | 1078 /** |
| 1070 * Return an absolute URI that represents the given source, or `null` if a val
id URI cannot | 1079 * Return an absolute URI that represents the given source, or `null` if a val
id URI cannot |
| 1071 * be computed. | 1080 * be computed. |
| 1072 * | 1081 * |
| 1073 * @param source the source to get URI for | 1082 * @param source the source to get URI for |
| 1074 * @return the absolute URI representing the given source | 1083 * @return the absolute URI representing the given source |
| 1075 */ | 1084 */ |
| 1076 Uri restoreAbsolute(Source source) => null; | 1085 Uri restoreAbsolute(Source source) => null; |
| 1077 } | 1086 } |
| OLD | NEW |