org.unlaxer.ParserFinderToChild Maven / Gradle / Ivy
package org.unlaxer;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.function.Predicate;
import java.util.stream.Stream;
import org.unlaxer.parser.Parser;
public interface ParserFinderToChild extends ParserHierarchy{
public default Optional findFirstToChild(Predicate predicate) {
return findToChild(predicate).findFirst();
}
public default Stream findToChild(Predicate predicate) {
List flatten = flatten(RecursiveMode.childrenOnly);
return flatten.stream().filter(predicate);
}
public default List flatten(){
return flatten(RecursiveMode.containsRoot);
}
public default List flatten(RecursiveMode recursiveMode){
List list = new ArrayList();
if(recursiveMode.isContainsRoot()){
list.add(getThisParser());
}
for(Parser child :getChildren()){
list.addAll(child.flatten(recursiveMode));
}
return list;
}
} © 2015 - 2025 Weber Informatics LLC | Privacy Policy