package org.yeshi.utils.generater.entity.admin; import org.yeshi.utils.generater.annotation.admin.AdminController; import org.yeshi.utils.generater.util.AnotationUtil; import java.lang.annotation.Annotation; import java.util.List; import java.util.Map; /** * @author Administrator * @title: AdminGeneraterInfo * @description: TODO * @date 2021/9/24 11:03 */ public class AdminGeneraterInfo { //entity类 private Class entity; //controller注解对象 private AdminController controllerData; //修改的表单行数据 private List updateFormRows; //添加的表单行数据 private List addFormRows; //搜索的表单行数据 private List searchFormRows; private List> showDataList; public Class getEntity() { return entity; } public void setEntity(Class entity) { this.entity = entity; } public AdminController getControllerData() { return controllerData; } public void setControllerData(AdminController controllerData) { this.controllerData = controllerData; } public List getUpdateFormRows() { return updateFormRows; } public void setUpdateFormRows(List updateFormRows) { this.updateFormRows = updateFormRows; } public List getAddFormRows() { return addFormRows; } public void setAddFormRows(List addFormRows) { this.addFormRows = addFormRows; } public List getSearchFormRows() { return searchFormRows; } public void setSearchFormRows(List searchFormRows) { this.searchFormRows = searchFormRows; } public List> getShowDataList() { return showDataList; } public void setShowDataList(List> showDataList) { this.showDataList = showDataList; } public static class Builder { private Class entity; public Builder setEntityClass(Class clazz) { this.entity = clazz; return this; } public AdminGeneraterInfo build() throws Exception { if (entity == null) { throw new Exception("尚未设置entity"); } //查询是否需要生成管理界面与controller Annotation[] ans = entity.getAnnotations(); for (Annotation an : ans) { if (an instanceof AdminController) { Class searchFormClass = ((AdminController) an).searchForm(); AdminGeneraterInfo info = new AdminGeneraterInfo(); info.setEntity(entity); info.setControllerData((AdminController) an); info.setSearchFormRows(AnotationUtil.getFormRowData(searchFormClass)); info.setAddFormRows(AnotationUtil.getFormRowData(entity)); info.setUpdateFormRows(AnotationUtil.getUpdateFormRowData(entity)); info.setShowDataList(AnotationUtil.getShowDataList(entity)); return info; } } return null; } } }