All Downloads are FREE. Search and download functionalities are using the official Maven repository.

br.com.jarch.apt.generate.ListControllerCodeGenerate Maven / Gradle / Ivy

The newest version!
package br.com.jarch.apt.generate;

import br.com.jarch.apt.type.CodeType;
import br.com.jarch.apt.type.ModuleType;
import br.com.jarch.core.annotation.JArchGenerateCrud;

import javax.lang.model.element.Element;

import static br.com.jarch.apt.util.ProcessorUtils.addCode;
import static br.com.jarch.apt.util.ProcessorUtils.addLineBlank;

public class ListControllerCodeGenerate extends BaseCodeGenerate {

    public static void generate(Element element, JArchGenerateCrud generateCrud) {
        new ListControllerCodeGenerate(element, generateCrud).generate();
    }

    ListControllerCodeGenerate(Element element, JArchGenerateCrud generateCrud) {
        super(element, generateCrud);
    }

    @Override
    public ModuleType getModule() {
        return ModuleType.WEB;
    }

    @Override
    public CodeType getType() {
        return CodeType.LIST_CONTROLLER;
    }

    @Override
    public String getContent() {
        StringBuilder code = new StringBuilder();
        addPackage(code);
        addImports(code);
        addBody(code);
        return code.toString();
    }

    private void addPackage(StringBuilder sbListCode) {
        addCode(sbListCode, "package " + getNamePackage() + ";");
        addLineBlank(sbListCode);
    }

    private void addImports(StringBuilder sbListCode) {
        addCode(sbListCode, "import br.com.jarch.core.annotation.JArchListController;");
        addCode(sbListCode, "import br.com.jarch.faces.controller.CrudListController;");
        addCode(sbListCode, "import " + getFullNameEntity() +";");
        addCode(sbListCode, "import " + getFullNameService() +";");
        addCode(sbListCode, "import " + getFullNameRepository() +";");
        addLineBlank(sbListCode);
    }

    private void addBody(StringBuilder sbListCode) {
        addCode(sbListCode, "@JArchListController");
        addCode(sbListCode, "public class " + getName() + " extends CrudListController<" + getNameEntity() + ", " + getNameService() + ", " + getNameRepository() + "> {");
        addLineBlank(sbListCode);
        addCode(sbListCode, "\t@Override");
        addCode(sbListCode, "\tpublic String getPageData() {");
        addCode(sbListCode, "\t\treturn \"" + getVarName() + "Data.jsf\";");
        addCode(sbListCode, "\t}");
        addCode(sbListCode, "}");
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy