private MethodDeclaration getterDeclaration(EntityField field) { MethodDeclaration decl = new MethodDeclaration(ModifierSet.PUBLIC, ASTHelper.createReferenceType(field.getType().getSimpleName(), 0), "get" + CaseConverter.pascalCase(field.getName())); BlockStmt body = new BlockStmt(); body.setStmts( Collections.singletonList( new ReturnStmt( new FieldAccessExpr(new ThisExpr(), field.getName())))); decl.setBody(body); return decl; }
implementList.add(new ClassOrInterfaceType("JdbcMigration")); migrationClass.setImplements(implementList); MethodDeclaration migrateMethod = new MethodDeclaration(ModifierSet.PUBLIC, ASTHelper.VOID_TYPE, "migrate"); ASTHelper.addMember(migrationClass, migrateMethod); ASTHelper.addParameter(migrateMethod, ASTHelper.createParameter(
private MethodDeclaration setterDeclaration(EntityField field) { MethodDeclaration decl = new MethodDeclaration(ModifierSet.PUBLIC, new VoidType(), "set" + CaseConverter.pascalCase(field.getName()), Collections.singletonList(new Parameter( ASTHelper.createReferenceType(field.getType().getSimpleName(), 0), new VariableDeclaratorId(field.getName())))); BlockStmt body = new BlockStmt(); body.setStmts( Collections.singletonList( new ExpressionStmt( new AssignExpr( new FieldAccessExpr(new ThisExpr(), field.getName()), ASTHelper.createNameExpr(field.getName()), AssignExpr.Operator.assign )))); decl.setBody(body); return decl; }
public static MethodDeclaration mergeMethod(MethodDeclaration one, MethodDeclaration two) { if (isAllNull(one, two)) return null; MethodDeclaration md = null; if (isAllNotNull(one, two)) { md = new MethodDeclaration(); md.setName(one.getName()); md.setType(mergeSelective(one.getType(), two.getType())); md.setParameters(mergeParameters(one.getParameters(), two.getParameters())); md.setTypeParameters(findFirstNotNull(one.getTypeParameters(), two.getTypeParameters())); md.setThrows(mergeListNoDuplicate(one.getThrows(), two.getThrows())); md.setAnnotations(mergeListNoDuplicate(one.getAnnotations(), two.getAnnotations())); md.setArrayCount(one.getArrayCount()); md.setModifiers(mergeModifiers(one.getModifiers(), two.getModifiers())); md.setBody(mergeBlock(one.getBody(), two.getBody())); md.setJavaDoc(mergeSelective(one.getJavaDoc(), two.getJavaDoc())); LOG.info("merge MethodDeclaration --> {}", md.getName()); } else { md = findFirstNotNull(one, two); LOG.info("add MethodDeclaration --> {}", md.getName()); } return md; }
@Override public MethodDeclaration doMerge(MethodDeclaration first, MethodDeclaration second) { MethodDeclaration md = new MethodDeclaration(); md.setName(first.getName()); md.setType(mergeSingle(first.getType(), second.getType())); md.setJavaDoc(mergeSingle(first.getJavaDoc(), second.getJavaDoc())); md.setModifiers(mergeModifiers(first.getModifiers(), second.getModifiers())); md.setDefault(first.isDefault() || second.isDefault()); md.setArrayCount(Math.max(first.getArrayCount(), second.getArrayCount())); md.setAnnotations(mergeCollections(first.getAnnotations(), second.getAnnotations())); md.setThrows(mergeListNoDuplicate(first.getThrows(), second.getThrows(), false)); md.setParameters(mergeCollectionsInOrder(first.getParameters(), second.getParameters())); md.setTypeParameters(mergeCollectionsInOrder(first.getTypeParameters(), second.getTypeParameters())); md.setBody(mergeSingle(first.getBody(), second.getBody())); return md; }