blob: 8d655956eeada2fdf31084b2cfa89af402246576 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2011 NumberFour AG
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* NumberFour AG - initial API and Implementation (Alex Panchenko)
*******************************************************************************/
package org.eclipse.dltk.internal.javascript.nodejs;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.List;
import org.eclipse.core.runtime.ILog;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.Platform;
import org.eclipse.dltk.core.environment.IDeployment;
import org.eclipse.dltk.core.environment.IFileHandle;
import org.eclipse.dltk.internal.launching.AbstractInterpreterInstallType;
import org.eclipse.dltk.javascript.core.JavaScriptNature;
import org.eclipse.dltk.launching.EnvironmentVariable;
import org.eclipse.dltk.launching.IInterpreterInstall;
import org.eclipse.dltk.launching.LibraryLocation;
import org.osgi.framework.Bundle;
import org.osgi.framework.FrameworkUtil;
public class NodeJSInterpreterType extends AbstractInterpreterInstallType {
@Override
public String getName() {
return "node.js";
}
@Override
public String getNatureId() {
return JavaScriptNature.NATURE_ID;
}
@Override
protected IInterpreterInstall doCreateInterpreterInstall(String id) {
return new NodeJSInterpreter(this, id);
}
@Override
protected String[] getPossibleInterpreterNames() {
return new String[] { "node" };
}
private static Bundle bundle;
private static Bundle getBundle() {
if (bundle == null) {
bundle = FrameworkUtil.getBundle(NodeJSInterpreterType.class);
}
return bundle;
}
@Override
protected String getPluginId() {
return getBundle().getSymbolicName();
}
@Override
protected ILog getLog() {
return Platform.getLog(getBundle());
}
@Override
protected IPath createPathFile(IDeployment deployment) throws IOException {
// FIXME shouldn't be called
return null;
}
@Override
protected ILookupRunnable createLookupRunnable(IFileHandle installLocation,
List<LibraryLocation> locations, EnvironmentVariable[] variables) {
// TODO refactor DLTK to avoid this empty override
return new ILookupRunnable() {
@Override
public void run(IProgressMonitor monitor)
throws InvocationTargetException, InterruptedException {
}
};
}
}