package org.intellij.sonar.persistence;
import com.intellij.openapi.components.AbstractProjectComponent;
import com.intellij.openapi.components.PersistentStateComponent;
import com.intellij.openapi.components.State;
import com.intellij.openapi.components.Storage;
import com.intellij.openapi.components.StoragePathMacros;
import com.intellij.openapi.components.StorageScheme;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@State(
name = "projectSettings",
storages = {
@Storage(id = "default", file = StoragePathMacros.PROJECT_FILE),
@Storage(id = "dir",
file = StoragePathMacros.PROJECT_CONFIG_DIR+"/sonarSettings.xml",
scheme = StorageScheme.DIRECTORY_BASED)
}
)
public class ProjectSettings extends AbstractProjectComponent implements PersistentStateComponent<Settings> {
protected Settings settings = new Settings();
protected ProjectSettings(Project project) {
super(project);
}
public static ProjectSettings getInstance(Project project) {
return project.getComponent(ProjectSettings.class);
}
@Nullable
@Override
public Settings getState() {
return settings;
}
@Override
public void loadState(@NotNull Settings settings) {
this.settings = settings;
}
@NotNull
@Override
public String getComponentName() {
return "ProjectSettings";
}
}