class IndexKeyType extends ValueDataType {

    public IndexKeyType(DataHandler handler, CompareMode compareMode, int[] sortTypes) {
        super(handler, compareMode, sortTypes);
    }

    @Override
    public int compare(Object a, Object b) {
        if (a == b) {
            return 0;
        }
        if (a == null) {
            return -1;
        } else if (b == null) {
            return 1;
        }
        Value[] ax = ((IndexKey) a).columns;
        Value[] bx = ((IndexKey) b).columns;
        return compareValues(ax, bx);
    }

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

    @Override
    public Object read(ByteBuffer buff) {
        ValueArray a = (ValueArray) DataBuffer.readValue(buff);
        return new IndexKey(a.getList());
    }

    @Override
    public void write(DataBuffer buff, Object obj) {
        IndexKey k = (IndexKey) obj;
        buff.writeValue(ValueArray.get(k.columns));
    }
}

        IndexKey k = (IndexKey) obj;
        int memory = 4;
        if (k == null)
            return memory;
        Value[] columns = k.columns;
        for (int i = 0, len = columns.length; i < len; i++) {
            Value c = columns[i];
            if (c == null)
                memory += 4;
            else
                memory += c.getMemory();
        }
        return memory;
    
<methods>public void <init>(com.lealone.db.DataHandler, com.lealone.db.value.CompareMode, int[]) ,public int compare(java.lang.Object, java.lang.Object) ,public int compareValues(com.lealone.db.value.Value[], com.lealone.db.value.Value[]) ,public boolean equals(java.lang.Object) ,public int getMemory(java.lang.Object) ,public int hashCode() ,public void read(java.nio.ByteBuffer, java.lang.Object[], int) ,public java.lang.Object read(java.nio.ByteBuffer) ,public void write(com.lealone.db.DataBuffer, java.lang.Object[], int) ,public void write(com.lealone.db.DataBuffer, java.lang.Object) <variables>final non-sealed com.lealone.db.value.CompareMode compareMode,final non-sealed com.lealone.db.DataHandler handler,final non-sealed int[] sortTypes