package org.yaz4j;
+import java.util.ArrayList;
import java.util.Iterator;
+import java.util.List;
import java.util.NoSuchElementException;
import org.yaz4j.exception.ZoomException;
import org.yaz4j.jni.SWIGTYPE_p_ZOOM_record_p;
+import org.yaz4j.jni.SWIGTYPE_p_p_ZOOM_record_p;
import org.yaz4j.jni.SWIGTYPE_p_ZOOM_resultset_p;
import org.yaz4j.jni.yaz4jlib;
}
return new Record(record, this);
}
+
+ public List<Record> getRecords(long start, int count) throws ZoomException {
+ List<Record> out = new ArrayList<Record>(count);
+
+ SWIGTYPE_p_p_ZOOM_record_p recs = yaz4jlib.new_zoomRecordArray(count);
+ yaz4jlib.ZOOM_resultset_records(resultSet, recs, start, count);
+
+ for (int i = 0; i < count; i++) {
+ SWIGTYPE_p_ZOOM_record_p record = yaz4jlib.zoomRecordArray_getitem(recs, i);
+ if (record == null) {
+ continue;
+ }
+
+ int errorCode = yaz4jlib.ZOOM_record_error(record, null, null, null);
+ if (errorCode != 0) {
+ throw new ZoomException("Record excpetion, code " + errorCode);
+ }
+
+ out.add(new Record(record, this));
+ }
+
+ return out;
+ }
@Override
public Iterator<Record> iterator() {
%include "cpointer.i"
%pointer_functions(int, intp);
%pointer_functions(size_t, size_tp);
+ %include "carrays.i"
+ %array_functions(ZOOM_record, zoomRecordArray);
%typemap(jni) CharStarByteArray "jbyteArray"
%typemap(jtype) CharStarByteArray "byte[]"
%typemap(jstype) CharStarByteArray "byte[]"