package com.cloudesire.tisana4j.exceptions; public class ExceptionFactory { public static RestException getException( int statusCodeNumber, String exceptionMessage ) { switch ( statusCodeNumber ) { case 301: case 302: return new RedirectException( statusCodeNumber, exceptionMessage ); case 400: return new BadRequestException( statusCodeNumber, exceptionMessage ); case 401: return new UnauthorizedException( statusCodeNumber, exceptionMessage ); case 403: return new AccessDeniedException( statusCodeNumber, exceptionMessage ); case 404: return new ResourceNotFoundException( statusCodeNumber, exceptionMessage ); case 405: return new MethodNotAllowedException( statusCodeNumber, exceptionMessage ); case 409: return new ConflictException( statusCodeNumber, exceptionMessage ); case 412: return new PreconditionFailedException( statusCodeNumber, exceptionMessage ); case 422: return new UnprocessableEntityException( statusCodeNumber, exceptionMessage ); case 500: case 501: case 502: case 503: case 504: return new InternalServerErrorException( statusCodeNumber, exceptionMessage ); } return new UnmappedRestException( statusCodeNumber, exceptionMessage ); } public static RestException getException( int statusCodeNumber, String statusCodeDescription, String exceptionMessage ) { String msgError = exceptionMessage != null && exceptionMessage.length() > 0 ? exceptionMessage : statusCodeDescription; return getException( statusCodeNumber, msgError ); } }