Package org.gradle.api.file

## Class RelativePath

- java.lang.Object
- - org.gradle.api.file.RelativePath

- All Implemented Interfaces:
    `Serializable`, `CharSequence`, `Comparable<RelativePath>`

      public class RelativePath
      extends Object
      implements Serializable, Comparable<RelativePath>, CharSequence

  Represents a relative path from some base directory to a file. Used in file copying to represent both a source and target file path when copying files.

  `RelativePath` instances are immutable.

  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static RelativePath` | `EMPTY_ROOT` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `RelativePath​(boolean endsWithFile, String... segments)` | Creates a `RelativePath`.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `RelativePath` | `append​(boolean endsWithFile, String... segments)` | Appends the given names to the end of this path.
    `RelativePath` | `append​(RelativePath other)` | Appends the given path to the end of this path.
    `char` | `charAt​(int index)` |
    `int` | `compareTo​(RelativePath o)` |
    `boolean` | `equals​(Object o)` |
    `File` | `getFile​(File baseDir)` |
    `String` | `getLastName()` |
    `RelativePath` | `getParent()` | Returns the parent of this path.
    `String` | `getPathString()` |
    `String[]` | `getSegments()` |
    `int` | `hashCode()` |
    `boolean` | `isFile()` |
    `int` | `length()` |
    `static RelativePath` | `parse​(boolean isFile, String path)` |
    `static RelativePath` | `parse​(boolean isFile, RelativePath parent, String path)` |
    `RelativePath` | `plus​(RelativePath other)` | Appends the given path to the end of this path.
    `RelativePath` | `prepend​(String... segments)` | Prepends the given names to the start of this path.
    `RelativePath` | `replaceLastName​(String name)` | Returns a copy of this path, with the last name replaced with the given name.
    `ListIterator<String>` | `segmentIterator()` |
    `CharSequence` | `subSequence​(int start, int end)` |
    `String` | `toString()` |

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

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

    - ### Methods inherited from interface java.lang.CharSequence

      `chars, codePoints`

- - ### Field Detail

    - #### EMPTY_ROOT

          public static final RelativePath EMPTY_ROOT

  - ### Constructor Detail

    - #### RelativePath

          public RelativePath​(boolean endsWithFile,
                              String... segments)

      Creates a `RelativePath`.
      Parameters:
        `endsWithFile` - - if true, the path ends with a file, otherwise a directory

  - ### Method Detail

    - #### getSegments

          public String[] getSegments()

    - #### segmentIterator

          public ListIterator<String> segmentIterator()

    - #### isFile

          public boolean isFile()

    - #### getPathString

          public String getPathString()

    - #### length

          public int length()

      Specified by:
        `length` in interface `CharSequence`

    - #### charAt

          public char charAt​(int index)

      Specified by:
        `charAt` in interface `CharSequence`

    - #### subSequence

          public CharSequence subSequence​(int start,
                                          int end)

      Specified by:
        `subSequence` in interface `CharSequence`

    - #### getFile

          public File getFile​(File baseDir)

    - #### getLastName

          public String getLastName()

    - #### equals

          public boolean equals​(Object o)

      Overrides:
        `equals` in class `Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`

    - #### toString

          public String toString()

      Specified by:
        `toString` in interface `CharSequence`
      Overrides:
        `toString` in class `Object`

    - #### getParent

          public RelativePath getParent()

      Returns the parent of this path.
      Returns:
        The parent of this path, or null if this is the root path.

    - #### parse

          public static RelativePath parse​(boolean isFile,
                                           String path)

    - #### parse

          public static RelativePath parse​(boolean isFile,
                                           RelativePath parent,
                                           String path)

    - #### replaceLastName

          public RelativePath replaceLastName​(String name)

      Returns a copy of this path, with the last name replaced with the given name.

      Parameters:
        `name` - The name.
      Returns:
        The path.

    - #### append

          public RelativePath append​(RelativePath other)

      Appends the given path to the end of this path.

      Parameters:
        `other` - The path to append
      Returns:
        The new path

    - #### plus

          public RelativePath plus​(RelativePath other)

      Appends the given path to the end of this path.

      Parameters:
        `other` - The path to append
      Returns:
        The new path

    - #### append

          public RelativePath append​(boolean endsWithFile,
                                     String... segments)

      Appends the given names to the end of this path.
      Parameters:
        `segments` - The names to append.
        `endsWithFile` - when true, the new path refers to a file.
      Returns:
        The new path.

    - #### prepend

          public RelativePath prepend​(String... segments)

      Prepends the given names to the start of this path.
      Parameters:
        `segments` - The names to prepend
      Returns:
        The new path.

    - #### compareTo

          public int compareTo​(RelativePath o)

      Specified by:
        `compareTo` in interface `Comparable<RelativePath>`