public Object get()

in tablestore/src/main/java/com/alicloud/openservices/tablestore/model/sql/SQLRowsFBsColumnBased.java [116:201]


    public Object get(int rowIndex, int columnIndex) {
        if (rowIndex >= rowCount() || rowIndex < 0) {
            throw new IllegalStateException("Row index " + columnIndex + " out of range");
        }
        if (columnIndex >= columnCount || columnIndex < 0) {
            throw new IllegalStateException("Column index " + columnIndex + " out of range");
        }
        byte columnType = columnTypes[columnIndex];
        byte logicType = columnComplexTypeInfos[columnIndex].columnLogicType();
        byte encodingType = columnComplexTypeInfos[columnIndex].columnEncodeType();
        ColumnValues columnValue = columnValues[columnIndex];
        switch (columnType) {
            case DataType.LONG:
                if (columnValue.isNullvalues(rowIndex)) {
                    return null;
                } else {
                    return columnValue.longValues(rowIndex);
                }
            case DataType.BOOLEAN:
                if (columnValue.isNullvalues(rowIndex)) {
                    return null;
                } else {
                    return columnValue.boolValues(rowIndex);
                }
            case DataType.DOUBLE:
                if (columnValue.isNullvalues(rowIndex)) {
                    return null;
                } else {
                    return columnValue.doubleValues(rowIndex);
                }
            case DataType.STRING:
                if (columnValue.isNullvalues(rowIndex)) {
                    return null;
                } else {
                    return columnValue.stringValues(rowIndex);
                }
            case DataType.BINARY:
                if (columnValue.isNullvalues(rowIndex)) {
                    return null;
                } else {
                    BytesValue bytesValue = columnValue.binaryValues(rowIndex);
                    return bytesValue.valueAsByteBuffer().duplicate();
                }
            case DataType.STRING_RLE:
                if (columnValue.isNullvalues(rowIndex)) {
                    return null;
                } else {
                    RLEStringValues rleStringValue = rleStringValues[columnIndex];
                    return resolveRLEString(rleStringValue, rowIndex);
                }
            case DataType.COMPLEX:
                switch (logicType) {
                    case LogicType.DATETIME:
                        if(encodingType != DataType.LONG){
                            throw new UnsupportedOperationException("encoding Type need to be: " + DataType.LONG +" , but get: " + encodingType);
                        }
                        if (columnValue.isNullvalues(rowIndex)) {
                            return null;
                        } else {
                            return resolveDateTime(columnValue.longValues(rowIndex));
                        }
                    case LogicType.TIME:
                        if(encodingType != DataType.LONG){
                            throw new UnsupportedOperationException("encoding Type need to be: " + DataType.LONG +" , but get: " + encodingType);
                        }
                        if (columnValue.isNullvalues(rowIndex)) {
                            return null;
                        } else {
                            return resolveTime(columnValue.longValues(rowIndex));
                        }
                    case LogicType.DATE:
                        if(encodingType != DataType.LONG){
                            throw new UnsupportedOperationException("encoding Type need to be: " + DataType.LONG +" , but get: " + encodingType);
                        }
                        if (columnValue.isNullvalues(rowIndex)) {
                            return null;
                        } else {
                            return resolveDate(columnValue.longValues(rowIndex));
                        }
                    default:
                        throw new UnsupportedOperationException("not supported Logic type in flatbuffers: " + logicType);
                }
            default:
                throw new UnsupportedOperationException("not supported column type in flatbuffers: " + columnType);
        }
    }