Rename getSize => getHitCount
[yaz4j-moved-to-github.git] / src / main / java / org / yaz4j / ScanSet.java
index 3e23046..3eaea94 100644 (file)
@@ -1,50 +1,44 @@
 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;
+        }
+    }
 }