class ArrayRowHandler implements RowHandler<Object[]> {
    /** */
    public static final RowHandler<Object[]> INSTANCE = new ArrayRowHandler();

    /** */
    private ArrayRowHandler() {}

    /** {@inheritDoc} */
    @Override public Object get(int field, Object[] row) {
        return row[field];
    }

    /** {@inheritDoc} */
    @Override public void set(int field, Object[] row, Object val) {
        row[field] = val;
    }

    /** {@inheritDoc} */
    @Override public Object[] concat(Object[] left, Object[] right) {
        return F.concat(left, right);
    }

    /** {@inheritDoc} */
    @Override public int columnCount(Object[] row) {
        return row.length;
    }

    /** {@inheritDoc} */
    @Override public RowFactory<Object[]> factory(Type... types) {<FILL_FUNCTION_BODY>}
}

        int rowLen = types.length;

        return new RowFactory<Object[]>() {
            /** {@inheritDoc} */
            @Override public RowHandler<Object[]> handler() {
                return ArrayRowHandler.this;
            }

            /** {@inheritDoc} */
            @Override public Object[] create() {
                return new Object[rowLen];
            }

            /** {@inheritDoc} */
            @Override public Object[] create(Object... fields) {
                assert fields.length == rowLen;

                return fields;
            }
        };
    
<no_super_class>