| 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 library context.directory.manager; | 5 library context.directory.manager; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 import 'dart:collection'; | 8 import 'dart:collection'; |
| 9 import 'dart:convert'; | 9 import 'dart:convert'; |
| 10 import 'dart:core' hide Resource; | 10 import 'dart:core' hide Resource; |
| (...skipping 1692 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1703 Packages get packages => null; | 1703 Packages get packages => null; |
| 1704 | 1704 |
| 1705 @override | 1705 @override |
| 1706 Iterable<UriResolver> createPackageUriResolvers( | 1706 Iterable<UriResolver> createPackageUriResolvers( |
| 1707 ResourceProvider resourceProvider) => | 1707 ResourceProvider resourceProvider) => |
| 1708 <UriResolver>[resolver]; | 1708 <UriResolver>[resolver]; |
| 1709 | 1709 |
| 1710 @override | 1710 @override |
| 1711 EmbedderYamlLocator getEmbedderLocator(ResourceProvider resourceProvider) => | 1711 EmbedderYamlLocator getEmbedderLocator(ResourceProvider resourceProvider) => |
| 1712 new EmbedderYamlLocator(null); | 1712 new EmbedderYamlLocator(null); |
| 1713 |
| 1714 @override |
| 1715 SdkExtensionFinder getSdkExtensionFinder(ResourceProvider resourceProvider) => |
| 1716 new SdkExtensionFinder(null); |
| 1713 } | 1717 } |
| 1714 | 1718 |
| 1715 /** | 1719 /** |
| 1716 * An instance of the class [FolderDisposition] represents the information | 1720 * An instance of the class [FolderDisposition] represents the information |
| 1717 * gathered by the [ContextManagerImpl] to determine how to create an | 1721 * gathered by the [ContextManagerImpl] to determine how to create an |
| 1718 * [AnalysisContext] for a given folder. | 1722 * [AnalysisContext] for a given folder. |
| 1719 * | 1723 * |
| 1720 * Note: [ContextManagerImpl] may use equality testing and hash codes to | 1724 * Note: [ContextManagerImpl] may use equality testing and hash codes to |
| 1721 * determine when two folders should share the same context, so derived classes | 1725 * determine when two folders should share the same context, so derived classes |
| 1722 * may need to override operator== and hashCode() if object identity is | 1726 * may need to override operator== and hashCode() if object identity is |
| (...skipping 27 matching lines...) Expand all Loading... |
| 1750 */ | 1754 */ |
| 1751 Iterable<UriResolver> createPackageUriResolvers( | 1755 Iterable<UriResolver> createPackageUriResolvers( |
| 1752 ResourceProvider resourceProvider); | 1756 ResourceProvider resourceProvider); |
| 1753 | 1757 |
| 1754 /** | 1758 /** |
| 1755 * Return the locator used to locate the _embedder.yaml file used to configure | 1759 * Return the locator used to locate the _embedder.yaml file used to configure |
| 1756 * the SDK. The [resourceProvider] is used to access the file system in cases | 1760 * the SDK. The [resourceProvider] is used to access the file system in cases |
| 1757 * where that is necessary. | 1761 * where that is necessary. |
| 1758 */ | 1762 */ |
| 1759 EmbedderYamlLocator getEmbedderLocator(ResourceProvider resourceProvider); | 1763 EmbedderYamlLocator getEmbedderLocator(ResourceProvider resourceProvider); |
| 1764 |
| 1765 /** |
| 1766 * Return the extension finder used to locate the `_sdkext` file used to add |
| 1767 * extensions to the SDK. The [resourceProvider] is used to access the file |
| 1768 * system in cases where that is necessary. |
| 1769 */ |
| 1770 SdkExtensionFinder getSdkExtensionFinder(ResourceProvider resourceProvider); |
| 1760 } | 1771 } |
| 1761 | 1772 |
| 1762 /** | 1773 /** |
| 1763 * Concrete [FolderDisposition] object indicating that the context for a given | 1774 * Concrete [FolderDisposition] object indicating that the context for a given |
| 1764 * folder should not resolve "package:" URIs at all. | 1775 * folder should not resolve "package:" URIs at all. |
| 1765 */ | 1776 */ |
| 1766 class NoPackageFolderDisposition extends FolderDisposition { | 1777 class NoPackageFolderDisposition extends FolderDisposition { |
| 1767 @override | 1778 @override |
| 1768 final String packageRoot; | 1779 final String packageRoot; |
| 1769 | 1780 |
| 1770 NoPackageFolderDisposition({this.packageRoot}); | 1781 NoPackageFolderDisposition({this.packageRoot}); |
| 1771 | 1782 |
| 1772 @override | 1783 @override |
| 1773 Packages get packages => null; | 1784 Packages get packages => null; |
| 1774 | 1785 |
| 1775 @override | 1786 @override |
| 1776 Iterable<UriResolver> createPackageUriResolvers( | 1787 Iterable<UriResolver> createPackageUriResolvers( |
| 1777 ResourceProvider resourceProvider) => | 1788 ResourceProvider resourceProvider) => |
| 1778 const <UriResolver>[]; | 1789 const <UriResolver>[]; |
| 1779 | 1790 |
| 1780 @override | 1791 @override |
| 1781 EmbedderYamlLocator getEmbedderLocator(ResourceProvider resourceProvider) => | 1792 EmbedderYamlLocator getEmbedderLocator(ResourceProvider resourceProvider) => |
| 1782 new EmbedderYamlLocator(null); | 1793 new EmbedderYamlLocator(null); |
| 1794 |
| 1795 @override |
| 1796 SdkExtensionFinder getSdkExtensionFinder(ResourceProvider resourceProvider) => |
| 1797 new SdkExtensionFinder(null); |
| 1783 } | 1798 } |
| 1784 | 1799 |
| 1785 /** | 1800 /** |
| 1786 * Concrete [FolderDisposition] object indicating that the context for a given | 1801 * Concrete [FolderDisposition] object indicating that the context for a given |
| 1787 * folder should resolve packages using a package map. | 1802 * folder should resolve packages using a package map. |
| 1788 */ | 1803 */ |
| 1789 class PackageMapDisposition extends FolderDisposition { | 1804 class PackageMapDisposition extends FolderDisposition { |
| 1790 final Map<String, List<Folder>> packageMap; | 1805 final Map<String, List<Folder>> packageMap; |
| 1791 | 1806 |
| 1792 EmbedderYamlLocator _embedderLocator; | 1807 EmbedderYamlLocator _embedderLocator; |
| 1808 SdkExtensionFinder _sdkExtensionFinder; |
| 1793 | 1809 |
| 1794 @override | 1810 @override |
| 1795 final String packageRoot; | 1811 final String packageRoot; |
| 1796 | 1812 |
| 1797 PackageMapDisposition(this.packageMap, {this.packageRoot}); | 1813 PackageMapDisposition(this.packageMap, {this.packageRoot}); |
| 1798 | 1814 |
| 1799 @override | 1815 @override |
| 1800 Packages get packages => null; | 1816 Packages get packages => null; |
| 1801 | 1817 |
| 1802 @override | 1818 @override |
| 1803 Iterable<UriResolver> createPackageUriResolvers( | 1819 Iterable<UriResolver> createPackageUriResolvers( |
| 1804 ResourceProvider resourceProvider) => | 1820 ResourceProvider resourceProvider) => |
| 1805 <UriResolver>[ | 1821 <UriResolver>[ |
| 1806 new SdkExtUriResolver(packageMap), | 1822 new SdkExtUriResolver(packageMap), |
| 1807 new PackageMapUriResolver(resourceProvider, packageMap) | 1823 new PackageMapUriResolver(resourceProvider, packageMap) |
| 1808 ]; | 1824 ]; |
| 1809 | 1825 |
| 1810 @override | 1826 @override |
| 1811 EmbedderYamlLocator getEmbedderLocator(ResourceProvider resourceProvider) { | 1827 EmbedderYamlLocator getEmbedderLocator(ResourceProvider resourceProvider) { |
| 1812 if (_embedderLocator == null) { | 1828 if (_embedderLocator == null) { |
| 1813 _embedderLocator = new EmbedderYamlLocator(packageMap); | 1829 _embedderLocator = new EmbedderYamlLocator(packageMap); |
| 1814 } | 1830 } |
| 1815 return _embedderLocator; | 1831 return _embedderLocator; |
| 1816 } | 1832 } |
| 1833 |
| 1834 @override |
| 1835 SdkExtensionFinder getSdkExtensionFinder(ResourceProvider resourceProvider) { |
| 1836 return _sdkExtensionFinder ??= new SdkExtensionFinder(packageMap); |
| 1837 } |
| 1817 } | 1838 } |
| 1818 | 1839 |
| 1819 /** | 1840 /** |
| 1820 * Concrete [FolderDisposition] object indicating that the context for a given | 1841 * Concrete [FolderDisposition] object indicating that the context for a given |
| 1821 * folder should resolve packages using a ".packages" file. | 1842 * folder should resolve packages using a ".packages" file. |
| 1822 */ | 1843 */ |
| 1823 class PackagesFileDisposition extends FolderDisposition { | 1844 class PackagesFileDisposition extends FolderDisposition { |
| 1824 @override | 1845 @override |
| 1825 final Packages packages; | 1846 final Packages packages; |
| 1826 | 1847 |
| 1827 Map<String, List<Folder>> packageMap; | 1848 Map<String, List<Folder>> packageMap; |
| 1828 | 1849 |
| 1829 EmbedderYamlLocator _embedderLocator; | 1850 EmbedderYamlLocator _embedderLocator; |
| 1851 SdkExtensionFinder _sdkExtensionFinder; |
| 1830 | 1852 |
| 1831 PackagesFileDisposition(this.packages); | 1853 PackagesFileDisposition(this.packages); |
| 1832 | 1854 |
| 1833 @override | 1855 @override |
| 1834 String get packageRoot => null; | 1856 String get packageRoot => null; |
| 1835 | 1857 |
| 1836 Map<String, List<Folder>> buildPackageMap(ResourceProvider resourceProvider) { | 1858 Map<String, List<Folder>> buildPackageMap(ResourceProvider resourceProvider) { |
| 1837 if (packageMap == null) { | 1859 if (packageMap == null) { |
| 1838 packageMap = <String, List<Folder>>{}; | 1860 packageMap = <String, List<Folder>>{}; |
| 1839 if (packages != null) { | 1861 if (packages != null) { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 1861 } | 1883 } |
| 1862 | 1884 |
| 1863 @override | 1885 @override |
| 1864 EmbedderYamlLocator getEmbedderLocator(ResourceProvider resourceProvider) { | 1886 EmbedderYamlLocator getEmbedderLocator(ResourceProvider resourceProvider) { |
| 1865 if (_embedderLocator == null) { | 1887 if (_embedderLocator == null) { |
| 1866 _embedderLocator = | 1888 _embedderLocator = |
| 1867 new EmbedderYamlLocator(buildPackageMap(resourceProvider)); | 1889 new EmbedderYamlLocator(buildPackageMap(resourceProvider)); |
| 1868 } | 1890 } |
| 1869 return _embedderLocator; | 1891 return _embedderLocator; |
| 1870 } | 1892 } |
| 1893 |
| 1894 @override |
| 1895 SdkExtensionFinder getSdkExtensionFinder(ResourceProvider resourceProvider) { |
| 1896 return _sdkExtensionFinder ??= |
| 1897 new SdkExtensionFinder(buildPackageMap(resourceProvider)); |
| 1898 } |
| 1871 } | 1899 } |
| OLD | NEW |