ASTNode clone0(AST target) { NormalAnnotation result = new NormalAnnotation(target); result.setSourceRange(getStartPosition(), getLength()); result.setTypeName((Name) ASTNode.copySubtree(target, getTypeName())); result.values().addAll(ASTNode.copySubtrees(target, values())); return result; }
@SuppressWarnings("unchecked") @Override public void createdEnumLiteral(final String literal, final EnumConstantDeclaration enumConstantDeclaration) { final AST ast = enumConstantDeclaration.getAST(); final NormalAnnotation an = ast.newNormalAnnotation(); an.setTypeName(ast.newName("com.google.gson.annotations.SerializedName")); final MemberValuePair mvp = ast.newMemberValuePair(); mvp.setName(ast.newSimpleName("value")); mvp.setValue(JDTHelper.newStringLiteral(ast, literal)); an.values().add(mvp); enumConstantDeclaration.modifiers().add(an); } }
@Override public boolean visit(NormalAnnotation node) { typeRefFound(node.getTypeName()); doVisitChildren(node.values()); return false; }
public NormalAnnotation convert(org.eclipse.jdt.internal.compiler.ast.NormalAnnotation annotation) { final NormalAnnotation normalAnnotation = new NormalAnnotation(this.ast); setTypeNameForAnnotation(annotation, normalAnnotation); int start = annotation.sourceStart; int end = annotation.declarationSourceEnd; org.eclipse.jdt.internal.compiler.ast.MemberValuePair[] memberValuePairs = annotation.memberValuePairs; if (memberValuePairs != null) { for (int i = 0, max = memberValuePairs.length; i < max; i++) { MemberValuePair memberValuePair = convert(memberValuePairs[i]); int memberValuePairEnd = memberValuePair.getStartPosition() + memberValuePair.getLength() - 1; if (end == memberValuePairEnd) { normalAnnotation.setFlags(normalAnnotation.getFlags() | ASTNode.RECOVERED); } normalAnnotation.values().add(memberValuePair); } } normalAnnotation.setSourceRange(start, end - start + 1); if (this.resolveBindings) { recordNodes(normalAnnotation, annotation); normalAnnotation.resolveAnnotationBinding(); } return normalAnnotation; }
public void endVisit(NormalAnnotation node) { endVisitNode(node); // is inside diet part of the ast if(this.blockDepth < 1) { List values = node.values(); int size = values.size(); if (size > 0) { MemberValuePair lastMemberValuePair = (MemberValuePair)values.get(size - 1); int annotationEnd = node.getStartPosition() + node.getLength(); int lastMemberValuePairEnd = lastMemberValuePair.getStartPosition() + lastMemberValuePair.getLength(); if (annotationEnd == lastMemberValuePairEnd) { node.setFlags(node.getFlags() | ASTNode.RECOVERED); } } } }
} else if (annotation.isNormalAnnotation()) { org.eclipse.jdt.core.dom.NormalAnnotation normalAnn = (org.eclipse.jdt.core.dom.NormalAnnotation) annotation; for (Object value : normalAnn.values()) values.add(value.toString());
final ASTNode internalGetSetChildProperty(ChildPropertyDescriptor property, boolean get, ASTNode child) { if (property == TYPE_NAME_PROPERTY) { if (get) { return getTypeName(); } else { setTypeName((Name) child); return null; } } // allow default implementation to flag the error return super.internalGetSetChildProperty(property, get, child); }
void accept0(ASTVisitor visitor) { boolean visitChildren = visitor.visit(this); if (visitChildren) { // visit children in normal left to right reading order acceptChild(visitor, getTypeName()); acceptChildren(visitor, this.values); } visitor.endVisit(this); }
int treeSize() { return memSize() + (this.typeName == null ? 0 : getTypeName().treeSize()) + this.values.listSize(); } }
@Override public boolean visit(NormalAnnotation node) { JavaTypeReferenceModel typeRef = processName(node.getTypeName(), TypeReferenceLocation.ANNOTATION, cu.getLineNumber(node.getStartPosition()), cu.getColumnNumber(node.getStartPosition()), node.getLength()); if (typeRef != null) addAnnotationValues((JavaAnnotationTypeReferenceModel) typeRef, node); return super.visit(node); }
@Override public boolean visit(NormalAnnotation node) { processName(node.getTypeName(), "Annotation", cu.getLineNumber(node.getStartPosition())); return super.visit(node); }
final List<MemberValuePair> values = values(node); if (values.isEmpty()) { r.replace(node, b.markerAnnotation(b.move(node.getTypeName()))); return DO_NOT_VISIT_SUBTREE; } else if (values.size() == 1) { if ("value".equals(pair.getName().getIdentifier())) { r.replace(node, b.singleValueAnnotation(b.move(node.getTypeName()), b.move(pair.getValue()))); return DO_NOT_VISIT_SUBTREE; Map<String, IMethodBinding> elements = toElementsMap(node.resolveAnnotationBinding()); for (MemberValuePair pair : values) { IMethodBinding elementBinding = elements.get(pair.getName().getIdentifier());
protected NormalAnnotation newNormalAnnotation(AST ast, String name) { NormalAnnotation annotation = ast.newNormalAnnotation(); annotation.setTypeName(ast.newName(name)); return annotation; }
private Name getTypeName(IExtendedModifier extendedModifier) { if (extendedModifier instanceof MarkerAnnotation) { return ((MarkerAnnotation) extendedModifier).getTypeName(); } else if (extendedModifier instanceof NormalAnnotation) { return ((NormalAnnotation) extendedModifier).getTypeName(); } return null; }
public boolean visit(NormalAnnotation node) { if (found(node, node) && this.resolveBinding) this.foundBinding = node.resolveAnnotationBinding(); return true; }
@SuppressWarnings("unchecked") public static String addXmlRootAnnotation(final String source, final String name) { final CompilationUnit unit = JavaSourceUtils.getCompilationUnit(source); final AST ast = unit.getAST(); final TypeDeclaration classType = (TypeDeclaration) unit.types().get(0); final NormalAnnotation xmlRootAnnotation = ast.newNormalAnnotation(); xmlRootAnnotation.setTypeName(ast.newName(XmlRootElement.class.getSimpleName())); // name final MemberValuePair generatedMemberValue = ast.newMemberValuePair(); generatedMemberValue.setName(ast.newSimpleName("name")); final StringLiteral internalNameLiteral = ast.newStringLiteral(); internalNameLiteral.setLiteralValue(name); generatedMemberValue.setValue(internalNameLiteral); xmlRootAnnotation.values().add(generatedMemberValue); JavaSourceUtils.addAnnotation(classType, xmlRootAnnotation); JavaSourceUtils.addImport(unit, XmlRootElement.class.getName()); return JavaSourceUtils.rewrite(unit, ast); }
public boolean visit(NormalAnnotation node) { typeRefFound(node.getTypeName()); doVisitChildren(node.values()); return false; }
public NormalAnnotation convert(org.eclipse.jdt.internal.compiler.ast.NormalAnnotation annotation) { final NormalAnnotation normalAnnotation = new NormalAnnotation(this.ast); setTypeNameForAnnotation(annotation, normalAnnotation); int start = annotation.sourceStart; int end = annotation.declarationSourceEnd; org.eclipse.jdt.internal.compiler.ast.MemberValuePair[] memberValuePairs = annotation.memberValuePairs; if (memberValuePairs != null) { for (int i = 0, max = memberValuePairs.length; i < max; i++) { MemberValuePair memberValuePair = convert(memberValuePairs[i]); int memberValuePairEnd = memberValuePair.getStartPosition() + memberValuePair.getLength() - 1; if (end == memberValuePairEnd) { normalAnnotation.setFlags(normalAnnotation.getFlags() | ASTNode.RECOVERED); } normalAnnotation.values().add(memberValuePair); } } normalAnnotation.setSourceRange(start, end - start + 1); if (this.resolveBindings) { recordNodes(normalAnnotation, annotation); normalAnnotation.resolveAnnotationBinding(); } return normalAnnotation; }
@Override public void endVisit(NormalAnnotation node) { endVisitNode(node); // is inside diet part of the ast if(this.blockDepth < 1) { List values = node.values(); int size = values.size(); if (size > 0) { MemberValuePair lastMemberValuePair = (MemberValuePair)values.get(size - 1); int annotationEnd = node.getStartPosition() + node.getLength(); int lastMemberValuePairEnd = lastMemberValuePair.getStartPosition() + lastMemberValuePair.getLength(); if (annotationEnd == lastMemberValuePairEnd) { node.setFlags(node.getFlags() | ASTNode.RECOVERED); } } } }
/** * Generecized version of the equivalent JDT method. * * @param node the node on which to call the equivalent JDT method * @return a List of expressions * @see NormalAnnotation#values() */ @SuppressWarnings("unchecked") public static List<MemberValuePair> values(NormalAnnotation node) { return node.values(); }