class SimpleRow extends RowBase {

    protected final Value[] data;

    public SimpleRow(Value[] data) {
        this.data = data;
    }

    @Override
    public int getColumnCount() {
        return data.length;
    }

    @Override
    public Value getValue(int index) {
        return data[index];
    }

    @Override
    public void setValue(int index, Value v) {
        data[index] = v;
    }

    @Override
    public int getMemory() {
        if (memory > 0) {
            return memory;
        }
        int m = Constants.MEMORY_ROW;
        if (data != null) {
            int len = data.length;
            m += Constants.MEMORY_OBJECT + len * Constants.MEMORY_POINTER;
            for (int i = 0; i < len; i++) {
                Value v = data[i];
                if (v != null) {
                    m += v.getMemory();
                }
            }
        }
        memory = m;
        return m;
    }

    @Override
    public String toString() {<FILL_FUNCTION_BODY>}
}

        StatementBuilder buff = new StatementBuilder("( /* key:");
        buff.append(getKey());
        if (version != 0) {
            buff.append(" v:" + version);
        }
        buff.append(" */ ");
        if (data != null) {
            for (Value v : data) {
                buff.appendExceptFirst(", ");
                buff.append(v == null ? "null" : v.getTraceSQL());
            }
        }
        return buff.append(')').toString();
    
<methods>public non-sealed void <init>() ,public long getKey() ,public int getVersion() ,public void setKey(long) ,public void setVersion(int) <variables>protected long key,protected int memory,protected int version