Example usage for org.eclipse.jdt.core IMember getAncestor

List of usage examples for org.eclipse.jdt.core IMember getAncestor

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IMember getAncestor.

Prototype

IJavaElement getAncestor(int ancestorType);

Source Link

Document

Returns this Java element or the first ancestor of this element that has the given type.

Usage

From source file:at.bestsolution.fxide.jdt.corext.util.JavaModelUtil.java

License:Open Source License

/**
 * Evaluates if a member in the focus' element hierarchy is visible from
 * elements in a package.//from  ww w  . j  a  v a2s.  c o  m
 * @param member The member to test the visibility for
 * @param pack The package of the focus element focus
 * @return returns <code>true</code> if the member is visible from the package
 * @throws JavaModelException thrown when the member can not be accessed
 */
public static boolean isVisibleInHierarchy(IMember member, IPackageFragment pack) throws JavaModelException {
    int type = member.getElementType();
    if (type == IJavaElement.INITIALIZER
            || (type == IJavaElement.METHOD && member.getElementName().startsWith("<"))) { //$NON-NLS-1$
        return false;
    }

    int otherflags = member.getFlags();

    IType declaringType = member.getDeclaringType();
    if (Flags.isPublic(otherflags) || Flags.isProtected(otherflags)
            || (declaringType != null && isInterfaceOrAnnotation(declaringType))) {
        return true;
    } else if (Flags.isPrivate(otherflags)) {
        return false;
    }

    IPackageFragment otherpack = (IPackageFragment) member.getAncestor(IJavaElement.PACKAGE_FRAGMENT);
    return (pack != null && pack.equals(otherpack));
}

From source file:byke.DependencyAnalysis.java

License:Open Source License

private IJavaElement enclosingTypeOf(IMember element) {
    return element.getAncestor(IJavaElement.TYPE);
}

From source file:com.codenvy.ide.ext.java.server.JavadocFinder.java

License:Open Source License

private String getJavadoc(IMember element) {
    StringBuffer buffer = new StringBuffer();
    boolean hasContents = false;
    if (element instanceof IPackageFragment || element instanceof IMember) {
        HTMLPrinter.addSmallHeader(buffer, getInfoText(element, element.getTypeRoot(), true));
        buffer.append("<br>"); //$NON-NLS-1$
        addAnnotations(buffer, element, element.getTypeRoot(), null);
        Reader reader = null;/*from   w w  w.  j  a v  a  2s. c o  m*/
        try {
            String content = element instanceof IMember
                    ? JavadocContentAccess2.getHTMLContent(element, true, baseHref)
                    : null;//JavadocContentAccess2.getHTMLContent((IPackageFragment)element);
            IPackageFragmentRoot root = (IPackageFragmentRoot) element
                    .getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT);
            //                boolean isBinary = root.exists() && root.getKind() == IPackageFragmentRoot.K_BINARY;
            if (content != null) {
                //                base= JavaDocLocations.getBaseURL(element, isBinary);
                reader = new StringReader(content);
            } else {
                String explanationForMissingJavadoc = JavaDocLocations.getExplanationForMissingJavadoc(element,
                        root);
                if (explanationForMissingJavadoc != null)
                    reader = new StringReader(explanationForMissingJavadoc);
            }
        } catch (CoreException ex) {
            reader = new StringReader(JavaDocLocations.handleFailedJavadocFetch(ex));
        }

        if (reader != null) {
            HTMLPrinter.addParagraph(buffer, reader);
        }
        hasContents = true;
    }

    if (!hasContents)
        return null;

    if (buffer.length() > 0) {
        //todo use url for css
        HTMLPrinter.insertPageProlog(buffer, 0, getStyleSheet());
        //            if (base != null) {
        //                int endHeadIdx= buffer.indexOf("</head>"); //$NON-NLS-1$
        //                buffer.insert(endHeadIdx, "\n<base href='" + base + "'>\n"); //$NON-NLS-1$ //$NON-NLS-2$
        //            }
        HTMLPrinter.addPageEpilog(buffer);
        return buffer.toString();
    }

    return null;
}

From source file:edu.buffalo.cse.green.editor.controller.MemberPart.java

License:Open Source License

/**
 * @return The part's corresponding javadoc.
 *///from ww  w.ja v a 2s .  c  om
private String getJavaDoc() {
    final IMember element = (IMember) model().getJavaElement();
    int type = element.isBinary() ? CLASS_FILE : COMPILATION_UNIT;

    CompilationUnit cu = getEditor().getCompilationUnit(element.getAncestor(type));

    //If no source code attached for given element
    if (cu == null)
        return "";

    JavadocGrabber grabber = getJavadocGrabber();
    grabber.setElement(model().getMember());
    cu.accept(grabber);

    return grabber.getJavadoc();
}

From source file:edu.buffalo.cse.green.relationships.RelationshipVisitor.java

License:Open Source License

/**
 * @param element - The member element.//from   w  w  w  . j av a  2  s . c  om
 * @return A <code>CompilationUnit</code> representing the structure of the
 * source code of the element.
 */
public static CompilationUnit getCompilationUnit(IMember element) {
    ASTParser parser = ASTParser.newParser(AST.JLS3);
    parser.setResolveBindings(true);

    if (element.isBinary()) {
        parser.setSource((IClassFile) element.getAncestor(IJavaElement.CLASS_FILE));
    } else {
        parser.setSource((ICompilationUnit) element.getAncestor(IJavaElement.COMPILATION_UNIT));
    }

    return (CompilationUnit) parser.createAST(null);
}

From source file:org.eclipse.ajdt.internal.core.refactoring.ITDAccessorRenameParticipant.java

License:Open Source License

private List<SearchMatch> findPrivateAspectReferences() {
    List<SearchMatch> maybeMatches = findReferences(field);
    // now remove all matches that are not inside of aspects
    // We could be checking for privileged aspects here, but
    // I think it is better to be more general.
    for (Iterator<SearchMatch> matchIter = maybeMatches.iterator(); matchIter.hasNext();) {
        SearchMatch maybeMatch = matchIter.next();
        if (maybeMatch.getElement() instanceof IMember) {
            IMember member = (IMember) maybeMatch.getElement();
            if (!(member.getAncestor(IJavaElement.TYPE) instanceof AspectElement)) {
                matchIter.remove();/*from  ww w.  j  a v  a 2 s  .c  om*/
            }
        }
    }
    return maybeMatches;
}

From source file:org.eclipse.che.jdt.JavadocFinder.java

License:Open Source License

private String getJavadoc(IMember element) {
    StringBuffer buffer = new StringBuffer();
    boolean hasContents = false;
    if (element instanceof IPackageFragment || element instanceof IMember) {
        HTMLPrinter.addSmallHeader(buffer, getInfoText(element, element.getTypeRoot(), true));
        buffer.append("<br>"); //$NON-NLS-1$
        addAnnotations(buffer, element, element.getTypeRoot(), null);
        Reader reader = null;/*w  w w.  j  a  va 2s.  c  o m*/
        try {
            String content = element instanceof IMember
                    ? JavadocContentAccess2.getHTMLContent(element, true, baseHref)
                    : null;//JavadocContentAccess2.getHTMLContent((IPackageFragment)element);
            IPackageFragmentRoot root = (IPackageFragmentRoot) element
                    .getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT);
            if (content != null) {
                reader = new StringReader(content);
            } else {
                String explanationForMissingJavadoc = JavaDocLocations.getExplanationForMissingJavadoc(element,
                        root);
                if (explanationForMissingJavadoc != null)
                    reader = new StringReader(explanationForMissingJavadoc);
            }
        } catch (CoreException ex) {
            reader = new StringReader(JavaDocLocations.handleFailedJavadocFetch(ex));
        }

        if (reader != null) {
            HTMLPrinter.addParagraph(buffer, reader);
        }
        hasContents = true;
    }

    if (!hasContents)
        return null;

    if (buffer.length() > 0) {
        HTMLPrinter.insertPageProlog(buffer, 0, getStyleSheet());
        HTMLPrinter.addPageEpilog(buffer);
        return buffer.toString();
    }

    return null;
}

From source file:org.eclipse.che.jdt.util.JavaModelUtil.java

License:Open Source License

/**
 * Evaluates if a member (possible from another package) is visible from
 * elements in a package./*from  www .j  a v  a 2 s . c o m*/
 * @param member The member to test the visibility for
 * @param pack The package in focus
 * @return returns <code>true</code> if the member is visible from the package
 * @throws JavaModelException thrown when the member can not be accessed
 */
public static boolean isVisible(IMember member, IPackageFragment pack) throws JavaModelException {

    int type = member.getElementType();
    if (type == IJavaElement.INITIALIZER
            || (type == IJavaElement.METHOD && member.getElementName().startsWith("<"))) { //$NON-NLS-1$
        return false;
    }

    int otherflags = member.getFlags();
    IType declaringType = member.getDeclaringType();
    if (Flags.isPublic(otherflags) || (declaringType != null && isInterfaceOrAnnotation(declaringType))) {
        return true;
    } else if (Flags.isPrivate(otherflags)) {
        return false;
    }

    IPackageFragment otherpack = (IPackageFragment) member.getAncestor(IJavaElement.PACKAGE_FRAGMENT);
    return (pack != null && otherpack != null && isSamePackage(pack, otherpack));
}

From source file:org.eclipse.objectteams.otdt.internal.ui.callinmarkers.CallinMarkerCreator2.java

License:Open Source License

private void updateCallinMarker(IMarkableJavaElement target, IMember member, IProgressMonitor monitor)
        throws CoreException {
    // TODO(SH): in this scenario a search for all callins mentioning method should be faster.
    try {//from ww w  . j a  va 2s  .c o  m
        monitor.beginTask(
                NLS.bind(OTDTUIPlugin.getResourceString("CallinMarkerCreator2.updating_for_method_message"), //$NON-NLS-1$
                        new Object[] { member.getElementName() }),
                45);

        IResource resource = member.getResource();
        if (resource != null) // only called when base class changed -> source only.
        {
            CallinMarkerRemover.removeCallinMarker(member, resource);
            monitor.worked(5);

            // find direct roles:
            ArrayList<IType> allTypes = new ArrayList<IType>(1);
            allTypes.add((IType) member.getAncestor(IJavaElement.TYPE)); // TODO(SH): could be IOTType?
            Map<IMember, Set<IType>> playedByMap = OTSearchHelper.searchPlayedByBindings(allTypes,
                    new IJavaProject[] { member.getJavaProject() }, new MySubProgressMonitor(monitor, 20));
            if (playedByMap == null || playedByMap.isEmpty())
                return; // no base types or cancelled

            // collect all roles w/ subroles for use as search scope:
            IMember[] allRoleTypes = collectRolesAndSubroles(playedByMap,
                    new MySubProgressMonitor(monitor, 10));
            if (monitor.isCanceled())
                return;

            ArrayList<IMember> memberSet = new ArrayList<IMember>(1);
            memberSet.add(member);
            updateMethodMarkers(target, allRoleTypes, memberSet, new SubProgressMonitor(monitor, 10));
        }
    } finally {
        monitor.done();
    }
}

From source file:org.eclipse.objectteams.otdt.internal.ui.callinmarkers.UpdateRulerAction.java

License:Open Source License

private void insertTeamMenus(IMenuManager contextMenu, IMarker marker) throws CoreException {
    List<IMember> mappings = getMappings(marker);
    if (mappings == null)
        return;/*  w  w  w . j  a  v  a  2 s. co  m*/

    IMenuManager otMenu = getObjectTeamsMenu(contextMenu, marker.getType());

    for (IMember curMapping : mappings) {
        IType type = (IType) (curMapping.getAncestor(IJavaElement.TYPE));
        IOTType otType = OTModelManager.getOTElement(type); // FIXME(SH): doesn't find role files??? (try StubUtility2)
        if (otType == null || !otType.isRole())
            continue;

        IOTType teamType = ((IRoleType) otType).getTeam();

        IMenuManager curTeamMenu = null;

        if (!isSubMenuContained(otMenu, teamType.getElementName())) {
            curTeamMenu = new MenuManager(teamType.getElementName());
            otMenu.add(curTeamMenu);
        } else {
            curTeamMenu = getSubMenu(otMenu, teamType.getElementName());
        }
        String actLabel = getMappingLabel(type, curMapping);
        curTeamMenu.add(createOpenEditorAction(actLabel, curMapping));
    }
}