[incremenalBuilder] filter URIs which are not handled by a corresponding

resourceServiceProivder
This commit is contained in:
akosyakov 2016-07-12 16:08:43 +02:00
parent d21cad280c
commit 9e5a63dfba
2 changed files with 18 additions and 3 deletions

View file

@ -33,9 +33,17 @@ class BuildContext {
def <T> Iterable<T> executeClustered(Iterable<URI> uri, (Resource)=>T operation) {
if(loader == null)
loader = new ClusteringStorageAwareResourceLoader(this)
return loader.executeClustered(uri.filter[resourceServiceProvider!=null], operation)
return loader.executeClustered(uri.filter[canHandle], operation)
}
protected def boolean canHandle(URI uri) {
val resourceServiceProvider = resourceServiceProviderProvider.apply(uri)
if (resourceServiceProvider === null)
return false
return resourceServiceProvider.canHandle(uri)
}
def getResourceServiceProvider(URI uri) {
val resourceServiceProvider = resourceServiceProviderProvider.apply(uri)
return resourceServiceProvider

View file

@ -52,13 +52,20 @@ public class BuildContext {
this.loader = _clusteringStorageAwareResourceLoader;
}
final Function1<URI, Boolean> _function = (URI it) -> {
IResourceServiceProvider _resourceServiceProvider = this.getResourceServiceProvider(it);
return Boolean.valueOf((!Objects.equal(_resourceServiceProvider, null)));
return Boolean.valueOf(this.canHandle(it));
};
Iterable<URI> _filter = IterableExtensions.<URI>filter(uri, _function);
return this.loader.<T>executeClustered(_filter, operation);
}
protected boolean canHandle(final URI uri) {
final IResourceServiceProvider resourceServiceProvider = this.resourceServiceProviderProvider.apply(uri);
if ((resourceServiceProvider == null)) {
return false;
}
return resourceServiceProvider.canHandle(uri);
}
public IResourceServiceProvider getResourceServiceProvider(final URI uri) {
final IResourceServiceProvider resourceServiceProvider = this.resourceServiceProviderProvider.apply(uri);
return resourceServiceProvider;