static DDLTable[] parseDDL(DatabaseProvider provider, NameConverters nameConverters, Class<? extends RawEntity<?>>... classes) { final Map<Class<? extends RawEntity<?>>, Set<Class<? extends RawEntity<?>>>> deps = new HashMap<Class<? extends RawEntity<?>>, Set<Class<? extends RawEntity<?>>>>(); final Set<Class<? extends RawEntity<?>>> roots = new LinkedHashSet<Class<? extends RawEntity<?>>>(); for (Class<? extends RawEntity<?>> cls : classes) { parseDependencies(nameConverters.getFieldNameConverter(), deps, roots, cls); } ArrayList<DDLTable> parsedTables = new ArrayList<DDLTable>(); parseDDLRoots(provider, nameConverters, deps, roots, parsedTables); if (!deps.isEmpty()) { throw new RuntimeException("Circular dependency detected"); } return parsedTables.toArray(new DDLTable[parsedTables.size()]); }
static DDLTable[] parseDDL(DatabaseProvider provider, NameConverters nameConverters, Class<? extends RawEntity<?>>... classes) { final Map<Class<? extends RawEntity<?>>, Set<Class<? extends RawEntity<?>>>> deps = new HashMap<Class<? extends RawEntity<?>>, Set<Class<? extends RawEntity<?>>>>(); final Set<Class<? extends RawEntity<?>>> roots = new LinkedHashSet<Class<? extends RawEntity<?>>>(); for (Class<? extends RawEntity<?>> cls : classes) { parseDependencies(nameConverters.getFieldNameConverter(), deps, roots, cls); } ArrayList<DDLTable> parsedTables = new ArrayList<DDLTable>(); parseDDLRoots(provider, nameConverters, deps, roots, parsedTables); if (!deps.isEmpty()) { throw new RuntimeException("Circular dependency detected"); } return parsedTables.toArray(new DDLTable[parsedTables.size()]); }