List of usage examples for org.eclipse.jdt.core IPackageFragment getParent
IJavaElement getParent();
null
if this element has no parent. From source file:at.bestsolution.fxide.jdt.text.viewersupport.JavaElementLabelComposer.java
License:Open Source License
/** * Appends the label for a package fragment. Considers the P_* flags. * * @param pack the element to render//ww w . j av a 2 s. c om * @param flags the rendering flags. Flags with names starting with P_' are considered. */ public void appendPackageFragmentLabel(IPackageFragment pack, long flags) { if (getFlag(flags, JavaElementLabels.P_QUALIFIED)) { appendPackageFragmentRootLabel((IPackageFragmentRoot) pack.getParent(), JavaElementLabels.ROOT_QUALIFIED); fBuffer.append('/'); } if (pack.isDefaultPackage()) { fBuffer.append(JavaElementLabels.DEFAULT_PACKAGE); } else if (getFlag(flags, JavaElementLabels.P_COMPRESSED)) { if (isPackageNameAbbreviationEnabled()) appendAbbreviatedPackageFragment(pack); else appendCompressedPackageFragment(pack); } else { fBuffer.append(getElementName(pack)); } if (getFlag(flags, JavaElementLabels.P_POST_QUALIFIED)) { int offset = fBuffer.length(); fBuffer.append(JavaElementLabels.CONCAT_STRING); appendPackageFragmentRootLabel((IPackageFragmentRoot) pack.getParent(), JavaElementLabels.ROOT_QUALIFIED); // if (getFlag(flags, JavaElementLabels.COLORIZE)) { // fBuffer.setStyle(offset, fBuffer.length() - offset, QUALIFIER_STYLE); // } } }
From source file:byke.DependencyAnalysis.java
License:Open Source License
private static List<IPackageFragment> withSubpackages(IPackageFragment packge) throws JavaModelException { IJavaElement[] allPackages = ((IPackageFragmentRoot) packge.getParent()).getChildren(); List<IPackageFragment> ret = new ArrayList<IPackageFragment>(); for (IJavaElement candidate : allPackages) if (candidate.getElementName().startsWith(packge.getElementName())) ret.add((IPackageFragment) candidate); return ret;/*from w w w. ja va 2 s .c om*/ }
From source file:ca.uvic.chisel.diver.sequencediagrams.sc.java.editors.JavaSequenceContentProvider.java
License:Open Source License
public Object getContainingGroup(Object lifelineOrGroup) { if (lifelineOrGroup instanceof JavaObject) { IJavaElement element = ((JavaObject) lifelineOrGroup).getJavaElement(); if (element instanceof IType) { return ((IType) element).getPackageFragment(); }/* w w w . jav a 2s. c o m*/ } else if (lifelineOrGroup instanceof IPackageFragment) { IPackageFragment fragment = (IPackageFragment) lifelineOrGroup; IPackageFragmentRoot root = (IPackageFragmentRoot) fragment.getParent(); int lastDot = fragment.getElementName().lastIndexOf('.'); if (lastDot > 0) { String name = fragment.getElementName().substring(0, lastDot); return root.getPackageFragment(name); } } return null; }
From source file:ca.uvic.chisel.diver.sequencediagrams.sc.java.editors.JavaSequenceContentProvider.java
License:Open Source License
public boolean hasContainingGroup(Object lifelineOrGroup) { if (lifelineOrGroup instanceof JavaObject) { IJavaElement element = ((JavaObject) lifelineOrGroup).getJavaElement(); if (element instanceof IType) { return ((IType) element).getPackageFragment() != null; }/*from w w w.j a v a 2 s .c o m*/ } else if (lifelineOrGroup instanceof IPackageFragment) { IPackageFragment fragment = (IPackageFragment) lifelineOrGroup; IPackageFragmentRoot root = (IPackageFragmentRoot) fragment.getParent(); int lastDot = fragment.getElementName().lastIndexOf('.'); if (lastDot > 0) { String name = fragment.getElementName().substring(0, lastDot); return root.getPackageFragment(name) != null; } } return false; }
From source file:com.codenvy.ide.ext.java.server.internal.core.DeltaProcessor.java
License:Open Source License
private void updateIndex(Openable element, IResourceDelta delta) { IndexManager indexManager = this.manager.indexManager; if (indexManager == null) return;/* w w w.j ava2s . c o m*/ switch (element.getElementType()) { case IJavaElement.JAVA_PROJECT: switch (delta.getKind()) { case IResourceDelta.ADDED: indexManager.indexAll((JavaProject) element.getJavaProject()); break; case IResourceDelta.REMOVED: indexManager.removeIndexFamily(element.getJavaProject().getProject().getFullPath()); // NB: Discarding index jobs belonging to this project was done during PRE_DELETE break; // NB: Update of index if project is opened, closed, or its java nature is added or removed // is done in updateCurrentDeltaAndIndex } break; case IJavaElement.PACKAGE_FRAGMENT_ROOT: if (element instanceof JarPackageFragmentRoot) { JarPackageFragmentRoot root = (JarPackageFragmentRoot) element; // index jar file only once (if the root is in its declaring project) IPath jarPath = root.getPath(); switch (delta.getKind()) { case IResourceDelta.ADDED: // index the new jar indexManager.indexLibrary(jarPath, root.getIndexPath()); break; case IResourceDelta.CHANGED: // first remove the index so that it is forced to be re-indexed indexManager.removeIndex(jarPath); // then index the jar indexManager.indexLibrary(jarPath, root.getIndexPath()); break; case IResourceDelta.REMOVED: // the jar was physically removed: remove the index indexManager.discardJobs(jarPath.toString()); indexManager.removeIndex(jarPath); break; } break; } int kind = delta.getKind(); if (kind == IResourceDelta.ADDED || kind == IResourceDelta.REMOVED || (kind == IResourceDelta.CHANGED && (delta.getFlags() & IResourceDelta.LOCAL_CHANGED) != 0)) { PackageFragmentRoot root = (PackageFragmentRoot) element; updateRootIndex(root, CharOperation.NO_STRINGS, delta); break; } // don't break as packages of the package fragment root can be indexed below // $FALL-THROUGH$ case IJavaElement.PACKAGE_FRAGMENT: switch (delta.getKind()) { case IResourceDelta.CHANGED: if ((delta.getFlags() & IResourceDelta.LOCAL_CHANGED) == 0) break; // $FALL-THROUGH$ case IResourceDelta.ADDED: case IResourceDelta.REMOVED: IPackageFragment pkg = null; if (element instanceof IPackageFragmentRoot) { PackageFragmentRoot root = (PackageFragmentRoot) element; pkg = root.getPackageFragment(CharOperation.NO_STRINGS); } else { pkg = (IPackageFragment) element; } RootInfo rootInfo = rootInfo(pkg.getParent().getPath(), delta.getKind()); boolean isSource = rootInfo == null // if null, defaults to source || rootInfo.entryKind == IClasspathEntry.CPE_SOURCE; IResourceDelta[] children = (IResourceDelta[]) delta.getAffectedChildren(); for (int i = 0, length = children.length; i < length; i++) { IResourceDelta child = children[i]; IResource resource = child.getResource(); // TODO (philippe) Why do this? Every child is added anyway as the delta is walked if (resource instanceof IFile) { String name = resource.getName(); if (isSource) { if (org.eclipse.jdt.internal.core.util.Util.isJavaLikeFileName(name)) { Openable cu = (Openable) pkg.getCompilationUnit(name); updateIndex(cu, child); } } else if (org.eclipse.jdt.internal.compiler.util.Util.isClassFileName(name)) { Openable classFile = (Openable) pkg.getClassFile(name); updateIndex(classFile, child); } } } break; } break; case IJavaElement.CLASS_FILE: // IFile file = (IFile) delta.getResource(); // IJavaProject project = element.getJavaProject(); // PackageFragmentRoot root = element.getPackageFragmentRoot(); // IPath binaryFolderPath = root.isExternal() && !root.isArchive() ? root.resource().getFullPath() : root.getPath(); // // if the class file is part of the binary output, it has been created by // // the java builder -> ignore // try { // if (binaryFolderPath.equals(project.getOutputLocation())) { // break; // } // } catch (JavaModelException e) { // // project doesn't exist: ignore // } // switch (delta.getKind()) { // case IResourceDelta.CHANGED : // // no need to index if the content has not changed // int flags = delta.getFlags(); // if ((flags & IResourceDelta.CONTENT) == 0 && (flags & IResourceDelta.ENCODING) == 0) // break; // // $FALL-THROUGH$ // case IResourceDelta.ADDED : // indexManager.addBinary(file, binaryFolderPath); // break; // case IResourceDelta.REMOVED : // String containerRelativePath = Util.relativePath(file.getFullPath(), binaryFolderPath.segmentCount()); // indexManager.remove(containerRelativePath, binaryFolderPath); // break; // } break; case IJavaElement.COMPILATION_UNIT: File file = delta.getFile(); switch (delta.getKind()) { case IResourceDelta.CHANGED: // no need to index if the content has not changed int flags = delta.getFlags(); if ((flags & IResourceDelta.CONTENT) == 0 && (flags & IResourceDelta.ENCODING) == 0) break; // $FALL-THROUGH$ case IResourceDelta.ADDED: indexManager.addSource(file.toPath(), element.getJavaProject().getPath(), getSourceElementParser(element)); // Clean file from secondary types cache but do not update indexing secondary type cache as it will be updated through indexing itself this.manager.secondaryTypesRemoving(file, false); break; case IResourceDelta.REMOVED: indexManager.remove( file.getPath().substring(element.getJavaProject().getPath().toOSString().length()), element.getJavaProject().getPath()); // Clean file from secondary types cache and update indexing secondary type cache as indexing cannot remove secondary types from cache this.manager.secondaryTypesRemoving(file, true); break; } } }
From source file:com.codenvy.ide.ext.java.server.internal.core.NameLookup.java
License:Open Source License
/** * Notifies the given requestor of all types (classes and interfaces) in the * given package fragment with the given (unqualified) name. * Checks the requestor at regular intervals to see if the requestor * has canceled. If the given package fragment is <code>null</code>, all types in the * project whose simple name matches the given name are found. * * @param name// ww w .java 2 s.c o m * The name to search * @param pkg * The corresponding package fragment * @param partialMatch * partial name matches qualify when <code>true</code>; * only exact name matches qualify when <code>false</code> * @param acceptFlags * a bit mask describing if classes, interfaces or both classes and interfaces * are desired results. If no flags are specified, all types are returned. * @param requestor * The requestor that collects the result * @see #ACCEPT_CLASSES * @see #ACCEPT_INTERFACES * @see #ACCEPT_ENUMS * @see #ACCEPT_ANNOTATIONS */ public void seekTypes(String name, IPackageFragment pkg, boolean partialMatch, int acceptFlags, IJavaElementRequestor requestor, boolean considerSecondaryTypes) { /* if (VERBOSE) { Util.verbose(" SEEKING TYPES"); //$NON-NLS-1$ Util.verbose(" -> name: " + name); //$NON-NLS-1$ Util.verbose(" -> pkg: " + ((JavaElement) pkg).toStringWithAncestors()); //$NON-NLS-1$ Util.verbose(" -> partial match:" + partialMatch); //$NON-NLS-1$ } */ String matchName = partialMatch ? name.toLowerCase() : name; if (pkg == null) { findAllTypes(matchName, partialMatch, acceptFlags, requestor); return; } PackageFragmentRoot root = (PackageFragmentRoot) pkg.getParent(); try { // look in working copies first int firstDot = -1; String topLevelTypeName = null; int packageFlavor = root.internalKind(); if (this.typesInWorkingCopies != null || packageFlavor == IPackageFragmentRoot.K_SOURCE) { firstDot = matchName.indexOf('.'); if (!partialMatch) topLevelTypeName = firstDot == -1 ? matchName : matchName.substring(0, firstDot); } if (this.typesInWorkingCopies != null) { if (seekTypesInWorkingCopies(matchName, pkg, firstDot, partialMatch, topLevelTypeName, acceptFlags, requestor, considerSecondaryTypes)) return; } // look in model switch (packageFlavor) { case IPackageFragmentRoot.K_BINARY: matchName = matchName.replace('.', '$'); seekTypesInBinaryPackage(matchName, pkg, partialMatch, acceptFlags, requestor); break; case IPackageFragmentRoot.K_SOURCE: seekTypesInSourcePackage(matchName, pkg, firstDot, partialMatch, topLevelTypeName, acceptFlags, requestor); if (matchName.indexOf('$') != -1) { matchName = matchName.replace('$', '.'); firstDot = matchName.indexOf('.'); if (!partialMatch) topLevelTypeName = firstDot == -1 ? matchName : matchName.substring(0, firstDot); seekTypesInSourcePackage(matchName, pkg, firstDot, partialMatch, topLevelTypeName, acceptFlags, requestor); } break; default: return; } } catch (JavaModelException e) { return; } }
From source file:com.codenvy.ide.ext.java.server.JavaNavigation.java
License:Open Source License
public Object getHierarchicalPackageParent(IPackageFragment child) { String name = child.getElementName(); IPackageFragmentRoot parent = (IPackageFragmentRoot) child.getParent(); int index = name.lastIndexOf('.'); if (index != -1) { String realParentName = name.substring(0, index); IPackageFragment element = parent.getPackageFragment(realParentName); if (element.exists()) { try { if (fFoldPackages && isEmpty(element) && findSinglePackageChild(element, parent.getChildren()) != null) { return getHierarchicalPackageParent(element); }/* w w w . j ava 2 s.c o m*/ } catch (JavaModelException e) { // ignore } return element; } /*else { // bug 65240 IResource resource= element.getResource(); if (resource != null) { return resource; } }*/ } // if (parent.getResource() instanceof IProject) { // return parent.getJavaProject(); // } return parent; }
From source file:com.codenvy.ide.ext.java.server.JavaNavigation.java
License:Open Source License
protected Object[] getPackageContent(IPackageFragment fragment) throws JavaModelException { // hierarchical package mode ArrayList<Object> result = new ArrayList<Object>(); getHierarchicalPackageChildren((IPackageFragmentRoot) fragment.getParent(), fragment, result); IClassFile[] classFiles = fragment.getClassFiles(); List<IClassFile> filtered = new ArrayList<>(); //filter inner classes for (IClassFile classFile : classFiles) { if (!classFile.getElementName().contains("$")) { filtered.add(classFile);/*from ww w .j a v a2s.c o m*/ } } Object[] nonPackages = concatenate(filtered.toArray(), fragment.getNonJavaResources()); if (result.isEmpty()) return nonPackages; Collections.addAll(result, nonPackages); return result.toArray(); }
From source file:com.google.gdt.eclipse.designer.util.Utils.java
License:Open Source License
/** * Accepts some {@link IPackageFragment} in "source" package and returns root "source" package. *///from w ww .ja v a 2 s . c o m public static IPackageFragment getRootSourcePackage(IPackageFragment pkg) throws Exception { IPackageFragmentRoot sourceRoot = (IPackageFragmentRoot) pkg.getParent(); IPackageFragment clientRoot = pkg; while (isModuleSourcePackage(pkg)) { clientRoot = pkg; String pkgName = pkg.getElementName(); String pkgParentName = CodeUtils.getPackage(pkgName); pkg = sourceRoot.getPackageFragment(pkgParentName); } return clientRoot; }
From source file:com.google.gdt.eclipse.designer.wizards.model.common.ClientPackageSelectionDialogField.java
License:Open Source License
/** * Return strings presentation of package. *//*from ww w. j av a 2 s. com*/ private static String getPackageString(IPackageFragment packageFragment) { try { if (packageFragment != null) { IPackageFragmentRoot packageFragmentRoot = (IPackageFragmentRoot) packageFragment.getParent(); IJavaProject javaProject = packageFragmentRoot.getJavaProject(); if (packageFragmentRoot.getUnderlyingResource() == javaProject.getUnderlyingResource()) { return javaProject.getElementName() + "/" + packageFragment.getElementName(); } else { return javaProject.getElementName() + "/" + packageFragmentRoot.getElementName() + "/" + packageFragment.getElementName(); } } return ""; } catch (Throwable e) { throw ReflectionUtils.propagate(e); } }