@Override public Node visit(SingleMemberAnnotationExpr _n, Object _arg) { NameExpr name = cloneNodes(_n.getName(), _arg); Expression memberValue = cloneNodes(_n.getMemberValue(), _arg); Comment comment = cloneNodes(_n.getComment(), _arg); SingleMemberAnnotationExpr r = new SingleMemberAnnotationExpr( _n.getBeginLine(), _n.getBeginColumn(), _n.getEndLine(), _n.getEndColumn(), name, memberValue ); r.setComment(comment); return r; }
@Override public Node visit(final SingleMemberAnnotationExpr n, final A arg) { n.setName((NameExpr) n.getName().accept(this, arg)); n.setMemberValue((Expression) n.getMemberValue().accept(this, arg)); return n; }
@Override public Boolean visit(final SingleMemberAnnotationExpr n1, final Node arg) { final SingleMemberAnnotationExpr n2 = (SingleMemberAnnotationExpr) arg; if (!nodeEquals(n1.getName(), n2.getName())) { return Boolean.FALSE; } if (!nodeEquals(n1.getMemberValue(), n2.getMemberValue())) { return Boolean.FALSE; } return Boolean.TRUE; }
@Override public void visit(final SingleMemberAnnotationExpr n, final A arg) { visitComment(n.getComment(), arg); n.getName().accept(this, arg); n.getMemberValue().accept(this, arg); }
final public SingleMemberAnnotationExpr SingleMemberAnnotation() throws ParseException { NameExpr name; Expression memberVal; int line; int column; jj_consume_token(AT); line=token.beginLine; column=token.beginColumn; name = Name(); jj_consume_token(LPAREN); memberVal = MemberValue(); jj_consume_token(RPAREN); {if (true) return new SingleMemberAnnotationExpr(line, column, token.endLine, token.endColumn,name, memberVal);} throw new Error("Missing return statement in function"); }
@Override public List<MemberValuePair> visit( SingleMemberAnnotationExpr n, Void arg) { return Collections.singletonList(new MemberValuePair( "value", n.getMemberValue())); } }, null);
@Override public R visit(final SingleMemberAnnotationExpr n, final A arg) { { R result = n.getName().accept(this, arg); if (result != null) { return result; } } { R result = n.getMemberValue().accept(this, arg); if (result != null) { return result; } } return null; }
@Override public void visit(final SingleMemberAnnotationExpr n, final Object arg) { printJavaComment(n.getComment(), arg); printer.print("@"); n.getName().accept(this, arg); printer.print("("); n.getMemberValue().accept(this, arg); printer.print(")"); }
final public SingleMemberAnnotationExpr SingleMemberAnnotation() throws ParseException { NameExpr name; Expression memberVal; int line; int column; jj_consume_token(AT); line=token.beginLine; column=token.beginColumn; name = Name(); jj_consume_token(LPAREN); memberVal = MemberValue(); jj_consume_token(RPAREN); SingleMemberAnnotationExpr tmp = new SingleMemberAnnotationExpr(line, column, token.endLine, token.endColumn,name, memberVal); {if (true) return tmp;} throw new Error("Missing return statement in function"); }
PackageDeclaration a = file.assertPackage(); SingleMemberAnnotationExpr applicationDecl = (SingleMemberAnnotationExpr)a.getAnnotations().get(0); NormalAnnotationExpr tagDecl = (NormalAnnotationExpr)applicationDecl.getMemberValue(); boolean changed = false; for (MemberValuePair pair : tagDecl.getPairs()) {
public void visit(SingleMemberAnnotationExpr n, Object arg) { printer.print("@"); n.getName().accept(this, arg); printer.print("("); n.getMemberValue().accept(this, arg); printer.print(")"); }
/** gets the annotation but also adds an import in the process if a Convert annotation is required. */ @Override protected NodeData getAnnotationNodes(String enclosingClass, String fieldName, String mappedClass) { final CollectionDescriptor cld = OjbUtil.findCollectionDescriptor(mappedClass, fieldName, descriptorRepositories); if (cld != null) { Collection<FieldHelper> orderBy = cld.getOrderBy(); if (orderBy != null && !orderBy.isEmpty()) { String orderByStr = ""; for (FieldHelper fh : orderBy) { orderByStr += fh.name + (fh.isAscending ? "" : " DESC") + ", "; } orderByStr = orderByStr.replaceAll(", $", ""); return new NodeData(new SingleMemberAnnotationExpr(new NameExpr(SIMPLE_NAME), new StringLiteralExpr(orderByStr)), new ImportDeclaration(new QualifiedNameExpr(new NameExpr(PACKAGE), SIMPLE_NAME), false, false)); } } return null; } }
PackageDeclaration a = file.assertPackage(); SingleMemberAnnotationExpr applicationDecl = (SingleMemberAnnotationExpr)a.getAnnotations().get(0); NormalAnnotationExpr tagDecl = (NormalAnnotationExpr)applicationDecl.getMemberValue(); boolean changed = false; for (MemberValuePair pair : tagDecl.getPairs()) {
@Override public NodeData resolve(Node node, String mappedClass) { if (!(node instanceof ClassOrInterfaceDeclaration)) { throw new IllegalArgumentException("this annotation belongs only on ClassOrInterfaceDeclaration"); } final TypeDeclaration dclr = (TypeDeclaration) node; if (!(dclr.getParentNode() instanceof CompilationUnit)) { //handling nested classes return null; } final String name = dclr.getName(); final String pckg = ((CompilationUnit) dclr.getParentNode()).getPackage().getName().toString(); final String enclosingClass = pckg + "." + name; final Collection<String> customizedFieldsOnNode = getFieldsOnNode(dclr, getCustomizedFields(mappedClass)); if (customizedFieldsOnNode == null || customizedFieldsOnNode.isEmpty()) { LOG.info(ResolverUtil.logMsgForClass(enclosingClass, mappedClass) + " has no customized fields"); return null; } return new NodeData(new SingleMemberAnnotationExpr(new NameExpr(SIMPLE_NAME), new NameExpr("CreateCustomizerFor" + customizedFieldsOnNode.toString())), new ImportDeclaration(new QualifiedNameExpr(new NameExpr(PACKAGE), SIMPLE_NAME), false, false)); }
@Override public NodeData resolve(Node node, String mappedClass) { if (!(node instanceof ClassOrInterfaceDeclaration)) { throw new IllegalArgumentException("this annotation belongs only on ClassOrInterfaceDeclaration"); } final TypeDeclaration dclr = (TypeDeclaration) node; if (!(dclr.getParentNode() instanceof CompilationUnit)) { //handling nested classes return null; } final String name = dclr.getName(); final Collection<FieldDescriptor> primaryKeyDescriptors = getPrimaryKeyDescriptors(mappedClass); if (primaryKeyDescriptors != null && primaryKeyDescriptors.size() > 1 && nodeContainsPkFields(dclr, primaryKeyDescriptors)) { final NodeAndImports<ClassOrInterfaceDeclaration> primaryKeyClass = createPrimaryKeyClass(name, primaryKeyDescriptors); final String pkClassName = primaryKeyClass.node.getName(); return new NodeData(new SingleMemberAnnotationExpr(new NameExpr(SIMPLE_NAME), new NameExpr(name + "." + pkClassName + ".class")), new ImportDeclaration(new QualifiedNameExpr(new NameExpr(PACKAGE), SIMPLE_NAME), false, false), primaryKeyClass.imprts, primaryKeyClass.node); } return null; }
} else if (isJavaUtilDate(fc) || isJavaUtilCalendar(fc)) { if (DATE.equals(columnType)) { return new NodeData(new SingleMemberAnnotationExpr(new NameExpr(SIMPLE_NAME), new NameExpr("TemporalType.DATE")), new ImportDeclaration(new QualifiedNameExpr(new NameExpr(PACKAGE), SIMPLE_NAME), false, false), Collections.singletonList(new ImportDeclaration(new QualifiedNameExpr(new NameExpr(PACKAGE), "TemporalType"), false, false))); } else if (TIMESTAMP.equals(columnType)) { return new NodeData(new SingleMemberAnnotationExpr(new NameExpr(SIMPLE_NAME), new NameExpr("TemporalType.TIMESTAMP")), new ImportDeclaration(new QualifiedNameExpr(new NameExpr(PACKAGE), SIMPLE_NAME), false, false), Collections.singletonList(new ImportDeclaration(new QualifiedNameExpr(new NameExpr(PACKAGE), "TemporalType"), false, false))); } else if (TIME.equals(columnType)) { return new NodeData(new SingleMemberAnnotationExpr(new NameExpr(SIMPLE_NAME), new NameExpr("TemporalType.TIME")), new ImportDeclaration(new QualifiedNameExpr(new NameExpr(PACKAGE), SIMPLE_NAME), false, false), Collections.singletonList(new ImportDeclaration(new QualifiedNameExpr(new NameExpr(PACKAGE), "TemporalType"), false, false)));
@Override protected NodeData getAnnotationNodes(String enclosingClass, String fieldName, String mappedClass) { final List<Expression> joinColumns = getJoinColumns(enclosingClass, fieldName, mappedClass); if (joinColumns != null && joinColumns.size() > 1) { final Comment fixme = new BlockComment("\nFIXME: JPA_CONVERSION\n" + "For compound primary keys, make sure the join columns are in the correct order.\n"); AnnotationExpr annotation = new SingleMemberAnnotationExpr(new NameExpr(SIMPLE_NAME), new ArrayInitializerExpr(joinColumns)); annotation.setComment(fixme); return new NodeData(annotation, new ImportDeclaration(new QualifiedNameExpr(new NameExpr(PACKAGE), SIMPLE_NAME), false, false), Collections.singletonList(new ImportDeclaration(new QualifiedNameExpr(new NameExpr(PACKAGE), "PrimaryKeyJoinColumn"), false, false))); } return null; } }
@Override protected NodeData getAnnotationNodes(String enclosingClass, String fieldName, String mappedClass) { final List<Expression> joinColumns = getJoinColumns(enclosingClass, fieldName, mappedClass); if (joinColumns != null && joinColumns.size() > 1) { final Comment fixme = new BlockComment("\nFIXME: JPA_CONVERSION\n" + "For compound primary keys, make sure the join columns are in the correct order.\n"); AnnotationExpr annotation = new SingleMemberAnnotationExpr(new NameExpr(SIMPLE_NAME), new ArrayInitializerExpr(joinColumns)); annotation.setComment(fixme); return new NodeData(annotation, new ImportDeclaration(new QualifiedNameExpr(new NameExpr(PACKAGE), SIMPLE_NAME), false, false), Arrays.asList( new ImportDeclaration(new QualifiedNameExpr(new NameExpr(PrimaryKeyJoinColumnResolver.PACKAGE),PrimaryKeyJoinColumnResolver.SIMPLE_NAME), false, false) , new ImportDeclaration(new QualifiedNameExpr(new NameExpr(JoinColumnResolver.PACKAGE),JoinColumnResolver.SIMPLE_NAME), false, false) )); } return null; } }