View Javadoc

1   /*
2    * $Id: RemoteQuery.java 1446 2010-12-09 09:41:27Z hoheisel $
3    *
4    * Copyright 2008 Fraunhofer Gesellschaft, Munich, Germany,
5    * for its Fraunhofer Institute for Computer Architecture and Software Technology (FIRST), Berlin, Germany
6    * All rights reserved.
7    *
8    * See http://www.first.fraunhofer.de and http://www.gridworkflow.org/gwes for more details.
9    */
10  
11  package net.kwfgrid.gwes.xmldbclient;
12  
13  import org.apache.axis2.AxisFault;
14  
15  import javax.activation.DataHandler;
16  import java.rmi.RemoteException;
17  
18  /**
19   * Encapsulates Axis2 Java stubs for eXist-DB.
20   * @author Andreas Hoheisel
21   *         (<a href="http://www.andreas-hoheisel.de">www.andreas-hoheisel.de</a>)
22   * @version $Id: RemoteQuery.java 1446 2010-12-09 09:41:27Z hoheisel $
23   */
24  public class RemoteQuery implements QueryInterface {
25  
26      private QueryServiceStub stub;
27  
28      public RemoteQuery(String serviceUrl) throws RemoteException {
29          try {
30              stub = new QueryServiceStub(serviceUrl);
31          } catch (AxisFault axisFault) {
32              throw new RemoteException("Axis fault when connecting to "+serviceUrl+": "+axisFault,axisFault);
33          }
34      }
35  
36      public String connect(String userId, String password) throws RemoteException {
37          QueryServiceStub.Connect params = new QueryServiceStub.Connect();
38          params.setUserId(userId);
39          params.setPassword(password);
40          return stub.connect(params).getConnectReturn();
41      }
42  
43      public String[] retrieve(String sessionId, int start, int howmany, boolean indent, boolean xinclude, String highlight) throws RemoteException {
44          QueryServiceStub.Retrieve params = new QueryServiceStub.Retrieve();
45          params.setSessionId(sessionId);
46          params.setStart(start);
47          params.setHowmany(howmany);
48          params.setIndent(indent);
49          params.setXinclude(xinclude);
50          params.setHighlight(highlight);
51          return stub.retrieve(params).getRetrieveReturn();
52      }
53  
54      public void disconnect(String sessionId) throws RemoteException {
55          QueryServiceStub.Disconnect params = new QueryServiceStub.Disconnect();
56          params.setSessionId(sessionId);
57          stub.disconnect(params);
58      }
59  
60      public DataHandler getResourceData(String sessionId, String path, boolean indent, boolean xinclude, boolean processXSLPI) throws RemoteException {
61          QueryServiceStub.GetResourceData params = new QueryServiceStub.GetResourceData();
62          params.setSessionId(sessionId);
63          params.setPath(path);
64          params.setIndent(indent);
65          params.setXinclude(xinclude);
66          params.setProcessXSLPI(processXSLPI);
67          return stub.getResourceData(params).getGetResourceDataReturn();
68      }
69  
70      public QueryServiceStub.QueryResponse xquery(String sessionId, DataHandler xquery) throws RemoteException {
71          QueryServiceStub.Xquery params = new QueryServiceStub.Xquery();
72          params.setSessionId(sessionId);
73          params.setXquery(xquery);
74          return stub.xquery(params).getXqueryReturn();
75      }
76  
77      public QueryServiceStub.Base64BinaryArray retrieveData(String sessionId, int start, int howmany, boolean indent, boolean xinclude, String highlight) throws RemoteException {
78          QueryServiceStub.RetrieveData params = new QueryServiceStub.RetrieveData();
79          params.setSessionId(sessionId);
80          params.setStart(start);
81          params.setHowmany(howmany);
82          params.setIndent(indent);
83          params.setXinclude(xinclude);
84          params.setHighlight(highlight);
85          return stub.retrieveData(params).getRetrieveDataReturn();
86      }
87  
88      public String[] retrieveByDocument(String sessionId, int start, int howmany, String path, boolean indent, boolean xinclude, String highlight) throws RemoteException {
89          QueryServiceStub.RetrieveByDocument params = new QueryServiceStub.RetrieveByDocument();
90          params.setSessionId(sessionId);
91          params.setStart(start);
92          params.setHowmany(howmany);
93          params.setPath(path);
94          params.setIndent(indent);
95          params.setXinclude(xinclude);
96          params.setHighlight(highlight);
97          return stub.retrieveByDocument(params).getRetrieveByDocumentReturn();
98      }
99  
100     public QueryServiceStub.Collection listCollection(String sessionId, String path) throws RemoteException {
101         QueryServiceStub.ListCollection params = new QueryServiceStub.ListCollection();
102         params.setSessionId(sessionId);
103         params.setPath(path);
104         return stub.listCollection(params).getListCollectionReturn();
105     }
106 
107     public String getResource(String sessionId, String path, boolean indent, boolean xinclude) throws RemoteException {
108         QueryServiceStub.GetResource params = new QueryServiceStub.GetResource();
109         params.setSessionId(sessionId);
110         params.setPath(path);
111         params.setIndent(indent);
112         params.setXinclude(xinclude);
113         return stub.getResource(params).getGetResourceReturn();
114     }
115 
116     public QueryServiceStub.QueryResponse query(String sessionId, String xquery) throws RemoteException {
117         QueryServiceStub.Query params = new QueryServiceStub.Query();
118         params.setSessionId(sessionId);
119         params.setXpath(xquery);
120         return stub.query(params).getQueryReturn();
121     }
122     
123 }