} else if (className.endsWith(".ProgramRunningFilterComponent")) {
filterComponent = new ProgramRunningFilterComponent(name, description);
} else if (className.endsWith(".ProgramTypeFilterComponent")) {
filterComponent = new ProgramTypeFilterComponent(name, description);
} else if (className.endsWith(".ReminderFilterComponent")) {
filterComponent = new ReminderFilterComponent(name, description);
} else if (className.endsWith(".SingleTitleFilterComponent")) {
filterComponent = new SingleTitleFilterComponent(name, description);
} else if (className.endsWith(".TimeFilterComponent")) {
filterComponent = new TimeFilterComponent(name, description);
}
else {
try {
PluginAccess[] plugins = PluginManagerImpl.getInstance().getActivatedPlugins();
for(PluginAccess plugin : plugins) {
Class<? extends PluginsFilterComponent>[] clazzes = plugin.getAvailableFilterComponentClasses();
if(clazzes != null) {
for(Class<? extends PluginsFilterComponent> clazz : clazzes) {
if(clazz.getName().compareTo(className) == 0) {
filterComponent = clazz.newInstance();
break;
}
}
}
}
filterComponent.setName(name);
filterComponent.setDescription(description);
}catch(Exception e) {
//throw new IOException("error reading filter component: "+className+" unknown");
mLog.warning("error reading filter component: "+className+" unknown");
return null;
}
}
if (filterComponent!=null) {
filterComponent.read(in, version);
/*
* If the FilterComponent is for a Plugin we have to check
* if it was a Plugin that is in the core now. If it is so
* we have to change the FilterComponent to the right one.
*/
if(filterComponent instanceof PluginFilterComponent) {
String pluginId = ((PluginFilterComponent)filterComponent).getPluginId();
if(pluginId.compareTo("java.reminderplugin.ReminderPlugin") == 0) {
filterComponent = new ReminderFilterComponent(name, description);
} else if(pluginId.compareTo("java.favoritesplugin.FavoritesPlugin") == 0) {
filterComponent = new FavoritesFilterComponent(name, description);
}
}
}