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

## Constructor Summary

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

## Method Summary

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

### Methods inherited from class Object

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

## Field Details

### EMPTY_ROOT

public static final RelativePath EMPTY_ROOT

## Constructor Details

### RelativePath

public RelativePath(boolean endsWithFile, String... segments)
Creates a `RelativePath`.

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

## Method Details

### 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:
  `endsWithFile` - when true, the new path refers to a file.
  `segments` - The names to append.
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>`