/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.designer.core.metadata.runtime; import org.eclipse.emf.ecore.EObject; import org.teiid.designer.core.index.IndexConstants; import org.teiid.designer.core.metamodel.aspect.sql.SqlColumnAspect; /** * ColumnRecordImpl * * @since 8.0 */ public class ColumnRecordImpl extends org.teiid.designer.metadata.runtime.impl.ColumnRecordImpl { private static final long serialVersionUID = 1657510358041575492L; /** * Flags to determine if values have been set. * Used for performance. */ private boolean datatypeUUIDSet; private boolean selectableSet; private boolean updatableSet; private boolean autoIncrementableSet; private boolean caseSensitiveSet; private boolean signedSet; private boolean currencySet; private boolean fixedLengthSet; private boolean searchTypeSet; private boolean defaultValueSet; private boolean minValueSet; private boolean maxValueSet; private boolean lengthSet; private boolean scaleSet; private boolean nullTypeSet; private boolean nullValuesSet; private boolean distinctValuesSet; private boolean runtimeTypeNameSet; private boolean nativeTypeSet; private boolean formatSet; private boolean precisionSet; private boolean charOctetLengthSet; private boolean positionSet; private boolean radixSet; private boolean tranformationInputParameterSet; // ================================================================================== // C O N S T R U C T O R S // ================================================================================== public ColumnRecordImpl(final SqlColumnAspect sqlAspect, EObject eObject) { super(new ModelerMetadataRecordDelegate(sqlAspect, eObject)); setRecordType(IndexConstants.RECORD_TYPE.COLUMN); this.eObject = eObject; } private SqlColumnAspect getColumnAspect() { return (SqlColumnAspect) ((ModelerMetadataRecordDelegate)this.delegate).getSqlAspect(); } //================================================================================== // I N T E R F A C E M E T H O D S //================================================================================== /* (non-Javadoc) * @see org.teiid.designer.metadata.runtime.ColumnRecord#getCharOctetLength() */ @Override public int getCharOctetLength() { if((EObject)this.eObject != null && !charOctetLengthSet) { setCharOctetLength(getColumnAspect().getCharOctetLength((EObject)this.eObject)); } return super.getCharOctetLength(); } /* (non-Javadoc) * @see org.teiid.designer.metadata.runtime.ColumnRecord#getRuntimeType() */ @Override public String getRuntimeType() { if((EObject)this.eObject != null && !runtimeTypeNameSet) { setRuntimeType(getColumnAspect().getRuntimeType((EObject)this.eObject)); } return super.getRuntimeType(); } /* (non-Javadoc) * @see org.teiid.designer.metadata.runtime.ColumnRecord#getDatatypeUUID() */ @Override public String getDatatypeUUID() { if((EObject)this.eObject != null && !datatypeUUIDSet) { setDatatypeUUID(getColumnAspect().getDatatypeObjectID((EObject)this.eObject)); } return super.getDatatypeUUID(); } /* (non-Javadoc) * @see org.teiid.designer.metadata.runtime.ColumnRecord#getDefaultValue() */ @Override public String getDefaultValue() { if((EObject)this.eObject != null && !defaultValueSet) { setDefaultValue(getColumnAspect().getDefaultValue((EObject)this.eObject)); } return super.getDefaultValue(); } /* (non-Javadoc) * @see org.teiid.designer.metadata.runtime.ColumnRecord#getLength() */ @Override public int getLength() { if((EObject)this.eObject != null && !lengthSet) { setLength(getColumnAspect().getLength((EObject)this.eObject)); } return super.getLength(); } /* (non-Javadoc) * @see org.teiid.designer.metadata.runtime.ColumnRecord#getMaxValue() */ @Override public Object getMaxValue() { if((EObject)this.eObject != null && !maxValueSet) { setMaxValue(getColumnAspect().getMaxValue((EObject)this.eObject)); } return super.getMaxValue(); } /* (non-Javadoc) * @see org.teiid.designer.metadata.runtime.ColumnRecord#getMinValue() */ @Override public Object getMinValue() { if((EObject)this.eObject != null && !minValueSet) { setMinValue(getColumnAspect().getMinValue((EObject)this.eObject)); } return super.getMinValue(); } /* (non-Javadoc) * @see org.teiid.designer.metadata.runtime.ColumnRecord#getPrecision() */ @Override public int getPrecision() { if((EObject)this.eObject != null && !precisionSet) { setPrecision(getColumnAspect().getPrecision((EObject)this.eObject)); } return super.getPrecision(); } /* (non-Javadoc) * @see org.teiid.designer.metadata.runtime.ColumnRecord#getPosition() */ @Override public int getPosition() { if((EObject)this.eObject != null && !positionSet) { setPosition(getColumnAspect().getPosition((EObject)this.eObject)); } return super.getPosition(); } /* (non-Javadoc) * @see org.teiid.designer.metadata.runtime.ColumnRecord#getScale() */ @Override public int getScale() { if((EObject)this.eObject != null && !scaleSet) { setScale(getColumnAspect().getScale((EObject)this.eObject)); } return super.getScale(); } /* (non-Javadoc) * @see org.teiid.designer.metadata.runtime.ColumnRecord#getSearchTye() */ @Override public int getSearchType() { if((EObject)this.eObject != null && !searchTypeSet) { setSearchType(getColumnAspect().getSearchType((EObject)this.eObject)); } return super.getSearchType(); } /* (non-Javadoc) * @see org.teiid.designer.metadata.runtime.ColumnRecord#getFormat() */ @Override public String getFormat() { if((EObject)this.eObject != null && !formatSet) { setFormat(getColumnAspect().getFormat((EObject)this.eObject)); } return super.getFormat(); } /* (non-Javadoc) * @see org.teiid.designer.metadata.runtime.ColumnRecord#isAutoIncrementable() */ @Override public boolean isAutoIncrementable() { if((EObject)this.eObject != null && !autoIncrementableSet) { setAutoIncrementable(getColumnAspect().isAutoIncrementable((EObject)this.eObject)); } return super.isAutoIncrementable(); } /* (non-Javadoc) * @see org.teiid.designer.metadata.runtime.ColumnRecord#isCaseSensitive() */ @Override public boolean isCaseSensitive() { if((EObject)this.eObject != null && !caseSensitiveSet) { setCaseSensitive(getColumnAspect().isCaseSensitive((EObject)this.eObject)); } return super.isCaseSensitive(); } /* (non-Javadoc) * @see org.teiid.designer.metadata.runtime.ColumnRecord#isCurrency() */ @Override public boolean isCurrency() { if((EObject)this.eObject != null && !currencySet) { setCurrency(getColumnAspect().isCurrency((EObject)this.eObject)); } return super.isCurrency(); } /* (non-Javadoc) * @see org.teiid.designer.metadata.runtime.ColumnRecord#isFixedLength() */ @Override public boolean isFixedLength() { if((EObject)this.eObject != null && !fixedLengthSet) { setFixedLength(getColumnAspect().isFixedLength((EObject)this.eObject)); } return super.isFixedLength(); } /** * @see org.teiid.designer.metadata.runtime.ColumnRecord#isTranformationInputParameter() * @since 4.2 */ @Override public boolean isTranformationInputParameter() { if((EObject)this.eObject != null && !tranformationInputParameterSet) { this.setTransformationInputParameter(getColumnAspect().isTranformationInputParameter((EObject)this.eObject)); } return super.isTranformationInputParameter(); } /** * @return */ @Override public int getNullType() { if((EObject)this.eObject != null && !nullTypeSet) { setNullType(getColumnAspect().getNullType((EObject)this.eObject)); } return super.getNullType(); } /* (non-Javadoc) * @see org.teiid.designer.metadata.runtime.ColumnRecord#isSelectable() */ @Override public boolean isSelectable() { if((EObject)this.eObject != null && !selectableSet) { setSelectable(getColumnAspect().isSelectable((EObject)this.eObject)); } return super.isSelectable(); } /* (non-Javadoc) * @see org.teiid.designer.metadata.runtime.ColumnRecord#isSigned() */ @Override public boolean isSigned() { if((EObject)this.eObject != null && !signedSet) { setSigned(getColumnAspect().isSigned((EObject)this.eObject)); } return super.isSigned(); } /* (non-Javadoc) * @see org.teiid.designer.metadata.runtime.ColumnRecord#isUpdatable() */ @Override public boolean isUpdatable() { if((EObject)this.eObject != null && !updatableSet) { setUpdatable(getColumnAspect().isUpdatable((EObject)this.eObject)); } return super.isUpdatable(); } /* (non-Javadoc) * @see org.teiid.designer.metadata.runtime.ColumnRecord#getRadix() */ @Override public int getRadix() { if((EObject)this.eObject != null && !radixSet) { setRadix(getColumnAspect().getRadix((EObject)this.eObject)); } return super.getRadix(); } /** * @see org.teiid.designer.metadata.runtime.ColumnRecord#getNativeType() * @since 4.2 */ @Override public String getNativeType() { if((EObject)this.eObject != null && !nativeTypeSet) { setNativeType(getColumnAspect().getNativeType((EObject)this.eObject)); } return super.getNativeType(); } /** * @see org.teiid.designer.metadata.runtime.ColumnRecord#getDistinctValues() * @since 4.3 */ @Override public int getDistinctValues() { if((EObject)this.eObject != null && !distinctValuesSet) { setDistinctValues(getColumnAspect().getDistinctValues((EObject)this.eObject)); } return super.getDistinctValues(); } /** * @see org.teiid.designer.metadata.runtime.ColumnRecord#getNullValues() * @since 4.3 */ @Override public int getNullValues() { if((EObject)this.eObject != null && !nullValuesSet) { setNullValues(getColumnAspect().getNullValues((EObject)this.eObject)); } return super.getNullValues(); } // ================================================================================== // P U B L I C M E T H O D S // ================================================================================== /** * @param b */ @Override public void setAutoIncrementable(boolean b) { super.setAutoIncrementable(b); autoIncrementableSet = true; } /** * @param b */ @Override public void setCaseSensitive(boolean b) { super.setCaseSensitive(b); caseSensitiveSet = true; } /** * @param i */ @Override public void setCharOctetLength(int i) { super.setCharOctetLength(i); charOctetLengthSet = true; } /** * @param b */ @Override public void setCurrency(boolean b) { super.setCurrency(b); currencySet = true; } /** * @param string */ @Override public void setRuntimeType(String string) { super.setRuntimeType(string); runtimeTypeNameSet = true; } /** * @param string */ @Override public void setDatatypeUUID(String string) { super.setDatatypeUUID(string); datatypeUUIDSet = true; } /** * @param object */ @Override public void setDefaultValue(String object) { super.setDefaultValue(object); defaultValueSet = true; } /** * @param b */ @Override public void setFixedLength(boolean b) { super.setFixedLength(b); fixedLengthSet = true; } /** * @param i */ @Override public void setLength(int i) { super.setLength(i); lengthSet = true; } /** * @param i */ @Override public void setNullType(int i) { super.setNullType(i); nullTypeSet = true; } /** * @param object */ @Override public void setMaxValue(Object object) { super.setMaxValue(object); maxValueSet = true; } /** * @param object */ @Override public void setMinValue(Object object) { super.setMinValue(object); minValueSet = true; } /** * @param i */ @Override public void setPrecision(int i) { super.setPrecision(i); precisionSet = true; } /** * @param i */ @Override public void setPosition(int i) { super.setPosition(i); positionSet = true; } /** * @param i */ @Override public void setScale(int i) { super.setScale(i); scaleSet = true; } /** * @param s */ @Override public void setSearchType(int s) { super.setSearchType(s); searchTypeSet = true; } /** * @param b */ @Override public void setSelectable(boolean b) { super.setSelectable(b); selectableSet = true; } /** * @param b */ @Override public void setSigned(boolean b) { super.setSigned(b); signedSet = true; } /** * @param b */ @Override public void setUpdatable(boolean b) { super.setUpdatable(b); updatableSet = true; } /** * @param i */ @Override public void setRadix(int i) { super.setRadix(i); radixSet = true; } /** * @param string */ @Override public void setFormat(String string) { super.setFormat(string); formatSet = true; } /** * @param distinctValues The distinctValues to set. * @since 4.3 */ @Override public void setDistinctValues(int distinctValues) { super.setDistinctValues(distinctValues); this.distinctValuesSet = true; } /** * @param nullValues The nullValues to set. * @since 4.3 */ @Override public void setNullValues(int nullValues) { super.setNullValues(nullValues); this.nullValuesSet = true; } /** * @param nativeType The nativeType to set. * @since 4.2 */ @Override public void setNativeType(String nativeType) { super.setNativeType(nativeType); nativeTypeSet = true; } /** * @param b */ @Override public void setTransformationInputParameter(boolean b) { super.setTransformationInputParameter(b); this.tranformationInputParameterSet = true; } }