package com.razorfish.platforms.intellivault.services.impl;
import com.intellij.openapi.components.PersistentStateComponent;
import com.intellij.openapi.components.State;
import com.intellij.openapi.components.Storage;
import com.razorfish.platforms.intellivault.config.IntelliVaultPreferences;
import org.jetbrains.annotations.Nullable;
/**
* The preferences services handles storing and retrieving the configuration state of the vault plugin.
*/
@State(
name = "IntelliVaultPreferencesService",
storages = {
@Storage(id = "main", file = "$APP_CONFIG$/IntelliVaultPreferencesService.xml")
}
)
public class IntelliVaultPreferencesService implements PersistentStateComponent<IntelliVaultPreferences> {
private IntelliVaultPreferences preferences;
/**
* get the preferences.
*
* @return the preferences
*/
public IntelliVaultPreferences getPreferences() {
if (preferences == null) {
preferences = new IntelliVaultPreferences();
}
return preferences;
}
public void setPreferences(IntelliVaultPreferences preferences) {
this.preferences = preferences;
}
@Nullable
@Override
public IntelliVaultPreferences getState() {
return getPreferences();
}
@Override
public void loadState(IntelliVaultPreferences preferences) {
setPreferences(preferences);
}
}