Revision 4c59df2f
Added by Andreas Kohlbecker almost 3 years ago
cdmlib-ext/src/main/java/eu/etaxonomy/cdm/ext/openurl/MobotOpenUrlServiceWrapper.java | ||
---|---|---|
161 | 161 |
} |
162 | 162 |
|
163 | 163 |
private Integer parsePageNumber(String startPage) { |
164 |
String pageNumbers = startPage.replaceAll("(?i)page|pages|p|p\\.|pp\\.|pp", "");
|
|
165 |
String[] pageNumbersTokens = pageNumbers.split("[,-]", 1);
|
|
164 |
String pageIndices = startPage.replaceAll("(?i)page|pages|p|p\\.|pp\\.|pp", "");
|
|
165 |
String[] pageIndexTokens = pageIndices.split("[,-]", 1);
|
|
166 | 166 |
Integer page = null; |
167 | 167 |
try { |
168 |
if(pageNumbersTokens[0] != null){
|
|
169 |
pageNumbersTokens[0] = pageNumbersTokens[0].trim();
|
|
168 |
if(pageIndexTokens[0] != null){
|
|
169 |
pageIndexTokens[0] = pageIndexTokens[0].trim();
|
|
170 | 170 |
} else { |
171 | 171 |
throw new NumberFormatException(); |
172 | 172 |
} |
173 |
page = Integer.valueOf(pageNumbersTokens[0]);
|
|
173 |
page = Integer.valueOf(pageIndexTokens[0]);
|
|
174 | 174 |
} catch (NumberFormatException e) { |
175 | 175 |
logger.warn("First page number token of " + startPage + " is not a Number", e); |
176 | 176 |
throw e; |
... | ... | |
192 | 192 |
*/ |
193 | 193 |
public List<OpenUrlReference> doPage(OpenUrlReference reference, int forward) throws IllegalArgumentException{ |
194 | 194 |
|
195 |
Integer pageNumber = null;
|
|
195 |
Integer pageIndex = null;
|
|
196 | 196 |
try{ |
197 | 197 |
if(reference.getPages() != null){ |
198 |
pageNumber = parsePageNumber(reference.getPages());
|
|
199 |
pageNumber += forward;
|
|
198 |
pageIndex = parsePageNumber(reference.getPages());
|
|
199 |
pageIndex += forward;
|
|
200 | 200 |
} |
201 | 201 |
}catch(NumberFormatException e){ |
202 | 202 |
String errorMessage = "Reference has no page number or the field 'pages' is not parsable"; |
... | ... | |
206 | 206 |
|
207 | 207 |
MobotOpenUrlQuery query = new MobotOpenUrlQuery(); |
208 | 208 |
query.bhlTitleURI = reference.getTitleUri(); |
209 |
if(pageNumber != null){
|
|
210 |
query.startPage = pageNumber.toString();
|
|
209 |
if(pageIndex != null){
|
|
210 |
query.startPage = pageIndex.toString();
|
|
211 | 211 |
} |
212 | 212 |
query.refType = reference.getReferenceType(); |
213 | 213 |
return doResolve(query); |
Also available in: Unified diff
renaming local vars pageNumber -> pageIndex