You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

282 lines
6.2 KiB

package xyz.wbsite.dbtool.javafx.po;
import com.fasterxml.jackson.annotation.JsonIgnore;
import javafx.beans.property.SimpleStringProperty;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.control.TreeItem;
import xyz.wbsite.dbtool.javafx.annotation.Property;
import xyz.wbsite.dbtool.javafx.manger.ManagerFactory;
import xyz.wbsite.dbtool.javafx.manger.ProjectManager;
import xyz.wbsite.dbtool.javafx.tool.Tool;
import java.util.ArrayList;
import java.util.List;
public class Table {
@JsonIgnore
private Module dBhandle;
public Table() {
}
public Table(String tableName) {
setTableName(tableName);
}
public Table(String tableName, String tableComment) {
setTableName(tableName);
this.tableComment = tableComment;
}
@Property("tableName")
private SimpleStringProperty tableName = new SimpleStringProperty();
@Property("tableComment")
private String tableComment;
@Property("create")
private boolean create = true;
@Property("delete")
private boolean delete = true;
@Property("update")
private boolean update = true;
@Property("find")
private boolean find = true;
@Property("get")
private boolean get = true;
@Property("search")
private boolean search = false;
@Property("sys")
private boolean sys = true;
@Property("ajax")
private boolean ajax = false;
@Property("html")
private boolean html = false;
@Property("api")
private boolean api = false;
@Property("msvr")
private boolean msvr = false;
@Property("methods")
private List<TableMethod> methods = new ArrayList<>();
/**
* 对象字段
*/
private ObservableList<Field> fields = FXCollections.observableArrayList();
public boolean has(String type) {
for (Field field : fields) {
if (field.getFieldType().equals(type) && !field.getIsSystem()) {
return true;
}
}
return false;
}
public String getImport() {
StringBuilder sb = new StringBuilder("");
if (has("Date")) {
sb.append("import java.util.Date;\n");
}
if (has("BigDecimal")) {
sb.append("import java.math.BigDecimal;\n");
}
return sb.toString();
}
public boolean putField(Field field) {
fields.add(field);
return true;
}
public boolean putFirstField(Field field) {
fields.add(0, field);
return true;
}
public boolean needMgr() {
return create || delete || update || find || get || search;
}
public String getCName() {
return Tool.ABB2Abb(getTableName());
}
public String getFName() {
return Tool.lineToFieldName(getTableName());
}
public String getLName() {
return Tool.lineToLPoint(getTableName());
}
public String getTableName() {
return tableName.get();
}
public SimpleStringProperty tableNameProperty() {
return tableName;
}
public void setTableName(String tableName) {
this.tableName.set(tableName);
}
public String getTableComment() {
return tableComment;
}
public void setTableComment(String tableComment) {
this.tableComment = tableComment != null ? tableComment : "";
}
public ObservableList<Field> getFields() {
return fields;
}
public Module getdBhandle() {
return dBhandle;
}
public void setdBhandle(Module dBhandle) {
this.dBhandle = dBhandle;
}
public boolean getCreate() {
return create;
}
public void setCreate(boolean create) {
this.create = create;
}
public boolean getDelete() {
return delete;
}
public void setDelete(boolean delete) {
this.delete = delete;
}
public boolean getUpdate() {
return update;
}
public void setUpdate(boolean update) {
this.update = update;
}
public boolean getFind() {
return find;
}
public void setFind(boolean find) {
this.find = find;
}
public boolean getGet() {
return get;
}
public void setGet(boolean get) {
this.get = get;
}
public boolean getSearch() {
return search;
}
public void setSearch(boolean search) {
this.search = search;
}
public boolean getHtml() {
return html;
}
public void setHtml(boolean html) {
this.html = html;
}
public boolean getSys() {
return sys;
}
public void setSys(boolean sys) {
this.sys = sys;
ProjectManager projectManager = ManagerFactory.getProjectManager();
if (projectManager != null) projectManager.checkSysFields(this);
}
public boolean getAjax() {
return ajax;
}
public void setAjax(boolean ajax) {
this.ajax = ajax;
}
public boolean getApi() {
return api;
}
public void setApi(boolean api) {
this.api = api;
}
public boolean getMsvr() {
return msvr;
}
public void setMsvr(boolean msvr) {
this.msvr = msvr;
}
public boolean hasPrimaryKey() {
for (Field field : fields) {
if (field.getIsPrimaryKey()) {
return true;
}
}
return false;
}
public List<Field> primaryKeyList() {
ArrayList<Field> list = new ArrayList<>();
for (Field field : this.fields) {
if (field.getIsPrimaryKey()) {
list.add(field);
}
}
return list;
}
public List<Field> searchKeyList() {
ArrayList<Field> list = new ArrayList<>();
for (Field field : this.fields) {
if (field.getIsSearch()) {
list.add(field);
}
}
return list;
}
public boolean hasSearchKey() {
for (Field field : fields) {
if (field.getIsSearch()) {
return true;
}
}
return false;
}
public List<TableMethod> getMethods() {
return methods;
}
public void setMethods(List<TableMethod> methods) {
this.methods = methods;
}
}

Powered by TurnKey Linux.