X-Git-Url: http://secure.phpeclipse.com diff --git a/net.sourceforge.phpeclipse.launching/src/net/sourceforge/phpdt/internal/launching/InterpreterRunnerConfiguration.java b/net.sourceforge.phpeclipse.launching/src/net/sourceforge/phpdt/internal/launching/InterpreterRunnerConfiguration.java index 5af6d02..d33e69e 100644 --- a/net.sourceforge.phpeclipse.launching/src/net/sourceforge/phpdt/internal/launching/InterpreterRunnerConfiguration.java +++ b/net.sourceforge.phpeclipse.launching/src/net/sourceforge/phpdt/internal/launching/InterpreterRunnerConfiguration.java @@ -1,19 +1,29 @@ package net.sourceforge.phpdt.internal.launching; import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import net.sourceforge.phpdt.internal.core.JavaProject; -import net.sourceforge.phpeclipse.resourcesview.PHPProject; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.Path; import org.eclipse.debug.core.ILaunchConfiguration; +import org.eclipse.debug.internal.ui.launchConfigurations.EnvironmentVariable; + public class InterpreterRunnerConfiguration { protected ILaunchConfiguration configuration; + private HashMap fEnvironment; public InterpreterRunnerConfiguration(ILaunchConfiguration aConfiguration) { configuration = aConfiguration; + fEnvironment= new HashMap(); } public String getAbsoluteFileName() { @@ -31,20 +41,20 @@ public class InterpreterRunnerConfiguration { } catch(CoreException e) {} return fileName.replace('\\', '/'); - } + } - public PHPProject getProject() { + public JavaProject getProject() { String projectName = ""; try { projectName = configuration.getAttribute(PHPLaunchConfigurationAttribute.PROJECT_NAME, ""); } catch(CoreException e) { - PHPLaunchingPlugin.getDefault().log(e); + PHPLaunchingPlugin.log(e); } IProject project = PHPLaunchingPlugin.getWorkspace().getRoot().getProject(projectName); - PHPProject phpProject = new PHPProject(); + JavaProject phpProject = new JavaProject(); phpProject.setProject(project); return phpProject; } @@ -80,7 +90,75 @@ public class InterpreterRunnerConfiguration { try { selectedInterpreter = configuration.getAttribute(PHPLaunchConfigurationAttribute.SELECTED_INTERPRETER, ""); } catch(CoreException e) {} - + return PHPRuntime.getDefault().getInterpreter(selectedInterpreter); } + + public boolean useRemoteDebugger() { + try { + return configuration.getAttribute(PHPLaunchConfigurationAttribute.REMOTE_DEBUG, false); + } catch(CoreException e) { + PHPLaunchingPlugin.log(e); + } + return false; + } + + public void setEnvironment(String[] envp) + { + if (envp== null) + return; + for (int i = 0; i<envp.length; i++ ) { + addEnvironmentValue(envp[i],true); + } + } + + public void addEnvironmentValue(String env,boolean replace) + { + String value = env.substring(env.indexOf('=')+1); + String key = env.substring(0,env.indexOf('=')); + addEnvironmentValue(key,value,replace); + } + + public void addEnvironmentValue(String key, String value,boolean replace) + { + if (!replace && fEnvironment.containsKey(key)) { + EnvironmentVariable ev = (EnvironmentVariable) fEnvironment.get(key); + ev.setValue(ev.getValue()+";"+value); + fEnvironment.put(key,ev); + } else + this.fEnvironment.put(key, new EnvironmentVariable(key, value)); + } + + public String[] getEnvironment() + { + + Iterator iter= fEnvironment.entrySet().iterator(); + List strings= new ArrayList(fEnvironment.size()); + while (iter.hasNext()) { + Map.Entry entry = (Map.Entry) iter.next(); + StringBuffer buffer= new StringBuffer((String) entry.getKey()); + buffer.append('=').append(((EnvironmentVariable) entry.getValue()).getValue()); + strings.add(buffer.toString()); + } + return (String[]) strings.toArray(new String[strings.size()]); + + } + + public String getRemoteSourcePath() { + + IProject project = getProject().getProject(); + if (useRemoteDebugger()) + return project.getLocation().toOSString(); + else + { + try { + return configuration.getAttribute(PHPLaunchConfigurationAttribute.REMOTE_PATH, ""); + } catch(CoreException e) { + PHPLaunchingPlugin.log(e); + } + } + + return ""; + } + }