Add some docu on Connection
[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.yaz4jlib;
5
6 public class Record implements Cloneable {
7     private SWIGTYPE_p_ZOOM_record_p record;
8     private ResultSet rset;
9     private boolean disposed = false;
10
11     Record(SWIGTYPE_p_ZOOM_record_p record, ResultSet rset) {
12         this.record = record;
13         this.rset = rset;
14     }
15
16     protected Record(SWIGTYPE_p_ZOOM_record_p record) {
17         this.record = record;
18     }
19
20     public void finalize() {
21         _dispose();
22     }
23
24     public byte[] get(String type) {
25         return yaz4jlib.ZOOM_record_get_bytes(record, type);
26     }
27
28     public String render() {
29         return new String(get("render"));
30     }
31
32     public byte[] getContent() {
33         return get("raw");
34     }
35
36     public String getSyntax() {
37         return new String(get("syntax"));
38     }
39
40     public String getDatabase() {
41         return new String(get("database"));
42     }
43
44     public Object clone() {
45         SWIGTYPE_p_ZOOM_record_p clone = yaz4jlib.ZOOM_record_clone(record);
46         return new Record(clone);
47     }
48
49     void _dispose() {
50         if (!disposed) {
51             //was cloned, need to dealloc?
52             if (rset == null)
53                 yaz4jlib.ZOOM_record_destroy(record);
54             rset = null;
55             record = null;
56             disposed = true;
57         }
58     }
59 }