package restx.exceptions; import restx.common.UUIDGenerator; import restx.factory.Component; import restx.http.HttpStatus; /** * Date: 10/12/13 * Time: 20:52 */ @Component public class RestxErrors { private final UUIDGenerator uuidGenerator; public RestxErrors(UUIDGenerator uuidGenerator) { this.uuidGenerator = uuidGenerator; } public <E> RestxError<E> on(Class<E> errorCode) { ErrorCode code = errorCode.getAnnotation(ErrorCode.class); HttpStatus errorStatus = code != null ? code.status() : HttpStatus.BAD_REQUEST; String error = code != null ? code.code() : errorCode.getSimpleName(); String description = code != null ? code.description() : errorCode.getName(); return new RestxError<>(uuidGenerator.doGenerate(), errorStatus, error, description); } }