/*
* Copyright 2010-2015 Institut Pasteur.
*
* This file is part of Icy.
*
* Icy is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Icy is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Icy. If not, see <http://www.gnu.org/licenses/>.
*/
package icy.preferences;
import icy.plugin.PluginLoader;
import icy.plugin.abstract_.Plugin;
import icy.util.ClassUtil;
/**
* @author Stephane
*/
public class PluginsPreferences
{
/**
* pref id
*/
private static final String PREF_ID = "plugins";
/**
* preferences
*/
private static XMLPreferences preferences;
public static void load()
{
// load preference
preferences = IcyPreferences.root().node(PREF_ID);
}
/**
* @return the preferences
*/
public static XMLPreferences getPreferences()
{
return preferences;
}
/**
* Return root node for specified Plugin class.
*/
public static XMLPreferences root(Class<? extends Plugin> pluginClass)
{
if (pluginClass != null)
{
final String className = pluginClass.getName();
if (className.startsWith(PluginLoader.PLUGIN_PACKAGE))
return preferences.node(ClassUtil.getPathFromQualifiedName(className
.substring(PluginLoader.PLUGIN_PACKAGE.length() + 1)));
}
return null;
}
/**
* Return root node for specified Plugin
*/
public static XMLPreferences root(Plugin plugin)
{
if (plugin != null)
{
final String className = plugin.getClass().getName();
if (className.startsWith(PluginLoader.PLUGIN_PACKAGE))
return preferences.node(ClassUtil.getPathFromQualifiedName(className
.substring(PluginLoader.PLUGIN_PACKAGE.length() + 1)));
}
return null;
}
}