Search in sources :

Example 1 with IPluginFilter

use of org.jowidgets.plugin.api.IPluginFilter 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);
}
Also used : List(java.util.List) LinkedList(java.util.LinkedList) LinkedList(java.util.LinkedList) Tuple(org.jowidgets.util.Tuple) IPluginFilter(org.jowidgets.plugin.api.IPluginFilter)

Aggregations

LinkedList (java.util.LinkedList)1 List (java.util.List)1 IPluginFilter (org.jowidgets.plugin.api.IPluginFilter)1 Tuple (org.jowidgets.util.Tuple)1