private Map<String, List<ForeignKey>> resolveForeignKeys(DatabaseCollector dbs, Iterator<Table> tables, ProgressListener progress) {
List<ForeignKeysInfo> fks = new ArrayList<ForeignKeysInfo>();
while ( tables.hasNext() ) {
Table table = (Table) tables.next();
ForeignKeysInfo foreignKeys = ForeignKeyProcessor.processForeignKeys(getMetaDataDialect(), revengStrategy, defaultSchema, defaultCatalog, dbs, table, progress);
fks.add( foreignKeys );
}
Map<String, List<ForeignKey>> oneToManyCandidates = new HashMap<String, List<ForeignKey>>();
for (Iterator<ForeignKeysInfo> iter = fks.iterator(); iter.hasNext();) {
ForeignKeysInfo element = iter.next();
Map<String, List<ForeignKey>> map = element.process( revengStrategy );
mergeMultiMap( oneToManyCandidates, map );
}
return oneToManyCandidates;
}