2e991580cfe60fa4af7a4246284c4d0634002028
[yaz4j-moved-to-github.git] / src / main / java / org / yaz4j / Record.java
1 package org.yaz4j;
2
3 import org.yaz4j.jni.SWIGTYPE_p_ZOOM_record_p;
4 import org.yaz4j.jni.SWIGTYPE_p_int;
5 import org.yaz4j.jni.yaz4jlib;
6
7 public class Record implements Cloneable {
8     private SWIGTYPE_p_ZOOM_record_p record;
9     private ResultSet rset;
10     private boolean disposed = false;
11
12     Record(SWIGTYPE_p_ZOOM_record_p record, ResultSet rset) {
13         this.record = record;
14         this.rset = rset;
15     }
16
17     protected Record(SWIGTYPE_p_ZOOM_record_p record) {
18         this.record = record;
19     }
20
21     public void finalize() {
22         _dispose();
23     }
24
25     public byte[] get(String type) {
26         return yaz4jlib.ZOOM_record_get_bytes(record, type);
27     }
28
29     public String render() {
30         return new String(get("render"));
31     }
32
33     public byte[] getContent() {
34         return get("raw");
35     }
36
37     public String getSyntax() {
38         return new String(get("syntax"));
39     }
40
41     public String getDatabase() {
42         return new String(get("database"));
43     }
44
45     public Object clone() {
46         SWIGTYPE_p_ZOOM_record_p clone = yaz4jlib.ZOOM_record_clone(record);
47         return new Record(clone);
48     }
49
50     void _dispose() {
51         if (!disposed) {
52             //was cloned, need to dealloc?
53             if (rset == null)
54                 yaz4jlib.ZOOM_record_destroy(record);
55             rset = null;
56             record = null;
57             disposed = true;
58         }
59     }
60 }