/* * 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.SqlProcedureParameterAspect; /** * ProcedureParameterRecordImpl * * @since 8.0 */ public class ProcedureParameterRecordImpl extends org.teiid.designer.metadata.runtime.impl.ProcedureParameterRecordImpl { private static final long serialVersionUID = 5966620687324761894L; /** * Flags to determine if values have been set. */ private boolean datatypeUUIDSet; private boolean optionalSet; private boolean defaultValueSet; private boolean lengthSet; private boolean scaleSet; private boolean nullTypeSet; private boolean runtimeTypeSet; private boolean precisionSet; private boolean positionSet; private boolean radixSet; private boolean typeSet; // ================================================================================== // C O N S T R U C T O R S // ================================================================================== public ProcedureParameterRecordImpl(final SqlProcedureParameterAspect sqlAspect, final EObject eObject) { super(new ModelerMetadataRecordDelegate(sqlAspect, eObject)); setRecordType(IndexConstants.RECORD_TYPE.CALLABLE_PARAMETER); this.eObject = eObject; } private SqlProcedureParameterAspect getParameterAspect() { return (SqlProcedureParameterAspect) ((ModelerMetadataRecordDelegate)this.delegate).getSqlAspect(); } /* * @see org.teiid.designer.metadata.runtime.ProcedureParameterRecord#getDefaultValue() */ @Override public String getDefaultValue() { if(eObject != null && !defaultValueSet) { setDefaultValue(getParameterAspect().getDefaultValue((EObject)eObject)); } return super.getDefaultValue(); } /* * @see org.teiid.designer.metadata.runtime.ProcedureParameterRecord#getType() */ @Override public short getType() { if(eObject != null && !typeSet) { setType((short) getParameterAspect().getType((EObject)eObject)); } return super.getType(); } /* * @see org.teiid.designer.metadata.runtime.ProcedureParameterRecord#getDatatypeUUID() */ @Override public String getDatatypeUUID() { if(eObject != null && !datatypeUUIDSet) { EObject dataType = getParameterAspect().getDatatype((EObject)eObject); setDatatypeUUID(((ModelerMetadataRecordDelegate)this.delegate).getObjectID(dataType)); } return super.getDatatypeUUID(); } /* * @see org.teiid.designer.metadata.runtime.ProcedureParameterRecord#getRuntimeType() */ @Override public String getRuntimeType() { if(eObject != null && !runtimeTypeSet) { setRuntimeType(getParameterAspect().getRuntimeType((EObject)eObject)); } return super.getRuntimeType(); } /** * @return */ @Override public int getLength() { if(eObject != null && !lengthSet) { setLength(getParameterAspect().getLength((EObject)eObject)); } return super.getLength(); } /** * @return */ @Override public int getPrecision() { if(eObject != null && !precisionSet) { setPrecision(getParameterAspect().getPrecision((EObject)eObject)); } return super.getPrecision(); } /** * @return */ @Override public int getScale() { if(eObject != null && !scaleSet) { setScale(getParameterAspect().getScale((EObject)eObject)); } return super.getScale(); } /** * @return */ @Override public int getRadix() { if(eObject != null && !radixSet) { setRadix(getParameterAspect().getRadix((EObject)eObject)); } return super.getRadix(); } /** * @return */ @Override public int getPosition() { if(eObject != null && !positionSet) { setPosition(getParameterAspect().getPosition((EObject)eObject)); } return super.getPosition(); } /** * @return */ @Override public int getNullType() { if(eObject != null && !nullTypeSet) { setNullType(getParameterAspect().getNullType((EObject)eObject)); } return super.getNullType(); } /* * @see org.teiid.designer.metadata.runtime.ProcedureParameterRecord#isOptional() */ @Override public boolean isOptional() { if(eObject != null && !optionalSet) { return getParameterAspect().isOptional((EObject)eObject); } return super.isOptional(); } /** * @param i */ @Override public void setLength(int i) { super.setLength(i); lengthSet = true; } /** * @param i */ @Override public void setPrecision(int i) { super.setPrecision(i); precisionSet = true; } /** * @param i */ @Override public void setScale(int i) { super.setScale(i); scaleSet = true; } /** * @param i */ @Override public void setRadix(int i) { super.setRadix(i); radixSet = true; } /** * @param i */ @Override public void setNullType(int i) { super.setNullType(i); nullTypeSet = true; } /** * @param i */ @Override public void setPosition(int i) { super.setPosition(i); positionSet = true; } /** * @param string */ @Override public void setRuntimeType(String string) { super.setRuntimeType(string); runtimeTypeSet = 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 i */ @Override public void setType(int i) { super.setType(i); typeSet = true; } /** * @param b */ @Override public void setOptional(boolean b) { super.setOptional(b); optionalSet = true; } }