|  | // Copyright (c) 2018, 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. | 
|  |  | 
|  | /// A utility class used to convert between URIs and absolute file paths. | 
|  | abstract class UriConverter { | 
|  | /// Return the URI that should be used to reference the file at the absolute | 
|  | /// [path], or `null` if there is no valid way to reference the file in this | 
|  | /// converter’s context. The file at that path is not required to exist. | 
|  | /// | 
|  | /// If a [containingPath] is provided and both the [path] and [containingPath] | 
|  | /// are within the root of this converter’s context, then the returned URI | 
|  | /// will be a relative path. Otherwise, the returned URI will be an absolute | 
|  | /// URI. | 
|  | /// | 
|  | /// Throws an `ArgumentError` if the [path] is `null` or is not a valid | 
|  | /// absolute file path. | 
|  | Uri? pathToUri(String path, {String? containingPath}); | 
|  |  | 
|  | /// Return the absolute path of the file to which the absolute [uri] resolves, | 
|  | /// or `null` if the [uri] cannot be resolved in this converter’s context. | 
|  | /// | 
|  | /// Throws an `ArgumentError` if the [uri] is `null` or is not an absolute | 
|  | /// URI. | 
|  | String? uriToPath(Uri uri); | 
|  | } |