diff options
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.java | 63 |
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 |