@Override
public String getData(SecurityContext sc, String catName, String resName) throws NotFoundWebEx,
ConflictWebEx, BadRequestWebEx, InternalErrorWebEx {
if (LOGGER.isDebugEnabled())
LOGGER.debug("getData(" + catName + "," + resName + ")");
if (catName == null)
throw new BadRequestWebEx("Category is null");
if (resName == null)
throw new BadRequestWebEx("Resource is null");
SearchFilter filter = new AndFilter(new CategoryFilter(catName, SearchOperator.EQUAL_TO),
new FieldFilter(BaseField.NAME, resName, SearchOperator.EQUAL_TO));
List<Resource> resources = null;
try {
User user = extractAuthUser(sc);
resources = resourceService.getResourcesFull(filter, user);
} catch (BadRequestServiceEx ex) {
throw new BadRequestWebEx(ex.getMessage());
} catch (InternalErrorServiceEx ex) {
throw new InternalErrorWebEx(ex.getMessage());
}
if (resources.isEmpty()) {
throw new NotFoundWebEx("No resource found");
} else if (resources.size() > 1) {
throw new ConflictWebEx("Too many resources match the request");
}
return resources.get(0).getData().getData();
}