Woodpecker-Include/src/main/java/io/gitlab/jfronny/woodpecker/include/util/FilteringYamlMapping.java

33 lines
807 B
Java

package io.gitlab.jfronny.woodpecker.include.util;
import com.amihaiemil.eoyaml.*;
import java.util.Set;
import java.util.function.Predicate;
import java.util.stream.Collectors;
public class FilteringYamlMapping extends BaseYamlMapping {
private final YamlMapping base;
private final Predicate<YamlNode> filter;
public FilteringYamlMapping(YamlMapping base, Predicate<YamlNode> filter) {
this.base = base;
this.filter = filter;
}
@Override
public Set<YamlNode> keys() {
return base.keys().stream().filter(filter).collect(Collectors.toSet());
}
@Override
public YamlNode value(YamlNode key) {
return filter.test(key) ? base.value(key) : null;
}
@Override
public Comment comment() {
return base.comment();
}
}