This commit was generated by cvs2svn to compensate for changes in r50,
[phpeclipse.git] / net.sourceforge.phpeclipse.debug.launching / src / net / sourceforge / phpdt / internal / launching / InterpreterRunnerConfiguration.java
diff --git a/net.sourceforge.phpeclipse.debug.launching/src/net/sourceforge/phpdt/internal/launching/InterpreterRunnerConfiguration.java b/net.sourceforge.phpeclipse.debug.launching/src/net/sourceforge/phpdt/internal/launching/InterpreterRunnerConfiguration.java
new file mode 100644 (file)
index 0000000..5af6d02
--- /dev/null
@@ -0,0 +1,86 @@
+package net.sourceforge.phpdt.internal.launching;
+
+import java.io.File;
+
+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;
+
+public class InterpreterRunnerConfiguration {
+       protected ILaunchConfiguration configuration;
+
+       public InterpreterRunnerConfiguration(ILaunchConfiguration aConfiguration) {
+               configuration = aConfiguration;
+       }
+       
+       public String getAbsoluteFileName() {
+               IPath path = new Path(getFileName());
+               IProject project = getProject().getProject();
+
+               return project.getLocation().toOSString() + "/" + getFileName();
+       }
+       
+       public String getFileName() {
+               String fileName = "";
+
+               try {
+                       fileName = configuration.getAttribute(PHPLaunchConfigurationAttribute.FILE_NAME, "No file specified in configuration");
+               } catch(CoreException e) {}
+               
+               return fileName.replace('\\', '/');
+       }
+       
+       public PHPProject getProject() {
+               String projectName = "";
+               
+               try {
+                       projectName = configuration.getAttribute(PHPLaunchConfigurationAttribute.PROJECT_NAME, "");
+               } catch(CoreException e) {
+                       PHPLaunchingPlugin.getDefault().log(e);
+               }
+
+               IProject project = PHPLaunchingPlugin.getWorkspace().getRoot().getProject(projectName);
+
+               PHPProject phpProject = new PHPProject();
+               phpProject.setProject(project);
+               return phpProject;
+       }
+       
+       public File getAbsoluteWorkingDirectory() {
+               String file = null;
+               try {
+                       file = configuration.getAttribute(PHPLaunchConfigurationAttribute.WORKING_DIRECTORY, "");
+               } catch(CoreException e) {
+                       PHPLaunchingPlugin.log(e);
+               }
+               return new File(file);
+       }
+       
+       public String getInterpreterArguments() {
+               try {
+                       return configuration.getAttribute(PHPLaunchConfigurationAttribute.INTERPRETER_ARGUMENTS, "");
+               } catch(CoreException e) {}
+               
+               return "";
+       }
+       
+       public String getProgramArguments() {
+               try {
+                       return configuration.getAttribute(PHPLaunchConfigurationAttribute.PROGRAM_ARGUMENTS, "");
+               } catch (CoreException e) {}
+               
+               return "";
+       }
+
+       public PHPInterpreter getInterpreter() {
+               String selectedInterpreter = null;
+               try {
+                       selectedInterpreter = configuration.getAttribute(PHPLaunchConfigurationAttribute.SELECTED_INTERPRETER, "");
+               } catch(CoreException e) {}
+               
+               return PHPRuntime.getDefault().getInterpreter(selectedInterpreter);
+       }
+}