package com.revolsys.geometry.graph.filter;
import java.util.function.Predicate;
import com.revolsys.geometry.graph.Edge;
import com.revolsys.geometry.graph.Node;
/**
* A filter for {@link Node} objects which contains an {@link Edge} matching the
* edge filter.
*
* @author Paul Austin
* @param <T>
*/
public class NodeMatchingEdgeFilter<T> implements Predicate<Node<T>> {
private final Predicate<Edge<T>> edgeFilter;
public NodeMatchingEdgeFilter(final Predicate<Edge<T>> edgeFilter) {
this.edgeFilter = edgeFilter;
}
@Override
public boolean test(final Node<T> node) {
for (final Edge<T> edge : node.getEdges()) {
if (this.edgeFilter.test(edge)) {
return true;
}
}
return false;
}
}