public byte[] getBytes() throws JavaModelException { JavaElement pkg = (JavaElement) getParent(); if (pkg instanceof JarPackageFragment) { JarPackageFragmentRoot root = (JarPackageFragmentRoot) pkg.getParent(); try { String entryName = Util.concatWith(((PackageFragment) pkg).names, getElementName(), '/'); entryName = root.getClassFilePath(entryName); return getClassFileContent(root, entryName); // Java 9 - The below exception is not thrown in new scheme of things. Could cause issues? // 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); } } } else { IFile file = (IFile) resource(); return Util.getResourceContentsAsByteArray(file); } } protected byte[] getClassFileContent(JarPackageFragmentRoot root, String className) throws CoreException, IOException {
@Override public byte[] getBytes() throws JavaModelException { JavaElement pkg = (JavaElement) getParent(); if (pkg instanceof JarPackageFragment) { JarPackageFragmentRoot root = (JarPackageFragmentRoot) pkg.getParent(); try { String entryName = Util.concatWith(((PackageFragment) pkg).names, getElementName(), '/'); entryName = root.getClassFilePath(entryName); return getClassFileContent(root, entryName); // Java 9 - The below exception is not thrown in new scheme of things. Could cause issues? // 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); } } } else { IFile file = (IFile) resource(); return Util.getResourceContentsAsByteArray(file); } } protected byte[] getClassFileContent(JarPackageFragmentRoot root, String className) throws CoreException, IOException {