new version with WorkingCopy Management
[phpeclipse.git] / net.sourceforge.phpeclipse.launching / src / net / sourceforge / phpdt / internal / launching / InterpreterRunnerConfiguration.java
1 package net.sourceforge.phpdt.internal.launching;
2
3 import java.io.File;
4
5 import net.sourceforge.phpeclipse.resourcesview.PHPProject;
6
7 import org.eclipse.core.resources.IProject;
8 import org.eclipse.core.runtime.CoreException;
9 import org.eclipse.core.runtime.IPath;
10 import org.eclipse.core.runtime.Path;
11 import org.eclipse.debug.core.ILaunchConfiguration;
12
13 public class InterpreterRunnerConfiguration {
14         protected ILaunchConfiguration configuration;
15
16         public InterpreterRunnerConfiguration(ILaunchConfiguration aConfiguration) {
17                 configuration = aConfiguration;
18         }
19         
20         public String getAbsoluteFileName() {
21                 IPath path = new Path(getFileName());
22                 IProject project = getProject().getProject();
23
24                 return project.getLocation().toOSString() + "/" + getFileName();
25         }
26         
27         public String getFileName() {
28                 String fileName = "";
29
30                 try {
31                         fileName = configuration.getAttribute(PHPLaunchConfigurationAttribute.FILE_NAME, "No file specified in configuration");
32                 } catch(CoreException e) {}
33                 
34                 return fileName.replace('\\', '/');
35         }
36         
37         public PHPProject getProject() {
38                 String projectName = "";
39                 
40                 try {
41                         projectName = configuration.getAttribute(PHPLaunchConfigurationAttribute.PROJECT_NAME, "");
42                 } catch(CoreException e) {
43                         PHPLaunchingPlugin.log(e);
44                 }
45
46                 IProject project = PHPLaunchingPlugin.getWorkspace().getRoot().getProject(projectName);
47
48                 PHPProject phpProject = new PHPProject();
49                 phpProject.setProject(project);
50                 return phpProject;
51         }
52         
53         public File getAbsoluteWorkingDirectory() {
54                 String file = null;
55                 try {
56                         file = configuration.getAttribute(PHPLaunchConfigurationAttribute.WORKING_DIRECTORY, "");
57                 } catch(CoreException e) {
58                         PHPLaunchingPlugin.log(e);
59                 }
60                 return new File(file);
61         }
62         
63         public String getInterpreterArguments() {
64                 try {
65                         return configuration.getAttribute(PHPLaunchConfigurationAttribute.INTERPRETER_ARGUMENTS, "");
66                 } catch(CoreException e) {}
67                 
68                 return "";
69         }
70         
71         public String getProgramArguments() {
72                 try {
73                         return configuration.getAttribute(PHPLaunchConfigurationAttribute.PROGRAM_ARGUMENTS, "");
74                 } catch (CoreException e) {}
75                 
76                 return "";
77         }
78
79         public PHPInterpreter getInterpreter() {
80                 String selectedInterpreter = null;
81                 try {
82                         selectedInterpreter = configuration.getAttribute(PHPLaunchConfigurationAttribute.SELECTED_INTERPRETER, "");
83                 } catch(CoreException e) {}
84
85                 return PHPRuntime.getDefault().getInterpreter(selectedInterpreter);
86         }
87 }