Project

General

Profile

1 26600 sandro.lab
package eu.dnetlib.enabling.resultset.rmi;
2
3
import java.util.List;
4
5
import javax.jws.WebMethod;
6
import javax.jws.WebParam;
7
import javax.jws.WebService;
8
import javax.xml.ws.wsaddressing.W3CEndpointReference;
9
10
import eu.dnetlib.common.rmi.BaseService;
11
12
/**
13
 * ResultSet service interface.
14
 *
15
 * TODO: implement other compatibility methods as needed.
16
 *
17
 * @author marko
18
 *
19
 */
20
@WebService(targetNamespace = "http://services.dnetlib.eu/")
21
public interface ResultSetService extends BaseService {
22
	/**
23
	 * create a new pull rs.
24
	 *
25
	 * @param bdId
26
	 *            bulk data identifier
27
	 * @param initialPageSize
28
	 *            page size for the polling on the server side.
29
	 * @param expiryTime
30
	 *            RS expiry time
31
	 * @return
32
	 */
33
	W3CEndpointReference createPullRSEPR(
34
			@WebParam(name = "dataProviderServiceAddress") W3CEndpointReference dataProviderEPR,
35
			@WebParam(name = "bdId") String bdId,
36
			@WebParam(name = "initialPageSize") int initialPageSize,
37
			@WebParam(name = "expiryTime") int expiryTime,
38
			@WebParam(name = "styleSheet") String styleSheet,
39
			@WebParam(name = "keepAliveTime") Integer keepAliveTime,
40
			@WebParam(name = "total") Integer total);
41
42
	/**
43
	 * create a new pull rs.
44
	 *
45
	 * compatibility version
46
	 *
47
	 * @param bdId
48
	 *            bulk data identifier
49
	 * @param initialPageSize
50
	 *            page size for the polling on the server side.
51
	 * @param expiryTime
52
	 *            RS expiry time
53
	 * @return
54
	 */
55
	W3CEndpointReference createPullRS(
56
			@WebParam(name = "dataProviderServiceAddress") String dataProviderServiceAddress,
57
			@WebParam(name = "bdId") String bdId,
58
			@WebParam(name = "initialPageSize") int initialPageSize,
59
			@WebParam(name = "expiryTime") int expiryTime,
60
			@WebParam(name = "styleSheet") String styleSheet,
61
			@WebParam(name = "keepAliveTime") Integer keepAliveTime,
62
			@WebParam(name = "total") Integer total);
63
64
	/**
65
	 * close a result set. A closed resultset is guaranteed not to grow.
66
	 *
67
	 * @param rsId
68
	 */
69
	void closeRS(@WebParam(name = "rsId") String rsId);
70
71
	/**
72
	 * get one 'page' of results.
73
	 *
74
	 * TODO: define how results are returned when the range is not present in the result set.
75
	 *
76
	 * @param fromPosition
77
	 *            counting from 1
78
	 * @param toPosition
79
	 *            included
80
	 * @param requestMode
81
	 * @return a page of data
82
	 */
83
	List<String> getResult(
84
			@WebParam(name = "rsId") String rsId,
85
			@WebParam(name = "fromPosition") int fromPosition,
86
			@WebParam(name = "toPosition") int toPosition,
87
			@WebParam(name = "requestMode") String requestMode) throws ResultSetException;
88
89
	/**
90
	 * get the number of result elements present in the resultset.
91
	 *
92
	 * @param rsId
93
	 *            result set identifier
94
	 * @return number of results available in the resultset
95
	 * @throws ResultSetException
96
	 */
97
	int getNumberOfElements(@WebParam(name = "rsId") String rsId) throws ResultSetException;
98
99
	/**
100
	 * create a new push resultset.
101
	 *
102
	 * @param expiryTime  RS expiry time
103
	 * @param keepAliveTime keep alive time
104
	 * @return epr of new resultset
105
	 * @throws ResultSetException
106
	 */
107
	W3CEndpointReference createPushRS(@WebParam(name = "expiryTime") int expiryTime, @WebParam(name = "keepAliveTime") int keepAliveTime)
108
			throws ResultSetException;
109
110
	/**
111
	 * add new data to a push resultset.
112
	 *
113
	 * @param rsId resultset id
114
	 * @param elements list of elements to be addded
115
	 * @return dummy value
116
	 * @throws ResultSetException
117
	 */
118
	String populateRS(@WebParam(name = "rsId") String rsId, @WebParam(name = "elements") List<String> elements) throws ResultSetException;
119
120
	/**
121
	 * return current status of a resultset.
122
	 *
123
	 * @param rsId resultset id
124
	 * @return status
125
	 * @throws ResultSetException
126
	 */
127
	String getRSStatus(@WebParam(name = "rsId") String rsId) throws ResultSetException;
128
129
	/**
130
	 * read a resultset property.
131
	 *
132
	 * @param rsId resultset id
133
	 * @param name property value
134
	 * @return property value
135
	 * @throws ResultSetException
136
	 */
137
	String getProperty(@WebParam(name = "rsId") String rsId, @WebParam(name = "name") String name) throws ResultSetException;
138
139
	@WebMethod(operationName = "identify")
140
	public String identify();
141
142
}