class FiltrableSystemViewAdapter<R, D> extends AbstractSystemView<R> implements FiltrableSystemView<R> {
    /** Data supplier for the view. */
    private Function<Map<String, Object>, Iterable<D>> dataSupplier;

    /** Row function. */
    private final Function<D, R> rowFunc;

    /**
     * @param name Name.
     * @param desc Description.
     * @param walker Walker.
     * @param dataSupplier Data supplier.
     * @param rowFunc Row function.
     */
    public FiltrableSystemViewAdapter(String name, String desc, SystemViewRowAttributeWalker<R> walker,
        Function<Map<String, Object>, Iterable<D>> dataSupplier, Function<D, R> rowFunc) {
        super(name, desc, walker);

        A.notNull(dataSupplier, "dataSupplier");

        this.dataSupplier = dataSupplier;
        this.rowFunc = rowFunc;
    }

    /** {@inheritDoc} */
    @NotNull @Override public Iterator<R> iterator(Map<String, Object> filter) {<FILL_FUNCTION_BODY>}

    /** {@inheritDoc} */
    @NotNull @Override public Iterator<R> iterator() {
        return iterator(Collections.emptyMap());
    }

    /** {@inheritDoc} */
    @Override public int size() {
        return F.size(dataSupplier.apply(Collections.emptyMap()).iterator());
    }
}

        if (filter == null)
            filter = Collections.emptyMap();

        return F.iterator(dataSupplier.apply(filter), rowFunc::apply, true);
    
<methods>public java.lang.String description() ,public java.lang.String name() ,public SystemViewRowAttributeWalker<R> walker() <variables>private final non-sealed java.lang.String desc,private final non-sealed java.lang.String name,private final non-sealed SystemViewRowAttributeWalker<R> walker