package org.intellij.sonar.persistence;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import com.intellij.openapi.components.PersistentStateComponent;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.components.State;
import com.intellij.openapi.components.Storage;
import com.intellij.openapi.components.StoragePathMacros;
import com.intellij.util.xmlb.XmlSerializerUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.sonar.wsclient.services.Resource;
@State(
name = "sonar-resources-application-component",
storages = {
@Storage(id = "sonar-resources", file = StoragePathMacros.APP_CONFIG+"/sonar-resources-by-sonar-server-name.xml")
}
)
public class SonarResourcesComponent implements PersistentStateComponent<SonarResourcesComponent> {
public Map<String,List<Resource>> sonarResourcesBySonarServerName = new ConcurrentHashMap<String,List<Resource>>();
@NotNull
public static SonarResourcesComponent getInstance() {
return ServiceManager.getService(SonarResourcesComponent.class);
}
@Nullable
@Override
public SonarResourcesComponent getState() {
return this;
}
@Override
public void loadState(SonarResourcesComponent state) {
XmlSerializerUtil.copyBean(state,this);
}
}