}
}
@Override
public void beginPlsqlTable(String tableName, String targetTypeName) {
PLSQLCollection plsqlCollection = null;
boolean found = false;
for (DatabaseType[] databaseTypes : methodTypeMap.values()) {
if (found) {
break;
}
for (int i = 0, len = databaseTypes.length; i < len; i++) {
DatabaseType databaseType = databaseTypes[i];
if (databaseType != null && databaseType.isComplexDatabaseType()) {
ComplexDatabaseType cdt = (ComplexDatabaseType)databaseType;
if (cdt.isCollection()) {
PLSQLCollection tmp = (PLSQLCollection)cdt;
if (tmp.getCompatibleType().equalsIgnoreCase(targetTypeName)) {
found = true;
plsqlCollection = tmp;
break;
}
}
}
}
}
if (plsqlCollection == null) {
plsqlCollection = new PLSQLCollection();
plsqlCollection.setTypeName(trimOffSchemaName(tableName));
plsqlCollection.setCompatibleType(targetTypeName);
putKnownDatabaseType(tableName, plsqlCollection);
}
typeStack.push(plsqlCollection);