class SimpleRowValue extends RowBase {

    private final int virtualColumnCount;
    private int index;
    private Value data;

    public SimpleRowValue(int columnCount) {
        this.virtualColumnCount = columnCount;
    }

    @Override
    public int getColumnCount() {
        return virtualColumnCount;
    }

    @Override
    public Value getValue(int idx) {
        return idx == index ? data : null;
    }

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

    @Override
    public int getMemory() {<FILL_FUNCTION_BODY>}

    @Override
    public String toString() {
        return "( /* " + key + " */ " + (data == null ? "null" : data.getTraceSQL()) + " )";
    }
}

        if (memory == 0) {
            memory = Constants.MEMORY_OBJECT + (data == null ? 0 : data.getMemory());
        }
        return memory;
    
<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