use of com.sri.ai.grinder.rewriter.core.Switch in project aic-expresso by aic-sri-international.
the class TopRewriter method makeTopRewriterFromTopRewritersThatAreEitherFirstOfOrSwitches.
/**
* Takes a list of {@link TopRewriter}s,
* then determines a list of {@link Switch<T>} rewriters,
* each of them the merge of all {@link Switch<T>} rewriters with the same key maker
* (from {@link Switch.merge(List<Rewriter>)}.
* If this list contains more than one {@link Switch<T>} rewriter,
* returns a {@link CombiningTopRewriter} rewriter with them as base rewriters.
* If this list contains only one {@link Switch<T>} rewriter, returns it.
* @param topRewritersThatAreEitherFirstOfOrSwitches
* @param <T> the type of keys in the switch rewriters.
* @return
*/
public static <T> TopRewriter makeTopRewriterFromTopRewritersThatAreEitherFirstOfOrSwitches(List<? extends TopRewriter> topRewritersThatAreEitherFirstOfOrSwitches) {
List<Switch<T>> mergedSwitches = makeMergedSwitchesFromTopRewritersThatAreEitherFirstOfOrSwitches(topRewritersThatAreEitherFirstOfOrSwitches);
TopRewriter result = makeTopRewriterFromAlreadyMergedSwitches(mergedSwitches);
return result;
}
Aggregations