hollow/src/main/java/com/netflix/hollow/tools/traverse/TransitiveSetTraverser.java
public static void addTransitiveMatches(HollowReadStateEngine stateEngine, Map<String, BitSet> matches) {
        List<HollowSchema> schemaList = HollowSchemaSorter.dependencyOrderedSchemaList(stateEngine);
        Collections.reverse(schemaList);

        for(HollowSchema schema : schemaList) {
            BitSet currentMatches = matches.get(schema.getName());
            if(currentMatches != null) {
                addTransitiveMatches(stateEngine, schema.getName(), matches);
            }
        }
    }
public static void addTransitiveMatches(HollowReadStateEngine stateEngine, Map<String, BitSet> matches) {
        List<HollowSchema> schemaList = HollowSchemaSorter.dependencyOrderedSchemaList(stateEngine);
        Collections.reverse(schemaList);

        for(HollowSchema schema : schemaList) {
            BitSet currentMatches = matches.get(schema.getName());
            if(currentMatches != null) {
                addTransitiveMatches(stateEngine, schema.getName(), matches);
            }
        }
    }
Augment the given selection by adding the references, and the <i>transitive</i> references, of our selection.
@param stateEngine the state engine
@param matches the map to which matches are placed