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 and Description
    --- | ---
    `static RelativePath` | `EMPTY_ROOT`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `RelativePath(boolean endsWithFile, String... segments)` Creates a `RelativePath`.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and 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, RelativePath parent, String path)`
    `static RelativePath` | `parse(boolean isFile, 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>`