# 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...)`. You can access the descriptors using one of the lookup methods on the `Settings` object.

Since:
  0.7

- ## 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.
  `@Nullable 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.
    Since:
      0.7

  - ### setName

    void setName(String name)
    Sets the name of this project.
    Parameters:
      `name` - The new name for the project. Should not be null
    Since:
      0.7

  - ### getProjectDir

    File getProjectDir()
    Returns the project directory of this project.
    Returns:
      The project directory. Never returns null.
    Since:
      0.7

  - ### setProjectDir

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

    Gradle expects project directories to exist and be writable.

    Parameters:
      `dir` - The new project directory. Should not be null, and it is expected to exist and be writable.
    Since:
      0.7

  - ### 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.
    Since:
      0.7

  - ### 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.
    Since:
      0.7

  - ### getBuildFile

    File getBuildFile()
    Returns the build file for this project.
    Returns:
      The build file. Never returns null.
    Since:
      0.7

  - ### 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.
    Since:
      0.7

  - ### 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.
    Since:
      0.7

  - ### 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.
    Since:
      0.7