Expose ZOOM query object
[yaz4j-moved-to-github.git] / src / main / java / org / yaz4j / Query.java
1 /*
2  * Copyright (c) 1995-2013, Index Datassss
3  * All rights reserved.
4  * See the file LICENSE for details.
5  */
6 package org.yaz4j;
7
8 import org.yaz4j.exception.ZoomException;
9 import org.yaz4j.jni.SWIGTYPE_p_ZOOM_query_p;
10 import org.yaz4j.jni.yaz4jlib;
11
12 /**
13  * @see <a href="http://www.indexdata.com/yaz/doc/zoom.query.html">YAZ ZOOM Query</a>
14  * @author jakub
15  */
16 public abstract class Query {
17   
18   SWIGTYPE_p_ZOOM_query_p query;
19   private boolean disposed = false;
20   
21   protected Query() {
22     query = yaz4jlib.ZOOM_query_create();
23   }
24   
25   public void sortBy(String strategy, String criteria) throws ZoomException {
26     int ret = yaz4jlib.ZOOM_query_sortby2(query, strategy, criteria);
27     if (ret != 0) {
28       throw new ZoomException("query sortBy failed");
29     }
30   }
31   
32   protected void finalize() {
33     _dispose();
34   }
35
36   void _dispose() {
37     if (!disposed) {
38       yaz4jlib.ZOOM_query_destroy(query);
39       disposed = true;
40     }
41   }
42   
43 }