15635eb47b2510572bfb7b27f96f79c85a971358
[yaz4j-moved-to-github.git] / src / main / java / org / yaz4j / Package.java
1 package org.yaz4j;
2
3 import org.yaz4j.jni.SWIGTYPE_p_ZOOM_package_p;
4 import org.yaz4j.jni.yaz4jlib;
5
6 public class Package {
7
8   private SWIGTYPE_p_ZOOM_package_p pack;
9   private ConnectionExtended connection;
10   private String type;
11
12   Package(SWIGTYPE_p_ZOOM_package_p pack, ConnectionExtended connection,
13     String type) {
14     this.type = type;
15     this.connection = connection;
16     this.pack = pack;
17   }
18
19   public void finalize() {
20     _dispose();
21   }
22
23   /**
24    * Write option for a specified key
25    * @param key option name
26    * @param value option value
27    * @return package (self) for chainability
28    */
29   public Package option(String key, String value) {
30     yaz4jlib.ZOOM_package_option_set(pack, key, value);
31     return this;
32   }
33
34   /**
35    * Read option for a specified key.
36    * @param key option name
37    * @return option value
38    */
39   public String option(String key) {
40     return yaz4jlib.ZOOM_package_option_get(pack, key);
41   }
42
43   /**
44    * Send the package.
45    */
46   public void send() {
47     yaz4jlib.ZOOM_package_send(pack, type);
48   }
49
50   void _dispose() {
51     if (pack != null) {
52       yaz4jlib.ZOOM_package_destroy(pack);
53       connection = null;
54       pack = null;
55     }
56   }
57 }