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

    Modifier and Type
    Method
    Description
    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()
    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.
     
    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.
    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.
    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 Details

    • 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.