use of org.jowidgets.util.Tuple in project jo-client-platform by jo-source.
the class PluginProviderBuilderImpl method addPlugin.
@Override
public <PLUGIN_TYPE> void addPlugin(final IPluginId<? extends PLUGIN_TYPE> id, final PLUGIN_TYPE plugin, final IPluginFilter filter) {
Assert.paramNotNull(id, "id");
Assert.paramNotNull(plugin, "plugin");
Assert.paramNotNull(filter, "filter");
List<Tuple> pluginsList = (List<Tuple>) plugins.get(id);
if (pluginsList == null) {
pluginsList = new LinkedList<Tuple>();
plugins.put(id, pluginsList);
}
pluginsList.add(new Tuple(plugin, filter));
}
use of org.jowidgets.util.Tuple in project jo-client-platform by jo-source.
the class PluginProviderImpl method getPlugins.
@Override
public <PLUGIN_TYPE> List<PLUGIN_TYPE> getPlugins(final IPluginId<PLUGIN_TYPE> id, final IPluginProperties properties) {
Assert.paramNotNull(id, "id");
Assert.paramNotNull(properties, "properties");
final List<PLUGIN_TYPE> result = new LinkedList<PLUGIN_TYPE>();
final List<Tuple> registerdPlugins = (List<Tuple>) plugins.get(id);
if (registerdPlugins != null) {
for (final Tuple tuple : registerdPlugins) {
final PLUGIN_TYPE plugin = (PLUGIN_TYPE) tuple.getFirst();
final IPluginFilter filter = (IPluginFilter) tuple.getSecond();
if (filter.accept(properties)) {
result.add(plugin);
}
}
}
return Collections.unmodifiableList(result);
}
Aggregations