org.gradle.api.file

## Class RelativePath

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

- All Implemented Interfaces:
    Serializable, Comparable<RelativePath>

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

  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

    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.
    `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()`
    `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()`
    `String` | `toString()`

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

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

- - ### 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()

    - #### 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()

      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>`