this.containerConf = containerConf;
}
public Future<?> handleItem(RequestItem request) {
if (request.getOperation() == null) {
return ImmediateFuture.errorInstance(new SocialSpiException(ResponseError.NOT_IMPLEMENTED,
"Unserviced operation"));
}
String operation = request.getOperation().toLowerCase();
Future<?> responseItem;
try {
if (GET_SYNONYMS.contains(operation)) {
responseItem = handleGet(request);
} else if (UPDATE_SYNONYMS.contains(operation)) {
responseItem = handlePost(request);
} else if (CREATE_SYNONYMS.contains(operation)) {
responseItem = handlePut(request);
} else if (DELETE_SYNONYMS.contains(operation)) {
responseItem = handleDelete(request);
} else {
throw new SocialSpiException(ResponseError.NOT_IMPLEMENTED,
"Unserviced operation " + operation);
}
} catch (SocialSpiException spe) {
return ImmediateFuture.errorInstance(spe);
} catch (Throwable t) {
return ImmediateFuture.errorInstance(new SocialSpiException(ResponseError.INTERNAL_ERROR,
"Unknown error " + t.getMessage(), t));
}
return responseItem;
}