/** * {@inheritDoc} * @param heads Nodes to start iterating backward from by visiting their parents. <strong>Do not pass multiple heads.</strong> */ @Override public List<FlowNode> filteredNodes(Collection<FlowNode> heads, Collection<FlowNode> blackList, Predicate<FlowNode> matchCondition) { return super.filteredNodes(heads, blackList, matchCondition); }
/** * {@inheritDoc} * @deprecated prefer {@link #filteredNodes(FlowNode, Predicate)} */ @Deprecated @Override public List<FlowNode> filteredNodes(Collection<FlowNode> heads, Predicate<FlowNode> matchPredicate) { return super.filteredNodes(heads, matchPredicate); }
/** Syntactic sugar for {@link #filteredNodes(Collection, Collection, Predicate)} with no blackList nodes */ @Nonnull public List<FlowNode> filteredNodes(@CheckForNull Collection<FlowNode> heads, @Nonnull Predicate<FlowNode> matchPredicate) { return this.filteredNodes(heads, null, matchPredicate); }
/** Syntactic sugar for {@link #filteredNodes(Collection, Collection, Predicate)} with a single head and no blackList nodes */ @Nonnull public List<FlowNode> filteredNodes(@CheckForNull FlowNode head, @Nonnull Predicate<FlowNode> matchPredicate) { return this.filteredNodes(Collections.singleton(head), null, matchPredicate); }
@Nonnull public List<FlowNode> filteredNodes(@CheckForNull FlowExecution exec, @Nonnull Predicate<FlowNode> matchPredicate) { if (exec == null) { return Collections.emptyList(); } return this.filteredNodes(exec.getCurrentHeads(), null, matchPredicate); }