Overview | Package | Class | Deprecated | Index | Help
| Groovy Documentation
| FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | METHOD | DETAIL: FIELD | METHOD

## org.gradle.tooling
[Java] Interface ModelBuilder

    org.gradle.tooling.LongRunningOperation
      org.gradle.tooling.ModelBuilder

All Superinterfaces:
  LongRunningOperation

    public interface ModelBuilder
    extends LongRunningOperation

A `ModelBuilder` allows you to fetch a snapshot of the model for a project. Instances of `ModelBuilder` are not thread-safe.

You use a `ModelBuilder` as follows:

- Create an instance of `ModelBuilder` by calling ProjectConnection.model.
- Configure the builder as appropriate.
- Call either get() or get(ResultHandler) to build the model.
- Optionally, you can reuse the builder to build the model multiple times.

Example:

     ProjectConnection connection = GradleConnector.newConnector()
        .forProjectDirectory(new File("someFolder"))
        .connect();

     try {
        ModelBuilder<GradleProject> builder = connection.model(GradleProject.class);

        //if you use a different than usual build file name:
        builder.withArguments("--build-file", "theBuild.gradle");

        //configure the standard input in case your build is interactive:
        builder.setStandardInput(new ByteArrayInputStream("consume this!".getBytes()));

        //if you want to listen to the progress events:
        ProgressListener listener = null; // use your implementation
        builder.addProgressListener(listener);

        //get the model:
        GradleProject project = builder.get();

        //query the model for information:
        System.out.println("Available tasks: " + project.getTasks());
     } finally {
        connection.close();
     }

Parameters:
  `` - The type of model to build

Since:
  1.0-milestone-3

Method Summary
`ModelBuilder` | `addProgressListener(ProgressListener listener)` {@inheritDoc}
`ModelBuilder` | `forTasks(String... tasks)` Specifies the tasks to execute before building the model.
`Object` | `get()` Fetch the model, blocking until it is available.
`void` | `get(ResultHandler handler)` Starts fetching the model, passing the result to the given handler when complete.
`ModelBuilder` | `setJavaHome(File javaHome)` {@inheritDoc}
`ModelBuilder` | `setJvmArguments(String... jvmArguments)` {@inheritDoc}
`ModelBuilder` | `setStandardError(OutputStream outputStream)` {@inheritDoc}
`ModelBuilder` | `setStandardInput(InputStream inputStream)` {@inheritDoc}
`ModelBuilder` | `setStandardOutput(OutputStream outputStream)` {@inheritDoc}
`ModelBuilder` | `withArguments(String... arguments)` {@inheritDoc}

Methods inherited from interface LongRunningOperation
addProgressListener, setJavaHome, setJvmArguments, setStandardError, setStandardInput, setStandardOutput, withArguments

Method Detail

### addProgressListener

    public ModelBuilder addProgressListener(ProgressListener listener)

  {@inheritDoc}
  Since:
    1.0-milestone-3

### forTasks

    @Incubating
    public ModelBuilder forTasks(String... tasks)

  Specifies the tasks to execute before building the model. By default, no tasks are executed.
  Parameters:
    `tasks` - The paths of the tasks to be executed. Relative paths are evaluated relative to the project for which this launcher was created.
  Returns:
    this
  Since:
    1.2

### get

    public Object get()

  Fetch the model, blocking until it is available.
  throws:
    UnsupportedVersionException When the target Gradle version does not support building models.
  throws:
    UnknownModelException When the target Gradle version or build does not support the requested model.
  throws:
    UnsupportedOperationConfigurationException When the target Gradle version does not support some requested configuration option such as setStandardInput(java.io.InputStream), setJavaHome(java.io.File), setJvmArguments(String...).
  throws:
    UnsupportedBuildArgumentException When there is a problem with build arguments provided by withArguments(String...).
  throws:
    BuildException On some failure executing the Gradle build.
  throws:
    GradleConnectionException On some other failure using the connection.
  throws:
    IllegalStateException When the connection has been closed or is closing.
  Returns:
    The model.
  Since:
    1.0-milestone-3

### get

    public void get(ResultHandler handler)

  Starts fetching the model, passing the result to the given handler when complete. This method returns immediately, and the result is later passed to the given handler's ResultHandler#onComplete(Object)#onComplete(Object) method.

  If the operation fails, the handler's ResultHandler#onFailure(GradleConnectionException)#onFailure(GradleConnectionException) method is called with the appropriate exception. See get() for a description of the various exceptions that the operation may fail with.

  throws:
    IllegalStateException When the connection has been closed or is closing.
  Parameters:
    `handler` - The handler to supply the result to.
  Since:
    1.0-milestone-3

### setJavaHome

    public ModelBuilder setJavaHome(File javaHome)

  {@inheritDoc}
  Since:
    1.0-milestone-8

### setJvmArguments

    public ModelBuilder setJvmArguments(String... jvmArguments)

  {@inheritDoc}
  Since:
    1.0-milestone-9

### setStandardError

    public ModelBuilder setStandardError(OutputStream outputStream)

  {@inheritDoc}
  Since:
    1.0-milestone-3

### setStandardInput

    public ModelBuilder setStandardInput(InputStream inputStream)

  {@inheritDoc}
  Since:
    1.0-milestone-7

### setStandardOutput

    public ModelBuilder setStandardOutput(OutputStream outputStream)

  {@inheritDoc}
  Since:
    1.0-milestone-3

### withArguments

    public ModelBuilder withArguments(String... arguments)

  {@inheritDoc}
  Since:
    1.0

Gradle API 1.10