package de.plushnikov.intellij.plugin.settings;
import com.intellij.ide.util.PropertiesComponent;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.NotNull;
public class ProjectSettings {
private static final String PREFIX = "LombokPlugin";
public static final String LOMBOK_ENABLED_IN_PROJECT = PREFIX + "EnabledInProject";
public static final String IS_VAL_ENABLED = PREFIX + "IS_VAL_Enabled";
public static final String IS_BUILDER_ENABLED = PREFIX + "IS_BUILDER_Enabled";
public static final String IS_DELEGATE_ENABLED = PREFIX + "IS_DELEGATE_Enabled";
public static final String IS_LOG_ENABLED = PREFIX + "IS_LOG_Enabled";
public static final String IS_CONSTRUCTOR_ENABLED = PREFIX + "IS_CONSTRUCTOR_Enabled";
public static final String IS_THIRD_PARTY_ENABLED = PREFIX + "IS_THIRD_PARTY_Enabled";
public static final String IS_RUNTIME_PATCH_ENABLED = PREFIX + "IS_RUNTIME_PATCH_Enabled";
public static final String IS_LOMBOK_VERSION_CHECK_ENABLED = PREFIX + "IS_LOMBOK_VERSION_CHECK_Enabled";
public static final String IS_MISSING_LOMBOK_CHECK_ENABLED = PREFIX + "IS_MISSING_LOMBOK_CHECK_Enabled";
public static boolean isLombokEnabledInProject(@NotNull final Project project) {
return isEnabled(project, LOMBOK_ENABLED_IN_PROJECT);
}
public static void setLombokEnabledInProject(@NotNull final Project project, boolean value) {
setEnabled(project, LOMBOK_ENABLED_IN_PROJECT, value);
}
public static boolean isEnabled(@NotNull Project project, final String propertyName) {
return isEnabled(PropertiesComponent.getInstance(project), propertyName);
}
public static boolean isEnabled(@NotNull Project project, final String propertyName, boolean defaultValue) {
return isEnabled(PropertiesComponent.getInstance(project), propertyName, defaultValue);
}
public static boolean isEnabled(PropertiesComponent properties, String propertyName) {
return isEnabled(properties, propertyName, true);
}
public static boolean isEnabled(PropertiesComponent properties, String propertyName, boolean defaultValue) {
return properties.getBoolean(propertyName, defaultValue);
}
public static void setEnabled(@NotNull Project project, final String propertyName, boolean value) {
setEnabled(PropertiesComponent.getInstance(project), propertyName, value);
}
public static void setEnabled(PropertiesComponent properties, String propertyName, boolean value) {
properties.setValue(propertyName, String.valueOf(value), "");
}
}