List of usage examples for org.eclipse.jdt.core.dom SingleMemberAnnotation getTypeName
public Name getTypeName()
From source file:at.bestsolution.fxide.jdt.corext.dom.ASTFlattener.java
License:Open Source License
@Override public boolean visit(SingleMemberAnnotation node) { this.fBuffer.append("@");//$NON-NLS-1$ node.getTypeName().accept(this); this.fBuffer.append("(");//$NON-NLS-1$ node.getValue().accept(this); this.fBuffer.append(")");//$NON-NLS-1$ return false; }
From source file:coloredide.utils.CopiedNaiveASTFlattener.java
License:Open Source License
public boolean visit(SingleMemberAnnotation node) { this.buffer.append("@");//$NON-NLS-1$ node.getTypeName().accept(this); this.buffer.append("(");//$NON-NLS-1$ node.getValue().accept(this); this.buffer.append(")");//$NON-NLS-1$ return false; }
From source file:com.android.ide.eclipse.adt.internal.lint.AddSuppressAnnotation.java
License:Open Source License
@SuppressWarnings({ "rawtypes" }) // Java AST API has raw types private MultiTextEdit addSuppressAnnotation(IDocument document, ICompilationUnit compilationUnit, BodyDeclaration declaration) throws CoreException { List modifiers = declaration.modifiers(); SingleMemberAnnotation existing = null; for (Object o : modifiers) { if (o instanceof SingleMemberAnnotation) { SingleMemberAnnotation annotation = (SingleMemberAnnotation) o; String type = annotation.getTypeName().getFullyQualifiedName(); if (type.equals(FQCN_SUPPRESS_LINT) || type.endsWith(SUPPRESS_LINT)) { existing = annotation;//from w ww . j a v a 2s .co m break; } } } ImportRewrite importRewrite = ImportRewrite.create(compilationUnit, true); String local = importRewrite.addImport(FQCN_SUPPRESS_LINT); AST ast = declaration.getAST(); ASTRewrite rewriter = ASTRewrite.create(ast); if (existing == null) { SingleMemberAnnotation newAnnotation = ast.newSingleMemberAnnotation(); newAnnotation.setTypeName(ast.newSimpleName(local)); StringLiteral value = ast.newStringLiteral(); value.setLiteralValue(mId); newAnnotation.setValue(value); ListRewrite listRewrite = rewriter.getListRewrite(declaration, declaration.getModifiersProperty()); listRewrite.insertFirst(newAnnotation, null); } else { Expression existingValue = existing.getValue(); if (existingValue instanceof StringLiteral) { StringLiteral stringLiteral = (StringLiteral) existingValue; if (mId.equals(stringLiteral.getLiteralValue())) { // Already contains the id return null; } // Create a new array initializer holding the old string plus the new id ArrayInitializer array = ast.newArrayInitializer(); StringLiteral old = ast.newStringLiteral(); old.setLiteralValue(stringLiteral.getLiteralValue()); array.expressions().add(old); StringLiteral value = ast.newStringLiteral(); value.setLiteralValue(mId); array.expressions().add(value); rewriter.set(existing, VALUE_PROPERTY, array, null); } else if (existingValue instanceof ArrayInitializer) { // Existing array: just append the new string ArrayInitializer array = (ArrayInitializer) existingValue; List expressions = array.expressions(); if (expressions != null) { for (Object o : expressions) { if (o instanceof StringLiteral) { if (mId.equals(((StringLiteral) o).getLiteralValue())) { // Already contains the id return null; } } } } StringLiteral value = ast.newStringLiteral(); value.setLiteralValue(mId); ListRewrite listRewrite = rewriter.getListRewrite(array, EXPRESSIONS_PROPERTY); listRewrite.insertLast(value, null); } else { assert false : existingValue; return null; } } TextEdit importEdits = importRewrite.rewriteImports(new NullProgressMonitor()); TextEdit annotationEdits = rewriter.rewriteAST(document, null); // Apply to the document MultiTextEdit edit = new MultiTextEdit(); // Create the edit to change the imports, only if // anything changed if (importEdits.hasChildren()) { edit.addChild(importEdits); } edit.addChild(annotationEdits); return edit; }
From source file:com.android.ide.eclipse.adt.internal.lint.AddSuppressAnnotation.java
License:Open Source License
@SuppressWarnings({ "rawtypes" }) // Java AST API has raw types private MultiTextEdit addTargetApiAnnotation(IDocument document, ICompilationUnit compilationUnit, BodyDeclaration declaration) throws CoreException { List modifiers = declaration.modifiers(); SingleMemberAnnotation existing = null; for (Object o : modifiers) { if (o instanceof SingleMemberAnnotation) { SingleMemberAnnotation annotation = (SingleMemberAnnotation) o; String type = annotation.getTypeName().getFullyQualifiedName(); if (type.equals(FQCN_TARGET_API) || type.endsWith(TARGET_API)) { existing = annotation;/*ww w. ja v a 2 s .c o m*/ break; } } } ImportRewrite importRewrite = ImportRewrite.create(compilationUnit, true); importRewrite.addImport("android.os.Build"); //$NON-NLS-1$ String local = importRewrite.addImport(FQCN_TARGET_API); AST ast = declaration.getAST(); ASTRewrite rewriter = ASTRewrite.create(ast); if (existing == null) { SingleMemberAnnotation newAnnotation = ast.newSingleMemberAnnotation(); newAnnotation.setTypeName(ast.newSimpleName(local)); Expression value = createLiteral(ast); newAnnotation.setValue(value); ListRewrite listRewrite = rewriter.getListRewrite(declaration, declaration.getModifiersProperty()); listRewrite.insertFirst(newAnnotation, null); } else { Expression value = createLiteral(ast); rewriter.set(existing, VALUE_PROPERTY, value, null); } TextEdit importEdits = importRewrite.rewriteImports(new NullProgressMonitor()); TextEdit annotationEdits = rewriter.rewriteAST(document, null); MultiTextEdit edit = new MultiTextEdit(); if (importEdits.hasChildren()) { edit.addChild(importEdits); } edit.addChild(annotationEdits); return edit; }
From source file:com.android.ide.eclipse.auidt.internal.lint.AddSuppressAnnotation.java
License:Open Source License
@SuppressWarnings({ "rawtypes" }) // Java AST API has raw types private MultiTextEdit addSuppressAnnotation(IDocument document, ICompilationUnit compilationUnit, BodyDeclaration declaration) throws CoreException { List modifiers = declaration.modifiers(); SingleMemberAnnotation existing = null; for (Object o : modifiers) { if (o instanceof SingleMemberAnnotation) { SingleMemberAnnotation annotation = (SingleMemberAnnotation) o; String type = annotation.getTypeName().getFullyQualifiedName(); if (type.equals(FQCN_SUPPRESS_LINT) || type.endsWith(SUPPRESS_LINT)) { existing = annotation;//from w ww .j a v a2 s . c o m break; } } } ImportRewrite importRewrite = ImportRewrite.create(compilationUnit, true); String local = importRewrite.addImport(FQCN_SUPPRESS_LINT); AST ast = declaration.getAST(); ASTRewrite rewriter = ASTRewrite.create(ast); if (existing == null) { SingleMemberAnnotation newAnnotation = ast.newSingleMemberAnnotation(); newAnnotation.setTypeName(ast.newSimpleName(local)); StringLiteral value = ast.newStringLiteral(); value.setLiteralValue(mId); newAnnotation.setValue(value); ListRewrite listRewrite = rewriter.getListRewrite(declaration, declaration.getModifiersProperty()); listRewrite.insertFirst(newAnnotation, null); } else { Expression existingValue = existing.getValue(); if (existingValue instanceof StringLiteral) { // Create a new array initializer holding the old string plus the new id ArrayInitializer array = ast.newArrayInitializer(); StringLiteral old = ast.newStringLiteral(); StringLiteral stringLiteral = (StringLiteral) existingValue; old.setLiteralValue(stringLiteral.getLiteralValue()); array.expressions().add(old); StringLiteral value = ast.newStringLiteral(); value.setLiteralValue(mId); array.expressions().add(value); rewriter.set(existing, VALUE_PROPERTY, array, null); } else if (existingValue instanceof ArrayInitializer) { // Existing array: just append the new string ArrayInitializer array = (ArrayInitializer) existingValue; StringLiteral value = ast.newStringLiteral(); value.setLiteralValue(mId); ListRewrite listRewrite = rewriter.getListRewrite(array, EXPRESSIONS_PROPERTY); listRewrite.insertLast(value, null); } else { assert false : existingValue; return null; } } TextEdit importEdits = importRewrite.rewriteImports(new NullProgressMonitor()); TextEdit annotationEdits = rewriter.rewriteAST(document, null); // Apply to the document MultiTextEdit edit = new MultiTextEdit(); // Create the edit to change the imports, only if // anything changed if (importEdits.hasChildren()) { edit.addChild(importEdits); } edit.addChild(annotationEdits); return edit; }
From source file:com.android.ide.eclipse.auidt.internal.lint.AddSuppressAnnotation.java
License:Open Source License
@SuppressWarnings({ "rawtypes" }) // Java AST API has raw types private MultiTextEdit addTargetApiAnnotation(IDocument document, ICompilationUnit compilationUnit, BodyDeclaration declaration) throws CoreException { List modifiers = declaration.modifiers(); SingleMemberAnnotation existing = null; for (Object o : modifiers) { if (o instanceof SingleMemberAnnotation) { SingleMemberAnnotation annotation = (SingleMemberAnnotation) o; String type = annotation.getTypeName().getFullyQualifiedName(); if (type.equals(FQCN_TARGET_API) || type.endsWith(TARGET_API)) { existing = annotation;// www . j a v a 2 s . co m break; } } } ImportRewrite importRewrite = ImportRewrite.create(compilationUnit, true); String local = importRewrite.addImport(FQCN_TARGET_API); AST ast = declaration.getAST(); ASTRewrite rewriter = ASTRewrite.create(ast); if (existing == null) { SingleMemberAnnotation newAnnotation = ast.newSingleMemberAnnotation(); newAnnotation.setTypeName(ast.newSimpleName(local)); NumberLiteral value = ast.newNumberLiteral(Integer.toString(mTargetApi)); //value.setLiteralValue(mId); newAnnotation.setValue(value); ListRewrite listRewrite = rewriter.getListRewrite(declaration, declaration.getModifiersProperty()); listRewrite.insertFirst(newAnnotation, null); } else { Expression existingValue = existing.getValue(); if (existingValue instanceof NumberLiteral) { // Change the value to the new value NumberLiteral value = ast.newNumberLiteral(Integer.toString(mTargetApi)); rewriter.set(existing, VALUE_PROPERTY, value, null); } else { assert false : existingValue; return null; } } TextEdit importEdits = importRewrite.rewriteImports(new NullProgressMonitor()); TextEdit annotationEdits = rewriter.rewriteAST(document, null); MultiTextEdit edit = new MultiTextEdit(); if (importEdits.hasChildren()) { edit.addChild(importEdits); } edit.addChild(annotationEdits); return edit; }
From source file:com.google.devtools.j2objc.ast.DebugASTPrinter.java
License:Apache License
@Override public boolean visit(SingleMemberAnnotation node) { sb.print("@"); node.getTypeName().accept(this); sb.print("("); node.getValue().accept(this); sb.print(")"); return false; }
From source file:com.google.googlejavaformat.java.JavaInputAstVisitor.java
License:Apache License
/** Visitor method for {@link SingleMemberAnnotation}s. */ @Override/*from w w w .j a v a2 s . c o m*/ public boolean visit(SingleMemberAnnotation node) { sync(node); Expression value = node.getValue(); boolean isArrayInitializer = value.getNodeType() == ASTNode.ARRAY_INITIALIZER; builder.open(isArrayInitializer ? ZERO : plusFour); token("@"); node.getTypeName().accept(this); token("("); if (!isArrayInitializer) { builder.breakOp(); } value.accept(this); builder.close(); token(")"); return false; }
From source file:com.halware.nakedide.eclipse.ext.annot.ast.AbstractAnnotationEvaluatorOrModifier.java
License:Open Source License
private void updateSingleMemberAnnotation(ICompilationUnit compilationUnit, BodyDeclaration declaration, Object value) throws JavaModelException, MalformedTreeException, BadLocationException { SingleMemberAnnotation singleMemberAnnotation = annotation(declaration, SingleMemberAnnotation.class); if (singleMemberAnnotation != null) { AST ast = singleMemberAnnotation.getAST(); if (value != QualifiedNameValue.DEFAULT_VALUE) { Expression replacement = value != null ? AstUtils.createExpression(ast, value) : null; AstUtils.rewriteReplace(compilationUnit, singleMemberAnnotation.getValue(), replacement); return; } else {//from w w w . j a v a 2 s . c om MarkerAnnotation replacementAnnotation = ast.newMarkerAnnotation(); replacementAnnotation .setTypeName(ast.newName(singleMemberAnnotation.getTypeName().getFullyQualifiedName())); AstUtils.rewriteReplace(compilationUnit, singleMemberAnnotation, replacementAnnotation); return; } } MarkerAnnotation markerAnnotation = annotation(declaration, MarkerAnnotation.class); if (markerAnnotation != null) { AST ast = markerAnnotation.getAST(); if (value != QualifiedNameValue.DEFAULT_VALUE) { SingleMemberAnnotation replacementAnnotation = ast.newSingleMemberAnnotation(); replacementAnnotation .setTypeName(ast.newName(markerAnnotation.getTypeName().getFullyQualifiedName())); Expression memberValueExpression = value != null ? AstUtils.createExpression(ast, value) : null; replacementAnnotation.setValue(memberValueExpression); AstUtils.rewriteReplace(compilationUnit, markerAnnotation, replacementAnnotation); } else { // nothing to do } } }
From source file:edu.uci.ics.sourcerer.extractor.ast.ReferenceExtractorVisitor.java
License:Open Source License
/** * This method writes://from ww w .jav a 2s.c om *<ul> * <li>For any single member annotation use: * <ul> * <li>Annotated by relation to <code>IRelationWriter</code>.</li> * </ul></li> *</ul> */ @Override public boolean visit(SingleMemberAnnotation node) { // Get the fqn String fqn = null; IAnnotationBinding binding = node.resolveAnnotationBinding(); if (binding == null) { fqn = getUnknownFqn(node.getTypeName().getFullyQualifiedName()); } else { ITypeBinding typeBinding = binding.getAnnotationType(); if (typeBinding == null) { fqn = getUnknownFqn(binding.getName()); } else { fqn = getTypeFqn(typeBinding); } } // Write the annotates relation relationWriter.writeAnnotatedBy(fqnStack.getFqn(), fqn, getLocation(node)); return true; }