/** * Listen to events on selective resources of the tree * * @param listener listener * @param resourceSelector resource selector * @return builder */ private TreeBuilder<T> listen(Listener<T> listener, String resourceSelector) { return TreeBuilder.<T>builder(new ListenerTree<T>(build(), listener, PathUtil.<T>resourceSelector(resourceSelector))); }
/** * Append a converter plugin to the tree builder * * @param builder builder * @param pluginType converter plugin type * @param path path * @param selector metadata selector * @param config plugin config data * * @return builder */ private TreeBuilder<ResourceMeta> buildConverterPlugin(TreeBuilder<ResourceMeta> builder, String pluginType, String path, String selector, Map<String, String> config) { StorageConverterPlugin converterPlugin = loadPlugin( pluginType, config, storageConverterPluginProviderService ); //convert tree under the subpath if specified, AND matching the selector if specified return builder.convert( new StorageConverterPluginAdapter(pluginType,converterPlugin), null != path ? PathUtil.asPath(path.trim()) : null, null != selector ? PathUtil.<ResourceMeta>resourceSelector(selector) : null ); }