All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.mnubo.java.sdk.client.models.result.SearchResultSet Maven / Gradle / Ivy

package com.mnubo.java.sdk.client.models.result;

import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Queue;

import com.google.common.base.Preconditions;

public class SearchResultSet implements ResultSet {

    private final List columnsMetadata;
    private final Queue queueRows;

    public SearchResultSet(List columnsMetadata, List rowValues)
    {
        Preconditions.checkNotNull(columnsMetadata, "columnsMetadata must not be null");
        Preconditions.checkNotNull(rowValues, "rowValues must not be null");
        this.columnsMetadata = columnsMetadata;

        queueRows = new ArrayDeque<>();
        for (Row row : rowValues) {
            queueRows.add(row);
        }
    }

    @Override
    public List getColumnDefinitions() {
        return columnsMetadata;
    }


    @Override
    public Iterator iterator() {
        return new Iterator() {

            @Override
            public boolean hasNext() {
                return !isExhausted();
            }

            @Override
            public Row next() {
                return SearchResultSet.this.one();
            }

            @Override
            public void remove() {
                throw new UnsupportedOperationException();
            }
        };
    }

    @Override
    public Row one() {
        return queueRows.poll();
    }

    @Override
    public boolean isExhausted() {
        return queueRows.isEmpty();
    }

    @Override
    public List all() {
        if (isExhausted()) {
            return Collections.emptyList();
        }
        return new ArrayList<>(queueRows);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy