class RowN extends Row {

    private final int size;
    private Object[] cells;

    public RowN(int size) {
        this.size = size;
    }

    public RowN(Object ... cells) {
        this(cells.length);
        this.cells = cells;
    }

    @Override
    public int numColumns() {
        return size;
    }

    public void cells(Object[] cells) {<FILL_FUNCTION_BODY>}

    @Override
    public Object get(int index) {
        assert cells != null : "cells must not be null";
        return cells[index];
    }

    @Override
    public Object[] materialize() {
        Object[] result = new Object[size];
        System.arraycopy(cells, 0, result, 0, size);
        return result;
    }

    @Override
    public String toString() {
        return "RowN{" + Arrays.toString(cells) + '}';
    }
}

        assert cells != null : "cells must not be null";
        this.cells = cells;
    
<methods>public non-sealed void <init>() ,public final boolean equals(java.lang.Object) ,public abstract java.lang.Object get(int) ,public final int hashCode() ,public java.lang.Object[] materialize() ,public abstract int numColumns() <variables>public static final io.crate.data.Row EMPTY