| package org.jetbrains.plugins.gradle.settings; |
| |
| import com.intellij.openapi.externalSystem.settings.ExternalSystemSettingsListener; |
| import com.intellij.util.messages.Topic; |
| import org.jetbrains.annotations.NotNull; |
| import org.jetbrains.annotations.Nullable; |
| |
| /** |
| * Defines callback for the gradle config structure change. |
| * <p/> |
| * Implementations of this interface are not obliged to be thread-safe. |
| * |
| * @author Denis Zhdanov |
| * @since 1/17/12 1:02 PM |
| */ |
| public interface GradleSettingsListener extends ExternalSystemSettingsListener<GradleProjectSettings> { |
| |
| Topic<GradleSettingsListener> TOPIC = Topic.create("Gradle-specific settings", GradleSettingsListener.class); |
| |
| /** |
| * Is expected to be invoked when gradle home path is changed. |
| * <p/> |
| * <b>Note:</b> this callback is executed <b>after</b> the actual config change. |
| * |
| * @param oldPath old path (if any) |
| * @param newPath new path (if any) |
| * @param linkedProjectPath target linked gradle project path |
| */ |
| void onGradleHomeChange(@Nullable String oldPath, @Nullable String newPath, @NotNull String linkedProjectPath); |
| |
| /** |
| * Is expected to be invoked when 'gradle distribution type' setting is changed (generally this |
| * switches tooling api to different gradle version). |
| * <p/> |
| * <b>Note:</b> this callback is executed <b>after</b> the actual config change. |
| * |
| * @param currentValue current value |
| * @param linkedProjectPath target linked gradle project path |
| */ |
| void onGradleDistributionTypeChange(DistributionType currentValue, @NotNull String linkedProjectPath); |
| |
| /** |
| * Is expected to be invoked when service directory path is changed. |
| * <p/> |
| * <b>Note:</b> this callback is executed <b>after</b> the actual config change. |
| * |
| * @param oldPath old path (if any) |
| * @param newPath new path (if any) |
| * @see GradleSettings#getServiceDirectoryPath() |
| */ |
| void onServiceDirectoryPathChange(@Nullable String oldPath, @Nullable String newPath); |
| |
| /** |
| * Is expected to be called when gradle JVM options are changed by end-user. |
| * |
| * @param oldOptions old options (if any) |
| * @param newOptions new option (if any) |
| */ |
| void onGradleVmOptionsChange(@Nullable String oldOptions, @Nullable String newOptions); |
| } |