/**
* Plugin for NanoVM.
*/
package org.eclipse.nanovm.internal.ui.classpath;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Platform;
import org.eclipse.jdt.core.IClasspathContainer;
import org.eclipse.jdt.core.IClasspathEntry;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.nanovm.runtime.NanoVMRuntime;
import org.eclipse.nanovm.tool.NanoVMTool;
import org.eclipse.nanovm.ui.NanoVMUI;
/**
* "NanoVM Library" class path container.
*
* @author tugstugi@yahoo.com
*/
public class NanoVMClasspathContainer implements IClasspathContainer {
protected IJavaProject javaProject;
public NanoVMClasspathContainer(IJavaProject javaProject){
this.javaProject = javaProject;
}
public IClasspathEntry[] getClasspathEntries() {
if(Platform.inDevelopmentMode()){
IFolder runtimeLibraryFolder = javaProject.getProject().getFolder("lib").getFolder(NanoVMRuntime.LIBRARY_NAME);
if(runtimeLibraryFolder.exists())
return new IClasspathEntry[]{
JavaCore.newLibraryEntry(runtimeLibraryFolder.getFullPath(), null, null),
JavaCore.newLibraryEntry(javaProject.getProject().getFolder("lib").getFile(NanoVMTool.LIBRARY_NAME).getFullPath(), null, null)
};
}else{
IFile runtimeLibraryFile = javaProject.getProject().getFolder("lib").getFile(NanoVMRuntime.LIBRARY_NAME);
if(runtimeLibraryFile.exists()){
return new IClasspathEntry[]{
JavaCore.newLibraryEntry(runtimeLibraryFile.getFullPath(), null, null),
JavaCore.newLibraryEntry(javaProject.getProject().getFolder("lib").getFile(NanoVMTool.LIBRARY_NAME).getFullPath(), null, null)
};
}
}
return new IClasspathEntry[0];
}
public String getDescription() {
return "NanoVM System Library";
}
public int getKind() {
return IClasspathContainer.K_APPLICATION;
}
public IPath getPath() {
return new Path(NanoVMUI.LIBRARY_CONTAINER_ID);
}
}