Example usage for org.eclipse.jdt.core IJavaElement exists

List of usage examples for org.eclipse.jdt.core IJavaElement exists

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IJavaElement exists.

Prototype

boolean exists();

Source Link

Document

Returns whether this Java element exists in the model.

Usage

From source file:org.eclipse.mylyn.internal.java.ui.search.AbstractJavaRelationProvider.java

License:Open Source License

@Override
protected void findRelated(final IInteractionElement node, int degreeOfSeparation) {
    if (node == null) {
        return;/*ww  w. j a  v  a2 s.co m*/
    }
    if (node.getContentType() == null) {
        StatusHandler.log(new Status(IStatus.WARNING, JavaUiBridgePlugin.ID_PLUGIN, "Null content type for: " //$NON-NLS-1$
                + node));
        return;
    }
    if (!node.getContentType().equals(JavaStructureBridge.CONTENT_TYPE)) {
        return;
    }
    IJavaElement javaElement = JavaCore.create(node.getHandleIdentifier());
    if (!acceptElement(javaElement) || !javaElement.exists() || javaElement instanceof IInitializer) {
        return;
    }

    IJavaSearchScope scope = createJavaSearchScope(javaElement, degreeOfSeparation);
    if (scope != null) {
        runJob(node, degreeOfSeparation, getId());
    }
}

From source file:org.eclipse.mylyn.internal.java.ui.search.AbstractJavaRelationProvider.java

License:Open Source License

private IJavaSearchScope createJavaSearchScope(IJavaElement element, int degreeOfSeparation) {
    Set<IInteractionElement> landmarks = ContextCore.getContextManager().getActiveLandmarks();
    List<IInteractionElement> interestingElements = ContextCore.getContextManager().getActiveContext()
            .getInteresting();//  ww w .j ava2s  .  c o  m

    Set<IJavaElement> searchElements = new HashSet<IJavaElement>();
    int includeMask = IJavaSearchScope.SOURCES;
    if (degreeOfSeparation == 1) {
        for (IInteractionElement landmark : landmarks) {
            AbstractContextStructureBridge bridge = ContextCore.getStructureBridge(landmark.getContentType());
            if (includeNodeInScope(landmark, bridge)) {
                Object o = bridge.getObjectForHandle(landmark.getHandleIdentifier());
                if (o instanceof IJavaElement) {
                    IJavaElement landmarkElement = (IJavaElement) o;
                    if (landmarkElement.exists()) {
                        if (landmarkElement instanceof IMember && !landmark.getInterest().isPropagated()) {
                            searchElements.add(((IMember) landmarkElement).getCompilationUnit());
                        } else if (landmarkElement instanceof ICompilationUnit) {
                            searchElements.add(landmarkElement);
                        }
                    }
                }
            }
        }
    } else if (degreeOfSeparation == 2) {
        for (IInteractionElement interesting : interestingElements) {
            AbstractContextStructureBridge bridge = ContextCore
                    .getStructureBridge(interesting.getContentType());
            if (includeNodeInScope(interesting, bridge)) {
                Object object = bridge.getObjectForHandle(interesting.getHandleIdentifier());
                if (object instanceof IJavaElement) {
                    IJavaElement interestingElement = (IJavaElement) object;
                    if (interestingElement.exists()) {
                        if (interestingElement instanceof IMember
                                && !interesting.getInterest().isPropagated()) {
                            searchElements.add(((IMember) interestingElement).getCompilationUnit());
                        } else if (interestingElement instanceof ICompilationUnit) {
                            searchElements.add(interestingElement);
                        }
                    }
                }
            }
        }
    } else if (degreeOfSeparation == 3 || degreeOfSeparation == 4) {
        for (IInteractionElement interesting : interestingElements) {
            AbstractContextStructureBridge bridge = ContextCore
                    .getStructureBridge(interesting.getContentType());
            if (includeNodeInScope(interesting, bridge)) {
                // TODO what to do when the element is not a java element,
                // how determine if a javaProject?
                IResource resource = ResourcesUiBridgePlugin.getDefault().getResourceForElement(interesting,
                        true);
                if (resource != null) {
                    IProject project = resource.getProject();
                    if (project != null && JavaProject.hasJavaNature(project) && project.exists()) {
                        IJavaProject javaProject = JavaCore.create(project);// ((IJavaElement)o).getJavaProject();
                        if (javaProject != null && javaProject.exists()) {
                            searchElements.add(javaProject);
                        }
                    }
                }
            }
        }
        if (degreeOfSeparation == 4) {

            includeMask = IJavaSearchScope.SOURCES | IJavaSearchScope.APPLICATION_LIBRARIES
                    | IJavaSearchScope.SYSTEM_LIBRARIES;
        }
    } else if (degreeOfSeparation == 5) {
        return SearchEngine.createWorkspaceScope();
    }

    if (searchElements.size() == 0) {
        return null;
    } else {
        IJavaElement[] elements = new IJavaElement[searchElements.size()];
        int j = 0;
        for (IJavaElement searchElement : searchElements) {
            elements[j] = searchElement;
            j++;
        }
        return SearchEngine.createJavaSearchScope(elements, includeMask);
    }
}

From source file:org.eclipse.mylyn.internal.java.ui.search.AbstractJavaRelationProvider.java

License:Open Source License

@Override
public IActiveSearchOperation getSearchOperation(IInteractionElement node, int limitTo,
        int degreeOfSeparation) {
    IJavaElement javaElement = JavaCore.create(node.getHandleIdentifier());
    if (javaElement == null || !javaElement.exists()) {
        return null;
    }//from w ww.java2  s .c om

    IJavaSearchScope scope = createJavaSearchScope(javaElement, degreeOfSeparation);

    if (scope == null) {
        return null;
    }

    QuerySpecification specs = new ElementQuerySpecification(javaElement, limitTo, scope,
            Messages.AbstractJavaRelationProvider_Mylyn_degree_of_separation + degreeOfSeparation);

    return new JavaSearchOperation(specs);
}

From source file:org.eclipse.mylyn.internal.java.ui.search.JavaActiveSearchResultUpdater.java

License:Open Source License

private void handleRemoved(Set removedElements) {
    Object[] elements = fResult.getElements();
    for (Object element : elements) {
        if (isContainedInRemoved(removedElements, element)) {
            if (element instanceof IJavaElement) {
                IJavaElement je = (IJavaElement) element;
                if (!je.exists()) {
                    Match[] matches = fResult.getMatches(element);
                    for (Match matche : matches) {
                        fResult.removeMatch(matche);
                    }//w w  w  . j  a v  a  2s  . c o m
                    // XXX remove edge and element
                }
            } else if (element instanceof IResource) {
                IResource resource = (IResource) element;
                if (!resource.exists()) {
                    Match[] matches = fResult.getMatches(element);
                    for (Match matche : matches) {
                        fResult.removeMatch(matche);
                    }
                    // XXX remove edge and element
                }

            }
        }
    }
}

From source file:org.eclipse.mylyn.internal.pde.ui.XmlJavaRelationProvider.java

License:Open Source License

@Override
protected void findRelated(final IInteractionElement node, int degreeOfSeparation) {
    if (!node.getContentType().equals("java")) { //$NON-NLS-1$
        return;//from   w ww .  j  a va  2  s. co m
    }
    IJavaElement javaElement = JavaCore.create(node.getHandleIdentifier());
    if (javaElement == null || javaElement instanceof ICompilationUnit || !javaElement.exists()) {
        return;
    }
    if (!acceptElement(javaElement)) {
        return;
    }

    TextSearchScope scope = createTextSearchScope(degreeOfSeparation);
    if (scope != null) {
        runJob(node, javaElement, degreeOfSeparation, getId());
    }
}

From source file:org.eclipse.mylyn.internal.sandbox.bridge.bugs.BugzillaReferencesProvider.java

License:Open Source License

protected boolean acceptElement(IJavaElement javaElement) {
    return javaElement != null && (javaElement instanceof IMember || javaElement instanceof IType)
            && javaElement.exists();
}

From source file:org.eclipse.mylyn.internal.sandbox.ui.JavaContextLabelProvider.java

License:Open Source License

private String getTextForElement(IJavaElement element) {
    if (DelegatingContextLabelProvider.isQualifyNamesMode()) {
        if (element instanceof IMember && !(element instanceof IType)) {
            String parentName = ((IMember) element).getParent().getElementName();
            if (parentName != null && parentName != "") {
                return parentName + '.' + super.getText(element);
            }/* ww  w. j  a v  a 2s  .c  om*/
        }
    }
    if (element.exists()) {
        return super.getText(element);
    } else {
        return LABEL_ELEMENT_MISSING;
    }
}

From source file:org.eclipse.mylyn.internal.sandbox.ui.views.ContextHierarchyView.java

License:Open Source License

/**
 * Public for testing./*from  ww  w.j  av a2 s.  c  om*/
 */
public void refreshHierarchy(boolean asyncRefreshMode) {
    try {
        if (root != null && root.getChildren().length > 0) {
            root.removeAllChildren();
        }
        nodeMap.clear();
        Set<IInteractionElement> landmarks = ContextCore.getContextManager().getActiveLandmarks();
        for (IInteractionElement node : landmarks) {
            IJavaElement element = null;
            if (node.getContentType().equals(JavaStructureBridge.CONTENT_TYPE)) {
                element = JavaCore.create(node.getHandleIdentifier());
            }
            if (element != null && element instanceof IType && element.exists()) {
                IType type = (IType) element;
                ITypeHierarchy hierarchy = type.newSupertypeHierarchy(null);
                if (hierarchy != null) {
                    IType[] supertypes = hierarchy.getAllSuperclasses(type);
                    List<IType> hierarchyTypes = new ArrayList<IType>(Arrays.asList(supertypes));
                    Collections.reverse(hierarchyTypes);
                    hierarchyTypes.add(type);
                    addHierarchy(root, hierarchyTypes);
                }
            }
        }

        if (!asyncRefreshMode) { // for testing
            refreshViewer();
        } else {
            PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
                public void run() {
                    refreshViewer();
                }
            });
        }
    } catch (Throwable t) {
        StatusHandler
                .log(new Status(IStatus.ERROR, JavaUiBridgePlugin.ID_PLUGIN, "Could not update viewer", t));
    }
}

From source file:org.eclipse.objectteams.otdt.internal.core.ext.ResourceMarkable.java

License:Open Source License

public boolean exists() {
    if (!this.fResource.exists())
        return false;
    IJavaElement javaElement = getJavaElement();
    do {//from  www. j ava 2  s. c o m
        if (!javaElement.exists())
            return false;
        javaElement = javaElement.getParent();
    } while (javaElement.getElementType() != IJavaElement.PACKAGE_FRAGMENT_ROOT);
    return true;
}

From source file:org.eclipse.objectteams.otdt.internal.core.MethodMapping.java

License:Open Source License

public boolean exists() {
    IJavaElement myParent = getParent();
    if (!myParent.exists())
        return false;
    try {//ww  w .  j ava2 s .com
        for (IJavaElement child : ((IType) myParent).getChildren())
            if (this.equals(child)) {
                // side-effect: fetch source range:
                if (this != child && this.declarationSourceStart == 0) {
                    MethodMapping other = (MethodMapping) child;
                    this.declarationSourceStart = other.declarationSourceStart;
                    this.declarationSourceEnd = other.declarationSourceEnd;
                    this.sourceStart = other.sourceStart;
                    this.sourceEnd = other.sourceEnd;
                }
                return true;
            }
    } catch (JavaModelException e) {
        /* nop, will return false */ }
    return false;
}