/*
* The Kuali Financial System, a comprehensive financial management system for higher education.
*
* Copyright 2005-2014 The Kuali Foundation
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.kuali.kfs.sys.businessobject;
import java.util.LinkedHashMap;
import org.kuali.kfs.sys.dataaccess.FieldMetaData;
import org.kuali.rice.kns.datadictionary.BusinessObjectEntry;
import org.kuali.rice.krad.bo.TransientBusinessObjectBase;
import org.kuali.rice.krad.datadictionary.AttributeDefinition;
public class DataMappingFieldDefinition extends TransientBusinessObjectBase {
private String namespaceCode;
private String componentClass;
private String propertyName;
private String tableName;
private String fieldName;
private FunctionalFieldDescription functionalFieldDescription;
private BusinessObjectEntry businessObjectEntry;
private AttributeDefinition attributeDefinition;
private FieldMetaData fieldMetaData;
private String propertyType;
private String referenceComponentLabel;
public DataMappingFieldDefinition() {
}
public DataMappingFieldDefinition(FunctionalFieldDescription functionalFieldDescription, BusinessObjectEntry businessObjectEntry, AttributeDefinition attributeDefinition, FieldMetaData fieldMetaData, String propertyType, String referenceComponentLabel) {
setNamespaceCode(functionalFieldDescription.getNamespaceCode());
setComponentClass(functionalFieldDescription.getComponentClass());
setPropertyName(functionalFieldDescription.getPropertyName());
setTableName(fieldMetaData.getTableName());
setFieldName(fieldMetaData.getColumnName());
setFunctionalFieldDescription(functionalFieldDescription);
this.businessObjectEntry = businessObjectEntry;
this.attributeDefinition = attributeDefinition;
this.fieldMetaData = fieldMetaData;
this.propertyType = propertyType;
this.referenceComponentLabel = referenceComponentLabel;
}
public String getDatabaseDataType() {
return fieldMetaData.getDataType();
}
public String getApplicationDataType() {
return propertyType;
}
public int getDatabaseDefinedLength() {
return fieldMetaData.getLength();
}
public int getApplicationDefinedLength() {
return attributeDefinition.getMaxLength();
}
public int getDecimalPlaces() {
return fieldMetaData.getDecimalPlaces();
}
public String getReferenceComponent() {
return referenceComponentLabel;
}
public boolean isRequired() {
return attributeDefinition.isRequired();
}
public String getValidationPattern() {
return new StringBuffer(attributeDefinition.getValidationPattern().getClass().getSimpleName()).append(" (").append(attributeDefinition.getValidationPattern().getRegexPattern().toString()).append(")").toString();
}
public boolean isEncrypted() {
return fieldMetaData.isEncrypted();
}
public String getMaskPattern() {
// TODO: see how to handle the multiple mask formatters that may appear on an AttributeSecurity object
/*if (attributeDefinition.getDisplayMask().getMaskFormatter() instanceof MaskFormatterLiteral) {
return ((MaskFormatterLiteral)attributeDefinition.getDisplayMask().getMaskFormatter()).getLiteral();
}
else if (attributeDefinition.getDisplayMask().getMaskFormatter() instanceof MaskFormatterSubString) {
return new StringBuffer(((MaskFormatterSubString)attributeDefinition.getDisplayMask().getMaskFormatter()).getMaskLength()).append(" ").append(((MaskFormatterSubString)attributeDefinition.getDisplayMask().getMaskFormatter()).getMaskCharacter()).append(" characters").toString();
}
else {*/
return "Unknown MaskFormatter";
//}
}
public String getNamespaceCode() {
return namespaceCode;
}
public void setNamespaceCode(String namespaceCode) {
this.namespaceCode = namespaceCode;
}
public String getComponentClass() {
return componentClass;
}
public void setComponentClass(String componentClass) {
this.componentClass = componentClass;
}
public String getPropertyName() {
return propertyName;
}
public void setPropertyName(String propertyName) {
this.propertyName = propertyName;
}
public String getTableName() {
return tableName;
}
public void setTableName(String tableName) {
this.tableName = tableName;
}
public String getFieldName() {
return fieldName;
}
public void setFieldName(String fieldName) {
this.fieldName = fieldName;
}
public FunctionalFieldDescription getFunctionalFieldDescription() {
return functionalFieldDescription;
}
public void setFunctionalFieldDescription(FunctionalFieldDescription functionalFieldDescription) {
this.functionalFieldDescription = functionalFieldDescription;
}
protected LinkedHashMap toStringMapper_RICE20_REFACTORME() {
return new LinkedHashMap();
}
}