protected Filter buildLeafFilter(TreeManagerPluginDescriptor plugin) { String leafFilterClass = plugin.getLeafFilterClassName(); if (leafFilterClass == null || "".equals(leafFilterClass)) { return null; } try { Object instance = TreeManagerImpl.class.getClassLoader().loadClass(leafFilterClass).newInstance(); if (instance instanceof Filter) { return (Filter) instance; } else { log.error(String.format("Class %s should follow %s interface", leafFilterClass, Filter.class.getName())); } } catch (ReflectiveOperationException e) { log.error(e, e); } return null; }
@Override public void unregisterContribution(Object contribution, String extensionPoint, ComponentInstance contributor) { if (PLUGIN_EXTENSION_POINT.equals(extensionPoint)) { TreeManagerPluginDescriptor plugin = (TreeManagerPluginDescriptor) contribution; String name = plugin.getName(); // filter if (filters.containsKey(name)) { log.info("Unregistering filter for plugin " + name); filters.remove(name); } // leaf filter if (leafFilters.containsKey(name)) { log.info("Unregistering leaf filter for plugin " + name); leafFilters.remove(name); } // sorter if (sorters.containsKey(name)) { log.info("Unregistering sorter for plugin " + name); sorters.remove(name); } // page provider if (pageProviderNames.containsKey(name)) { log.info("Unregistering page provider for plugin " + name); pageProviderNames.remove(name); } } }
protected Filter buildFilter(TreeManagerPluginDescriptor plugin) { Filter filter = null; List<String> includedFacets = plugin.getIncludedFacets(); List<String> excludedFacets = plugin.getExcludedFacets(); List<String> excludedTypes = plugin.getExcludedTypes(); String filterClass = plugin.getFilterClassName(); if (filterClass == null || "".equals(filterClass)) { if ((includedFacets == null || includedFacets.isEmpty())
protected Sorter buildSorter(TreeManagerPluginDescriptor plugin) { Sorter sorter = null; String sortPropertyPath = plugin.getSortPropertyPath(); String sorterClass = plugin.getSorterClassName(); if (sorterClass == null || "".equals(sorterClass)) { if (sortPropertyPath == null || "".equals(sortPropertyPath)) { return null; } // built-in sorter sorter = new DefaultDocumentTreeSorter(); } else { // custom sorter try { Object instance = TreeManagerImpl.class.getClassLoader().loadClass(sorterClass).newInstance(); if (instance instanceof Sorter) { sorter = (Sorter) instance; } else { log.error(String.format("Class %s should follow %s interface", sorterClass, Sorter.class.getName())); } } catch (ReflectiveOperationException e) { log.error(e, e); } } // setup config when possible if (sorter instanceof DocumentTreeSorter) { DocumentTreeSorter treeSorter = (DocumentTreeSorter) sorter; treeSorter.setSortPropertyPath(sortPropertyPath); } return sorter; }
if (PLUGIN_EXTENSION_POINT.equals(extensionPoint)) { TreeManagerPluginDescriptor plugin = (TreeManagerPluginDescriptor) contribution; String name = plugin.getName(); pageProviderNames.put(name, plugin.getPageProvider());