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

Method Summary
`ModelBuilder` | `addProgressListener(ProgressListener listener)` {@inheritDoc}
`Object` | `get()` Fetch the model, blocking until it is available.
`void` | `get(ResultHandler handler)` Starts fetching the build.
`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}

### get

    public Object get()

  Fetch the model, blocking until it is available.
  throws:
    UnsupportedVersionException When the target Gradle version does not support the features required to build this model.
  throws:
    org.gradle.tooling.exceptions.UnsupportedOperationConfigurationException when you have configured the long running operation with a settings like: setStandardInput(java.io.InputStream), setJavaHome(java.io.File), setJvmArguments(String...) but those settings are not supported on the target Gradle.
  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.

### get

    public void get(ResultHandler handler)

  Starts fetching the build. This method returns immediately, and the result is later passed to the given handler.
  throws:
    IllegalStateException When the connection has been closed or is closing.
  Parameters:
    `handler` - The handler to supply the result to.

### setJavaHome

    public ModelBuilder setJavaHome(File javaHome)

  {@inheritDoc}

### setJvmArguments

    public ModelBuilder setJvmArguments(String... jvmArguments)

  {@inheritDoc}

### setStandardError

    public ModelBuilder setStandardError(OutputStream outputStream)

  {@inheritDoc}

### setStandardInput

    public ModelBuilder setStandardInput(InputStream inputStream)

  {@inheritDoc}

### setStandardOutput

    public ModelBuilder setStandardOutput(OutputStream outputStream)

  {@inheritDoc}

### withArguments

    public ModelBuilder withArguments(String... arguments)

  {@inheritDoc}

Gradle API 1.1-rc-1