Search in sources :

Example 1 with BuildInstruction

use of org.eclipse.n4js.ui.building.instructions.BuildInstruction in project n4js by eclipse.

the class N4JSBuilderParticipant method prepareBuild.

/**
 * Intentionally package visible producer for the {@link IBuildParticipantInstruction}.
 *
 * @param project
 *            the currently build project
 * @param buildType
 *            the current build type
 * @return a StatefulBuilderParticipant. Never <code>null</code>.
 */
IBuildParticipantInstruction prepareBuild(IProject project, IXtextBuilderParticipant.BuildType buildType) throws CoreException {
    if (!isEnabled(project)) {
        return IBuildParticipantInstruction.NOOP;
    }
    EclipseResourceFileSystemAccess2 access = fileSystemAccessProvider.get();
    access.setProject(project);
    final Map<String, OutputConfiguration> outputConfigurations = getOutputConfigurations(project);
    refreshOutputFolders(project, outputConfigurations, null);
    access.setOutputConfigurations(outputConfigurations);
    if (buildType == BuildType.CLEAN || buildType == BuildType.RECOVERY) {
        IBuildParticipantInstruction clean = new CleanInstruction(project, outputConfigurations, getDerivedResourceMarkers());
        if (buildType == BuildType.RECOVERY) {
            clean.finish(Collections.<Delta>emptyList(), null);
        } else {
            return clean;
        }
    }
    Map<OutputConfiguration, Iterable<IMarker>> generatorMarkers = getGeneratorMarkers(project, outputConfigurations.values());
    BuildInstruction buildInstruction = new BuildInstruction(project, outputConfigurations, getDerivedResourceMarkers(), access, generatorMarkers, storage2UriMapper, compositeGenerator, injector);
    return buildInstruction;
}
Also used : IBuildParticipantInstruction(org.eclipse.n4js.ui.building.instructions.IBuildParticipantInstruction) EclipseResourceFileSystemAccess2(org.eclipse.xtext.builder.EclipseResourceFileSystemAccess2) OutputConfiguration(org.eclipse.xtext.generator.OutputConfiguration) BuildInstruction(org.eclipse.n4js.ui.building.instructions.BuildInstruction) CleanInstruction(org.eclipse.n4js.ui.building.instructions.CleanInstruction)

Aggregations

BuildInstruction (org.eclipse.n4js.ui.building.instructions.BuildInstruction)1 CleanInstruction (org.eclipse.n4js.ui.building.instructions.CleanInstruction)1 IBuildParticipantInstruction (org.eclipse.n4js.ui.building.instructions.IBuildParticipantInstruction)1 EclipseResourceFileSystemAccess2 (org.eclipse.xtext.builder.EclipseResourceFileSystemAccess2)1 OutputConfiguration (org.eclipse.xtext.generator.OutputConfiguration)1