List of usage examples for org.eclipse.jdt.core.dom Javadoc TAGS_PROPERTY
ChildListPropertyDescriptor TAGS_PROPERTY
To view the source code for org.eclipse.jdt.core.dom Javadoc TAGS_PROPERTY.
Click Source Link
From source file:com.google.currysrc.api.process.JavadocUtils.java
License:Apache License
public static void addJavadocTag(ASTRewrite rewrite, Javadoc javadoc, String tagText) { AST ast = javadoc.getAST();//from ww w . jav a2 s.c o m TagElement tagElement = AstNodes.createTextTagElement(ast, tagText); ListRewrite listRewrite = rewrite.getListRewrite(javadoc, Javadoc.TAGS_PROPERTY); listRewrite.insertLast(tagElement, null /* editGroup */); }
From source file:org.eclipse.objectteams.otdt.internal.refactoring.otrefactorings.rolefile.MoveToRoleFileRefactoring.java
License:Open Source License
@Override public Change createChange(IProgressMonitor pm) throws CoreException, OperationCanceledException { pm.beginTask(OTRefactoringMessages.MoveToRoleFileRefactoring_creatingChange_progress, 5); CompositeChange change = new CompositeChange(OTRefactoringMessages.MoveToRoleFileRefactoring_change_name); TextEditGroup editGroup = new TextEditGroup(OTRefactoringMessages.MoveToRoleFileRefactoring_change_name); ICompilationUnit newCuWC = null;/* www .j ava 2s. c o m*/ try { // packages IPackageFragment enclosingPackage = fRoleType.getPackageFragment(); IPackageFragmentRoot root = (IPackageFragmentRoot) enclosingPackage .getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT); String enclPackName = enclosingPackage.getElementName(); IPackageFragment teamPackage = root .getPackageFragment(enclPackName.length() == 0 ? fTeamType.getElementName() : enclPackName + '.' + fTeamType.getElementName()); // fetch AST for team and role: CompilationUnitRewrite cuRewrite = new CompilationUnitRewrite(fTeamCUnit); CompilationUnit teamCU = cuRewrite.getRoot(); TypeDeclaration teamNode = (TypeDeclaration) findDeclaration(teamCU, fTeamType); ASTNode roleNode = findDeclaration(teamCU, fRoleType); // new CU: if (!teamPackage.getResource().exists()) change.add(new CreatePackageChange(teamPackage)); newCuWC = teamPackage.getCompilationUnit(fRoleType.getElementName() + JavaModelUtil.DEFAULT_CU_SUFFIX) .getWorkingCopy(new SubProgressMonitor(pm, 2)); // (1) create role: // extract role source (as text): String oldSource = fTeamCUnit.getSource(); ISourceRange sourceRange = fRoleType.getSourceRange(); StringBuilder newRoleSource = new StringBuilder(); IJavaProject javaProject = fRoleType.getJavaProject(); if (StubUtility.doAddComments(javaProject)) newRoleSource.append( CodeGeneration.getFileComment(newCuWC, StubUtility.getLineDelimiterUsed(javaProject))); newRoleSource.append("\nteam package " + teamPackage.getElementName() + ";\n\n"); //$NON-NLS-1$ //$NON-NLS-2$ newRoleSource.append(getAlignedSourceBlock(javaProject, oldSource.substring(sourceRange.getOffset(), sourceRange.getOffset() + sourceRange.getLength()))); // done change #1: change.add(new CreateCompilationUnitChange(newCuWC, newRoleSource.toString(), null)); // (2) modify team: // remove role from team: ASTRewrite rewrite = cuRewrite.getASTRewrite(); ListRewrite teamMembersRewrite = rewrite.getListRewrite(teamNode, teamNode.getBodyDeclarationsProperty()); teamMembersRewrite.remove(roleNode, editGroup); // add javadoc tag '@role roleName' Javadoc teamDoc = teamNode.getJavadoc(); AST ast = teamCU.getAST(); TextElement roleName = ast.newTextElement(); roleName.setText(fRoleType.getElementName()); TagElement roleTag = ast.newTagElement(); roleTag.setTagName("@role"); //$NON-NLS-1$ roleTag.fragments().add(roleName); if (teamDoc == null) { // need to add a fresh Javadoc teamDoc = ast.newJavadoc(); teamDoc.tags().add(roleTag); rewrite.set(teamNode, teamNode.getJavadocProperty(), teamDoc, editGroup); } else { // need to insert tag into existing Javadoc ListRewrite tags = rewrite.getListRewrite(teamDoc, Javadoc.TAGS_PROPERTY); tags.insertLast(roleTag, editGroup); } // done change #2: change.add(cuRewrite.createChange(true, new SubProgressMonitor(pm, 2))); } finally { if (newCuWC != null) newCuWC.discardWorkingCopy(); } pm.done(); return change; }
From source file:org.eclipse.objectteams.otdt.internal.ui.text.correction.JavadocProposalSubProcessor.java
License:Open Source License
@SuppressWarnings({ "rawtypes", "unchecked" })
public static CUCorrectionProposal addRoleTag(ICompilationUnit cu, String[] problemArguments,
TypeDeclaration teamType) {//from ww w . j a v a 2 s.c o m
if (problemArguments == null || problemArguments.length != 1)
return null;
AST ast = teamType.getAST();
ASTRewrite rewrite = ASTRewrite.create(ast);
// create the tag
TagElement newTag = ast.newTagElement();
newTag.setTagName(TAG_ROLE);
// add the role name
List fragments = newTag.fragments();
String name = problemArguments[0];
fragments.add(ast.newSimpleName(name));
// add the tag to the javadoc
Javadoc javadoc = teamType.getJavadoc();
ListRewrite tagsRewriter = rewrite.getListRewrite(javadoc, Javadoc.TAGS_PROPERTY);
tagsRewriter.insertLast(newTag, null);
String label = Messages.format(CorrectionMessages.OTQuickfix_add_missing_role_tag, name);
int relevance = 1;
return new ASTRewriteCorrectionProposal(label, cu, rewrite, relevance,
JavaPluginImages.get(JavaPluginImages.IMG_OBJS_JAVADOCTAG));
}
From source file:org.eclipse.pde.api.tools.ui.internal.markers.RemoveUnsupportedTagOperation.java
License:Open Source License
@Override public IStatus runInUIThread(IProgressMonitor monitor) { SubMonitor localMonitor = SubMonitor.convert(monitor, MarkerMessages.RemoveUnsupportedTagOperation_removeing_unsupported_tag, this.markers.length + 6); HashMap<ICompilationUnit, Boolean> seen = new HashMap<ICompilationUnit, Boolean>(); for (int i = 0; i < this.markers.length; i++) { // retrieve the AST node compilation unit IResource resource = this.markers[i].getResource(); IJavaElement javaElement = JavaCore.create(resource); try {//from w w w. j av a 2s. c o m if (javaElement != null && javaElement.getElementType() == IJavaElement.COMPILATION_UNIT) { ICompilationUnit compilationUnit = (ICompilationUnit) javaElement; if (!seen.containsKey(compilationUnit)) { seen.put(compilationUnit, Boolean.valueOf(compilationUnit.hasUnsavedChanges())); } if (!compilationUnit.isWorkingCopy()) { // open an editor of the corresponding unit to "show" // the quick-fix change JavaUI.openInEditor(compilationUnit); } if (!compilationUnit.isConsistent()) { compilationUnit.reconcile(ICompilationUnit.NO_AST, false, null, null); Util.updateMonitor(localMonitor, 1); } Util.updateMonitor(localMonitor, 1); ASTParser parser = ASTParser.newParser(AST.JLS8); parser.setSource(compilationUnit); Integer charStartAttribute = null; charStartAttribute = (Integer) this.markers[i].getAttribute(IMarker.CHAR_START); int intValue = charStartAttribute.intValue(); parser.setFocalPosition(intValue); Map<String, String> options = compilationUnit.getJavaProject().getOptions(true); options.put(JavaCore.COMPILER_DOC_COMMENT_SUPPORT, JavaCore.ENABLED); parser.setCompilerOptions(options); final CompilationUnit unit = (CompilationUnit) parser.createAST(new NullProgressMonitor()); NodeFinder finder = new NodeFinder(intValue); unit.accept(finder); Util.updateMonitor(localMonitor, 1); BodyDeclaration node = finder.getNode(); if (node != null) { unit.recordModifications(); AST ast = unit.getAST(); ASTRewrite rewrite = ASTRewrite.create(ast); Javadoc docnode = node.getJavadoc(); if (docnode == null) { return Status.CANCEL_STATUS; } else { List<TagElement> tags = docnode.tags(); String arg = (String) this.markers[i] .getAttribute(IApiMarkerConstants.MARKER_ATTR_MESSAGE_ARGUMENTS); String[] args = arg.split("#"); //$NON-NLS-1$ TagElement tag = null; for (Iterator<TagElement> iterator = tags.iterator(); iterator.hasNext();) { tag = iterator.next(); if (args[0].equals(tag.getTagName()) && tag.getStartPosition() == intValue) { break; } } if (tag == null) { return Status.CANCEL_STATUS; } ListRewrite lrewrite = rewrite.getListRewrite(docnode, Javadoc.TAGS_PROPERTY); lrewrite.remove(tag, null); Util.updateMonitor(localMonitor, 1); } TextEdit edit = rewrite.rewriteAST(); compilationUnit.applyTextEdit(edit, monitor); Util.updateMonitor(localMonitor, 1); } } } catch (JavaModelException jme) { } catch (PartInitException e) { } catch (CoreException e) { } } // try saving the compilation units if they were in a saved state when // the quick-fix started for (Entry<ICompilationUnit, Boolean> entry : seen.entrySet()) { if (!entry.getValue().booleanValue()) { try { entry.getKey().commitWorkingCopy(true, null); } catch (JavaModelException jme) { } } } return Status.OK_STATUS; }
From source file:org.eclipse.pde.api.tools.ui.internal.markers.UpdateSinceTagOperation.java
License:Open Source License
public void run(IProgressMonitor monitor) { if (monitor != null && monitor.isCanceled()) { return;/*w w w . j a va2 s . co m*/ } if (monitor != null) { monitor.beginTask(MarkerMessages.UpdateSinceTagOperation_title, 3); } // retrieve the AST node compilation unit try { Integer charStartAttribute = (Integer) this.fMarker.getAttribute(IMarker.CHAR_START); int intValue = charStartAttribute.intValue(); IJavaElement javaElement = null; IJavaElement handleElement = null; if (intValue > 0) { IResource resource = this.fMarker.getResource(); javaElement = JavaCore.create(resource); } else { // this is a case where the marker is reported against the // MANIFEST.MF file String handle = (String) fMarker.getAttribute(IApiMarkerConstants.MARKER_ATTR_HANDLE_ID); if (handle != null) { handleElement = JavaCore.create(handle); } if (handleElement != null && handleElement.exists()) { javaElement = handleElement.getAncestor(IJavaElement.COMPILATION_UNIT); } } if (javaElement != null && javaElement.getElementType() == IJavaElement.COMPILATION_UNIT) { ICompilationUnit compilationUnit = (ICompilationUnit) javaElement; if (!compilationUnit.isWorkingCopy()) { // open an editor of the corresponding unit to "show" the // quickfix change JavaUI.openInEditor(compilationUnit); } ASTParser parser = ASTParser.newParser(AST.JLS8); parser.setSource(compilationUnit); if (intValue <= 0) { // try to use the name range of the corresponding element if (handleElement instanceof IMember) { IMember member = (IMember) handleElement; ISourceRange range = member.getNameRange(); if (range != null) { intValue = range.getOffset(); } else { range = member.getSourceRange(); if (range != null && range.getOffset() > 0) { intValue = range.getOffset(); } else { return; } } } else { return; } } parser.setFocalPosition(intValue); parser.setResolveBindings(true); Map<String, String> options = compilationUnit.getJavaProject().getOptions(true); options.put(JavaCore.COMPILER_DOC_COMMENT_SUPPORT, JavaCore.ENABLED); parser.setCompilerOptions(options); final CompilationUnit unit = (CompilationUnit) parser.createAST(new NullProgressMonitor()); BodyDeclaration node = null; NodeFinder nodeFinder = new NodeFinder(intValue); unit.accept(nodeFinder); if (monitor != null) { monitor.worked(1); } node = nodeFinder.getNode(); if (node != null) { unit.recordModifications(); AST ast = unit.getAST(); ASTRewrite rewrite = ASTRewrite.create(ast); if (IApiProblem.SINCE_TAG_MISSING == this.sinceTagType) { Javadoc docnode = node.getJavadoc(); if (docnode == null) { docnode = ast.newJavadoc(); // we do not want to create a new empty Javadoc node // in // the AST if there are no missing tags rewrite.set(node, node.getJavadocProperty(), docnode, null); } else { List<TagElement> tags = docnode.tags(); boolean found = false; loop: for (Iterator<TagElement> iterator = tags.iterator(); iterator.hasNext();) { TagElement element = iterator.next(); String tagName = element.getTagName(); if (TagElement.TAG_SINCE.equals(tagName)) { found = true; break loop; } } if (found) { return; } } ListRewrite lrewrite = rewrite.getListRewrite(docnode, Javadoc.TAGS_PROPERTY); // check the existing tags list TagElement newtag = ast.newTagElement(); newtag.setTagName(TagElement.TAG_SINCE); TextElement textElement = ast.newTextElement(); textElement.setText(this.sinceTagVersion); newtag.fragments().add(textElement); lrewrite.insertLast(newtag, null); } else { Javadoc docnode = node.getJavadoc(); List<TagElement> tags = docnode.tags(); TagElement sinceTag = null; for (Iterator<TagElement> iterator = tags.iterator(); iterator.hasNext();) { TagElement tagElement = iterator.next(); if (TagElement.TAG_SINCE.equals(tagElement.getTagName())) { sinceTag = tagElement; break; } } if (sinceTag != null) { List<TextElement> fragments = sinceTag.fragments(); if (fragments.size() >= 1) { TextElement textElement = fragments.get(0); StringBuffer buffer = new StringBuffer(); buffer.append(' ').append(this.sinceTagVersion); rewrite.set(textElement, TextElement.TEXT_PROPERTY, String.valueOf(buffer), null); } else { ListRewrite lrewrite = rewrite.getListRewrite(docnode, Javadoc.TAGS_PROPERTY); // check the existing tags list TagElement newtag = ast.newTagElement(); newtag.setTagName(TagElement.TAG_SINCE); TextElement textElement = ast.newTextElement(); textElement.setText(this.sinceTagVersion); newtag.fragments().add(textElement); lrewrite.replace(sinceTag, newtag, null); } } } try { if (monitor != null) { monitor.worked(1); } TextEdit edit = rewrite.rewriteAST(); compilationUnit.applyTextEdit(edit, monitor); if (monitor != null) { monitor.worked(1); } } finally { compilationUnit.reconcile(ICompilationUnit.NO_AST, false /* * don * 't * force * problem * detection */, null /* * use * primary * owner */, null /* * no * progress * monitor */); } } } } catch (CoreException e) { ApiUIPlugin.log(e); } finally { if (monitor != null) { monitor.done(); } } }
From source file:org.eclipseguru.gwt.core.internal.codegen.AsyncServiceCodeGenerator.java
License:Open Source License
private void updateMethodJavadoc(final ASTRewrite cuRewrite, final MethodDeclaration md, final TextEditGroup textEditGroup) { // create javadoc final Javadoc javadoc = createJavadocIfNecessary(cuRewrite, md, textEditGroup); final ListRewrite javadocRewrite = cuRewrite.getListRewrite(javadoc, Javadoc.TAGS_PROPERTY); // find last @param tag and remove @throws tags and @gwt.typeArgs tags ASTNode lastParamPos = null;/* ww w . j a va2 s .c o m*/ boolean hasReturnTag = false; for (final Iterator stream = javadocRewrite.getOriginalList().iterator(); stream.hasNext();) { final TagElement element = (TagElement) stream.next(); if (null != element.getTagName()) { final String tagName = element.getTagName(); if (tagName.equals(TAG_PARAM)) { lastParamPos = element; } else if (tagName.equals(TAG_RETURN) && !element.fragments().isEmpty()) { hasReturnTag = true; cuRewrite.set(element, TagElement.TAG_NAME_PROPERTY, TAG_GWT_CALLBACK_RETURN, textEditGroup); } else if (tagName.equals(TAG_THROWS) || tagName.equals(TAG_GWT_TYPE_ARGS)) { javadocRewrite.remove(element, textEditGroup); } } } // create @param callback final TagElement callbackParamTag = cuRewrite.getAST().newTagElement(); if (null != lastParamPos) { javadocRewrite.insertAfter(callbackParamTag, lastParamPos, textEditGroup); } else { javadocRewrite.insertLast(callbackParamTag, textEditGroup); } cuRewrite.set(callbackParamTag, TagElement.TAG_NAME_PROPERTY, TAG_PARAM, textEditGroup); final ListRewrite tagRewrite = cuRewrite.getListRewrite(callbackParamTag, TagElement.FRAGMENTS_PROPERTY); final TextElement space = cuRewrite.getAST().newTextElement(); tagRewrite.insertFirst(space, textEditGroup); final SimpleName callbackName = cuRewrite.getAST().newSimpleName(CALLBACK); tagRewrite.insertAfter(callbackName, space, textEditGroup); final TextElement callbackDescription = cuRewrite.getAST().newTextElement(); callbackDescription.setText("the callback that will be called to receive the return value"); tagRewrite.insertAfter(callbackDescription, callbackName, textEditGroup); if (hasReturnTag) { final TextElement text = cuRewrite.getAST().newTextElement(); text.setText(NLS.bind("(see <code>{0}</code> tag)", TAG_GWT_CALLBACK_RETURN)); tagRewrite.insertAfter(text, callbackDescription, textEditGroup); } // add @generated tag javadocRewrite.insertLast(createGeneratedTagForMethod(cuRewrite), textEditGroup); }
From source file:org.eclipseguru.gwt.core.internal.codegen.AsyncServiceCodeGenerator.java
License:Open Source License
private void updateTypeJavaDoc(final ASTRewrite cuRewrite, final TypeDeclaration td, final TextEditGroup textEditGroup) { // add @generated tag to JavaDoc final Javadoc javadoc = createJavadocIfNecessary(cuRewrite, td, textEditGroup); final ListRewrite javadocRewrite = cuRewrite.getListRewrite(javadoc, Javadoc.TAGS_PROPERTY); javadocRewrite.insertLast(createGeneratedTagForType(cuRewrite), textEditGroup); // rewrite methods final ListRewrite bodyRewrite = cuRewrite.getListRewrite(td, TypeDeclaration.BODY_DECLARATIONS_PROPERTY); for (final Iterator stream = bodyRewrite.getOriginalList().iterator(); stream.hasNext();) { final ASTNode node = (ASTNode) stream.next(); switch (node.getNodeType()) { case ASTNode.METHOD_DECLARATION: // rewrite method updateMethodJavadoc(cuRewrite, (MethodDeclaration) node, textEditGroup); break; }/*from w w w . j av a2 s. com*/ } }
From source file:org.moe.natjgen.XcodeFullDocumentation.java
License:Apache License
private void addTag(Javadoc doc, ASTRewrite rewrite, String tag, String string) { if (string == null) return;/*w w w. j a va2 s .co m*/ ListRewrite lrw = rewrite.getListRewrite(doc, Javadoc.TAGS_PROPERTY); TagElement t = rewrite.getAST().newTagElement(); lrw.insertLast(t, editGroup); if (tag != null) { rewrite.set(t, TagElement.TAG_NAME_PROPERTY, tag, editGroup); } ListRewrite fragments = rewrite.getListRewrite(t, TagElement.FRAGMENTS_PROPERTY); TextElement text = rewrite.getAST().newTextElement(); fragments.insertLast(text, editGroup); rewrite.set(text, TextElement.TEXT_PROPERTY, string, editGroup); }