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=50fa38181d808c760666a40fbd64ec09ac0e987d;hpb=51cc88d374e72f4c93a4721c2094e028a6ffae85;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 50fa381..3770132 100644 --- a/src/main/java/org/yaz4j/Record.java +++ b/src/main/java/org/yaz4j/Record.java @@ -4,14 +4,17 @@ 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; } @@ -40,9 +43,17 @@ public class Record { return new String(get("database")); } + 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; }