Example usage for org.eclipse.jdt.core.dom TagElement getAST

List of usage examples for org.eclipse.jdt.core.dom TagElement getAST

Introduction

In this page you can find the example usage for org.eclipse.jdt.core.dom TagElement getAST.

Prototype

public final AST getAST() 

Source Link

Document

Returns this node's AST.

Usage

From source file:com.android.icu4j.srcgen.ReplaceIcuTags.java

License:Apache License

@Override
protected boolean visitTagElement(Reporter reporter, ASTRewrite rewrite, TagElement tag) {
    String tagName = tag.getTagName();
    if (tagName != null) {
        AST ast = tag.getAST();
        List<IDocElement> fragments = tag.fragments();
        if (tagName.equalsIgnoreCase("@icu")) {
            // ICU replaces {@icu __usage__} with "Methods, fields, and other functionality specific to
            // ICU are labeled '[icu]'"
            // ICU replaces {@icu} with [icu]
            if (fragments.size() == 0) {
                rewrite.replace(tag, createIcuMarker(ast), null /* editGroup */);
            } else {
                IDocElement element = fragments.get(0);
                if (element.toString().trim().equalsIgnoreCase("_usage_")) {
                    rewrite.replace(tag, createIcuUsageText(ast), null /* editGroup */);
                } else {
                    throw new AssertionError("Unknown Javadoc tag: " + tag);
                }/*from   w  ww  .  ja v  a 2 s.c  o  m*/
            }
            return false;
        } else if (tagName.equalsIgnoreCase("@icuenhanced")) {
            // ICU replaces {@icuenhanced <classname>} with "[icu enhancement] ICU's replacement for
            // <classname>"
            IDocElement element = fragments.get(0);
            rewrite.replace(tag, createIcuEnhancementText(ast, element), null /* editGroup */);
            return false;
        } else if (tagName.equalsIgnoreCase("@icunote")) {
            // ICU replaces {@icunote} with "[icu] Note:"
            rewrite.replace(tag, createIcuNoteText(ast), null /* editGroup */);
            return false;
        } else if (tagName.equalsIgnoreCase("@discouraged")) {
            // ICU replaces {@discouraged} with "Discouraged:"
            IDocElement element = fragments.get(0);
            rewrite.replace(tag, createDiscouragedText(ast, element), null /* editGroup */);
            return false;
        }
    }
    return true;
}

From source file:de.akra.idocit.java.services.SimpleJavadocGenerator.java

License:Apache License

@SuppressWarnings("unchecked")
private List<TagElement> mergeTagElements(final List<TagElement> unmergedTagElements) {
    final List<TagElement> mergedTagElements = new ArrayList<TagElement>();

    if ((unmergedTagElements != null) && !unmergedTagElements.isEmpty()) {
        int elementIndex = 0;
        TagElement currentElement = unmergedTagElements.get(elementIndex);

        // Look for the first "not empty"-element.
        while (isEmptyElement(currentElement) && (elementIndex < unmergedTagElements.size())) {
            elementIndex++;/*from   w  ww  . j av a2 s . c om*/
        }

        // Was our search for a "not empty" element successful?
        if (!isEmptyElement(currentElement)) {
            TagElement lastElement = currentElement;
            StringBuffer lastElementText = new StringBuffer();
            lastElementText.append(readFragments(lastElement).trim());

            for (int i = elementIndex + 1; i < unmergedTagElements.size(); i++) {
                currentElement = unmergedTagElements.get(i);

                if (!isEmptyElement(currentElement)) {
                    if (currentElement.getTagName() == null) {
                        if (!lastElementText.toString().endsWith(JavadocUtils.NEW_LINE)) {
                            lastElementText.append(JavadocUtils.NEW_LINE);
                        }

                        if (!lastElementText.toString().endsWith(StringUtils.SPACE)) {
                            lastElementText.append(StringUtils.SPACE);
                        }
                        final String curElemText = readFragments(currentElement).trim();
                        lastElementText.append(curElemText);
                    } else {
                        lastElement.fragments().clear();
                        final TextElement newFragment = lastElement.getAST().newTextElement();
                        newFragment.setText(lastElementText.toString().trim());
                        lastElement.fragments().add(newFragment);

                        mergedTagElements.add(lastElement);

                        lastElement = currentElement;
                        lastElementText = new StringBuffer();
                        lastElementText.append(readFragments(lastElement).trim());
                    }
                }
            }

            lastElement.fragments().clear();
            final TextElement newFragment = lastElement.getAST().newTextElement();
            newFragment.setText(lastElementText.toString().trim());
            lastElement.fragments().add(newFragment);
            mergedTagElements.add(lastElement);
        }
    }

    return mergedTagElements;
}

From source file:org.eclipse.wb.internal.core.utils.ast.AstEditor.java

License:Open Source License

private void setJavadocTagText_replaceFragments(TagElement tagElement, String tagText) throws Exception {
    List<ASTNode> fragments = DomGenerics.fragments(tagElement);
    // replace source
    int fragmentsPosition;
    if (!fragments.isEmpty()) {
        ASTNode firstFragment = fragments.get(0);
        fragmentsPosition = AstNodeUtils.getSourceBegin(firstFragment);
        int fragmentsLength = AstNodeUtils.getSourceEnd(tagElement) - fragmentsPosition;
        replaceSubstring(fragmentsPosition, fragmentsLength, tagText);
    } else {/*from   w ww. ja  va2s .  c  om*/
        fragmentsPosition = AstNodeUtils.getSourceEnd(tagElement);
        replaceSubstring(fragmentsPosition, 0, tagText);
        AstNodeUtils.setSourceLength(tagElement, tagElement.getLength() + tagText.length());
    }
    // replace fragments
    fragments.clear();
    TextElement textElement = tagElement.getAST().newTextElement();
    textElement.setSourceRange(fragmentsPosition, tagText.length());
    textElement.setText(tagText);
    fragments.add(textElement);
}

From source file:org.spoofax.interpreter.adapter.ecj.ECJFactory.java

License:LGPL

private TagElement asTagElement(IStrategoTerm term) {
    TagElement x = ((WrappedTagElement) term).getWrappee();
    return x.getParent() == null && x.getAST() == ast ? x : (TagElement) ASTNode.copySubtree(ast, x);
}