void fetchData()

in tablestore/src/main/java/com/alicloud/openservices/tablestore/model/WideRowIterator.java [52:86]


    void fetchData() {
        GetRangeResponse result = null;
        try {
            result = internalClient.getRange(buildRequest(), null).get();
        } catch (Exception e) {
            throw new ClientException(e);
        }

        int idx = 0;
        List<Row> rows = result.getRows();
        if (!columnIterator.isComplete() && (rows.size() > 0) && (rows.get(0).getPrimaryKey().equals(columnIterator.getPrimaryKey()))) {
            columnIterator.setColumnIterator(Arrays.asList(rows.get(0).getColumns()).iterator());
            idx = 1;
        }

        List<Pair<Row, Boolean>> rowsWithStatus = new ArrayList<Pair<Row, Boolean>>();
        for (int i = idx; i < rows.size(); i++) {
            if ((i == (rows.size() - 1)) && (rows.get(i).getPrimaryKey().equals(result.getNextStartPrimaryKey()))) {
                rowsWithStatus.add(new Pair<Row, Boolean>(rows.get(i), false));
            } else {
                rowsWithStatus.add(new Pair<Row, Boolean>(rows.get(i), true));
                rowsRead++;
            }
        }
        rowIterator = rowsWithStatus.iterator();

        nextStartPrimaryKey = result.getNextStartPrimaryKey();
        nextToken = result.getNextToken();
        if (!columnIterator.isComplete()) {
            if (!columnIterator.getPrimaryKey().equals(nextStartPrimaryKey)) {
                columnIterator.setComplete(true);
                rowsRead++;
            }
        }
    }