private MultivaluedMap<String, String> makeDocumentParams(String uri,
Set<Metadata> categories, String transactionId,
RequestParameters extraParams, boolean withContent) {
MultivaluedMap<String, String> docParams = new MultivaluedMapImpl();
if (extraParams != null && extraParams.size() > 0) {
for (Map.Entry<String, List<String>> entry : extraParams.entrySet()) {
String extraKey = entry.getKey();
if (!"range".equalsIgnoreCase(extraKey)) {
addEncodedParam(docParams, extraKey, entry.getValue());
}
}
}
addEncodedParam(docParams, "uri", uri);
if (categories == null || categories.size() == 0) {
docParams.add("category", "content");
} else {
if (withContent)
docParams.add("category", "content");
if (categories.contains(Metadata.ALL)) {
docParams.add("category", "metadata");
} else {
for (Metadata category : categories)
docParams.add("category", category.name().toLowerCase());
}
}
if (transactionId != null) {
docParams.add("txid", transactionId);
}
return docParams;
}