trimOffSchemaName(objectTypename));
if (databaseType == null) {
databaseType = getKnownDatabaseType(objectTypename);
}
if (databaseType == null) {
OracleObjectType objectType = new OracleObjectType();
objectType.setTypeName(objectTypename);
DatabaseType top = typeStack.peek();
if (top.isComplexDatabaseType()) {
ComplexDatabaseType cdt = (ComplexDatabaseType)top;
if (cdt.isJDBCType()) {
if (cdt.isCollection()) {
OracleArrayType oat = (OracleArrayType)cdt;
oat.setNestedType(objectType);
}
else {
OracleObjectType oot = (OracleObjectType)cdt;
Map<String, DatabaseType> fields = oot.getFields();
Object[] keys = oot.getFields().keySet().toArray();
String lastInsertedKey = (String)keys[oot.getLastFieldIndex()];
if (fields.get(lastInsertedKey) == JDBCTypes.NULL_TYPE) {
// nested OracleObjectTypes
fields.put(lastInsertedKey, objectType);
}
}