package org.jetbrains.plugins.clojure.compiler;
import com.intellij.openapi.components.*;
import com.intellij.openapi.project.Project;
import com.intellij.util.xmlb.XmlSerializerUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jps.clojure.model.impl.JpsClojureCompilerSettingsState;
import org.jetbrains.jps.clojure.model.impl.JpsClojureModelSerializerExtension;
/**
* @author ilyas
*/
@State(
name = JpsClojureModelSerializerExtension.CLOJURE_COMPILER_SETTINGS_COMPONENT_NAME,
storages = {
@Storage(id = "default", file = "$PROJECT_FILE$")
,@Storage(id = "dir", file = "$PROJECT_CONFIG_DIR$/" + JpsClojureModelSerializerExtension.CLOJURE_COMPILER_SETTINGS_FILE, scheme = StorageScheme.DIRECTORY_BASED)
}
)
public class ClojureCompilerSettings implements PersistentStateComponent<JpsClojureCompilerSettingsState>, ProjectComponent {
private JpsClojureCompilerSettingsState myState = new JpsClojureCompilerSettingsState();
public JpsClojureCompilerSettingsState getState() {
return myState;
}
public void loadState(JpsClojureCompilerSettingsState state) {
XmlSerializerUtil.copyBean(state, myState);
}
public void projectOpened() {
}
public void projectClosed() {
}
@NotNull
public String getComponentName() {
return "ClojureCompilerSettings";
}
public void initComponent() {
}
public void disposeComponent() {
}
public static ClojureCompilerSettings getInstance(Project project) {
return project.getComponent(ClojureCompilerSettings.class);
}
}