@Override public boolean hasChildren(Object element) { try { if (element instanceof IPackageFragment) { IPackageFragment iPackageFragment= (IPackageFragment) element; return (iPackageFragment.getChildren().length > 0); } } catch (JavaModelException e) { } return false; }
@Override public boolean hasChildren(Object element) { try { if (element instanceof IPackageFragment) { IPackageFragment iPackageFragment= (IPackageFragment) element; return (iPackageFragment.getChildren().length > 0); } } catch (JavaModelException e) { } return false; }
public boolean hasChildren(Object element) { try { if (element instanceof IPackageFragment) { IPackageFragment iPackageFragment= (IPackageFragment) element; return (iPackageFragment.getChildren().length > 0); } } catch (JavaModelException e) { } return false; }
private int getClassFileCount(IJavaElement[] children) throws JavaModelException { int result= 0; for (int i= 0; i < children.length; i++) { if (children[i] instanceof IClassFile) { result++; } else if (children[i] instanceof IPackageFragment) { IPackageFragment fragment= (IPackageFragment) children[i]; result+= getClassFileCount(fragment.getChildren()); } } return result; }
private int getClassFileCount(IJavaElement[] children) throws JavaModelException { int result= 0; for (int i= 0; i < children.length; i++) { if (children[i] instanceof IClassFile) { result++; } else if (children[i] instanceof IPackageFragment) { IPackageFragment fragment= (IPackageFragment) children[i]; result+= getClassFileCount(fragment.getChildren()); } } return result; }
IJavaElement emptyModuleInfo(IPackageFragment fragment, boolean is9OrHigher) throws JavaModelException { if (is9OrHigher) { // at 9, empty module-info.java should be added for (IJavaElement child : fragment.getChildren()) { if (child instanceof ITypeRoot && ((ITypeRoot) child).getChildren().length == 0) return child; } } return null; }
/** * Tells whether the given package fragment contains any ordinary compilation unit, * not counting the modular compilation unit module-info.java nor its class file module-info.class. * @param fragment a package fragment to test * @return true iff at least one ordinary compilation unit (or class file) was found. * @throws JavaModelException if the package fragment does not exist or if an * exception occurs while accessing its corresponding resource * @since 3.14 */ public static boolean containsOrdinaryCompilationUnit(IPackageFragment fragment) throws JavaModelException { for (IJavaElement child : fragment.getChildren()) { if (child instanceof ITypeRoot && !isModuleInfo((ITypeRoot) child)) return true; } return false; }
private void addContainedTypes(IPackageFragment pack, List<IType> typesCollector) throws JavaModelException { IJavaElement[] children= pack.getChildren(); for (int c= 0; c < children.length; c++) { IJavaElement child= children[c]; if (child instanceof ICompilationUnit) { typesCollector.addAll(Arrays.asList(((ICompilationUnit) child).getTypes())); } else if (child instanceof IOrdinaryClassFile) { typesCollector.add(((IOrdinaryClassFile) child).getType()); } } }
private void addContainedTypes(IPackageFragment pack, List<IType> typesCollector) throws JavaModelException { IJavaElement[] children= pack.getChildren(); for (int c= 0; c < children.length; c++) { IJavaElement child= children[c]; if (child instanceof ICompilationUnit) { typesCollector.addAll(Arrays.asList(((ICompilationUnit) child).getTypes())); } else if (child instanceof IOrdinaryClassFile) { typesCollector.add(((IOrdinaryClassFile) child).getType()); } } }
private void addContainedTypes(IPackageFragment pack, List typesCollector) throws JavaModelException { IJavaElement[] children= pack.getChildren(); for (int c= 0; c < children.length; c++) { IJavaElement child= children[c]; if (child instanceof ICompilationUnit) { typesCollector.addAll(Arrays.asList(((ICompilationUnit) child).getTypes())); } else if (child instanceof IClassFile) { typesCollector.add(((IClassFile) child).getType()); } } }
private void addContainedTypes(IPackageFragment pack, List<IType> typesCollector) throws JavaModelException { IJavaElement[] children= pack.getChildren(); for (int c= 0; c < children.length; c++) { IJavaElement child= children[c]; if (child instanceof ICompilationUnit) { typesCollector.addAll(Arrays.asList(((ICompilationUnit) child).getTypes())); } else if (child instanceof IClassFile) { typesCollector.add(((IClassFile) child).getType()); } } }
protected IResource[] collectResourcesOfInterest(IPackageFragment source) throws CoreException { IJavaElement[] children = source.getChildren(); int childOfInterest = IJavaElement.COMPILATION_UNIT; if (source.getKind() == IPackageFragmentRoot.K_BINARY) { childOfInterest = IJavaElement.CLASS_FILE; } ArrayList<IResource> result = new ArrayList<>(children.length); for (int i = 0; i < children.length; i++) { IJavaElement child = children[i]; if (child.getElementType() == childOfInterest && child.getResource() != null) { result.add(child.getResource()); } } // Gather non-java resources Object[] nonJavaResources = source.getNonJavaResources(); for (int i= 0; i < nonJavaResources.length; i++) { Object element= nonJavaResources[i]; if (element instanceof IResource) { result.add((IResource) element); } } return result.toArray(new IResource[result.size()]); }
public boolean hasChildren(Object element) { if (element instanceof IProject && !((IProject)element).isAccessible()) return false; if (element instanceof IPackageFragment) { IPackageFragment pkg= (IPackageFragment)element; try { if (pkg.getKind() == IPackageFragmentRoot.K_BINARY) return pkg.getChildren().length > 0; } catch (JavaModelException ex) { // use super behavior } } return super.hasChildren(element); }
@Override public boolean hasChildren(Object element) { if (element instanceof IProject && !((IProject)element).isAccessible()) return false; if (element instanceof IPackageFragment) { IPackageFragment pkg= (IPackageFragment)element; try { if (pkg.getKind() == IPackageFragmentRoot.K_BINARY) { // Don't show IJarEntryResource return pkg.getChildren().length > 0; } } catch (JavaModelException ex) { // use super behavior } } return super.hasChildren(element); }
@Override public boolean hasChildren(Object element) { if (element instanceof IProject && !((IProject)element).isAccessible()) return false; if (element instanceof IPackageFragment) { IPackageFragment pkg= (IPackageFragment)element; try { if (pkg.getKind() == IPackageFragmentRoot.K_BINARY) { // Don't show IJarEntryResource return pkg.getChildren().length > 0; } } catch (JavaModelException ex) { // use super behavior } } return super.hasChildren(element); }
private void computeRMICJavaTypes(IPackageFragmentRoot root) throws JavaModelException { IJavaElement[] pkgFragments = root.getChildren(); IFile aFile = null; for (int i = 0; i < pkgFragments.length; i++) { IJavaElement[] elements = ((IPackageFragment)pkgFragments[i]).getChildren(); for (int j = 0; j < elements.length; j++) { IJavaElement unit = elements[j]; aFile = (IFile)unit.getUnderlyingResource(); if (isRMICStub(aFile) && isFileForClientJar(aFile)) cacheFile(root, aFile); } } }
private void exportExternalClassFolderElement(IJavaElement javaElement, IPath classFolderPath, IProgressMonitor progressMonitor) throws JavaModelException, InterruptedException { if (javaElement instanceof IClassFile) { IClassFile classFile= (IClassFile) javaElement; IPath path= classFile.getPath(); IPath destination= path.removeFirstSegments(classFolderPath.segmentCount()).setDevice(null); try { ((IJarBuilderExtension) fJarBuilder).writeFile(path.toFile(), destination); } catch (CoreException e) { handleCoreExceptionOnExport(e); } finally { progressMonitor.worked(1); ModalContext.checkCanceled(progressMonitor); } } else if (javaElement instanceof IPackageFragment) { IJavaElement[] children= ((IPackageFragment) javaElement).getChildren(); for (int i= 0; i < children.length; i++) { exportExternalClassFolderElement(children[i], classFolderPath, progressMonitor); } } }
private void exportExternalClassFolderElement(IJavaElement javaElement, IPath classFolderPath, IProgressMonitor progressMonitor) throws JavaModelException, InterruptedException { if (javaElement instanceof IClassFile) { IClassFile classFile= (IClassFile) javaElement; IPath path= classFile.getPath(); IPath destination= path.removeFirstSegments(classFolderPath.segmentCount()).setDevice(null); try { ((IJarBuilderExtension) fJarBuilder).writeFile(path.toFile(), destination); } catch (CoreException e) { handleCoreExceptionOnExport(e); } finally { progressMonitor.worked(1); ModalContext.checkCanceled(progressMonitor); } } else if (javaElement instanceof IPackageFragment) { IJavaElement[] children= ((IPackageFragment) javaElement).getChildren(); for (int i= 0; i < children.length; i++) { exportExternalClassFolderElement(children[i], classFolderPath, progressMonitor); } } }
ITypeRoot getModuleRoot(IPackageFragmentRoot root) throws JavaModelException { IJavaElement module= root.getModuleDescription(); if (module == null) { // may still need to show an empty module-info.java, which otherwise would remain invisible IPackageFragment dfltPack= root.getPackageFragment(""); //$NON-NLS-1$ if (dfltPack.exists()) { for (IJavaElement child : dfltPack.getChildren()) { if (child instanceof ITypeRoot && JavaModelUtil.isModuleInfo((ITypeRoot) child) && ((ITypeRoot) child).getChildren().length == 0) { return (ITypeRoot) child; } } } return null; } else { return (ITypeRoot) module.getParent(); } }
private void addAllSourcePackages(IProject project, Set<String> list) { try { IJavaProject javaProject = JavaCore.create(project); IClasspathEntry[] classpath = javaProject.getRawClasspath(); for (IClasspathEntry entry : classpath) { if (entry.getEntryKind() == IClasspathEntry.CPE_SOURCE) { IPath path = entry.getPath().removeFirstSegments(1); if (path.segmentCount() > 0) { IPackageFragmentRoot root = javaProject.getPackageFragmentRoot(project.getFolder(path)); IJavaElement[] children = root.getChildren(); for (IJavaElement element : children) { IPackageFragment frag = (IPackageFragment) element; if (frag.getChildren().length > 0 || frag.getNonJavaResources().length > 0) list.add(element.getElementName()); } } } } } catch (JavaModelException e) { } }