public AnyChildPathFilter(PartFilter next) {
this.next = next;
}
public boolean matches(LinkedList<Part> remaining) {
if( !remaining.isEmpty() ) {
Part p = remaining.removeFirst();
if( next!=null ) {
return next.matches(remaining);
} else {
return remaining.isEmpty();
}