Package cn.shenyanchao.ut.builder

Source Code of cn.shenyanchao.ut.builder.CompilationUnitBuilder

package cn.shenyanchao.ut.builder;

import japa.parser.ASTHelper;
import japa.parser.ast.Comment;
import japa.parser.ast.CompilationUnit;
import japa.parser.ast.ImportDeclaration;
import japa.parser.ast.PackageDeclaration;
import japa.parser.ast.body.ClassOrInterfaceDeclaration;
import japa.parser.ast.body.JavadocComment;
import japa.parser.ast.expr.NameExpr;

import java.util.Arrays;
import java.util.List;

/**
* Created with IntelliJ IDEA.
*
* @author shenyanchao
*         Date:  6/15/13
*         Time:  3:29 PM
*/
public class CompilationUnitBuilder {

    private CompilationUnit cu = new CompilationUnit();

    public CompilationUnitBuilder buildComment(String commentStr) {
        Comment comment = new JavadocComment(commentStr);
        if (null != cu.getComments()) {
            cu.getComments().add(comment);
        } else {
            cu.setComment(comment);
        }
        return this;
    }

    public CompilationUnitBuilder addComments(List<Comment> comments) {
        cu.setComments(comments);
        return this;
    }

    public CompilationUnitBuilder buildPackage(String packageName) {
        cu.setPackage(new PackageDeclaration(ASTHelper.createNameExpr(packageName)));
        return this;
    }

    public CompilationUnitBuilder addPackage(PackageDeclaration packageDeclaration) {
        cu.setPackage(packageDeclaration);
        return this;
    }

    public CompilationUnitBuilder buildImports(String[] imports) {

        ImportDeclaration importDeclaration = new ImportDeclaration(new NameExpr("org.testng.annotations.Test"),
                false, false);
        if (null != cu.getImports()) {
            cu.getImports().add(importDeclaration);
        } else {
            cu.setImports(Arrays.asList(importDeclaration));
        }
        return this;
    }

    public CompilationUnitBuilder addImports(List<ImportDeclaration> imports) {
        cu.setImports(imports);
        return this;
    }

    public CompilationUnitBuilder buildClass(ClassOrInterfaceDeclaration type) {
        ASTHelper.addTypeDeclaration(cu, type);
        return this;
    }

    public CompilationUnit build() {
        return cu;
    }

}
TOP

Related Classes of cn.shenyanchao.ut.builder.CompilationUnitBuilder

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.