Package org.eclipse.cdt.utils

## Class EFSExtensionManager

- java.lang.Object
- - org.eclipse.cdt.utils.EFSExtensionManager

    public class EFSExtensionManager
    extends Object

Manager class that consults contributors to the EFSExtensionProvider extension point to perform operations corresponding to those filesystems. The default behaviour if no provider is present is to assumes that URIs for the given filesystem map directly to resources in the physical filesystem, and that the path component of the URI is a direct representation of the absolute path to the file in the physical filesystem. Also, operations will by default respect the syntax and semantics of the local EFS filesystem, if operations are performed with respect to it. EXPERIMENTAL. This class or interface has been added as part of a work in progress. There is no guarantee that this API will work or that it will remain the same. Please do not use this API without consulting with the CDT team.

Since:
  5.2
Restriction:
  This class is not intended to be extended by clients.

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`URI` `append​(URI baseURI, String extension)` Creates a new URI with the same components as the baseURI, except that calling getPathFromURI() on the new URI will return a path that has the extension appended to the path returned by baseURI.getPathFromURI()
`URI` `createNewURIFromPath​(URI locationOnSameFilesystem, String path)` Creates a new URI which clones the contents of the original URI, but with the path replaced by the given path, such that calling getPathFromURI() on the returned URI will return the given path.
`static EFSExtensionManager` `getDefault()`
`URI` `getLinkedURI​(URI locationURI)` In the case of a virtual filesystem, where URIs in the given filesystem are just soft links in EFS to URIs in other filesystems, returns the URI that this URI links to.
`String` `getMappedPath​(URI locationURI)` For filesystems that map the path to a physical file in one filesystem (say on a remote machine) to another path (say, on the local machine), this method returns the path that the store maps to.
`String` `getPathFromURI​(URI locationURI)` If the EFS store represented by locationURI is backed by a physical file, gets the path corresponding to the underlying file.
`boolean` `isVirtual​(URI locationURI)` Returns true if the given URI is part of a virtual filesystem and thus points to another underlying URI.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Method Detail

#### getDefault

    public static EFSExtensionManager getDefault()

#### getPathFromURI

    public String getPathFromURI​(URI locationURI)

If the EFS store represented by locationURI is backed by a physical file, gets the path corresponding to the underlying file. The path returned is suitable for use in constructing a `Path` object. This method will return the corresponding path regardless of whether or not the EFS store actually exists.

Parameters:
  `locationURI` -
Returns:
  String representing the path, or `null` if there is an error or if the store is not backed by a physical file.

#### getLinkedURI

    public URI getLinkedURI​(URI locationURI)

In the case of a virtual filesystem, where URIs in the given filesystem are just soft links in EFS to URIs in other filesystems, returns the URI that this URI links to. If the filesystem is not virtual, then this method acts as an identity mapping.

Parameters:
  `locationURI` -
Returns:
  A URI corresponding to the linked store, or `null` on error.

#### createNewURIFromPath

    public URI createNewURIFromPath​(URI locationOnSameFilesystem,
                                    String path)

Creates a new URI which clones the contents of the original URI, but with the path replaced by the given path, such that calling getPathFromURI() on the returned URI will return the given path. Returns null on error.

Parameters:
  `locationOnSameFilesystem` -
  `path` -
Returns:
  the new URI, or `null` on error

#### getMappedPath

    public String getMappedPath​(URI locationURI)

For filesystems that map the path to a physical file in one filesystem (say on a remote machine) to another path (say, on the local machine), this method returns the path that the store maps to. I.e., it returns the path that the path returned by getPathFromURI(URI locationURI) maps to. If there is no such mapping, then an identity mapping of the paths is assumed. Typically if a filesystem maps one filesytem to another, it will place the mapped path in the path field of its URIs (which the default implementation assumes), but this is not guaranteed to be so for all filesystem implementations.

Returns:
  String representing the path, or `null` on error.

#### isVirtual

    public boolean isVirtual​(URI locationURI)

Returns true if the given URI is part of a virtual filesystem and thus points to another underlying URI. Returns false otherwise. By default, filesystems are assumed to be non-virtual.

Parameters:
  `locationURI` -
Returns:
  boolean

#### append

    public URI append​(URI baseURI,
                      String extension)

Creates a new URI with the same components as the baseURI, except that calling getPathFromURI() on the new URI will return a path that has the extension appended to the path returned by baseURI.getPathFromURI()

Parameters:
  `baseURI` -
  `extension` -
Returns:
  the new URI, or `null` on error.