Java tutorial
/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.glaf.core.domain; import java.util.Date; import java.util.Map; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Lob; import javax.persistence.Table; import org.apache.commons.lang3.StringUtils; import com.alibaba.fastjson.JSONObject; import com.fasterxml.jackson.databind.node.ObjectNode; import com.glaf.core.base.ClassDefinition; import com.glaf.core.base.FieldDefinition; import com.glaf.core.domain.util.ColumnDefinitionJsonFactory; /** * ? * */ @Entity @Table(name = "SYS_COLUMN") public class ColumnDefinition implements java.lang.Comparable<ColumnDefinition>, java.io.Serializable, FieldDefinition { private static final long serialVersionUID = 1L; /** * */ @Id @Column(name = "ID_", length = 100, nullable = false) protected String id; /** * ??? */ @Column(name = "ALIAS_", length = 50) protected String alias; @Column(name = "ALIGN_", length = 50) protected String align; /** * ? */ @Column(name = "COLUMNLABEL_", length = 50) protected String columnLabel; /** * ??? */ @Column(name = "COLUMNNAME_", length = 50) protected String columnName; @Column(name = "DATACODE_", length = 50) protected String dataCode; @javax.persistence.Transient protected int index; /** * ? */ @javax.persistence.Transient protected int dataType; @javax.persistence.Transient protected Date dateValue; /** * */ @Column(name = "DEFAULTVALUE_", length = 200) protected String defaultValue; /** * ,C-?P-? */ @Column(name = "DISCRIMINATOR_", length = 10) protected String discriminator; /** * 0-?1-?2-?? */ @Column(name = "DISPLAYTYPE_") protected int displayType; @javax.persistence.Transient protected double doubleValue; @Column(name = "EDITABLE_", length = 10) protected String editableField; /** * ENGLISH */ @Column(name = "ENGLISHTITLE_", length = 100) protected String englishTitle; /** * ? */ @Column(name = "FORMATTER_", length = 200) protected String formatter; /** * ? */ @Column(name = "FORMULA_", length = 200) protected String formula; /** * ? */ @Column(name = "FROZEN_", length = 10) protected String frozenField; @Column(name = "HEIGHT_", length = 50) protected String height; /** * ??? */ @Column(name = "HIDDEN_", length = 10) protected String hiddenField; /** * ????? */ @Column(name = "INPUTTYPE_", length = 50) protected String inputType; @Column(name = "INITVALUE_", length = 250) protected String initValue; @javax.persistence.Transient protected int intValue; /** * ??? */ @Column(name = "ISCOLLECTION_", length = 10) protected String isCollectionField; /** * Java */ @Column(name = "JAVATYPE_", length = 20) protected String javaType; /** * */ @Column(name = "LENGTH_") protected int length; @Column(name = "LINK_", length = 200) protected String link; @javax.persistence.Transient protected boolean listShow; @javax.persistence.Transient protected long longValue; @Column(name = "MASK_", length = 100) protected String mask; /** * ?? */ @Column(name = "NAME_", length = 50) protected String name; /** * ? */ @Column(name = "NULL_", length = 10) protected String nullableField = "1"; /** * ?? */ @Column(name = "ORDINAL_") protected int ordinal; /** * */ @Column(name = "PRECISION_") protected int precision; /** * ? */ @Column(name = "PRIMARYKEY_", length = 10) protected String primaryKeyField; /** * ? */ @Column(name = "QUERYID_", length = 50, nullable = true) protected String queryId; /** * ? */ @Column(name = "REGEX_", length = 100) protected String regex; @Lob @Column(name = "RENDERER_", length = 100) protected String renderer; @Column(name = "RENDERTYPE_", length = 50) protected String renderType; /** * ? */ @Column(name = "required", length = 10) protected String requiredField = "0"; /** * ?? */ @Column(name = "RESIZABLE_", length = 10) protected String resizableField; /** * ?? */ @Column(name = "SCALE_") protected int scale; @Column(name = "SEARCHABLE_", length = 10) protected String searchableField; /** * ??? */ @Column(name = "SORTABLE_", length = 10) protected String sortableField; /** * ? int-?number-?date- */ @Column(name = "SORTTYPE_", length = 50) protected String sortType; @javax.persistence.Transient protected String stringValue; /** * ? */ @Column(name = "SUMMARYEXPR_", length = 200) protected String summaryExpr; /** * sum-?count- */ @Column(name = "SUMMARYTYPE_", length = 50) protected String summaryType; @Column(name = "SYSTEMFLAG_", length = 2) protected String systemFlag; /** * ?? */ @Column(name = "TABLENAME_", length = 50, nullable = true) protected String tableName; /** * ID */ @Column(name = "TARGETID_", length = 50, nullable = true) protected String targetId; /** * */ @Column(name = "TEXTFIELD_", length = 50) protected String textField; /** * */ @Column(name = "TITLE_", length = 100) protected String title; /** * ?? */ @Column(name = "TOOLTIP_", length = 100) protected String tooltip; /** * ? */ @Column(name = "TRANSLATOR_", length = 100) protected String translator; @Column(name = "UNIQUE_", length = 10) protected String uniqueField; @Column(name = "UPDATEABLE_", length = 10) protected String updatableField; /** * ?URL */ @Column(name = "URL_", length = 250) protected String url; /** * ? */ @Column(name = "VALIDTYPE_", length = 50) protected String validType; @javax.persistence.Transient protected Object value; @Column(name = "PLACEHOLDER_", length = 200) protected String placeholder; @Column(name = "VALUEEXPRESSION_", length = 100) protected String valueExpression; /** * */ @Column(name = "VALUEFIELD_", length = 50) protected String valueField; @Column(name = "WIDTH_", length = 50) protected String width; @Column(name = "POSITION_") protected Integer position; @javax.persistence.Transient protected Map<String, String> properties = new java.util.HashMap<String, String>(); public ColumnDefinition() { } public void addProperty(String key, String value) { if (properties == null) { properties = new java.util.HashMap<String, String>(); } properties.put(key, value); } public int compareTo(ColumnDefinition o) { if (o == null) { return -1; } ColumnDefinition field = o; int l = this.ordinal - field.getSortNo(); int ret = 0; if (l > 0) { ret = 1; } else if (l < 0) { ret = -1; } return ret; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; ColumnDefinition other = (ColumnDefinition) obj; if (columnName == null) { if (other.columnName != null) return false; } else if (!getColumnName().equals(other.getColumnName())) return false; return true; } public String getAlias() { return alias; } public String getAlign() { return align; } public ClassDefinition getClassDefinition() { return null; } public String getColumnLabel() { return columnLabel; } public String getColumnName() { if (columnName != null) { columnName = columnName.trim().toUpperCase(); } return columnName; } public String getDataCode() { return dataCode; } public int getDataType() { return dataType; } public Date getDateValue() { return dateValue; } public String getDefaultValue() { return defaultValue; } public String getDiscriminator() { return discriminator; } public int getDisplayType() { return displayType; } public double getDoubleValue() { return doubleValue; } public String getEditableField() { return editableField; } public String getEnglishTitle() { return englishTitle; } public String getFirstLowerName() { return name.substring(0, 1).toLowerCase() + name.substring(1); } public String getFirstUpperName() { return name.substring(0, 1).toUpperCase() + name.substring(1); } public String getFormatter() { return formatter; } public String getFormula() { return formula; } public String getFrozenField() { return frozenField; } public String getHeight() { return height; } public String getHiddenField() { return hiddenField; } public String getId() { return id; } public int getIndex() { return index; } public String getInitValue() { return initValue; } public String getInputType() { return inputType; } public int getIntValue() { return intValue; } public String getIsCollection() { return isCollectionField; } public String getIsCollectionField() { return isCollectionField; } public String getJavaType() { return javaType; } public int getLength() { return length; } public String getLink() { return link; } public long getLongValue() { return longValue; } public String getLowerCaseType() { return javaType.toLowerCase(); } public String getMask() { return mask; } public int getMaxLength() { return length; } public int getMinLength() { return 0; } public String getName() { return name; } public String getNullableField() { return nullableField; } public int getOrdinal() { return ordinal; } public String getPlaceholder() { return placeholder; } public Integer getPosition() { return position; } public int getPrecision() { return precision; } public String getPrimaryKeyField() { return primaryKeyField; } public Map<String, String> getProperties() { return properties; } public String getQueryId() { return queryId; } public String getRegex() { return regex; } public String getRenderer() { return renderer; } public String getRenderType() { return renderType; } public String getRequiredField() { return requiredField; } public String getResizableField() { return resizableField; } public int getScale() { return scale; } public String getSearchableField() { return searchableField; } public String getSortableField() { return sortableField; } public int getSortNo() { return this.ordinal; } public String getSortType() { return sortType; } public String getStringValue() { return stringValue; } public String getSummaryExpr() { return summaryExpr; } public String getSummaryType() { return summaryType; } public String getSystemFlag() { return systemFlag; } public String getTableName() { return tableName; } public String getTargetId() { return targetId; } public String getTextField() { return textField; } public String getTitle() { return title; } public String getTooltip() { return tooltip; } public String getTranslator() { return translator; } public String getType() { return javaType; } public String getUniqueField() { return uniqueField; } public String getUpdatableField() { return updatableField; } public String getUrl() { return url; } public String getValidType() { return validType; } public Object getValue() { return value; } public String getValueExpression() { return valueExpression; } public String getValueField() { return valueField; } public String getWidth() { return width; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((getColumnName() == null) ? 0 : getColumnName().hashCode()); return result; } public boolean isCollection() { if (StringUtils.equalsIgnoreCase(isCollectionField, "1") || StringUtils.equalsIgnoreCase(isCollectionField, "Y") || StringUtils.equalsIgnoreCase(isCollectionField, "true")) { return true; } return false; } public boolean isEditable() { if (StringUtils.equalsIgnoreCase(editableField, "1") || StringUtils.equalsIgnoreCase(editableField, "Y") || StringUtils.equalsIgnoreCase(editableField, "true")) { return true; } return false; } public boolean isFrozen() { if (StringUtils.equalsIgnoreCase(frozenField, "1") || StringUtils.equalsIgnoreCase(frozenField, "Y") || StringUtils.equalsIgnoreCase(frozenField, "true")) { return true; } return false; } public boolean isHidden() { if (StringUtils.equalsIgnoreCase(hiddenField, "1") || StringUtils.equalsIgnoreCase(hiddenField, "Y") || StringUtils.equalsIgnoreCase(hiddenField, "true")) { return true; } return false; } public boolean isListShow() { if (displayType == 2) { listShow = true; } return listShow; } public boolean isNullable() { if (StringUtils.equalsIgnoreCase(nullableField, "1") || StringUtils.equalsIgnoreCase(nullableField, "Y") || StringUtils.equalsIgnoreCase(nullableField, "true")) { return true; } return false; } public boolean isPrimaryKey() { if (StringUtils.equalsIgnoreCase(primaryKeyField, "1") || StringUtils.equalsIgnoreCase(primaryKeyField, "Y") || StringUtils.equalsIgnoreCase(primaryKeyField, "true")) { return true; } return false; } public boolean isRequired() { if (StringUtils.equalsIgnoreCase(requiredField, "1") || StringUtils.equalsIgnoreCase(requiredField, "Y") || StringUtils.equalsIgnoreCase(requiredField, "true")) { return true; } return false; } public boolean isResizable() { if (StringUtils.equalsIgnoreCase(resizableField, "1") || StringUtils.equalsIgnoreCase(resizableField, "Y") || StringUtils.equalsIgnoreCase(resizableField, "true")) { return true; } return false; } public boolean isSearchable() { if (StringUtils.equalsIgnoreCase(searchableField, "1") || StringUtils.equalsIgnoreCase(searchableField, "Y") || StringUtils.equalsIgnoreCase(searchableField, "true")) { return true; } return false; } public boolean isSortable() { if (StringUtils.equalsIgnoreCase(sortableField, "1") || StringUtils.equalsIgnoreCase(sortableField, "Y") || StringUtils.equalsIgnoreCase(sortableField, "true")) { return true; } return false; } public boolean isUnique() { if (StringUtils.equalsIgnoreCase(uniqueField, "1") || StringUtils.equalsIgnoreCase(uniqueField, "Y") || StringUtils.equalsIgnoreCase(uniqueField, "true")) { return true; } return false; } public boolean isUpdatable() { if (StringUtils.equalsIgnoreCase(updatableField, "1") || StringUtils.equalsIgnoreCase(updatableField, "Y") || StringUtils.equalsIgnoreCase(updatableField, "true")) { return true; } return false; } public ColumnDefinition jsonToObject(JSONObject jsonObject) { return ColumnDefinitionJsonFactory.jsonToObject(jsonObject); } public void setAlias(String alias) { this.alias = alias; } public void setAlign(String align) { this.align = align; } public void setClassDefinition(ClassDefinition classDefinition) { } public void setCollection(boolean isCollection) { if (isCollection) { this.isCollectionField = "1"; } else { this.isCollectionField = "0"; } } public void setColumnLabel(String columnLabel) { this.columnLabel = columnLabel; } public void setColumnName(String columnName) { this.columnName = columnName; } public void setDataCode(String dataCode) { this.dataCode = dataCode; } public void setDataType(int dataType) { this.dataType = dataType; } public void setDateValue(Date dateValue) { this.dateValue = dateValue; } public void setDefaultValue(String defaultValue) { this.defaultValue = defaultValue; } public void setDiscriminator(String discriminator) { this.discriminator = discriminator; } public void setDisplayType(int displayType) { this.displayType = displayType; } public void setDoubleValue(double doubleValue) { this.doubleValue = doubleValue; } public void setEditable(boolean editable) { if (editable) { this.editableField = "1"; } else { this.editableField = "0"; } } public void setEditableField(String editableField) { this.editableField = editableField; } public void setEnglishTitle(String englishTitle) { this.englishTitle = englishTitle; } public void setFormatter(String formatter) { this.formatter = formatter; } public void setFormula(String formula) { this.formula = formula; } public void setFrozen(boolean frozen) { if (frozen) { this.frozenField = "1"; } else { this.frozenField = "0"; } } public void setFrozenField(String frozenField) { this.frozenField = frozenField; } public void setHeight(String height) { this.height = height; } public void setHidden(boolean hidden) { if (hidden) { this.hiddenField = "1"; } else { this.hiddenField = "0"; } } public void setHiddenField(String hiddenField) { this.hiddenField = hiddenField; } public void setId(String id) { this.id = id; } public void setIndex(int index) { this.index = index; } public void setInitValue(String initValue) { this.initValue = initValue; } public void setInputType(String inputType) { this.inputType = inputType; } public void setIntValue(int intValue) { this.intValue = intValue; } public void setIsCollectionField(String isCollectionField) { this.isCollectionField = isCollectionField; } public void setJavaType(String javaType) { this.javaType = javaType; } public void setLength(int length) { this.length = length; } public void setLink(String link) { this.link = link; } public void setListShow(boolean listShow) { this.listShow = listShow; } public void setLongValue(long longValue) { this.longValue = longValue; } public void setMask(String mask) { this.mask = mask; } public void setMaxLength(int maxLength) { this.length = maxLength; } public void setMinLength(int minLength) { } public void setName(String name) { this.name = name; } public void setNullable(boolean nullable) { if (nullable) { this.nullableField = "1"; } else { this.nullableField = "0"; } } public void setNullableField(String nullableField) { this.nullableField = nullableField; } public void setOrdinal(int ordinal) { this.ordinal = ordinal; } public void setPlaceholder(String placeholder) { this.placeholder = placeholder; } public void setPosition(Integer position) { this.position = position; } public void setPrecision(int precision) { this.precision = precision; } public void setPrimaryKey(boolean primaryKey) { if (primaryKey) { this.primaryKeyField = "1"; } else { this.primaryKeyField = "0"; } } public void setPrimaryKeyField(String primaryKeyField) { this.primaryKeyField = primaryKeyField; } public void setProperties(Map<String, String> properties) { this.properties = properties; } public void setQueryId(String queryId) { this.queryId = queryId; } public void setRegex(String regex) { this.regex = regex; } public void setRenderer(String renderer) { this.renderer = renderer; } public void setRenderType(String renderType) { this.renderType = renderType; } public void setRequired(boolean required) { if (required) { this.requiredField = "1"; } else { this.requiredField = "0"; } } public void setRequiredField(String requiredField) { this.requiredField = requiredField; } public void setResizable(boolean resizable) { if (resizable) { this.resizableField = "1"; } else { this.resizableField = "0"; } } public void setResizableField(String resizableField) { this.resizableField = resizableField; } public void setScale(int scale) { this.scale = scale; } public void setSearchable(boolean searchable) { if (searchable) { this.searchableField = "1"; } else { this.searchableField = "0"; } } public void setSearchableField(String searchableField) { this.searchableField = searchableField; } public void setSortable(boolean sortable) { if (sortable) { this.sortableField = "1"; } else { this.sortableField = "0"; } } public void setSortableField(String sortableField) { this.sortableField = sortableField; } public void setSortNo(int sortNo) { this.ordinal = sortNo; } public void setSortType(String sortType) { this.sortType = sortType; } public void setStringValue(String stringValue) { this.stringValue = stringValue; } public void setSummaryExpr(String summaryExpr) { this.summaryExpr = summaryExpr; } public void setSummaryType(String summaryType) { this.summaryType = summaryType; } public void setSystemFlag(String systemFlag) { this.systemFlag = systemFlag; } public void setTableName(String tableName) { this.tableName = tableName; } public void setTargetId(String targetId) { this.targetId = targetId; } public void setTextField(String textField) { this.textField = textField; } public void setTitle(String title) { this.title = title; } public void setTooltip(String tooltip) { this.tooltip = tooltip; } public void setTranslator(String translator) { this.translator = translator; } public void setType(String javaType) { this.javaType = javaType; } public void setUnique(boolean unique) { if (unique) { this.uniqueField = "1"; } else { this.uniqueField = "0"; } } public void setUniqueField(String uniqueField) { this.uniqueField = uniqueField; } public void setUpdatable(boolean updatable) { if (updatable) { this.updatableField = "1"; } else { this.updatableField = "0"; } } public void setUpdatableField(String updatableField) { this.updatableField = updatableField; } public void setUrl(String url) { this.url = url; } public void setValidType(String validType) { this.validType = validType; } public void setValue(Object value) { this.value = value; } public void setValueExpression(String valueExpression) { this.valueExpression = valueExpression; } public void setValueField(String valueField) { this.valueField = valueField; } public void setWidth(String width) { this.width = width; } public JSONObject toJsonObject() { return ColumnDefinitionJsonFactory.toJsonObject(this); } public ObjectNode toObjectNode() { return ColumnDefinitionJsonFactory.toObjectNode(this); } public String toString() { return toJsonObject().toJSONString(); } }