private void validateDates() throws BadArgumentException { Calendar from = Calendar.getInstance(); Calendar until = Calendar.getInstance(); from.setTime(this.from); until.setTime(this.until); if (from.after(until)) throw new BadArgumentException("The 'from' date must be less then the 'until' one"); }
private Date getDate(String date, String param) throws BadArgumentException { if (date == null) return null; try { return dateProvider.parse(date); } catch (ParseException e) { throw new BadArgumentException("The " + param + " parameter given is not valid"); } }
public Date getDate(Parameter parameter) throws BadArgumentException { if (!has(parameter)) return null; try { return dateProvider.parse(get(parameter)); } catch (ParseException e) { throw new BadArgumentException("The " + parameter + " parameter given is not valid"); } }
private OAICompiledRequest(OAIRequest request, ResumptionTokenFormat resumptionTokenFormat) throws IllegalVerbException, BadArgumentException, UnknownParameterException, DuplicateDefinitionException, InvalidResumptionTokenException { Collection<String> parameterNames = request.getParameterNames(); if (isTrueThat(parameterNames, not(hasItem(equalTo("verb"))))) throw new IllegalVerbException("No verb provided"); for (String parameterName : parameterNames) if (isTrueThat(parameterName, not(in("verb", "from", "until", "metadataPrefix", "identifier", "set", "resumptionToken")))) throw new UnknownParameterException("Unknown parameter '" + parameterName + "'"); String until = request.getString(Until); String from = request.getString(From); if (isTrueThat(until, is(not(nullValue()))) && isTrueThat(from, is(not(nullValue()))) && from.length() != until.length()) throw new BadArgumentException("Distinct granularities provided for until and from parameters"); this.verbType = request.getVerb(); this.from = request.getDate(From); this.until = request.getDate(Until); this.metadataPrefix = request.getString(MetadataPrefix); this.set = request.getString(Set); this.identifier = request.getString(Identifier); if (request.has(ResumptionToken)) this.resumptionToken = resumptionTokenFormat.parse(request.getString(ResumptionToken)); else this.resumptionToken = new ResumptionToken.Value(); this.validate(); this.loadResumptionToken(this.resumptionToken); }
if (this.hasFrom() || this.hasSet() || this.hasUntil() || this.hasMetadataPrefix()) throw new BadArgumentException( "ResumptionToken cannot be sent together with from, until, metadataPrefix or set parameters"); || this.hasSet() || this.hasMetadataPrefix() || this.hasFrom() || this.hasUntil()) throw new BadArgumentException( "Identify verb does not accept any extra parameter"); break; || this.hasMetadataPrefix() || this.hasFrom() || this.hasUntil()) throw new BadArgumentException( "ListMetadataFormats verb only accepts one optional parameter - identifier"); break; || this.hasMetadataPrefix() || this.hasFrom() || this.hasUntil()) throw new BadArgumentException( "ListSets verb only accepts one optional parameter - resumptionTokenResolver"); break; if (!this.hasIdentifier() || !this.hasMetadataPrefix() || this.hasSet() || this.hasFrom() || this.hasUntil()) throw new BadArgumentException( "GetRecord verb requires the use of the parameters - identifier and metadataPrefix"); if (this.hasResumptionToken()) throw new BadArgumentException(