public boolean next()

in asterixdb-jdbc/asterix-jdbc-core/src/main/java/org/apache/asterix/jdbc/core/ADBResultSet.java [135:175]


    public boolean next() throws SQLException {
        checkClosed();
        try {
            switch (state) {
                case ST_BEFORE_FIRST:
                    JsonToken token = rowParser.hasCurrentToken() ? rowParser.currentToken() : rowParser.nextToken();
                    if (token != JsonToken.START_ARRAY) {
                        throw getErrorReporter().errorInProtocol(String.valueOf(token));
                    }
                    initRowStore();
                    state = ST_NEXT;
                    // fall thru to ST_NEXT
                case ST_NEXT:
                    token = rowParser.nextToken();
                    switch (token) {
                        case START_OBJECT:
                            if (maxRows > 0 && rowNumber == maxRows) {
                                state = ST_AFTER_LAST;
                                return false;
                            } else {
                                readRow();
                                rowNumber++;
                                return true;
                            }
                        case END_ARRAY:
                            state = ST_AFTER_LAST;
                            return false;
                        default:
                            throw getErrorReporter().errorInProtocol(String.valueOf(token));
                    }
                case ST_AFTER_LAST:
                    return false;
                default:
                    throw new IllegalStateException(String.valueOf(state));
            }
        } catch (JsonProcessingException e) {
            throw getErrorReporter().errorInProtocol(e);
        } catch (IOException e) {
            throw getErrorReporter().errorInConnection(e);
        }
    }