package org.netbeans.gradle.project.api.config; import javax.annotation.Nonnull; /** * Defines a query which might return custom profile names always available for * a project. * <P> * Instances of this interface are expected to be found on the lookup of the extension * {@link org.netbeans.gradle.project.api.entry.GradleProjectExtension2#getExtensionLookup() (getExtensionLookup)}. * <P> * Instances of this interface are required to be safe to be accessed by * multiple threads concurrently. * * @see ProfileDef */ public interface CustomProfileQuery { /** * Returns the profiles always available for the project using the * associated extension. The order of the returned profiles does not matter * because profiles are kept sorted. * <P> * <B>Important note</B>: The return profiles are highly recommended to * have a non-null {@link ProfileDef#getGroupName() group} defined. * <P> * The returned list of profiles are only expected to change after project * (re)load. * * @return the profiles always available for the project using the * associated extension. This method may never return {@code null}. */ @Nonnull public Iterable<ProfileDef> getCustomProfiles(); }