Date minUploadDate, Date maxUploadDate,
Date minTakenDate, Date maxTakenDate,
int privacyFilter, String sort, Set extras, int perPage, int page)
throws FlickrException, IOException, SAXException {
List parameters = new ArrayList();
parameters.add(new Parameter("method", METHOD_GET_WITH_GEO_DATA));
parameters.add(new Parameter("api_key", apiKey));
if (minUploadDate != null) {
parameters.add(new Parameter("min_upload_date", minUploadDate.getTime() / 1000L));
}
if (maxUploadDate != null) {
parameters.add(new Parameter("max_upload_date", maxUploadDate.getTime() / 1000L));
}
if (minTakenDate != null) {
parameters.add(new Parameter("min_taken_date", minTakenDate.getTime() / 1000L));
}
if (maxTakenDate != null) {
parameters.add(new Parameter("max_taken_date", maxTakenDate.getTime() / 1000L));
}
if (privacyFilter > 0) {
parameters.add(new Parameter("privacy_filter", privacyFilter));
}
if (sort != null) {
parameters.add(new Parameter("sort", sort));
}
if (extras != null && !extras.isEmpty()) {
StringBuffer sb = new StringBuffer();
Iterator it = extras.iterator();
while (it.hasNext()) {
if (sb.length() > 0) {
sb.append(",");
}
sb.append(it.next());
}
parameters.add(new Parameter("extras", sb.toString()));
}
if (perPage > 0) {
parameters.add(new Parameter("per_page", perPage));
}
if (page > 0) {
parameters.add(new Parameter("page", page));
}
parameters.add(
new Parameter(
"api_sig",
AuthUtilities.getSignature(sharedSecret, parameters)
)
);