blob: 32ee2fe423666eef2f7416bf3cc07720e9341017 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - Initial API and implementation
*******************************************************************************/
package org.eclipse.jst.server.core.internal;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.preferences.IPreferencesService;
import org.eclipse.core.runtime.preferences.InstanceScope;
import org.osgi.service.prefs.BackingStoreException;
import org.osgi.service.prefs.Preferences;
/**
* Helper class which wraps around the preference store so that options related to
* server profilers can be persisted.
*/
public class ProfilerPreferences {
private static ProfilerPreferences prefs = null;
private IPreferencesService prefService;
/* The qualifier (scope) in the preference store */
private static final String PREF_PROFILER_QUALIFIER = "org.eclipse.jst.server.core.internal.profilers";
/* The key used to store the selected profiler preference */
private static final String PREF_SELECTED_PROFILER = "selected-profiler";
/**
* Private Constructor - This should be a singleton class
*/
private ProfilerPreferences() {
prefService = Platform.getPreferencesService();
}
/**
* Returns an instance of this class
* @return
*/
public static ProfilerPreferences getInstance() {
if ( prefs == null )
prefs = new ProfilerPreferences();
return prefs;
}
/**
* Sets the profiler to use when profiling on server
* @param profilerId the id of the server profiler
*/
public void setServerProfilerId( String profilerId ) {
Preferences node = new InstanceScope().getNode( PREF_PROFILER_QUALIFIER );
node.put( PREF_SELECTED_PROFILER, profilerId );
try {
node.flush();
} catch (BackingStoreException e) {
Trace.trace(Trace.SEVERE, "Could not save server profiler preference", e);
}
}
/**
* Reutns the id of the current server profiler
* @return the id of the current server profiler
*/
public String getServerProfilerId() {
return prefService.getString( PREF_PROFILER_QUALIFIER, PREF_SELECTED_PROFILER, null, null );
}
}