Search in sources :

Example 6 with Row

use of com.revolsys.gis.esri.gdb.file.capi.swig.Row in project com.revolsys.open by revolsys.

the class FileGdbQueryIterator method getNext.

@Override
protected synchronized Record getNext() throws NoSuchElementException {
    final FileGdbRecordStore recordStore = this.recordStore;
    final FileGdbEnumRowsIterator rows = this.rows;
    if (rows == null || this.closed) {
        throw new NoSuchElementException();
    } else {
        Row row = null;
        while (this.offset > 0 && this.count < this.offset) {
            row = rows.next();
            this.count++;
            if (this.closed) {
                throw new NoSuchElementException();
            }
        }
        if (this.count - this.offset >= this.limit) {
            throw new NoSuchElementException();
        }
        row = rows.next();
        this.count++;
        try {
            final Record record = this.recordFactory.newRecord(this.recordDefinition);
            if (this.labelCountMap == null) {
                recordStore.addStatistic("query", record);
            } else {
                this.labelCountMap.addCount(record);
            }
            record.setState(RecordState.INITIALIZING);
            for (final FieldDefinition field : this.recordDefinition.getFields()) {
                final String name = field.getName();
                final AbstractFileGdbFieldDefinition esriFieldDefinition = (AbstractFileGdbFieldDefinition) field;
                final Object value = esriFieldDefinition.getValue(row);
                record.setValue(name, value);
                if (this.closed) {
                    throw new NoSuchElementException();
                }
            }
            record.setState(RecordState.PERSISTED);
            if (this.closed) {
                throw new NoSuchElementException();
            }
            return record;
        } catch (final RuntimeException e) {
            if (this.closed) {
                throw new NoSuchElementException();
            } else {
                throw e;
            }
        } finally {
            row.delete();
        }
    }
}
Also used : AbstractFileGdbFieldDefinition(com.revolsys.gis.esri.gdb.file.capi.type.AbstractFileGdbFieldDefinition) FieldDefinition(com.revolsys.record.schema.FieldDefinition) AbstractFileGdbFieldDefinition(com.revolsys.gis.esri.gdb.file.capi.type.AbstractFileGdbFieldDefinition) Record(com.revolsys.record.Record) Row(com.revolsys.gis.esri.gdb.file.capi.swig.Row) NoSuchElementException(java.util.NoSuchElementException)

Aggregations

Row (com.revolsys.gis.esri.gdb.file.capi.swig.Row)6 VectorOfWString (com.revolsys.gis.esri.gdb.file.capi.swig.VectorOfWString)4 AbstractFileGdbFieldDefinition (com.revolsys.gis.esri.gdb.file.capi.type.AbstractFileGdbFieldDefinition)3 GeometryFieldDefinition (com.revolsys.gis.esri.gdb.file.capi.type.GeometryFieldDefinition)3 PathName (com.revolsys.io.PathName)3 FieldDefinition (com.revolsys.record.schema.FieldDefinition)3 RecordDefinition (com.revolsys.record.schema.RecordDefinition)3 ObjectException (com.revolsys.beans.ObjectException)2 ObjectPropertyException (com.revolsys.beans.ObjectPropertyException)2 AreaFieldDefinition (com.revolsys.gis.esri.gdb.file.capi.type.AreaFieldDefinition)2 BinaryFieldDefinition (com.revolsys.gis.esri.gdb.file.capi.type.BinaryFieldDefinition)2 DateFieldDefinition (com.revolsys.gis.esri.gdb.file.capi.type.DateFieldDefinition)2 DoubleFieldDefinition (com.revolsys.gis.esri.gdb.file.capi.type.DoubleFieldDefinition)2 FloatFieldDefinition (com.revolsys.gis.esri.gdb.file.capi.type.FloatFieldDefinition)2 GlobalIdFieldDefinition (com.revolsys.gis.esri.gdb.file.capi.type.GlobalIdFieldDefinition)2 GuidFieldDefinition (com.revolsys.gis.esri.gdb.file.capi.type.GuidFieldDefinition)2 IntegerFieldDefinition (com.revolsys.gis.esri.gdb.file.capi.type.IntegerFieldDefinition)2 LengthFieldDefinition (com.revolsys.gis.esri.gdb.file.capi.type.LengthFieldDefinition)2 OidFieldDefinition (com.revolsys.gis.esri.gdb.file.capi.type.OidFieldDefinition)2 ShortFieldDefinition (com.revolsys.gis.esri.gdb.file.capi.type.ShortFieldDefinition)2