package org.intellij.sonar.persistence;
import com.intellij.openapi.components.PersistentStateComponent;
import com.intellij.openapi.components.State;
import com.intellij.openapi.components.Storage;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleComponent;
import com.intellij.openapi.util.text.StringUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@State(
name = "sonarModuleSettings",
storages = {
@Storage(id = "default", file = "$MODULE_FILE$")
}
)
public class ModuleSettings implements PersistentStateComponent<Settings>, ModuleComponent {
protected Settings settings = new Settings();
public static ModuleSettings getInstance(Module module) {
return module.getComponent(ModuleSettings.class);
}
@Nullable
@Override
public Settings getState() {
if (settings != null) {
if (StringUtil.isEmpty(settings.getServerName()))
settings.setServerName(SonarServers.PROJECT);
if (StringUtil.isEmpty(settings.getLocalAnalysisScripName()))
settings.setLocalAnalysisScripName(LocalAnalysisScripts.PROJECT);
}
return settings;
}
@Override
public void loadState(@NotNull Settings settings) {
this.settings = settings;
}
@NotNull
@Override
public String getComponentName() {
return "ModuleSettings";
}
@Override
public void projectOpened() {
}
@Override
public void projectClosed() {
}
@Override
public void moduleAdded() {
}
@Override
public void initComponent() {
}
@Override
public void disposeComponent() {
}
}