void handleResult()

in tablestore/src/main/java/com/alicloud/openservices/tablestore/core/AsyncGetRangeCompletion.java [94:135]


    void handleResult(GetRangeResponse result) {
        if (result.getRows().size() > 0) {
            List<Row> rows = result.getRows();
            // Handle an existing incomplete row
            if (lastRowPK != null) {
                if (rows.get(0).getPrimaryKey().equals(lastRowPK)) {
                    mergeLastRow(rows.get(0), !lastRowPK.equals(result.getNextStartPrimaryKey()));
                    rows.remove(0);
                } else {
                    mergeLastRow(null, true);
                }
            }
            // When there are extra rows
            if (rows.size() > 0) {
                // Add a complete row
                for (int i = 0; i < rows.size() - 1; i++) {
                    completeRows.add(rows.get(i));
                }
                // Process the last row
                PrimaryKey resultLastRowPK = rows.get(rows.size() - 1).getPrimaryKey();
                if (result.hasNextToken() && resultLastRowPK.equals(result.getNextStartPrimaryKey())) {
                    lastRowPK = resultLastRowPK;
                    if (lastRowColumns == null) {
                        lastRowColumns = new ArrayList<Column>();
                    }
                    lastRowColumns.addAll(Arrays.asList(rows.get(rows.size() - 1).getColumns()));
                } else {
                    completeRows.add(rows.get(rows.size() - 1));
                }
            }
        }
        nextPrimaryKey = result.getNextStartPrimaryKey();
        if (capacityUnit == null) {
            capacityUnit = new CapacityUnit(0, 0);
        }
        if (requestIds == null) {
            requestIds = new ArrayList<String>();
        }
        capacityUnit.setReadCapacityUnit(capacityUnit.getReadCapacityUnit() + result.getConsumedCapacity().getCapacityUnit().getReadCapacityUnit());
        capacityUnit.setWriteCapacityUnit(capacityUnit.getWriteCapacityUnit() + result.getConsumedCapacity().getCapacityUnit().getWriteCapacityUnit());
        requestIds.add(result.getRequestId());
    }