| /******************************************************************************** |
| * Copyright (c) 2015-2019 Contributors to the Eclipse Foundation |
| * |
| * See the NOTICE file(s) distributed with this work for additional |
| * information regarding copyright ownership. |
| * |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Public License v. 2.0 which is available at |
| * http://www.eclipse.org/legal/epl-2.0. |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| * |
| ********************************************************************************/ |
| package org.eclipse.mdm.apicopy.entity; |
| |
| import javax.ws.rs.core.Response; |
| import javax.ws.rs.core.Response.Status; |
| import javax.ws.rs.ext.Provider; |
| |
| import org.eclipse.mdm.apicopy.control.ApiCopyException; |
| import org.eclipse.mdm.apicopy.entity.CopyStatusResponse.State; |
| |
| import com.google.common.base.Throwables; |
| |
| /** |
| * Maps {@link ApiCopyException} to a HTTP BAD Request and provides |
| * {@link CopyStatusResponse} in the payload. |
| */ |
| @Provider |
| public class ApiCopyExceptionMapper implements javax.ws.rs.ext.ExceptionMapper<ApiCopyException> { |
| |
| /** |
| * {@inheritDoc} |
| */ |
| @Override |
| public Response toResponse(ApiCopyException e) { |
| CopyStatusResponse status = new CopyStatusResponse(); |
| status.setState(State.FAILED); |
| status.setMessage(e.getMessage()); |
| status.setStacktrace(Throwables.getStackTraceAsString(e)); |
| return Response.status(Status.BAD_REQUEST).entity(status).build(); |
| } |
| |
| } |