# Interface ProjectDescriptor

public interface ProjectDescriptor

A `ProjectDescriptor` declares the configuration required to create and evaluate a `Project`.

A `ProjectDescriptor` is created when you add a project to the build from the settings script, using `Settings.include(String...)` or `Settings.includeFlat(String...)`. You can access the descriptors using one of the lookup methods on the `Settings` object.

## Method Summary

Modifier and Type
Method
Description
`File`
`getBuildFile()`
Returns the build file for this project.
`String`
`getBuildFileName()`
Returns the name of the build file for this project.
`Set<ProjectDescriptor>`
`getChildren()`
Returns the children of this project, if any.
`String`
`getName()`
Returns the name of this project.
`ProjectDescriptor`
`getParent()`
Returns the parent of this project, if any.
`String`
`getPath()`
Returns the path of this project.
`File`
`getProjectDir()`
Returns the project directory of this project.
`void`
`setBuildFileName(String name)`
Sets the name of the build file.
`void`
`setName(String name)`
Sets the name of this project.
`void`
`setProjectDir(File dir)`
Sets the project directory of this project.

## Method Details

### getName

String getName()
Returns the name of this project.

Returns:
  The name of the project. Never returns null.

### setName

void setName(String name)
Sets the name of this project.

Parameters:
  `name` - The new name for the project. Should not be null

### getProjectDir

File getProjectDir()
Returns the project directory of this project.

Returns:
  The project directory. Never returns null.

### setProjectDir

void setProjectDir(File dir)
Sets the project directory of this project.

Parameters:
  `dir` - The new project directory. Should not be null.

### getBuildFileName

String getBuildFileName()
Returns the name of the build file for this project. This name is interpreted relative to the project directory.

Returns:
  The build file name.

### setBuildFileName

void setBuildFileName(String name)
Sets the name of the build file. This name is interpreted relative to the project directory.

Parameters:
  `name` - The build file name. Should not be null.

### getBuildFile

File getBuildFile()
Returns the build file for this project.

Returns:
  The build file. Never returns null.

### getParent

@Nullable ProjectDescriptor getParent()
Returns the parent of this project, if any. Returns null if this project is the root project.

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

### getChildren

Set<ProjectDescriptor> getChildren()
Returns the children of this project, if any.

Returns:
  The children. Returns an empty set if this project does not have any children.

### getPath

String getPath()
Returns the path of this project. The path can be used as a unique identifier for this project.

Returns:
  The path. Never returns null.