01: //=============================================================================
02: //=== Copyright (C) 2001-2007 Food and Agriculture Organization of the
03: //=== United Nations (FAO-UN), United Nations World Food Programme (WFP)
04: //=== and United Nations Environment Programme (UNEP)
05: //===
06: //=== This program is free software; you can redistribute it and/or modify
07: //=== it under the terms of the GNU General Public License as published by
08: //=== the Free Software Foundation; either version 2 of the License, or (at
09: //=== your option) any later version.
10: //===
11: //=== This program is distributed in the hope that it will be useful, but
12: //=== WITHOUT ANY WARRANTY; without even the implied warranty of
13: //=== MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14: //=== General Public License for more details.
15: //===
16: //=== You should have received a copy of the GNU General Public License
17: //=== along with this program; if not, write to the Free Software
18: //=== Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19: //===
20: //=== Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2,
21: //=== Rome - Italy. email: geonetwork@osgeo.org
22: //==============================================================================
23:
24: package org.fao.geonet.kernel.oaipmh.services;
25:
26: import java.util.List;
27: import org.fao.oaipmh.exceptions.BadResumptionTokenException;
28: import org.fao.oaipmh.responses.ListResponse;
29: import org.fao.oaipmh.responses.ResumptionToken;
30:
31: //=============================================================================
32:
33: class SearchResult {
34: //---------------------------------------------------------------------------
35: //---
36: //--- Constructor
37: //---
38: //---------------------------------------------------------------------------
39:
40: public SearchResult(String prefix) {
41: this .prefix = prefix;
42: }
43:
44: //---------------------------------------------------------------------------
45: //---
46: //--- API methods
47: //---
48: //---------------------------------------------------------------------------
49:
50: public int parseToken(String token)
51: throws BadResumptionTokenException {
52: if (!org.fao.geonet.lib.Lib.type.isInteger(token))
53: throw new BadResumptionTokenException("Invalid token : "
54: + token);
55:
56: int pos = Integer.parseInt(token);
57:
58: if (pos >= ids.size())
59: throw new BadResumptionTokenException(
60: "Token beyond limit : " + token);
61:
62: this .token = token;
63:
64: return pos;
65: }
66:
67: //---------------------------------------------------------------------------
68:
69: public void setupToken(ListResponse res, int pos) {
70: if (pos < ids.size())
71: res.setResumptionToken(new ResumptionToken(Integer
72: .toString(pos)));
73: else {
74: //--- in case of a last chunk, we return an empty token
75:
76: if (token != null)
77: res.setResumptionToken(new ResumptionToken(""));
78: }
79: }
80:
81: //---------------------------------------------------------------------------
82: //---
83: //--- Variables
84: //---
85: //---------------------------------------------------------------------------
86:
87: public String prefix;
88: public List<Integer> ids;
89:
90: private String token;
91: }
92:
93: //=============================================================================
|