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

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

Introduction

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

Prototype

ISourceRange getJavadocRange() throws JavaModelException;

Source Link

Document

Returns the Javadoc range if this element is from source or if this element is a binary element with an attached source, null otherwise.

Usage

From source file:at.bestsolution.fxide.jdt.editor.JDTJavaDocSupport.java

License:Open Source License

private static HtmlString getMemberJavaDoc(IMember member) throws JavaModelException {
    IBuffer buf = member.getOpenable().getBuffer();
    if (buf != null) {
        ISourceRange javadocRange = member.getJavadocRange();
        if (javadocRange != null) {
            String rawJavadoc = buf.getText(javadocRange.getOffset(), javadocRange.getLength());
            return JDTJavaDocSupport.toHtml(member, rawJavadoc);
        }//from   ww  w  . ja va2  s .  co m
    }
    return null;
}

From source file:at.bestsolution.fxide.jdt.text.javadoc.JavadocContentAccess.java

License:Open Source License

/**
 * Gets a reader for an IMember's Javadoc comment content from the source attachment.
 * The content does contain only the text from the comment without the Javadoc leading star characters.
 * Returns <code>null</code> if the member does not contain a Javadoc comment or if no source is available.
 * @param member The member to get the Javadoc of.
 * @return Returns a reader for the Javadoc comment content or <code>null</code> if the member
 * does not contain a Javadoc comment or if no source is available
 * @throws JavaModelException is thrown when the elements javadoc can not be accessed
 * @since 3.4//from w w  w  . ja v a 2s .  c  om
 */
private static Reader internalGetContentReader(IMember member) throws JavaModelException {
    IBuffer buf = member.getOpenable().getBuffer();
    if (buf == null) {
        return null; // no source attachment found
    }

    ISourceRange javadocRange = member.getJavadocRange();
    if (javadocRange != null) {
        JavaDocCommentReader reader = new JavaDocCommentReader(buf, javadocRange.getOffset(),
                javadocRange.getOffset() + javadocRange.getLength() - 1);
        if (!containsOnlyInheritDoc(reader, javadocRange.getLength())) {
            reader.reset();
            return reader;
        }
    }

    return null;
}

From source file:at.bestsolution.fxide.jdt.text.javadoc.JavadocContentAccess2.java

License:Open Source License

private static String getHTMLContentFromSource(IJavaElement element) throws JavaModelException {
    IMember member;
    if (element instanceof ILocalVariable) {
        member = ((ILocalVariable) element).getDeclaringMember();
    } else if (element instanceof ITypeParameter) {
        member = ((ITypeParameter) element).getDeclaringMember();
    } else if (element instanceof IMember) {
        member = (IMember) element;//from   w  ww .j a v a 2s .  com
    } else {
        return null;
    }

    IBuffer buf = member.getOpenable().getBuffer();
    if (buf == null) {
        return null; // no source attachment found
    }

    ISourceRange javadocRange = member.getJavadocRange();
    if (javadocRange == null) {
        if (canInheritJavadoc(member)) {
            // Try to use the inheritDoc algorithm.
            String inheritedJavadoc = javadoc2HTML(member, element, "/***/"); //$NON-NLS-1$
            if (inheritedJavadoc != null && inheritedJavadoc.length() > 0) {
                return inheritedJavadoc;
            }
        }
        return getJavaFxPropertyDoc(member);
    }

    String rawJavadoc = buf.getText(javadocRange.getOffset(), javadocRange.getLength());
    return javadoc2HTML(member, element, rawJavadoc);
}

From source file:com.codenvy.ide.ext.java.server.internal.codeassist.SelectionEngine.java

License:Open Source License

private Object findMethodWithAttachedDocInHierarchy(final MethodBinding method) throws JavaModelException {
    ReferenceBinding type = method.declaringClass;
    final SelectionRequestor requestor1 = (SelectionRequestor) this.requestor;
    return new InheritDocVisitor() {
        public Object visit(ReferenceBinding currType) throws JavaModelException {
            MethodBinding overridden = findOverriddenMethodInType(currType, method);
            if (overridden == null)
                return InheritDocVisitor.CONTINUE;
            TypeBinding args[] = overridden.parameters;
            String names[] = new String[args.length];
            for (int i = 0; i < args.length; i++) {
                names[i] = Signature.createTypeSignature(args[i].sourceName(), false);
            }/*  ww w .  ja v a 2  s.  c o  m*/
            IMember member = (IMember) requestor1.findMethodFromBinding(overridden, names,
                    overridden.declaringClass);
            if (member == null)
                return InheritDocVisitor.CONTINUE;
            if (member.getAttachedJavadoc(null) != null) {
                // for binary methods with attached javadoc and no source attached
                return overridden;
            }
            IOpenable openable = member.getOpenable();
            if (openable == null)
                return InheritDocVisitor.CONTINUE;
            IBuffer buf = openable.getBuffer();
            if (buf == null) {
                // no source attachment found. This method maybe the one. Stop.
                return InheritDocVisitor.STOP_BRANCH;
            }

            ISourceRange javadocRange = member.getJavadocRange();
            if (javadocRange == null)
                return InheritDocVisitor.CONTINUE; // this method doesn't have javadoc, continue to look.
            String rawJavadoc = buf.getText(javadocRange.getOffset(), javadocRange.getLength());
            if (rawJavadoc != null) {
                return overridden;
            }
            return InheritDocVisitor.CONTINUE;
        }
    }.visitInheritDoc(type);
}

From source file:com.codenvy.ide.ext.java.server.javadoc.JavadocContentAccess2.java

License:Open Source License

private static String getHTMLContentFromSource(IMember member, String urlPrefix) throws JavaModelException {
    IBuffer buf = member.getOpenable().getBuffer();
    if (buf == null) {
        return null; // no source attachment found
    }//from  w w  w. ja  v a  2s  .c  o m

    ISourceRange javadocRange = member.getJavadocRange();
    if (javadocRange == null) {
        if (canInheritJavadoc(member)) {
            // Try to use the inheritDoc algorithm.
            String inheritedJavadoc = javadoc2HTML(member, "/***/", urlPrefix); //$NON-NLS-1$
            if (inheritedJavadoc != null && inheritedJavadoc.length() > 0) {
                return inheritedJavadoc;
            }
        }
        return null;// getJavaFxPropertyDoc(member);
    }

    String rawJavadoc = buf.getText(javadocRange.getOffset(), javadocRange.getLength());
    return javadoc2HTML(member, rawJavadoc, urlPrefix);
}

From source file:com.curlap.orb.plugin.common.CurlSpecUtil.java

License:Open Source License

public static String getCurlDocString(IMember iMember) throws JavaModelException {
    ISourceRange range = iMember.getJavadocRange();
    if (range == null)
        return null;

    IBuffer buf = iMember.getOpenable().getBuffer();
    JavaDocCommentReader reader = new JavaDocCommentReader(buf, range.getOffset(),
            range.getOffset() + range.getLength() - 1);
    StringBuffer javadocBuf = new StringBuffer();
    char[] buffer = new char[1024];
    int count;/* www  .  j av  a  2s .  c o  m*/
    try {
        while ((count = reader.read(buffer)) != -1)
            javadocBuf.append(buffer, 0, count);
    } catch (IOException e) {
        return null;
    }
    return javadocBuf.toString();
}

From source file:com.ecfeed.ui.common.JavaDocSupport.java

License:Open Source License

private static String getJavadoc(IMember member) {
    if (member != null) {
        try {//from   w w w  . j a  va  2  s  . c  o  m
            ICompilationUnit unit = member.getCompilationUnit();
            ISourceRange range = member.getJavadocRange();
            if (unit != null && range != null) {
                String raw = unit.getSource().substring(range.getOffset(),
                        range.getOffset() + range.getLength());
                String trimmed = raw.replaceAll("\\n\\s*\\*", EMPTY_STRING + "\n*");
                return trimmed;
            }
        } catch (JavaModelException e) {
            SystemLogger.logCatch(e.getMessage());
        }
    }
    return null;
}

From source file:com.ecfeed.ui.common.JavaDocSupport.java

License:Open Source License

private static void exportJavadoc(IMember member, String comments) throws JavaModelException {
    if (member != null) {
        if (comments == null || comments.length() == 0) {
            removeJavadoc(member);//w w w .ja  v a2  s  .c om
        } else {
            ISourceRange currentJavaDocRange = member.getJavadocRange();
            TextEdit edit = null;
            String indent = getIndent(member);
            if (currentJavaDocRange != null) {
                String javadoc = addJavadocFormatting(comments, indent);
                edit = new ReplaceEdit(currentJavaDocRange.getOffset(), currentJavaDocRange.getLength(),
                        javadoc);
            } else if (member.getSourceRange().getOffset() >= 0) {
                boolean moveToNewLine = false;
                if (indent.matches("\\s*") == false) {
                    indent = trimIndent(indent);
                    moveToNewLine = true;
                }
                String javadoc = addJavadocFormatting(comments, indent);
                String comment = javadoc + "\n" + indent;
                if (moveToNewLine) {
                    comment = "\n" + indent + comment;
                }
                edit = new InsertEdit(member.getSourceRange().getOffset(), comment);
            }
            if (edit != null) {
                ICompilationUnit unit = member.getCompilationUnit();
                if (unit != null) {
                    unit.becomeWorkingCopy(null);
                    unit.applyTextEdit(edit, null);
                    unit.commitWorkingCopy(true, null);
                }
            }
        }
    }
}

From source file:com.ecfeed.ui.common.JavaDocSupport.java

License:Open Source License

private static void removeJavadoc(IMember member) throws JavaModelException {
    ISourceRange currentJavaDocRange = member.getJavadocRange();
    if (currentJavaDocRange != null) {
        ICompilationUnit unit = member.getCompilationUnit();
        String source = unit.getSource();
        int offset = currentJavaDocRange.getOffset();
        int length = currentJavaDocRange.getLength();
        while (((Character) source.charAt(offset + length)).toString().matches("\\s")) {
            ++length;//  www  .  j  a va 2  s.  c  o  m
        }

        unit.applyTextEdit(new DeleteEdit(offset, length), null);
        unit.commitWorkingCopy(false, null);
    }
}

From source file:com.testify.ecfeed.ui.common.JavaDocSupport.java

License:Open Source License

private static String getJavadoc(IMember member) {
    if (member != null) {
        try {//  w ww .  ja  v a2  s . c om
            ICompilationUnit unit = member.getCompilationUnit();
            ISourceRange range = member.getJavadocRange();
            if (unit != null && range != null) {
                String raw = unit.getSource().substring(range.getOffset(),
                        range.getOffset() + range.getLength());
                String trimmed = raw.replaceAll("\\n\\s*\\*", EMPTY_STRING + "\n*");
                return trimmed;
            }
        } catch (JavaModelException e) {
        }
    }
    return null;
}