[Incremental Builder] Don’t pass the whole ResourceServiceProvider.Registry but just a provider, so this hook can be used to enable or disable language support for certain builds.

This commit is contained in:
Sven Efftinge 2015-07-01 09:11:34 +02:00
parent c2ff429253
commit 916daa84bd
3 changed files with 6 additions and 5 deletions

View file

@ -58,7 +58,7 @@ abstract class AbstractIncrementalBuilderTest {
protected def IndexState build(BuildRequest buildRequest) {
clean()
this.indexState = incrementalBuilder.build(buildRequest, getLanguages).indexState
this.indexState = incrementalBuilder.build(buildRequest, [getLanguages.getResourceServiceProvider(it)]).indexState
return indexState
}

View file

@ -21,7 +21,7 @@ import org.eclipse.xtext.resource.clustering.IResourceClusteringPolicy
*/
@FinalFieldsConstructor
class BuildContext {
val IResourceServiceProvider.Registry resourceServiceProviderRegistry
val (URI)=>IResourceServiceProvider resourceServiceProviderProvider
@Accessors val XtextResourceSet resourceSet
@Accessors val IndexState oldState
@Accessors val IResourceClusteringPolicy clusteringPolicy
@ -35,7 +35,7 @@ class BuildContext {
}
def getResourceServiceProvider(URI uri) {
val resourceServiceProvider = resourceServiceProviderRegistry.getResourceServiceProvider(uri)
val resourceServiceProvider = resourceServiceProviderProvider.apply(uri)
return resourceServiceProvider
}

View file

@ -31,6 +31,7 @@ import org.eclipse.xtext.workspace.IWorkspaceConfigProvider
import org.eclipse.xtext.generator.trace.TraceFileNameProvider
import org.eclipse.xtext.generator.trace.TraceRegionSerializer
import org.eclipse.xtext.generator.IFilePostProcessor
import org.eclipse.emf.common.util.URI
/**
* @author Jan Koehnlein - Initial contribution and API
@ -158,11 +159,11 @@ import org.eclipse.xtext.generator.IFilePostProcessor
@Inject Provider<IncrementalBuilder.InternalStatefulIncrementalBuilder> provider
def Result build(BuildRequest request, IResourceServiceProvider.Registry languages) {
def Result build(BuildRequest request, (URI)=>IResourceServiceProvider languages) {
build(request, languages, new DisabledClusteringPolicy())
}
def Result build(BuildRequest request, IResourceServiceProvider.Registry languages, IResourceClusteringPolicy clusteringPolicy) {
def Result build(BuildRequest request, (URI)=>IResourceServiceProvider languages, IResourceClusteringPolicy clusteringPolicy) {
val resourceSet = request.resourceSet
val oldState = new IndexState(request.state.resourceDescriptions.copy, request.state.fileMappings.copy)
val context = new BuildContext(languages