Sha256: de6fb9b1fd631c24b51bbfcf31f87dcf2e4c46865fe29e76b55dd80daa67c8db
Contents?: true
Size: 1.52 KB
Versions: 3
Compression:
Stored size: 1.52 KB
Contents
package org.embulk.filter.calcite.adapter.page; import org.apache.calcite.linq4j.Enumerator; import org.embulk.filter.calcite.PageConverter; import org.embulk.spi.Page; import org.embulk.spi.PageReader; import org.embulk.spi.Schema; public class PageEnumerator implements Enumerator<Object[]> { private final Schema schema; private final PageConverter pageConverter; private final PageReader pageReader; /** * Creates an enumerator to read {@code Page} objects * * @param schema a {@code Schema} that is used for reading {@code Page} objects. * @param pageConverter a converter to translate values from Embulk types to Calcite types. */ public PageEnumerator(Schema schema, PageConverter pageConverter) { this.schema = schema; this.pageReader = new PageReader(schema); this.pageConverter = pageConverter; } public void setPage(Page page) { this.pageReader.setPage(page); this.pageConverter.setPageReader(pageReader); } @Override public Object[] current() { // this is called from org.apache.calcite.linq4j.EnumerableDefaults schema.visitColumns(pageConverter); return pageConverter.getRow(); } @Override public boolean moveNext() { return pageReader.nextRecord(); } @Override public void reset() { throw new UnsupportedOperationException(); } @Override public void close() { if (pageReader != null) { pageReader.close(); } } }
Version data entries
3 entries across 3 versions & 1 rubygems