package org.atomhopper.abdera.response;
import org.apache.abdera.protocol.server.ProviderHelper;
import org.apache.abdera.protocol.server.RequestContext;
import org.apache.abdera.protocol.server.ResponseContext;
import org.atomhopper.abdera.filter.AdapterResponseInterceptor;
import org.atomhopper.response.AdapterResponse;
import org.atomhopper.response.EmptyBody;
public class EmptyBodyResponseHandler extends AbstractResponseHandler<EmptyBody> {
public EmptyBodyResponseHandler(String[] allowedMethods, AdapterResponseInterceptor<EmptyBody>... interceptors) {
super(allowedMethods, interceptors);
}
@Override
protected ResponseContext handleAdapterResponse(RequestContext rc, AdapterResponse<EmptyBody> adapterResponse) {
switch (adapterResponse.getResponseStatus()) {
case NOT_FOUND:
return ProviderHelper.notfound(rc, adapterResponse.getMessage());
case INTERNAL_SERVER_ERROR:
return ProviderHelper.servererror(rc, adapterResponse.getMessage(), new InternalServerException());
case METHOD_NOT_ALLOWED:
return ProviderHelper.notallowed(rc, adapterResponse.getMessage(), getAllowedHttpMethods());
case BAD_REQUEST:
return ProviderHelper.badrequest(rc, adapterResponse.getMessage());
default:
return ProviderHelper.nocontent();
}
}
}