package org.eclipse.dltk.javascript.internal.launching;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import org.eclipse.debug.core.ILaunchManager;
import org.eclipse.dltk.javascript.core.JavaScriptNature;
import org.eclipse.dltk.launching.AbstractInterpreterInstall;
import org.eclipse.dltk.launching.IInterpreterInstallType;
import org.eclipse.dltk.launching.IInterpreterRunner;
public class GenericJavaScriptInstall extends AbstractInterpreterInstall {
private static final String BUILTINS_JS = "builtins.js"; //$NON-NLS-1$
public String getBuiltinModuleContent(String name) {
InputStream stream = GenericJavaScriptInstall.class
.getResourceAsStream(BUILTINS_JS);
DataInputStream st = new DataInputStream(stream);
StringBuffer buf = new StringBuffer();
try {
while (st.available() >= 0) {
String line = st.readLine();
if (line == null)
break;
buf.append(line);
buf.append('\n');
}
} catch (IOException e) {
// should not happen
}
return buf.toString();
}
public String[] getBuiltinModules() {
return new String[] { "builtins.js" }; //$NON-NLS-1$
}
public long lastModified() {
try {
return GenericJavaScriptInstall.class.getResource(BUILTINS_JS)
.openConnection().getLastModified();
} catch (IOException e) {
return 0;
}
}
public GenericJavaScriptInstall(IInterpreterInstallType type, String id) {
super(type, id);
}
public IInterpreterRunner getInterpreterRunner(String mode) {
IInterpreterRunner runner = super.getInterpreterRunner(mode);
if (runner != null) {
return runner;
}
if (mode.equals(ILaunchManager.RUN_MODE)) {
return new JavaScriptInterpreterRunner(this);
}
/*
* else if (mode.equals(ILaunchManager.DEBUG_MODE)) { return new
* JavaScriptInterpreterDebugger(this); }
*/
return null;
}
public String getNatureId() {
return JavaScriptNature.NATURE_ID;
}
}