private void addRecursive(Set<ElementSchema> result, Set<ElementSchema> schemas) { schemas.forEach(schema -> { if(result.contains(schema)) return; result.add(schema); Set childSchemas = schema.getChildSchemas(); addRecursive(result, childSchemas); }); }
private <E extends Element> Set<JdbcSchema<E>> collectSchemas(Set<? extends ElementSchema> schemas) { Set<JdbcSchema<E>> rowSchemas = new HashSet<>(); schemas.forEach(schema -> { if (schema instanceof JdbcSchema) { rowSchemas.add((JdbcSchema<E>) schema); Set<JdbcSchema<E>> childSchemas = collectSchemas(schema.getChildSchemas()); rowSchemas.addAll(childSchemas); } }); return rowSchemas; }
private Set<DocumentSchema> collectSchemas(Set<? extends ElementSchema> schemas) { Set<DocumentSchema> docSchemas = new HashSet<>(); schemas.forEach(schema -> { if (schema instanceof DocumentSchema) { docSchemas.add((DocumentSchema) schema); Set<DocumentSchema> childSchemas = collectSchemas(schema.getChildSchemas()); docSchemas.addAll(childSchemas); } }); return docSchemas; }
private Set<RestSchema> collectSchemas(Set<? extends ElementSchema> schemas) { Set<RestSchema> docSchemas = new HashSet<>(); schemas.forEach(schema -> { if (schema instanceof RestSchema) { docSchemas.add((RestSchema) schema); Set<RestSchema> childSchemas = collectSchemas(schema.getChildSchemas()); docSchemas.addAll(childSchemas); } }); return docSchemas; }