@Override
    public Filter<S> visit(PropertyFilter<S> filter, Group<S> group) {
        group.add(filter);
        return null;
    }
@ Override public Filter < S > visit ( PropertyFilter < S > filter , Group < S > group ) { group . add ( filter ) ; return null ; }
@param filter candidate node to potentially replace
@param group gathered children
@return original candidate or replacement