package xyz.wbsite.dbtool.javafx.po; import org.springframework.util.StringUtils; import xyz.wbsite.dbtool.javafx.tool.Tool; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Field extends Table { public Field() { } public Field(String fieldName) { this.fieldName = fieldName; } /** * 字段名 */ private String fieldName; /** * 字段类型 */ private FieldType fieldType = FieldType.String_var50; /** * 字段长度 */ private int fieldLength = 0; /** * 字段注释 */ private String fieldComment = null; /** * 默认值 */ private String defaultValue = null; /** * 是否可为NULL */ private Boolean isMust = false; /** * 是否是主键 */ private Boolean isPrimaryKey = false; /** * 是否作为查询条件 */ private Boolean isQuery = false; private Boolean isSearch = false; private Boolean isSystem = false; public String getTestValue() { String value = ""; if (fieldType.name().matches("String_\\d+")) { Pattern compile = Pattern.compile("String_(\\d+)"); Matcher matcher = compile.matcher(fieldType.name()); if (matcher.find()) { int len = Integer.parseInt(matcher.group(1)); if (StringUtils.isEmpty(this.fieldComment)) { StringBuilder sb = new StringBuilder("\""); for (int i = 0; i < len; i++) { sb.append("A"); } sb.append("\""); value = sb.toString(); } else { value = "\"" + this.fieldComment.substring(0, this.fieldComment.length() > this.fieldLength ? this.fieldLength : this.fieldComment.length()) + "\""; } } } else if (fieldType.name().matches("String_var\\d+")) { Pattern compile = Pattern.compile("String_var(\\d+)"); Matcher matcher = compile.matcher(fieldType.name()); if (matcher.find()) { int len = Integer.parseInt(matcher.group(1)); if (StringUtils.isEmpty(this.fieldComment)) { StringBuilder sb = new StringBuilder(""); sb.append("\""); sb.append("A"); sb.append("\""); value = sb.toString(); } else { value = "\"" + this.fieldComment.substring(0, this.fieldComment.length() > this.fieldLength ? this.fieldLength : this.fieldComment.length()) + "\""; } } } else if (fieldType.name().equals("String_var")) { int len = fieldLength; if (StringUtils.isEmpty(this.fieldComment)) { StringBuilder sb = new StringBuilder(""); sb.append("\""); sb.append("A"); sb.append("\""); value = sb.toString(); } else { value = "\"" + this.fieldComment.substring(0, this.fieldComment.length() > this.fieldLength ? this.fieldLength : this.fieldComment.length()) + "\""; } } else if (fieldType.name().matches("Boolean")) { value = "true"; } else if (fieldType.name().matches("Dict")) { value = "\"code\""; } else if (fieldType.name().matches("Byte")) { value = "(byte)1"; } else if (fieldType.name().matches("Short")) { value = "(short)1"; } else if (fieldType.name().matches("Integer")) { value = "1"; } else if (fieldType.name().matches("Bytes")) { value = "null"; } else if (fieldType.name().matches("Long")) { value = "1L"; } else if (fieldType.name().matches("Float")) { value = "1.0f"; } else if (fieldType.name().matches("Double")) { value = "1.0"; } else if (fieldType.name().matches("Character")) { value = "'A'"; } else if (fieldType.name().matches("Date")) { value = "new Date()"; } else if (fieldType.name().matches("BigDecimal")) { value = "new BigDecimal()"; } else if (fieldType.name().matches("String_super")) { value = "\"content\""; } return value; } public Boolean getIsSearch() { return isSearch; } public void setIsSearch(Boolean isSearch) { this.isSearch = isSearch; } public Boolean getIsSystem() { return isSystem; } public void setIsSystem(Boolean isSystem) { this.isSystem = isSystem; } public String getterName() { return "get" + Tool.lineToClassName(this.fieldName); } public String setterName() { return "set" + Tool.lineToClassName(this.fieldName); } public Boolean getIsQuery() { return isQuery; } public void setIsQuery(Boolean isQuery) { this.isQuery = isQuery; } public String getFieldName() { return fieldName; } public void setFieldName(String fieldName) { this.fieldName = fieldName; } public FieldType getFieldType() { return fieldType; } public void setFieldType(FieldType fieldType) { this.fieldType = fieldType; } public Integer getFieldLength() { return fieldLength; } public void setFieldLength(Integer fieldLength) { this.fieldLength = fieldLength; } public String getFieldComment() { return fieldComment; } public void setFieldComment(String fieldComment) { this.fieldComment = fieldComment != null ? fieldComment : ""; } public String getDefaultValue() { return defaultValue; } public void setDefaultValue(String defaultValue) { this.defaultValue = defaultValue; } public Boolean getIsMust() { return isMust; } public void setIsMust(Boolean isMust) { this.isMust = isMust; } public Boolean getIsPrimaryKey() { return isPrimaryKey; } public void setIsPrimaryKey(Boolean isPrimaryKey) { this.isPrimaryKey = isPrimaryKey; } public String getFName() { return Tool.lineToFieldName(this.fieldName); } public String getCName() { return Tool.lineToClassName(this.fieldName); } }