
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