use of org.eclipse.xtext.builder.IXtextBuilderParticipant.BuildType in project n4js by eclipse.
the class N4JSGenerateImmediatelyBuilderState method doUpdate.
/**
* {@inheritDoc}
*
* Initializes an adapter which is attached to the builder's resource set. This adapter will be used later on to
* process each delta after the corresponding resource was validated.
*
* @param buildData
* the data that should be considered for the update
* @param newData
* the new resource descriptions as they are to be persisted (the new index after the build). Initially
* contains the old resource descriptions.
* @param monitor
* The progress monitor
* @return A list of deltas describing all changes made by the build.
*/
@Override
protected Collection<Delta> doUpdate(BuildData buildData, ResourceDescriptionsData newData, IProgressMonitor monitor) {
builderStateLogger.log("N4JSGenerateImmediatelyBuilderState.doUpdate() >>>");
logBuildData(buildData, " of before #doUpdate");
IProject project = getProject(buildData);
try (ClosableMeasurement m = dcBuild.getClosableMeasurement("build " + Instant.now())) {
BuildType buildType = N4JSBuildTypeTracker.getBuildType(project);
IBuildParticipantInstruction instruction;
if (buildType == null) {
instruction = IBuildParticipantInstruction.NOOP;
} else {
instruction = findJSBuilderParticipant().prepareBuild(project, buildType);
}
// removed after the build automatically;
// the resource set is discarded afterwards, anyway
buildData.getResourceSet().eAdapters().add(instruction);
} catch (CoreException e) {
handleCoreException(e);
}
Collection<Delta> modifiedDeltas = super.doUpdate(buildData, newData, monitor);
logBuildData(buildData, " of after #doUpdate");
builderStateLogger.log("Modified deltas: " + modifiedDeltas);
builderStateLogger.log("N4JSGenerateImmediatelyBuilderState.doUpdate() <<<");
return modifiedDeltas;
}
Aggregations