Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.core.externaltools/src/org/eclipse/core/externaltools/internal/model/ExternalToolBuilder.java')
-rw-r--r--org.eclipse.core.externaltools/src/org/eclipse/core/externaltools/internal/model/ExternalToolBuilder.java63
1 files changed, 33 insertions, 30 deletions
diff --git a/org.eclipse.core.externaltools/src/org/eclipse/core/externaltools/internal/model/ExternalToolBuilder.java b/org.eclipse.core.externaltools/src/org/eclipse/core/externaltools/internal/model/ExternalToolBuilder.java
index dd809de7f..548058711 100644
--- a/org.eclipse.core.externaltools/src/org/eclipse/core/externaltools/internal/model/ExternalToolBuilder.java
+++ b/org.eclipse.core.externaltools/src/org/eclipse/core/externaltools/internal/model/ExternalToolBuilder.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2011 IBM Corporation and others.
+ * Copyright (c) 2000, 2013 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -37,7 +37,7 @@ import org.osgi.framework.Bundle;
/**
* This project builder implementation will run an external tool during the
- * build process.
+ * build process.
*/
public final class ExternalToolBuilder extends IncrementalProjectBuilder {
private final class IgnoreTeamPrivateChanges implements IResourceDeltaVisitor {
@@ -46,6 +46,7 @@ public final class ExternalToolBuilder extends IncrementalProjectBuilder {
super();
fTrueChange= trueChange;
}
+ @Override
public boolean visit(IResourceDelta visitDelta) throws CoreException {
IResource resource= visitDelta.getResource();
if (resource instanceof IFile) {
@@ -59,18 +60,19 @@ public final class ExternalToolBuilder extends IncrementalProjectBuilder {
public static final String ID = "org.eclipse.ui.externaltools.ExternalToolBuilder"; //$NON-NLS-1$;
private static String buildType = IExternalToolConstants.BUILD_TYPE_NONE;
-
+
private static IProject buildProject= null;
private static IResourceDelta buildDelta= null;
-
+
/* (non-Javadoc)
* @see org.eclipse.core.internal.events.InternalBuilder#build(int, java.util.Map, org.eclipse.core.runtime.IProgressMonitor)
*/
- protected IProject[] build(int kind, Map args, IProgressMonitor monitor) throws CoreException {
+ @Override
+ protected IProject[] build(int kind, Map<String, String> args, IProgressMonitor monitor) throws CoreException {
if (ExternalToolsCore.getDefault().getBundle().getState() != Bundle.ACTIVE) {
return null;
}
-
+
ILaunchConfiguration config= BuilderCoreUtils.configFromBuildCommandArgs(getProject(), args, new String[1]);
if (config == null) {
throw ExternalToolsCore.newError(ExternalToolsModelMessages.ExternalToolBuilder_0, null);
@@ -87,7 +89,7 @@ public final class ExternalToolBuilder extends IncrementalProjectBuilder {
if (kindCompatible && configEnabled(config)) {
doBuildBasedOnScope(resources, kind, config, args, monitor);
}
-
+
return projectsWithinScope;
}
@@ -117,22 +119,22 @@ public final class ExternalToolBuilder extends IncrementalProjectBuilder {
}
return true;
}
-
+
private int getBuilderCommandIndex(ICommand[] buildSpec, ICommand command) {
- Map commandArgs= command.getArguments();
+ Map<String, String> commandArgs = command.getArguments();
if (commandArgs == null) {
return -1;
}
- String handle= (String) commandArgs.get(BuilderCoreUtils.LAUNCH_CONFIG_HANDLE);
+ String handle= commandArgs.get(BuilderCoreUtils.LAUNCH_CONFIG_HANDLE);
if (handle == null) {
return -1;
}
for (int i = 0; i < buildSpec.length; ++i) {
ICommand buildSpecCommand= buildSpec[i];
if (ID.equals(buildSpecCommand.getBuilderName())) {
- Map buildSpecArgs= buildSpecCommand.getArguments();
+ Map<String, String> buildSpecArgs = buildSpecCommand.getArguments();
if (buildSpecArgs != null) {
- String buildSpecHandle= (String) buildSpecArgs.get(BuilderCoreUtils.LAUNCH_CONFIG_HANDLE);
+ String buildSpecHandle= buildSpecArgs.get(BuilderCoreUtils.LAUNCH_CONFIG_HANDLE);
if (handle.equals(buildSpecHandle)) {
return i;
}
@@ -144,7 +146,7 @@ public final class ExternalToolBuilder extends IncrementalProjectBuilder {
/**
* Returns whether the given builder config is enabled or not.
- *
+ *
* @param config the config to examine
* @return whether the config is enabled
*/
@@ -157,7 +159,7 @@ public final class ExternalToolBuilder extends IncrementalProjectBuilder {
return true;
}
- private void doBuildBasedOnScope(IResource[] resources, int kind, ILaunchConfiguration config, Map args, IProgressMonitor monitor) throws CoreException {
+ private void doBuildBasedOnScope(IResource[] resources, int kind, ILaunchConfiguration config, Map<String, String> args, IProgressMonitor monitor) throws CoreException {
boolean buildForChange = true;
if (kind != FULL_BUILD) { //scope not applied for full builds
if (resources != null && resources.length > 0) {
@@ -169,8 +171,8 @@ public final class ExternalToolBuilder extends IncrementalProjectBuilder {
launchBuild(kind, config, args, monitor);
}
}
-
- private void launchBuild(int kind, ILaunchConfiguration config, Map args, IProgressMonitor monitor) throws CoreException {
+
+ private void launchBuild(int kind, ILaunchConfiguration config, Map<String, String> args, IProgressMonitor monitor) throws CoreException {
monitor.subTask(NLS.bind(ExternalToolsModelMessages.ExternalToolBuilder_Running__0_____1, new String[] { config.getName()}));
buildStarted(kind, args);
// The default value for "launch in background" is true in debug core. If
@@ -185,17 +187,17 @@ public final class ExternalToolBuilder extends IncrementalProjectBuilder {
/**
* Returns the build type being performed if the
* external tool is being run as a project builder.
- *
+ *
* @return one of the <code>IExternalToolConstants.BUILD_TYPE_*</code> constants.
*/
public static String getBuildType() {
return buildType;
}
-
+
/**
* Returns the project that is being built and has triggered the current external
* tool builder. <code>null</code> is returned if no build is currently occurring.
- *
+ *
* @return project being built or <code>null</code>.
*/
public static IProject getBuildProject() {
@@ -205,19 +207,19 @@ public final class ExternalToolBuilder extends IncrementalProjectBuilder {
/**
* Returns the <code>IResourceDelta</code> that is being built and has triggered the current external
* tool builder. <code>null</code> is returned if no build is currently occurring.
- *
+ *
* @return resource delta for the build or <code>null</code>
*/
public static IResourceDelta getBuildDelta() {
return buildDelta;
}
-
+
/**
* Stores the currently active build kind and build project when a build begins
* @param buildKind
* @param args the arguments passed into the builder
*/
- private void buildStarted(int buildKind, Map args) {
+ private void buildStarted(int buildKind, Map<String, String> args) {
switch (buildKind) {
case IncrementalProjectBuilder.INCREMENTAL_BUILD :
buildType = IExternalToolConstants.BUILD_TYPE_INCREMENTAL;
@@ -245,7 +247,7 @@ public final class ExternalToolBuilder extends IncrementalProjectBuilder {
}
buildProject= getProject();
}
-
+
/**
* Clears the current build kind, build project and build delta when a build finishes.
*/
@@ -254,14 +256,14 @@ public final class ExternalToolBuilder extends IncrementalProjectBuilder {
buildProject= null;
buildDelta= null;
}
-
+
private boolean buildScopeIndicatesBuild(IResource[] resources) {
for (int i = 0; i < resources.length; i++) {
IResourceDelta delta = getDelta(resources[i].getProject());
if (delta == null) {
//project just added to the workspace..no previous build tree
return true;
- }
+ }
IPath path= resources[i].getProjectRelativePath();
IResourceDelta change= delta.findMember(path);
if (change != null) {
@@ -272,26 +274,27 @@ public final class ExternalToolBuilder extends IncrementalProjectBuilder {
} catch (CoreException e) {
ExternalToolsCore.log("Internal error resolving changed resources during build", e); //$NON-NLS-1$
}
-
+
return trueChange[0]; //filtered out team private changes
}
}
return false;
}
-
- protected void clean(IProgressMonitor monitor) throws CoreException {
+
+ @Override
+ protected void clean(IProgressMonitor monitor) throws CoreException {
ICommand command= getCommand();
ILaunchConfiguration config= BuilderCoreUtils.configFromBuildCommandArgs(getProject(), command.getArguments(), new String[1]);
if (!configEnabled(config)) {
return;
}
-
+
if ((!config.getAttribute(IExternalToolConstants.ATTR_TRIGGERS_CONFIGURED, false))) {
//old behavior
super.clean(monitor);
return;
}
-
+
launchBuild(IncrementalProjectBuilder.CLEAN_BUILD, config, null, monitor);
}
} \ No newline at end of file

Back to the top