protected ZipFile getZipFile() throws CoreException { if (this.parent instanceof IPackageFragment) { JarPackageFragmentRoot root = (JarPackageFragmentRoot) ((IPackageFragment) this.parent).getParent(); return root.getJar(); } else if (this.parent instanceof JarPackageFragmentRoot) { return ((JarPackageFragmentRoot) this.parent).getJar(); } else return ((JarEntryDirectory) this.parent).getZipFile(); }
protected ZipFile getZipFile() throws CoreException { if (this.parent instanceof IPackageFragment) { JarPackageFragmentRoot root = (JarPackageFragmentRoot) ((IPackageFragment) this.parent).getParent(); return root.getJar(); } else if (this.parent instanceof JarPackageFragmentRoot) { return ((JarPackageFragmentRoot) this.parent).getJar(); } else return ((JarEntryDirectory) this.parent).getZipFile(); }
protected ZipFile getZipFile() throws CoreException { if (this.parent instanceof IPackageFragment) { JarPackageFragmentRoot root = (JarPackageFragmentRoot) ((IPackageFragment) this.parent).getParent(); return root.getJar(); } else if (this.parent instanceof JarPackageFragmentRoot) { return ((JarPackageFragmentRoot) this.parent).getJar(); } else return ((JarEntryDirectory) this.parent).getZipFile(); }
protected ZipFile getZipFile() throws CoreException { if (this.parent instanceof IPackageFragment) { JarPackageFragmentRoot root = (JarPackageFragmentRoot) ((IPackageFragment) this.parent).getParent(); return root.getJar(); } else if (this.parent instanceof JarPackageFragmentRoot) { return ((JarPackageFragmentRoot) this.parent).getJar(); } else return ((JarEntryDirectory) this.parent).getZipFile(); }
protected ZipFile getZipFile() throws CoreException { if (this.parent instanceof IPackageFragment) { JarPackageFragmentRoot root = (JarPackageFragmentRoot) ((IPackageFragment) this.parent).getParent(); return root.getJar(); } else if (this.parent instanceof JarPackageFragmentRoot) { return ((JarPackageFragmentRoot) this.parent).getJar(); } else return ((JarEntryDirectory) this.parent).getZipFile(); }
protected ZipFile getZipFile() throws CoreException { if (this.parent instanceof IPackageFragment) { JarPackageFragmentRoot root = (JarPackageFragmentRoot) ((IPackageFragment) this.parent).getParent(); return root.getJar(); } else if (this.parent instanceof JarPackageFragmentRoot) { return ((JarPackageFragmentRoot) this.parent).getJar(); } else return ((JarEntryDirectory) this.parent).getZipFile(); }
@Override public Manifest getManifest() { ZipFile jar = null; try { jar = getJar(); ZipEntry mfEntry = jar.getEntry(TypeConstants.META_INF_MANIFEST_MF); if (mfEntry != null) return new Manifest(jar.getInputStream(mfEntry)); } catch (CoreException | IOException e) { // must do without manifest } finally { JavaModelManager.getJavaModelManager().closeZipFile(jar); } return null; }
@Override public Manifest getManifest() { ZipFile jar = null; try { jar = getJar(); ZipEntry mfEntry = jar.getEntry(TypeConstants.META_INF_MANIFEST_MF); if (mfEntry != null) return new Manifest(jar.getInputStream(mfEntry)); } catch (CoreException | IOException e) { // must do without manifest } finally { JavaModelManager.getJavaModelManager().closeZipFile(jar); } return null; }
private IBinaryType getJarBinaryTypeInfo(PackageFragment pkg, boolean fullyInitialize) throws CoreException, IOException, ClassFormatException { JarPackageFragmentRoot root = (JarPackageFragmentRoot) pkg.getParent(); ZipFile zip = null; try { zip = root.getJar(); String entryName = Util.concatWith(pkg.names, getElementName(), '/'); ZipEntry ze = zip.getEntry(entryName); if (ze != null) { byte contents[] = org.eclipse.jdt.internal.compiler.util.Util.getZipEntryByteContent(ze, zip); String fileName = root.getHandleIdentifier() + IDependent.JAR_FILE_ENTRY_SEPARATOR + entryName; return new ClassFileReader(contents, fileName.toCharArray(), fullyInitialize); } } finally { JavaModelManager.getJavaModelManager().closeZipFile(zip); } return null; } public IBuffer getBuffer() throws JavaModelException {
private IBinaryType getJarBinaryTypeInfo(PackageFragment pkg, boolean fullyInitialize) throws CoreException, IOException, ClassFormatException { JarPackageFragmentRoot root = (JarPackageFragmentRoot) pkg.getParent(); ZipFile zip = null; try { zip = root.getJar(); String entryName = Util.concatWith(pkg.names, getElementName(), '/'); ZipEntry ze = zip.getEntry(entryName); if (ze != null) { byte contents[] = org.eclipse.jdt.internal.compiler.util.Util.getZipEntryByteContent(ze, zip); String fileName = root.getHandleIdentifier() + IDependent.JAR_FILE_ENTRY_SEPARATOR + entryName; return new ClassFileReader(contents, fileName.toCharArray(), fullyInitialize); } } finally { JavaModelManager.getJavaModelManager().closeZipFile(zip); } return null; } public IBuffer getBuffer() throws JavaModelException {
private IBinaryType getJarBinaryTypeInfo(PackageFragment pkg, boolean fullyInitialize) throws CoreException, IOException, ClassFormatException { JarPackageFragmentRoot root = (JarPackageFragmentRoot) pkg.getParent(); ZipFile zip = null; try { zip = root.getJar(); String entryName = Util.concatWith(pkg.names, getElementName(), '/'); ZipEntry ze = zip.getEntry(entryName); if (ze != null) { byte contents[] = org.eclipse.jdt.internal.compiler.util.Util.getZipEntryByteContent(ze, zip); String fileName = root.getHandleIdentifier() + IDependent.JAR_FILE_ENTRY_SEPARATOR + entryName; return new ClassFileReader(contents, fileName.toCharArray(), fullyInitialize); } } finally { JavaModelManager.getJavaModelManager().closeZipFile(zip); } return null; } public IBuffer getBuffer() throws JavaModelException {
protected byte[] getClassFileContent(JarPackageFragmentRoot root, String className) throws CoreException, IOException { byte[] contents = null; String rootPath = root.getPath().toOSString(); if (org.eclipse.jdt.internal.compiler.util.Util.isJrt(rootPath)) { try { contents = org.eclipse.jdt.internal.compiler.util.JRTUtil.getClassfileContent( new File(rootPath), className, root.getElementName()); } catch (ClassFormatException e) { e.printStackTrace(); } } else { ZipFile zip = root.getJar(); try { ZipEntry ze = zip.getEntry(className); if (ze != null) { contents = org.eclipse.jdt.internal.compiler.util.Util.getZipEntryByteContent(ze, zip); } } finally { JavaModelManager.getJavaModelManager().closeZipFile(zip); } } if (contents == null && Thread.interrupted()) // reading from JRT is interruptible throw new OperationCanceledException(); return contents; }
/** * Create a type info from the given class file in a jar and adds it to the given list of infos. * * @throws CoreException */ protected static IBinaryType createInfoFromClassFileInJar(Openable classFile) throws CoreException { PackageFragment pkg = (PackageFragment) classFile.getParent(); String classFilePath = Util.concatWith(pkg.names, classFile.getElementName(), '/'); IBinaryType info = null; java.util.zip.ZipFile zipFile = null; try { zipFile = ((JarPackageFragmentRoot) pkg.getParent()).getJar(); info = org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.read(zipFile, classFilePath); } catch (Exception e) { throw new CoreException(Package.createStatus("Unable to parse JAR file", e)); //$NON-NLS-1$ } finally { JavaModelManager.getJavaModelManager().closeZipFile(zipFile); } return info; }
protected byte[] getClassFileContent(JarPackageFragmentRoot root, String className) throws CoreException, IOException { byte[] contents = null; String rootPath = root.getPath().toOSString(); if (org.eclipse.jdt.internal.compiler.util.Util.isJrt(rootPath)) { try { contents = org.eclipse.jdt.internal.compiler.util.JRTUtil.getClassfileContent( new File(rootPath), className, root.getElementName()); } catch (ClassFormatException e) { e.printStackTrace(); } } else { ZipFile zip = root.getJar(); try { ZipEntry ze = zip.getEntry(className); if (ze != null) { contents = org.eclipse.jdt.internal.compiler.util.Util.getZipEntryByteContent(ze, zip); } } finally { JavaModelManager.getJavaModelManager().closeZipFile(zip); } } return contents; }
/** * Create a type info from the given class file in a jar and adds it to the given list of infos. * * @throws CoreException */ protected static IBinaryType createInfoFromClassFileInJar(Openable classFile) throws CoreException { PackageFragment pkg = (PackageFragment) classFile.getParent(); String classFilePath = Util.concatWith(pkg.names, classFile.getElementName(), '/'); IBinaryType info = null; java.util.zip.ZipFile zipFile = null; try { zipFile = ((JarPackageFragmentRoot) pkg.getParent()).getJar(); info = org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.read(zipFile, classFilePath); } catch (Exception e) { throw new CoreException(Package.createStatus("Unable to parse JAR file", e)); //$NON-NLS-1$ } finally { JavaModelManager.getJavaModelManager().closeZipFile(zipFile); } return info; }
public byte[] getBytes() throws JavaModelException { JavaElement pkg = (JavaElement) getParent(); if (pkg instanceof JarPackageFragment) { JarPackageFragmentRoot root = (JarPackageFragmentRoot) pkg.getParent(); ZipFile zip = null; try { zip = root.getJar(); String entryName = Util.concatWith(((PackageFragment) pkg).names, getElementName(), '/'); ZipEntry ze = zip.getEntry(entryName); if (ze != null) { return org.eclipse.jdt.internal.compiler.util.Util.getZipEntryByteContent(ze, zip); } throw new JavaModelException(new JavaModelStatus(IJavaModelStatusConstants.ELEMENT_DOES_NOT_EXIST, this)); } catch (IOException ioe) { throw new JavaModelException(ioe, IJavaModelStatusConstants.IO_EXCEPTION); } catch (CoreException e) { if (e instanceof JavaModelException) { throw (JavaModelException)e; } else { throw new JavaModelException(e); } } finally { JavaModelManager.getJavaModelManager().closeZipFile(zip); } } else { IFile file = (IFile) resource(); return Util.getResourceContentsAsByteArray(file); } } private IBinaryType getJarBinaryTypeInfo(PackageFragment pkg, boolean fullyInitialize) throws CoreException, IOException, ClassFormatException {
public byte[] getBytes() throws JavaModelException { JavaElement pkg = (JavaElement) getParent(); if (pkg instanceof JarPackageFragment) { JarPackageFragmentRoot root = (JarPackageFragmentRoot) pkg.getParent(); ZipFile zip = null; try { zip = root.getJar(); String entryName = Util.concatWith(((PackageFragment) pkg).names, getElementName(), '/'); ZipEntry ze = zip.getEntry(entryName); if (ze != null) { return org.eclipse.jdt.internal.compiler.util.Util.getZipEntryByteContent(ze, zip); } throw new JavaModelException(new JavaModelStatus(IJavaModelStatusConstants.ELEMENT_DOES_NOT_EXIST, this)); } catch (IOException ioe) { throw new JavaModelException(ioe, IJavaModelStatusConstants.IO_EXCEPTION); } catch (CoreException e) { if (e instanceof JavaModelException) { throw (JavaModelException)e; } else { throw new JavaModelException(e); } } finally { JavaModelManager.getJavaModelManager().closeZipFile(zip); } } else { IFile file = (IFile) resource(); return Util.getResourceContentsAsByteArray(file); } } private IBinaryType getJarBinaryTypeInfo(PackageFragment pkg, boolean fullyInitialize) throws CoreException, IOException, ClassFormatException {
public byte[] getBytes() throws JavaModelException { JavaElement pkg = (JavaElement) getParent(); if (pkg instanceof JarPackageFragment) { JarPackageFragmentRoot root = (JarPackageFragmentRoot) pkg.getParent(); ZipFile zip = null; try { zip = root.getJar(); String entryName = Util.concatWith(((PackageFragment) pkg).names, getElementName(), '/'); ZipEntry ze = zip.getEntry(entryName); if (ze != null) { return org.eclipse.jdt.internal.compiler.util.Util.getZipEntryByteContent(ze, zip); } throw new JavaModelException(new JavaModelStatus(IJavaModelStatusConstants.ELEMENT_DOES_NOT_EXIST, this)); } catch (IOException ioe) { throw new JavaModelException(ioe, IJavaModelStatusConstants.IO_EXCEPTION); } catch (CoreException e) { if (e instanceof JavaModelException) { throw (JavaModelException)e; } else { throw new JavaModelException(e); } } finally { JavaModelManager.getJavaModelManager().closeZipFile(zip); } } else { IFile file = (IFile) resource(); return Util.getResourceContentsAsByteArray(file); } } private IBinaryType getJarBinaryTypeInfo(PackageFragment pkg, boolean fullyInitialize) throws CoreException, IOException, ClassFormatException {
public byte[] getBytes() throws JavaModelException { JavaElement pkg = (JavaElement) getParent(); if (pkg instanceof JarPackageFragment) { JarPackageFragmentRoot root = (JarPackageFragmentRoot) pkg.getParent(); ZipFile zip = null; try { zip = root.getJar(); String entryName = Util.concatWith(((PackageFragment) pkg).names, getElementName(), '/'); ZipEntry ze = zip.getEntry(entryName); if (ze != null) { return org.eclipse.jdt.internal.compiler.util.Util.getZipEntryByteContent(ze, zip); } throw new JavaModelException(new JavaModelStatus(IJavaModelStatusConstants.ELEMENT_DOES_NOT_EXIST, this)); } catch (IOException ioe) { throw new JavaModelException(ioe, IJavaModelStatusConstants.IO_EXCEPTION); } catch (CoreException e) { if (e instanceof JavaModelException) { throw (JavaModelException)e; } else { throw new JavaModelException(e); } } finally { JavaModelManager.getJavaModelManager().closeZipFile(zip); } } else { IFile file = (IFile) resource(); return Util.getResourceContentsAsByteArray(file); } } private IBinaryType getJarBinaryTypeInfo(PackageFragment pkg, boolean fullyInitialize) throws CoreException, IOException, ClassFormatException {
ZipFile zipFile = null; try { zipFile = ((JarPackageFragmentRoot) root).getJar(); info = ClassFileReader.read(zipFile, classFilePath); } finally {