Package org.apache.commons.configuration2.io

# Class FileLocator

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

public final class FileLocator extends Object

A class describing the location of a file.

An instance of this class provides information for locating and accessing a file. The file location can be defined

- as a URL; this identifies a file in a unique way
- as a combination of base path and file name; if this variant is used, there may be an additional location step required in order to identify the referenced file (for instance, the file name may be interpreted as the name of a resource to be loaded from class path).

In addition, other properties are available which are also needed for loading or saving a file, like the underlying `FileSystem`. The encoding to be used when accessing the represented data is also part of the data contained in an instance; if no encoding is set explicitly, the platform's default encoding is used.

Instances of this class are immutable and thus can be safely shared between arbitrary components. `FileHandler` also uses an instance to reference the associated file. Instances are created using a builder. `FileLocatorUtils` offers convenience methods for obtaining such a builder.

Since:
  2.0

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static final class`
  `FileLocator.FileLocatorBuilder`
  A typical builder implementation for creating `FileLocator` objects.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `FileLocator(FileLocator.FileLocatorBuilder builder)`
  Creates a new instance of `FileLocatorImpl` and initializes it from the given builder instance

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `equals(Object obj)`
  Compares this object with another one.
  `String`
  `getBasePath()`
  Gets the base path stored in this locator or null if it is undefined.
  `String`
  `getEncoding()`
  Gets the encoding stored in this locator or null if it is undefined.
  `String`
  `getFileName()`
  Gets the file name stored in this locator or null if it is undefined.
  `FileSystem`
  `getFileSystem()`
  Gets the `FileSystem` to be used for accessing the file referenced by this locator or null if it is undefined.
  `FileLocationStrategy`
  `getLocationStrategy()`
  Gets the `FileLocationStrategy` to be used for locating the referenced file.
  `URL`
  `getSourceURL()`
  Gets the URL pointing to the referenced source file or null if it is undefined.
  `URLConnectionOptions`
  `getURLConnectionOptions()`
  Gets the URLConnectionOptions
  `int`
  `hashCode()`
  Returns a hash code for this object.
  `String`
  `toString()`

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

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### FileLocator

    public FileLocator(FileLocator.FileLocatorBuilder builder)
    Creates a new instance of `FileLocatorImpl` and initializes it from the given builder instance
    Parameters:
      `builder` - the builder

- ## Method Details

  - ### equals

    public boolean equals(Object obj)
    Compares this object with another one. Two instances of `FileLocatorImpl` are considered equal if all of their properties are equal.
    Overrides:
      `equals` in class `Object`
    Parameters:
      `obj` - the object to compare to
    Returns:
      a flag whether these objects are equal

  - ### getBasePath

    public String getBasePath()
    Gets the base path stored in this locator or null if it is undefined.
    Returns:
      the base path

  - ### getEncoding

    public String getEncoding()
    Gets the encoding stored in this locator or null if it is undefined.
    Returns:
      the encoding

  - ### getFileName

    public String getFileName()
    Gets the file name stored in this locator or null if it is undefined.
    Returns:
      the file name

  - ### getFileSystem

    public FileSystem getFileSystem()
    Gets the `FileSystem` to be used for accessing the file referenced by this locator or null if it is undefined.
    Returns:
      the `FileSystem`

  - ### getLocationStrategy

    public FileLocationStrategy getLocationStrategy()
    Gets the `FileLocationStrategy` to be used for locating the referenced file. If no specific `FileLocationStrategy` has been set, result is null. This means that the default strategy should be used.
    Returns:
      the `FileLocationStrategy` to be used

  - ### getSourceURL

    public URL getSourceURL()
    Gets the URL pointing to the referenced source file or null if it is undefined.
    Returns:
      the source URL

  - ### getURLConnectionOptions

    public URLConnectionOptions getURLConnectionOptions()
    Gets the URLConnectionOptions
    Returns:
      the URLConnectionOptions

  - ### hashCode

    public int hashCode()
    Returns a hash code for this object.
    Overrides:
      `hashCode` in class `Object`
    Returns:
      a hash code for this object

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`