List of usage examples for org.eclipse.jdt.core IPackageFragmentRoot getKind
int getKind() throws JavaModelException;
From source file:com.codenvy.ide.ext.java.server.internal.core.JavaElement.java
License:Open Source License
protected URL getJavadocBaseLocation() throws JavaModelException { IPackageFragmentRoot root = (IPackageFragmentRoot) getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT); if (root == null) { return null; }//w ww .ja v a 2 s . c o m if (root.getKind() == IPackageFragmentRoot.K_BINARY) { IClasspathEntry entry = null; try { entry = root.getResolvedClasspathEntry(); URL url = getLibraryJavadocLocation(entry); if (url != null) { return url; } } catch (JavaModelException jme) { // Proceed with raw classpath } entry = root.getRawClasspathEntry(); switch (entry.getEntryKind()) { case IClasspathEntry.CPE_LIBRARY: case IClasspathEntry.CPE_VARIABLE: return getLibraryJavadocLocation(entry); default: return null; } } return null; }
From source file:com.codenvy.ide.ext.java.server.internal.core.search.HierarchyScope.java
License:Open Source License
private IPath[] computeProjectsAndJars(IType type) throws JavaModelException { HashSet set = new HashSet(); IPackageFragmentRoot root = (IPackageFragmentRoot) type.getPackageFragment().getParent(); if (root.isArchive()) { // add the root set.add(root.getPath());/*from ww w . j a va 2 s . c o m*/ // add all projects that reference this archive and their dependents IPath rootPath = root.getPath(); IJavaModel model = JavaModelManager.getJavaModelManager().getJavaModel(); IJavaProject[] projects = model.getJavaProjects(); HashSet visited = new HashSet(); for (int i = 0; i < projects.length; i++) { JavaProject project = (JavaProject) projects[i]; IClasspathEntry entry = project.getClasspathEntryFor(rootPath); if (entry != null) { // add the project and its binary pkg fragment roots IPackageFragmentRoot[] roots = project.getAllPackageFragmentRoots(); set.add(project.getPath()); for (int k = 0; k < roots.length; k++) { IPackageFragmentRoot pkgFragmentRoot = roots[k]; if (pkgFragmentRoot.getKind() == IPackageFragmentRoot.K_BINARY) { set.add(pkgFragmentRoot.getPath()); } } // add the dependent projects computeDependents(project, set, visited); } } } else { // add all the project's pkg fragment roots IJavaProject project = (IJavaProject) root.getParent(); IPackageFragmentRoot[] roots = project.getAllPackageFragmentRoots(); for (int i = 0; i < roots.length; i++) { IPackageFragmentRoot pkgFragmentRoot = roots[i]; if (pkgFragmentRoot.getKind() == IPackageFragmentRoot.K_BINARY) { set.add(pkgFragmentRoot.getPath()); } else { set.add(pkgFragmentRoot.getParent().getPath()); } } // add the dependent projects computeDependents(project, set, new HashSet()); } IPath[] result = new IPath[set.size()]; set.toArray(result); return result; }
From source file:com.codenvy.ide.ext.java.server.javadoc.JavaDocLocations.java
License:Open Source License
/** * Returns the reason for why the Javadoc of the Java element could not be retrieved. * * @param element whose Javadoc could not be retrieved * @param root the root of the Java element * @return the String message for why the Javadoc could not be retrieved for the Java element or * <code>null</code> if the Java element is from a source container * @since 3.9/*from w w w . j a v a2 s .co m*/ */ public static String getExplanationForMissingJavadoc(IJavaElement element, IPackageFragmentRoot root) { String message = null; try { boolean isBinary = (root.exists() && root.getKind() == IPackageFragmentRoot.K_BINARY); if (isBinary) { boolean hasAttachedJavadoc = JavaDocLocations.getJavadocBaseLocation(element) != null; boolean hasAttachedSource = root.getSourceAttachmentPath() != null; IOpenable openable = element.getOpenable(); boolean hasSource = openable.getBuffer() != null; // Provide hint why there's no Java doc if (!hasAttachedSource && !hasAttachedJavadoc) message = CorextMessages.JavaDocLocations_noAttachments; else if (!hasAttachedJavadoc && !hasSource) message = CorextMessages.JavaDocLocations_noAttachedJavadoc; else if (!hasAttachedSource) message = CorextMessages.JavaDocLocations_noAttachedSource; else if (!hasSource) message = CorextMessages.JavaDocLocations_noInformation; } } catch (JavaModelException e) { message = CorextMessages.JavaDocLocations_error_gettingJavadoc; LOG.error(message, e); } return message; }
From source file:com.drgarbage.bytecodevisualizer.editors.NoSourceViewer.java
License:Apache License
private void createSourceAttachmentControls(Composite composite, IPackageFragmentRoot root) throws JavaModelException { IClasspathEntry entry;//www . j a va2s . c om try { entry = root.getRawClasspathEntry(); } catch (JavaModelException ex) { if (ex.isDoesNotExist()) entry = null; else throw ex; } IPath containerPath = null; if (entry == null || root.getKind() != IPackageFragmentRoot.K_BINARY) { String s = CoreMessages.SourceAttachmentForm_message_noSource; createLabel(composite, MessageFormat.format(s, new Object[] { fFile.getElementName() })); return; } IJavaProject jproject = root.getJavaProject(); if (entry.getEntryKind() == IClasspathEntry.CPE_CONTAINER) { containerPath = entry.getPath(); ClasspathContainerInitializer initializer = JavaCore .getClasspathContainerInitializer(containerPath.segment(0)); IClasspathContainer container = JavaCore.getClasspathContainer(containerPath, jproject); if (initializer == null || container == null) { createLabel(composite, MessageFormat.format(CoreMessages.SourceAttachmentForm_cannotconfigure, new Object[] { containerPath.toString() })); return; } String containerName = container.getDescription(); IStatus status = initializer.getSourceAttachmentStatus(containerPath, jproject); if (status.getCode() == ClasspathContainerInitializer.ATTRIBUTE_NOT_SUPPORTED) { createLabel(composite, MessageFormat.format(CoreMessages.SourceAttachmentForm_notsupported, new Object[] { containerName })); return; } if (status.getCode() == ClasspathContainerInitializer.ATTRIBUTE_READ_ONLY) { createLabel(composite, MessageFormat.format(CoreMessages.SourceAttachmentForm_readonly, new Object[] { containerName })); return; } entry = JavaModelUtil.findEntryInContainer(container, root.getPath()); Assert.isNotNull(entry); } Button button; String msg = null; String btnText = null; IPath path = entry.getSourceAttachmentPath(); if (path == null || path.isEmpty()) { msg = MessageFormat.format(CoreMessages.SourceAttachmentForm_message_noSourceAttachment, new Object[] { root.getElementName() }); btnText = CoreMessages.SourceAttachmentForm_button_attachSource; } else { msg = MessageFormat.format(CoreMessages.SourceAttachmentForm_message_noSourceInAttachment, new Object[] { fFile.getElementName() }); btnText = CoreMessages.SourceAttachmentForm_button_changeAttachedSource; } createLabel(composite, msg); createLabel(composite, CoreMessages.SourceAttachmentForm_message_pressButtonToAttach); createLabel(composite, null); button = createButton(composite, btnText); button.addSelectionListener(createButtonListener(entry, containerPath, jproject)); }
From source file:com.ebmwebsourcing.petals.common.internal.projectscnf.JarFragmentFilter.java
License:Open Source License
@Override public boolean select(Viewer viewer, Object parentElement, Object element) { IPackageFragmentRoot fragmentRoot = null; if (element instanceof IPackageFragmentRoot) { fragmentRoot = (IPackageFragmentRoot) element; } else if (element instanceof TreePath) { Object o = ((TreePath) element).getFirstSegment(); if (o instanceof IPackageFragmentRoot) fragmentRoot = (IPackageFragmentRoot) o; }// w w w .j a v a 2s.c om boolean result = true; try { if (fragmentRoot != null) { result = fragmentRoot.getKind() != IPackageFragmentRoot.K_BINARY; } } catch (JavaModelException e) { PetalsCommonPlugin.log(e, IStatus.ERROR); } return result; }
From source file:com.ebmwebsourcing.petals.common.internal.provisional.projectscnf.PetalsProjectsSorter.java
License:Open Source License
/** * Compares Java elements./*from w w w. jav a 2 s . c o m*/ * @param j1 * @param j2 * @return an integer for sorting (0 if equivalent, <0 to display j1 first, >0 to display j2 first) */ private int compareJavaElements(IJavaElement j1, IJavaElement j2) { // Fragment roots have a special treatment if (j1 instanceof IPackageFragmentRoot && j2 instanceof IPackageFragmentRoot) { IPackageFragmentRoot p1 = (IPackageFragmentRoot) j1; IPackageFragmentRoot p2 = (IPackageFragmentRoot) j2; try { if (p1.getKind() == p2.getKind()) return p1.getElementName().compareTo(p2.getElementName()); else if (p1.getKind() == IPackageFragmentRoot.K_SOURCE) return -1; else return 1; } catch (JavaModelException e) { PetalsCommonPlugin.log(e, IStatus.ERROR); } return p1.getElementName().compareTo(p2.getElementName()); } // Otherwise, it depends on the element type if (j1.getElementType() == j2.getElementType()) return j1.getElementName().compareTo(j2.getElementName()); else return j1.getElementType() - j2.getElementType(); }
From source file:com.ecfeed.ui.common.utils.EclipsePackageFragmentGetter.java
License:Open Source License
private static IPackageFragmentRoot getAnySourceFolder(IFileInfoProvider fFileInfoProvider) throws CoreException { if (fFileInfoProvider.getProject().hasNature(JavaCore.NATURE_ID)) { IJavaProject project = JavaCore.create(fFileInfoProvider.getProject()); for (IPackageFragmentRoot packageFragmentRoot : project.getPackageFragmentRoots()) { if (packageFragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE) { return packageFragmentRoot; }/* w ww. j av a2 s . c o m*/ } } return null; }
From source file:com.github.ko2ic.plugin.eclipse.taggen.core.ui.components.combo.OutputFolderCombo.java
License:Open Source License
public OutputFolderCombo(Composite parent, int style) { IWorkspace workspace = ResourcesPlugin.getWorkspace(); IWorkspaceRoot root = workspace.getRoot(); IProject[] projects = root.getProjects(); for (IProject project : projects) { try {/* w w w. j a v a 2 s .com*/ IJavaProject javaProject = JavaCore.create(project); IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots(); for (IPackageFragmentRoot pRoot : roots) { if (pRoot.getKind() == IPackageFragmentRoot.K_SOURCE) { outputFolders.add(pRoot.getPath().removeFirstSegments(1).toOSString()); } } } catch (JavaModelException e) { throw Throwables.propagate(new SystemException(e)); } } outputFolderCombo = new Combo(parent, style); }
From source file:com.google.appengine.eclipse.core.properties.GaeProjectProperties.java
License:Open Source License
public static List<IPath> getOrmEnhancementInclusionPatterns(IProject project) { List<IPath> patterns = new ArrayList<IPath>(); IEclipsePreferences prefs = getProjectProperties(project); String rawPropVal = prefs.get(ORM_ENHANCEMENT_INCLUSIONS, null); if (rawPropVal == null) { // If we haven't set this property yet, default to including all Java src IJavaProject javaProject = JavaCore.create(project); try {//from w w w.j a v a 2s . c om for (IPackageFragmentRoot pkgRoot : javaProject.getAllPackageFragmentRoots()) { if (pkgRoot.getKind() == IPackageFragmentRoot.K_SOURCE) { // Only include src roots in this project if (javaProject.equals(pkgRoot.getAncestor(IJavaElement.JAVA_PROJECT))) { // Get project-relative path to source root IPath pattern = pkgRoot.getPath().removeFirstSegments(1).makeRelative() .addTrailingSeparator(); patterns.add(pattern); } } } } catch (JavaModelException e) { AppEngineCorePluginLog.logError(e); } } else { patterns = PropertiesUtilities.deserializePaths(rawPropVal); } return patterns; }
From source file:com.google.gdt.eclipse.appengine.rpc.util.JavaUtils.java
License:Open Source License
/** * Get the source folder for this project. If there is a source folder called * "src" it will be returned. If not, the first source folder found will be * returned (or <code>null</code> if none is found). *//*from w w w .ja v a2 s . co m*/ public static IPackageFragmentRoot getSourcePackageFragmentRoot(IJavaProject javaProject) throws JavaModelException { IPackageFragmentRoot firstSourceFolder = null; for (IPackageFragmentRoot fragmentRoot : javaProject.getPackageFragmentRoots()) { if (fragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE) { // prefer "src" if (fragmentRoot.getElementName().equals("src")) { //$NON-NLS-1$ return fragmentRoot; } // cache first found if (firstSourceFolder != null) { firstSourceFolder = fragmentRoot; } } } // fall back on first return firstSourceFolder; }