package org.netbeans.gradle.project.api.modelquery; import javax.annotation.Nonnull; /** * Defines a query returning the required information from build scripts of * Gradle projects. Extensions may provide an instance of this query on the lookup returned * by the {@link org.netbeans.gradle.project.api.entry.GradleProjectExtensionDef#getLookup()} * method. * <P> * Note that this query is used for Gradle 1.8 or later, if you need to support * previous versions of Gradle (or consider the fact that NetBeans users may * disable using Gradle 1.8 API), you have to implement {@link GradleModelDefQuery1} * as well. Also, it is fine to only implement {@link GradleModelDefQuery1} if * you don't need the features of this query. * * @see org.netbeans.gradle.project.api.entry.GradleProjectExtensionDef * @see GradleModelDefQuery2 */ public interface GradleModelDefQuery2 { /** * Returns the {@code GradleModelDef} instance defining the information * to be retrieved from build scripts of Gradle projects. * <P> * The retrieved models will be passed to the * {@link org.netbeans.gradle.project.api.entry.GradleProjectExtensionDef#parseModel(ModelLoadResult) parseModel} * method of {@link org.netbeans.gradle.project.api.entry.GradleProjectExtensionDef}. * * @param gradleTarget the target Gradle environment used to evaluate the * build scripts. This argument cannot be {@code null}. * @return the {@code GradleModelDef} instance defining the information * to be retrieved from build scripts of Gradle projects. This method * may never return {@code null}. */ @Nonnull public GradleModelDef getModelDef(@Nonnull GradleTarget gradleTarget); }