/*
* 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.metadata.runtime.api;
/**
* <p>Instances of this interface represent Parameters for a Procedure. A Procedure can have various types of parameters. The types are as follows:
* <ul>
* <li>IN - Input parameter</li>
* <li>OUT - Output parameter</li>
* <li>INOUT - Input-Output parameter</li>
* <li>RETURN VALUE - a return value</li>
* <li>RESULT SET(S) - one or more nested result sets</li>
* </ul>
* </p>
*
* @since 8.0
*/
public interface ProcedureParameter {
/**
* Returns the <code>DataType</code> this parameter will be represented as.
* @return DataType
*/
DataType getDataType();
/**
* Return short indicating the type of parameter.
* @return short
*
* @see org.teiid.designer.metadata.runtime.api.MetadataConstants.PARAMETER_TYPES
*/
short getParameterType();
/**
* Returns a boolean indicating if this parameter is optional.
* @return boolean true when the parameter is optional
*/
boolean isOptional();
/**
* Returns the order of parameter in relation to the other parameters that are of the same type for its procedure.
* @return int postion
*/
int getPosition();
int getResultSetPosition();
String getName();
/**
* Returns the default value of parameter if it is optional.
* @return int postion
*/
String getDefaultValue();
/**
* Returns the procID.
* @return ProcedureID
*/
ProcedureID getProcID();
}