/* * 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.metamodel.aspect.sql; import org.eclipse.emf.ecore.EObject; /** * SqlProcedureParameterAspect * * @since 8.0 */ public interface SqlProcedureParameterAspect extends SqlAspect, SqlDatatypeCheckerAspect { /** * Get the datatype of the parameter * @param eObject The <code>EObject</code> for which datatype prop is obtained * @return parameter's datatype */ EObject getDatatype(EObject eObject); /** * Get the name of the datatype of the parameter * @param eObject The <code>EObject</code> for which datatype prop is obtained * @return name of the parameter's datatype */ String getDatatypeName(EObject eObject); /** * Get the string form of the datatype ObjectID of the parameter * @param eObject The <code>EObject</code> for which datatype type is obtained * @return ObjectID string of the parameter's datatype */ String getDatatypeObjectID(EObject eObject); /** * Get the name of the runtime type of the parameter * @param eObject The <code>EObject</code> for which runtime type is obtained * @return name of the parameter's runtime datatype */ String getRuntimeType(EObject eObject); /** * Get the default value of the parameter * @param eObject The <code>EObject</code> for which defaultValue prop is obtained * @return parameter's default value */ String getDefaultValue(EObject eObject); /** * Get the parameter's nulltype * @param eObject The <code>EObject</code> for which nulltype prop is obtained * @return true if the parameter's null type */ int getNullType(EObject eObject); /** * Get the parameter's length * @param eObject The <code>EObject</code> for which length prop is obtained * @return length of the parameter */ int getLength(EObject eObject); /** * Get the parameter's position * @param eObject The <code>EObject</code> for which position prop is obtained * @return length of the parameter */ int getPosition(EObject eObject); /** * Get the parameter's radix * @param eObject The <code>EObject</code> for which radix prop is obtained * @return length of the column */ int getRadix(EObject eObject); /** * Get the parameter's length * @param eObject The <code>EObject</code> for which scale prop is obtained * @return length of the column */ int getScale(EObject eObject); /** * Get the precision of the parameter * @param eObject The <code>EObject</code> for which precision prop is obtained * @return parameter's precision */ int getPrecision(EObject eObject); /** * Get the type of parameter * @return */ int getType(EObject eObject); /** * Check if the parameter is optional * @param eObject The <code>EObject</code> for which optional prop is obtained * @return true if the parameter is optional */ boolean isOptional(EObject eObject); /** * Set the datatype for the parameter * @param eObject The <code>EObject</code> for which datatype prop is to be set * @param datatype The <code>Datatype</code> value */ void setDatatype(EObject eObject, EObject datatype); /** * Indicates if the {@link #setDatatype(EObject, EObject)} is a supported operation. * @return <code>true</code>if supported; <code>false</code> otherwise. * @since 4.2 */ boolean canSetDatatype(); /** * Set the length for the parameter * @param eObject The <code>EObject</code> for which length prop is to be set * @param length The length value */ void setLength(EObject eObject, int length); /** * Indicates if the {@link #setLength(EObject, int)} is a supported operation. * @return <code>true</code>if supported; <code>false</code> otherwise. * @since 4.2 */ boolean canSetLength(); /** * Set the null type for the parameter * @param eObject The <code>EObject</code> for which null type value is to be set * @param nullType The null type value */ void setNullType(EObject eObject, int nullType); /** * Indicates if the {@link #setNullType(EObject, int)} is a supported operation. * @return <code>true</code>if supported; <code>false</code> otherwise. * @since 4.2 */ boolean canSetNullType(); /** * @return true of the param is a either IN or IN OUT. */ boolean isInputParam(EObject eObject); /** * sets the direction of the parameter */ void setDirection(EObject eObject, int dir); }