X-Git-Url: http://lists.indexdata.dk/cgi-bin?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fyaz4j%2FRecord.java;h=3770132c884f4020accc72734c4138ea69414941;hb=95873c80a22cbcb609b5a0260d624359500dcf19;hp=8fcfdc4f8bdc24ad8ae5489f5bc50ca54b3b124b;hpb=1182e040f5a025caff6565e6e37a3a669e9354fb;p=yaz4j-moved-to-github.git diff --git a/src/main/java/org/yaz4j/Record.java b/src/main/java/org/yaz4j/Record.java index 8fcfdc4..3770132 100644 --- a/src/main/java/org/yaz4j/Record.java +++ b/src/main/java/org/yaz4j/Record.java @@ -1,24 +1,25 @@ package org.yaz4j; -import java.io.UnsupportedEncodingException; - import org.yaz4j.jni.SWIGTYPE_p_ZOOM_record_p; import org.yaz4j.jni.SWIGTYPE_p_int; import org.yaz4j.jni.yaz4jlib; -public class Record { - - private SWIGTYPE_p_ZOOM_record_p record = null; - private ResultSet resultSet = null; +public class Record implements Cloneable { + private SWIGTYPE_p_ZOOM_record_p record; + private ResultSet rset; private boolean disposed = false; - Record(SWIGTYPE_p_ZOOM_record_p record, ResultSet resultSet) { - this.resultSet = resultSet; + Record(SWIGTYPE_p_ZOOM_record_p record, ResultSet rset) { + this.record = record; + this.rset = rset; + } + + protected Record(SWIGTYPE_p_ZOOM_record_p record) { this.record = record; } public void finalize() { - Dispose(); + _dispose(); } public byte[] get(String type) { @@ -42,9 +43,17 @@ public class Record { return new String(get("database")); } - public void Dispose() { + public Object clone() { + SWIGTYPE_p_ZOOM_record_p clone = yaz4jlib.ZOOM_record_clone(record); + return new Record(clone); + } + + void _dispose() { if (!disposed) { - resultSet = null; + //was cloned, need to dealloc? + if (rset == null) + yaz4jlib.ZOOM_record_destroy(record); + rset = null; record = null; disposed = true; }