package org.testng.eclipse.maven; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.ProjectScope; import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.preferences.DefaultScope; import org.eclipse.core.runtime.preferences.IEclipsePreferences; import org.eclipse.core.runtime.preferences.IPreferencesService; import org.eclipse.core.runtime.preferences.IScopeContext; import org.eclipse.core.runtime.preferences.InstanceScope; public class PreferenceUtils { private final static IEclipsePreferences[] preferencesLookup = new IEclipsePreferences[] { (InstanceScope.INSTANCE).getNode(Activator.PLUGIN_ID), (DefaultScope.INSTANCE).getNode(Activator.PLUGIN_ID) }; /** * Get specific preference value in instance and default scope * * @param prefKey * The preference key * @return */ public static String getString(IProject project, String prefKey) { IPreferencesService service = Platform.getPreferencesService(); String value = service.get(prefKey, null, getPreferenceLookup(project)); return value == null ? null : value.trim(); } public static boolean getBoolean(IProject project, String prefKey) { IPreferencesService service = Platform.getPreferencesService(); String value = service.get(prefKey, null, getPreferenceLookup(project)); if (value != null) { return Boolean.parseBoolean(value); } return false; } private static IEclipsePreferences[] getPreferenceLookup(IProject project) { IEclipsePreferences prjPref = null; if (project != null) { prjPref = getEclipsePreferences(project); } if (prjPref == null) { return preferencesLookup; } if (!prjPref.getBoolean(Activator.PREF_USE_PROJECT_SETTINGS, false)) { return preferencesLookup; } IEclipsePreferences[] prefs = new IEclipsePreferences[preferencesLookup.length + 1]; prefs[0] = prjPref; System.arraycopy(preferencesLookup, 0, prefs, 1, preferencesLookup.length); return prefs; } private static IEclipsePreferences getEclipsePreferences(IProject project) { IScopeContext context = new ProjectScope(project); IEclipsePreferences eclipsePreferences = context.getNode(Activator.PLUGIN_ID); return eclipsePreferences; } }