Use Maven for building yaz4j.
[yaz4j-moved-to-github.git] / src / main / java / org / yaz4j / ResultSet.java
diff --git a/src/main/java/org/yaz4j/ResultSet.java b/src/main/java/org/yaz4j/ResultSet.java
new file mode 100644 (file)
index 0000000..b70a03e
--- /dev/null
@@ -0,0 +1,66 @@
+package org.yaz4j;
+
+import org.yaz4j.jni.SWIGTYPE_p_ZOOM_connection_p;
+import org.yaz4j.jni.SWIGTYPE_p_ZOOM_record_p;
+import org.yaz4j.jni.SWIGTYPE_p_ZOOM_resultset_p;
+import org.yaz4j.jni.yaz4jlib;
+
+public class ResultSet
+{
+       private SWIGTYPE_p_ZOOM_resultset_p resultSet;  
+       private SWIGTYPE_p_ZOOM_connection_p connection;
+       private long size = 0 ;
+       private Record[] records = null ;
+       private boolean disposed = false;       
+       
+       ResultSet(SWIGTYPE_p_ZOOM_resultset_p resultSet, SWIGTYPE_p_ZOOM_connection_p connection)
+       {
+               this.resultSet = resultSet ;
+               this.connection = connection ;
+               size = yaz4jlib.ZOOM_resultset_size(this.resultSet);
+               records = new Record[(int)size];
+       }
+       
+       public void finalize()
+       {
+               this.Dispose();         
+       }       
+
+    ResultSetOptionsCollection getResultSetOptions()
+    {
+       return new ResultSetOptionsCollection(resultSet);
+    }
+       
+       public Record getRecord(int index)
+       {
+               if ( records[index] == null)
+               {
+                       SWIGTYPE_p_ZOOM_record_p recordTemp = yaz4jlib.ZOOM_resultset_record(resultSet, index);
+                       records[index] = new Record(recordTemp, this);
+               }
+       
+               return this.records[index];
+       }
+       
+       public int getSize()
+       {
+               return (int)size ;
+       }
+       
+       public void Dispose()
+       {
+               if (! disposed )
+               {
+                       for( int i=0 ; i<records.length ; i++)
+                       {
+                               if (records[i] != null)
+                                       records[i].Dispose();
+                       }
+
+                       yaz4jlib.ZOOM_resultset_destroy(resultSet);
+                       connection = null;
+                       resultSet = null;
+                       disposed = true;
+               }
+       }
+}