if (createAlias.getExternalName() == null) {
throw new InvalidRoutineException(schemaName, routineName, "must have EXTERNAL NAME function_name");
}
}
TypesTranslator typesTranslator = ddlFunctions.getTypesTranslator();
AISBuilder builder = new AISBuilder();
builder.routine(schemaName, routineName,
language, callingConvention);
for (int i = 0; i < aliasInfo.getParameterCount(); i++) {
String parameterName = aliasInfo.getParameterNames()[i];
Parameter.Direction direction;
switch (aliasInfo.getParameterModes()[i]) {
case ParameterMetaData.parameterModeIn:
default:
direction = Parameter.Direction.IN;
break;
case ParameterMetaData.parameterModeOut:
direction = Parameter.Direction.OUT;
break;
case ParameterMetaData.parameterModeInOut:
direction = Parameter.Direction.INOUT;
break;
}
TInstance type = typesTranslator.typeForSQLType(aliasInfo.getParameterTypes()[i],
schemaName, routineName, parameterName);
builder.parameter(schemaName, routineName, parameterName,
direction, type);
}
if (aliasInfo.getReturnType() != null) {
TInstance type = typesTranslator.typeForSQLType(aliasInfo.getReturnType(),
schemaName, routineName, "return value");
builder.parameter(schemaName, routineName, null,
Parameter.Direction.RETURN, type);
}