package net.sourceforge.c4jplugin.internal.ui.viewers; import net.sourceforge.c4jplugin.internal.util.C4JUtils; import org.eclipse.debug.core.ILaunchConfiguration; public class LaunchConfigurationTreeElement { private ILaunchConfiguration config; private LaunchConfigurationTypeTreeElement parent; private boolean c4jEnabledOrig = false; private boolean c4jEnabled = false; private String vmargs = ""; public LaunchConfigurationTreeElement(ILaunchConfiguration config, LaunchConfigurationTypeTreeElement parent) { this.parent = parent; this.config = config; this.c4jEnabledOrig = C4JUtils.isC4JEnabled(config); this.vmargs = C4JUtils.getVMArgs(config); c4jEnabled = c4jEnabledOrig; } public LaunchConfigurationTypeTreeElement getParent() { return parent; } public void setDefaults() { c4jEnabled = c4jEnabledOrig; vmargs = C4JUtils.getVMArgs(config); } public boolean isC4JEnabled() { return c4jEnabled; } public String getVMArguments() { return vmargs; } public void setC4JEnabled(boolean enabled) { if (enabled) { if (!vmargs.matches(".*-ea.*")) vmargs = "-ea " + vmargs; if (!vmargs.matches(C4JUtils.REGEXP_C4J_JAVAAGENT)) vmargs = C4JUtils.C4J_JAVAAGENT + vmargs; } else { String[] segments = vmargs.split("\\s+"); String newArgs = ""; for (String segment : segments) { if (segment.matches(C4JUtils.REGEXP_C4J_JAVAAGENT)) continue; newArgs += segment + " "; } vmargs = newArgs; } c4jEnabled = enabled; } public ILaunchConfiguration getLaunchConfiguration() { return config; } public boolean isDirty() { if (c4jEnabled == c4jEnabledOrig) return false; return true; } public String toString() { return config.getName(); } }