package org.yaz4j;
import org.yaz4j.jni.SWIGTYPE_p_ZOOM_scanset_p;
-import org.yaz4j.jni.SWIGTYPE_p_int;
+import org.yaz4j.jni.SWIGTYPE_p_size_t;
import org.yaz4j.jni.yaz4jlib;
-public class ScanSet
-{
- private SWIGTYPE_p_ZOOM_scanset_p scanSet = null ;
- private Connection connection;
- private boolean disposed = false;
-
- ScanSet(SWIGTYPE_p_ZOOM_scanset_p scanSet, Connection connection)
- {
- this.connection = connection;
- this.scanSet = scanSet;
- }
+public class ScanSet {
+ //for GC ref-count
+ private Connection conn;
+ private SWIGTYPE_p_ZOOM_scanset_p scanSet;
+ private boolean disposed = false;
- public void finalize()
- {
- Dispose();
- }
+ ScanSet(SWIGTYPE_p_ZOOM_scanset_p scanSet, Connection conn) {
+ this.scanSet = scanSet;
+ this.conn = conn;
+ }
- public ScanTerm get(long index)
- {
- SWIGTYPE_p_int occ = yaz4jlib.new_intp();
- SWIGTYPE_p_int length = yaz4jlib.new_intp();
- String term = yaz4jlib.ZOOM_scanset_term( scanSet, (long)index, occ, length ) ;
- int occurences = yaz4jlib.intp_value(occ);
- yaz4jlib.delete_intp(occ);
- yaz4jlib.delete_intp(length);
- return new ScanTerm(term, occurences);
- }
+ public void finalize() {
+ _dispose();
+ }
- public long getSize()
- {
- return yaz4jlib.ZOOM_scanset_size(scanSet);
- }
+ public ScanTerm get(long index) {
+ SWIGTYPE_p_size_t occ = yaz4jlib.new_size_tp();
+ SWIGTYPE_p_size_t length = yaz4jlib.new_size_tp();
+ String term = yaz4jlib.ZOOM_scanset_term(scanSet, (long) index, occ, length);
+ long occurences = yaz4jlib.size_tp_value(occ);
+ yaz4jlib.delete_size_tp(occ);
+ yaz4jlib.delete_size_tp(length);
+ return new ScanTerm(term, occurences);
+ }
- public void Dispose()
- {
- if (! disposed)
- {
- yaz4jlib.ZOOM_scanset_destroy(scanSet);
- connection = null;
- scanSet = null;
- disposed = true;
- }
- }
+ public long getSize() {
+ return yaz4jlib.ZOOM_scanset_size(scanSet);
+ }
+
+ void _dispose() {
+ if (!disposed) {
+ yaz4jlib.ZOOM_scanset_destroy(scanSet);
+ scanSet = null;
+ conn = null;
+ disposed = true;
+ }
+ }
}