public void writeCellValue()

in tablestore/src/main/java/com/alicloud/openservices/tablestore/core/protocol/PlainBufferCodedOutputStream.java [85:127]


    public void writeCellValue(ColumnValue value) throws IOException {
        writeTag(TAG_CELL_VALUE);
        switch (value.getType()) {
            case STRING: {
                byte[] rawData = value.asStringInBytes();
                final int prefixLength = PlainBufferOutputStream.LITTLE_ENDIAN_32_SIZE + 1; // length + type
                output.writeRawLittleEndian32(prefixLength + rawData.length); // length + type + value
                output.writeRawByte(VT_STRING);
                output.writeRawLittleEndian32(rawData.length);
                output.writeBytes(rawData);
                break;
            }
            case INTEGER: {
                output.writeRawLittleEndian32(1 + PlainBufferOutputStream.LITTLE_ENDIAN_64_SIZE);
                output.writeRawByte(VT_INTEGER);
                output.writeRawLittleEndian64(value.asLong());
                break;
            }
            case BINARY: {
                byte[] rawData = value.asBinary();
                final int prefixLength = PlainBufferOutputStream.LITTLE_ENDIAN_32_SIZE + 1; // length + type
                output.writeRawLittleEndian32(prefixLength + rawData.length); // length + type
                output.writeRawByte(VT_BLOB);
                output.writeRawLittleEndian32(rawData.length);
                output.writeBytes(rawData);
                break;
            }
            case DOUBLE: {
                output.writeRawLittleEndian32(1 + PlainBufferOutputStream.LITTLE_ENDIAN_64_SIZE);
                output.writeRawByte(VT_DOUBLE);
                output.writeDouble(value.asDouble());
                break;
            }
            case BOOLEAN: {
                output.writeRawLittleEndian32(2);
                output.writeRawByte(VT_BOOLEAN);
                output.writeBoolean(value.asBoolean());
                break;
            }
            default:
                throw new IOException("Bug: unsupported column type: " + value.getType());
        }
    }