|| databaseType.isJDBCType()
|| argument.cursorOutput
|| processed.contains(databaseType)) {
return;
}
ComplexDatabaseType type = (ComplexDatabaseType)databaseType;
if (!type.hasCompatibleType()) {
return;
}
processed.add(type);
if (type instanceof PLSQLCollection) {
DatabaseType nestedType = ((PLSQLCollection)type).getNestedType();
addNestedFunctionsForArgument(functions, argument, nestedType, processed);
} else if (type instanceof PLSQLrecord) {
for (PLSQLargument field : ((PLSQLrecord)type).getFields()) {
DatabaseType nestedType = field.databaseType;
addNestedFunctionsForArgument(functions, argument, nestedType, processed);
}
}
TypeInfo info = this.typesInfo.get(type.getTypeName());
// If the info was not found in publisher, then generate it.
if (info == null) {
info = generateNestedFunction(type, argument.isNonAssociative);
}
if (argument.direction == IN) {