public void updateRules(Type type, Rule rule) {
        Set<Rule> match = ruleMap.get(type);
        if (match.isEmpty()) {
            getTypes(type, false).stream()
                    .flatMap(SchemaConcept::thenRules)
                    .forEach(r -> ruleMap.put(type, r));
        }
        ruleMap.put(type, rule);
    }
public void updateRules ( Type type , Rule rule ) { Set < Rule > match = ruleMap . get ( type ) ; if ( match . isEmpty ( ) ) { getTypes ( type , false ) . stream ( ) . flatMap ( SchemaConcept :: thenRules ) . forEach ( r -> ruleMap . put ( type , r ) ) ; } ruleMap . put ( type , rule ) ; }
@param type rule head's type
@param rule to be appended