return new DocumentAdapter(workingCopy, storage.getFullPath());
return new DocumentAdapter(workingCopy, documentPath);
	private ICompilationUnit createFakeCompiltationUnit(Object element, boolean setContents) {		if (!(element instanceof IStorageEditorInput))			return null;				final IStorageEditorInput sei= (IStorageEditorInput)element;				try {			final IStorage storage= sei.getStorage();			if (storage.getName() == null || storage.getFullPath() == null)				return null;						WorkingCopyOwner woc= new WorkingCopyOwner() {				/*				 * @see org.eclipse.jdt.core.WorkingCopyOwner#createBuffer(org.eclipse.jdt.core.ICompilationUnit)				 * @since 3.2				 */				public IBuffer createBuffer(ICompilationUnit workingCopy) {					return new DocumentAdapter(workingCopy, storage.getFullPath());				}			};			IClasspathEntry[] cpEntries= null;			IJavaProject jp= findJavaProject(storage.getFullPath());			if (jp != null)				cpEntries= jp.getResolvedClasspath(true);						if (cpEntries == null || cpEntries.length == 0)				cpEntries= new IClasspathEntry[] { JavaRuntime.getDefaultJREContainerEntry() };			final ICompilationUnit cu= woc.newWorkingCopy(storage.getName(), cpEntries, null, getProgressMonitor());			if (setContents) {				int READER_CHUNK_SIZE= 2048;				int BUFFER_SIZE= 8 * READER_CHUNK_SIZE;				Reader in= new BufferedReader(new InputStreamReader(storage.getContents()));				StringBuffer buffer= new StringBuffer(BUFFER_SIZE);				char[] readBuffer= new char[READER_CHUNK_SIZE];				int n;				try {					n= in.read(readBuffer);					while (n > 0) {						buffer.append(readBuffer, 0, n);						n= in.read(readBuffer);					}				} catch (IOException e) {					JavaPlugin.log(e);				}				cu.getBuffer().setContents(buffer.toString());			}						if (!isModifiable(element))				JavaModelUtil.reconcile(cu);						return cu;		} catch (CoreException ex) {			return null;		}	}