Package org.apache.commons.configuration2.io

# Class FileSystem

java.lang.Object
org.apache.commons.configuration2.io.FileSystem

Direct Known Subclasses:
  `DefaultFileSystem`

public abstract class FileSystem extends Object
Abstract layer to allow various types of file systems.

Since:
  1.7

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `FileSystem()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `abstract String`
  `getBasePath(String path)`
  `abstract String`
  `getFileName(String path)`
  `FileOptionsProvider`
  `getFileOptionsProvider()`
  `abstract InputStream`
  `getInputStream(URL url)`
  `InputStream`
  `getInputStream(URL url, URLConnectionOptions urlConnectionOptions)`
  Not abstract for binary compatibility.
  `ConfigurationLogger`
  `getLogger()`
  Gets the logger used by this FileSystem.
  `abstract OutputStream`
  `getOutputStream(File file)`
  `abstract OutputStream`
  `getOutputStream(URL url)`
  `abstract String`
  `getPath(File file, URL url, String basePath, String fileName)`
  `abstract URL`
  `getURL(String basePath, String fileName)`
  `abstract URL`
  `locateFromURL(String basePath, String fileName)`
  `void`
  `setFileOptionsProvider(FileOptionsProvider provider)`
  Sets the FileOptionsProvider
  `void`
  `setLogger(ConfigurationLogger log)`
  Allows setting the logger to be used by this FileSystem.

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

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

- ## Constructor Details

  - ### FileSystem

    public FileSystem()

- ## Method Details

  - ### getBasePath

    public abstract String getBasePath(String path)

  - ### getFileName

    public abstract String getFileName(String path)

  - ### getFileOptionsProvider

    public FileOptionsProvider getFileOptionsProvider()

  - ### getInputStream

    public abstract InputStream getInputStream(URL url) throws ConfigurationException
    Throws:
      `ConfigurationException`

  - ### getInputStream

    public InputStream getInputStream(URL url, URLConnectionOptions urlConnectionOptions) throws ConfigurationException
    Not abstract for binary compatibility.
    Parameters:
      `url` - TODO
      `urlConnectionOptions` - Ignored.
    Returns:
      TODO
    Throws:
      `ConfigurationException` - TODO
    Since:
      2.8.0

  - ### getLogger

    public ConfigurationLogger getLogger()
    Gets the logger used by this FileSystem.
    Returns:
      the logger

  - ### getOutputStream

    public abstract OutputStream getOutputStream(File file) throws ConfigurationException
    Throws:
      `ConfigurationException`

  - ### getOutputStream

    public abstract OutputStream getOutputStream(URL url) throws ConfigurationException
    Throws:
      `ConfigurationException`

  - ### getPath

    public abstract String getPath(File file, URL url, String basePath, String fileName)

  - ### getURL

    public abstract URL getURL(String basePath, String fileName) throws MalformedURLException
    Throws:
      `MalformedURLException`

  - ### locateFromURL

    public abstract URL locateFromURL(String basePath, String fileName)

  - ### setFileOptionsProvider

    public void setFileOptionsProvider(FileOptionsProvider provider)
    Sets the FileOptionsProvider
    Parameters:
      `provider` - The FileOptionsProvider

  - ### setLogger

    public void setLogger(ConfigurationLogger log)
    Allows setting the logger to be used by this FileSystem. This method makes it possible for clients to exactly control logging behavior. Per default a logger is set that will ignore all log messages. Derived classes that want to enable logging should call this method during their initialization with the logger to be used. Passing in a null argument disables logging.
    Parameters:
      `log` - the new logger