mirror of
https://github.com/sigmasternchen/xtext-core
synced 2025-03-15 16:28:56 +00:00
[incremenalBuilder] filter URIs which are not handled by a corresponding
resourceServiceProivder
This commit is contained in:
parent
d21cad280c
commit
9e5a63dfba
2 changed files with 18 additions and 3 deletions
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue