package com.redhat.ceylon.eclipse.core.vfs; import static com.redhat.ceylon.eclipse.java2ceylon.Java2CeylonProxies.platformJ2C; import static com.redhat.ceylon.eclipse.java2ceylon.Java2CeylonProxies.utilJ2C; import static com.redhat.ceylon.eclipse.util.CeylonHelper.td; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.IPath; import com.redhat.ceylon.compiler.typechecker.io.VirtualFile; import com.redhat.ceylon.eclipse.java2ceylon.VfsJ2C; import com.redhat.ceylon.ide.common.platform.VfsServices; import com.redhat.ceylon.ide.common.vfs.FileVirtualFile; import com.redhat.ceylon.ide.common.vfs.FolderVirtualFile; import com.redhat.ceylon.ide.common.vfs.ResourceVirtualFile; public class vfsJ2C implements VfsJ2C { @Override public VfsServices<IProject, IResource, IFolder, IFile> services() { return platformJ2C().platformServices().vfs(td(IProject.class), td(IResource.class), td(IFolder.class), td(IFile.class)); } @Override public ResourceVirtualFile<IProject, IResource, IFolder, IFile> createVirtualResource( IResource resource, IProject project) { return services().createVirtualResource(resource, project); } @Override public FileVirtualFile<IProject, IResource, IFolder, IFile> createVirtualFile(IFile file, IProject project) { return services().createVirtualFile(file, project); } @Override public FileVirtualFile<IProject, IResource, IFolder, IFile> createVirtualFile(IProject project, IPath path) { return services().createVirtualFileFromProject(project, utilJ2C().fromEclipsePath(path)); } @Override public FolderVirtualFile<IProject, IResource, IFolder, IFile> createVirtualFolder(IFolder folder, IProject project) { return services().createVirtualFolder(folder, project); } @Override public FolderVirtualFile<IProject, IResource, IFolder, IFile> createVirtualFolder(IProject project, IPath path) { return services().createVirtualFolderFromProject(project, utilJ2C().fromEclipsePath(path)); } @Override public boolean instanceOfIFileVirtualFile(VirtualFile file) { return file instanceof IFileVirtualFile; } @Override public FileVirtualFile<IProject, IResource, IFolder, IFile> getIFileVirtualFile(VirtualFile file) { return (IFileVirtualFile) file; } @Override public boolean instanceOfIFolderVirtualFile(VirtualFile file) { return file instanceof IFolderVirtualFile; } @Override public FolderVirtualFile<IProject, IResource, IFolder, IFile> getIFolderVirtualFile(VirtualFile file) { return (IFolderVirtualFile) file; } }