/* * 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 java.util.List; import org.eclipse.emf.ecore.EObject; import org.teiid.designer.core.index.IndexConstants; import org.teiid.designer.core.metamodel.aspect.sql.SqlDatatypeAspect; /** * ColumnRecordImpl * * @since 8.0 */ public class DatatypeRecordImpl extends org.teiid.designer.metadata.runtime.impl.DatatypeRecordImpl { private static final long serialVersionUID = -7902919354575794443L; /** * Flags to determine if values have been set. */ private boolean isAutoIncrementSet; private boolean isCaseSensitiveSet; private boolean isSignedSet; private boolean searchTypeSet; private boolean datatypeIDSet; private boolean basetypeIDSet; private boolean primitiveTypeIDSet; private boolean varietyTypeSet; private boolean lengthSet; private boolean scaleSet; private boolean nullTypeSet; private boolean runtimeTypeNameSet; private boolean varietyPropsSet; private boolean precisionLengthSet; private boolean javaClassNameSet; private boolean typeSet; private boolean radixSet; // ================================================================================== // C O N S T R U C T O R S // ================================================================================== public DatatypeRecordImpl(final SqlDatatypeAspect sqlAspect, final EObject eObject) { super(new ModelerMetadataRecordDelegate(sqlAspect, eObject)); setRecordType(IndexConstants.RECORD_TYPE.DATATYPE); this.eObject = eObject; } private SqlDatatypeAspect getDatatypeAspect() { return (SqlDatatypeAspect) ((ModelerMetadataRecordDelegate)this.delegate).getSqlAspect(); } //================================================================================== // I N T E R F A C E M E T H O D S //================================================================================== /** * @see org.teiid.designer.metadata.runtime.DatatypeRecord#getLength() */ @Override public int getLength() { if(eObject != null && !lengthSet) { setLength(getDatatypeAspect().getLength((EObject)eObject)); } return super.getLength(); } /** * @see org.teiid.designer.metadata.runtime.DatatypeRecord#getPrecisionLength() */ @Override public int getPrecisionLength() { if(eObject != null && !precisionLengthSet) { setPrecisionLength(getDatatypeAspect().getPrecisionLength((EObject)eObject)); } return super.getPrecisionLength(); } /** * @see org.teiid.designer.metadata.runtime.DatatypeRecord#getScale() */ @Override public int getScale() { if(eObject != null && !scaleSet) { setScale(getDatatypeAspect().getScale((EObject)eObject)); } return super.getScale(); } /** * @see org.teiid.designer.metadata.runtime.DatatypeRecord#getRadix() */ @Override public int getRadix() { if(eObject != null && !radixSet) { setRadix(getDatatypeAspect().getRadix((EObject)eObject)); } return super.getRadix(); } /** * @see org.teiid.designer.metadata.runtime.DatatypeRecord#isSigned() */ @Override public boolean isSigned() { if(eObject != null && !isSignedSet) { setSigned(getDatatypeAspect().isSigned((EObject)eObject)); } return super.isSigned(); } /** * @see org.teiid.designer.metadata.runtime.DatatypeRecord#isAutoIncrement() */ @Override public boolean isAutoIncrement() { if(eObject != null && !isAutoIncrementSet) { setAutoIncrement(getDatatypeAspect().isAutoIncrement((EObject)eObject)); } return super.isAutoIncrement(); } /** * @see org.teiid.designer.metadata.runtime.DatatypeRecord#isCaseSensitive() */ @Override public boolean isCaseSensitive() { if(eObject != null && !isCaseSensitiveSet) { setCaseSensitive(getDatatypeAspect().isCaseSensitive((EObject)eObject)); } return super.isCaseSensitive(); } /** * @see org.teiid.designer.metadata.runtime.DatatypeRecord#getType() */ @Override public short getType() { if(eObject != null && !typeSet) { setType(getDatatypeAspect().getType((EObject)eObject)); } return super.getType(); } /** * @see org.teiid.designer.metadata.runtime.DatatypeRecord#getSearchType() */ @Override public short getSearchType() { if(eObject != null && !searchTypeSet) { setSearchType(getDatatypeAspect().getSearchType((EObject)eObject)); } return super.getSearchType(); } /** * @see org.teiid.designer.metadata.runtime.DatatypeRecord#getNullType() */ @Override public short getNullType() { if(eObject != null && !nullTypeSet) { setNullType(getDatatypeAspect().getNullType((EObject)eObject)); } return super.getNullType(); } /** * @see org.teiid.designer.metadata.runtime.DatatypeRecord#getJavaClassName() */ @Override public String getJavaClassName() { if(eObject != null && !javaClassNameSet) { setJavaClassName(getDatatypeAspect().getJavaClassName((EObject)eObject)); } return super.getJavaClassName(); } /** * @see org.teiid.designer.metadata.runtime.DatatypeRecord#getRuntimeTypeName() */ @Override public String getRuntimeTypeName() { if(eObject != null && !runtimeTypeNameSet) { setRuntimeTypeName(getDatatypeAspect().getRuntimeTypeName((EObject)eObject)); } return super.getRuntimeTypeName(); } /** * @see org.teiid.designer.metadata.runtime.DatatypeRecord#getDatatypeID() */ @Override public String getDatatypeID() { if(eObject != null && !datatypeIDSet) { setDatatypeID(getDatatypeAspect().getDatatypeID((EObject)eObject)); } return super.getDatatypeID(); } /** * @see org.teiid.designer.metadata.runtime.DatatypeRecord#getBasetypeID() */ @Override public String getBasetypeID() { if(eObject != null && !basetypeIDSet) { setBasetypeID(getDatatypeAspect().getBasetypeID((EObject)eObject)); } return super.getBasetypeID(); } /** * @see org.teiid.designer.metadata.runtime.DatatypeRecord#getPrimitiveTypeID() * @since 4.3 */ @Override public String getPrimitiveTypeID() { if(eObject != null && !primitiveTypeIDSet) { setPrimitiveTypeID(getDatatypeAspect().getPrimitiveTypeID((EObject)eObject)); } return super.getPrimitiveTypeID(); } /** * @see org.teiid.designer.metadata.runtime.DatatypeRecord#getVarietyType() */ @Override public short getVarietyType() { if(eObject != null && !varietyTypeSet) { setVarietyType(getDatatypeAspect().getVarietyType((EObject)eObject)); } return super.getVarietyType(); } /** * @see org.teiid.designer.metadata.runtime.DatatypeRecord#getVarietyProps() */ @Override public List getVarietyProps() { if(eObject != null && !varietyPropsSet) { setVarietyProps(getDatatypeAspect().getVarietyProps((EObject)eObject)); } return super.getVarietyProps(); } // ================================================================================== // P U B L I C M E T H O D S // ================================================================================== /** * @param string */ @Override public void setBasetypeID(String string) { super.setBasetypeID(string); basetypeIDSet = true; } /** * @param string */ @Override public void setPrimitiveTypeID(String string) { super.setPrimitiveTypeID(string); primitiveTypeIDSet = true; } /** * @param b */ @Override public void setAutoIncrement(boolean b) { super.setAutoIncrement(b); isAutoIncrementSet = true; } /** * @param b */ @Override public void setCaseSensitive(boolean b) { super.setCaseSensitive(b); isCaseSensitiveSet = true; } /** * @param b */ @Override public void setSigned(boolean b) { super.setSigned(b); isSignedSet = true; } /** * @param string */ @Override public void setJavaClassName(String string) { super.setJavaClassName(string); javaClassNameSet = true; } /** * @param i */ @Override public void setLength(int i) { super.setLength(i); lengthSet = true; } /** * @param s */ @Override public void setNullType(short s) { super.setType(s); nullTypeSet = true; } /** * @param i */ @Override public void setPrecisionLength(int i) { super.setPrecisionLength(i); precisionLengthSet = true; } /** * @param i */ @Override public void setRadix(int i) { super.setRadix(i); radixSet = true; } /** * @param string */ @Override public void setRuntimeTypeName(String string) { super.setRuntimeTypeName(string); runtimeTypeNameSet = true; } /** * @param i */ @Override public void setScale(int i) { super.setScale(i); scaleSet = true; } /** * @param s */ @Override public void setSearchType(short s) { super.setSearchType(s); searchTypeSet = true; } /** * @param s */ @Override public void setType(short s) { super.setType(s); typeSet = true; } /** * @param string */ @Override public void setDatatypeID(String string) { super.setDatatypeID(string); datatypeIDSet = true; } /** * @param list */ @Override public void setVarietyProps(List list) { super.setVarietyProps(list); varietyPropsSet = true; } /** * @param s */ @Override public void setVarietyType(short s) { super.setVarietyType(s); varietyTypeSet = true; } }