diff options
author | Darin Wright | 2009-11-04 21:01:35 +0000 |
---|---|---|
committer | Darin Wright | 2009-11-04 21:01:35 +0000 |
commit | 537a9b593757a8012df704ed968f9c48243496a2 (patch) | |
tree | acd5d8313662009cdb4d149ab9fad1593a96bff2 /org.eclipse.debug.core/core/org/eclipse | |
parent | 7f796b755f58d4614db2ff3938811245e06177f5 (diff) | |
download | eclipse.platform.debug-537a9b593757a8012df704ed968f9c48243496a2.tar.gz eclipse.platform.debug-537a9b593757a8012df704ed968f9c48243496a2.tar.xz eclipse.platform.debug-537a9b593757a8012df704ed968f9c48243496a2.zip |
Bug 41353 - [launching] Launch config templates
Diffstat (limited to 'org.eclipse.debug.core/core/org/eclipse')
4 files changed, 21 insertions, 5 deletions
diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationWorkingCopy.java b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationWorkingCopy.java index 3487530a0..4302c67a9 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationWorkingCopy.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/core/ILaunchConfigurationWorkingCopy.java @@ -278,9 +278,11 @@ public interface ILaunchConfigurationWorkingCopy extends ILaunchConfiguration, I * Sets whether this configuration is to be considered as a template. * * @param isTemplate whether this configuration is to be considered as a template + * @exception CoreException if an attempt is made to nest templates - this configuration + * cannot already be associated with a template * @since 3.6 */ - public void setTemplate(boolean isTemplate); + public void setTemplate(boolean isTemplate) throws CoreException; /** * Sets the template that this configuration is based on, possibly <code>null</code>, @@ -292,8 +294,13 @@ public interface ILaunchConfigurationWorkingCopy extends ILaunchConfiguration, I * @param template template or <code>null</code> * @param copy whether to copy attributes from the template to this working copy. Has * no effect when template is <code>null</code> - * @exception CoreException if unable to generate a memento for the given configuration - * or copy its attributes + * @exception CoreException if + * <ul> + * <li>unable to generate a memento for the given configuration + * or copy its attributes</li> + * <li>if attempting to set a template attribute on an existing template - templates + * cannot be nested</li> + * </ul> * @since 3.6 */ public void setTemplate(ILaunchConfiguration template, boolean copy) throws CoreException; diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugCoreMessages.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugCoreMessages.java index 93286c7dc..0c4c7eacf 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugCoreMessages.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugCoreMessages.java @@ -102,6 +102,8 @@ public class DebugCoreMessages extends NLS { public static String LaunchConfigurationWorkingCopy_5; public static String LaunchConfigurationWorkingCopy_6; + + public static String LaunchConfigurationWorkingCopy_7; public static String LaunchManager__0__occurred_while_reading_launch_configuration_file__1___1; public static String LaunchManager_Invalid_launch_configuration_index__18; public static String LaunchManager_does_not_exist; diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugCoreMessages.properties b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugCoreMessages.properties index 6565c83e1..78a8a36ab 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugCoreMessages.properties +++ b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/DebugCoreMessages.properties @@ -66,6 +66,7 @@ LaunchConfigurationWorkingCopy_2=Creating new file {0}.launch in workspace LaunchConfigurationWorkingCopy_3=Setting contents of {0}.launch LaunchConfigurationWorkingCopy_4=Unable to obtain storage to write launch configuration LaunchConfigurationWorkingCopy_6=Template cannot be a working copy. +LaunchConfigurationWorkingCopy_7=Templates cannot be nested LaunchManager__0__occurred_while_reading_launch_configuration_file__1___1={0} occurred while reading launch configuration file: {1}. LaunchManager_Invalid_launch_configuration_index__18=Invalid launch configuration index. LaunchManager_does_not_exist=Launch configuration {0} at {1} does not exist. diff --git a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationWorkingCopy.java b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationWorkingCopy.java index a3b50009b..e8c1292b2 100644 --- a/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationWorkingCopy.java +++ b/org.eclipse.debug.core/core/org/eclipse/debug/internal/core/LaunchConfigurationWorkingCopy.java @@ -735,10 +735,13 @@ public class LaunchConfigurationWorkingCopy extends LaunchConfiguration implemen /* (non-Javadoc) * @see org.eclipse.debug.core.ILaunchConfigurationWorkingCopy#setTemplate(boolean) */ - public void setTemplate(boolean isTemplate) { + public void setTemplate(boolean isTemplate) throws CoreException { if (!isTemplate) { removeAttribute(ATTR_IS_TEMPLATE); } else { + if (getTemplate() != null) { + throw new CoreException(new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugCoreMessages.LaunchConfigurationWorkingCopy_7)); + } setAttribute(ATTR_IS_TEMPLATE, isTemplate); } } @@ -750,13 +753,16 @@ public class LaunchConfigurationWorkingCopy extends LaunchConfiguration implemen if (template != null && template.isWorkingCopy()) { throw new CoreException(new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugCoreMessages.LaunchConfigurationWorkingCopy_6)); } + if (isTemplate()) { + throw new CoreException(new Status(IStatus.ERROR, DebugPlugin.getUniqueIdentifier(), DebugCoreMessages.LaunchConfigurationWorkingCopy_7)); + } if (template == null) { removeAttribute(ATTR_TEMPLATE); } else { - setAttribute(ATTR_TEMPLATE, template.getMemento()); if (copy) { copyAttributes(template); } + setAttribute(ATTR_TEMPLATE, template.getMemento()); } } } |