@Override
public CompilerFileDescriptor getFileDescriptor(FileObject file) {
if(file != null) {
File ioFile = org.openide.filesystems.FileUtil.toFile(file);
//ask the virtual machine for a fileDescriptor of a different type
FileDescriptor fd = virtualMachine.getSymbolTable().getFileDescriptor(ioFile.getAbsolutePath());
if(fd == null && !hasBuiltAllOnce()) {//try compiling if we haven't already
Project project = FileOwnerQuery.getOwner(file);
compile(project);
fd = virtualMachine.getSymbolTable().getFileDescriptor(ioFile.getAbsolutePath());
}