001package ca.uhn.fhir.rest.server.exceptions;
002
003/*
004 * #%L
005 * HAPI FHIR - Core Library
006 * %%
007 * Copyright (C) 2014 - 2016 University Health Network
008 * %%
009 * Licensed under the Apache License, Version 2.0 (the "License");
010 * you may not use this file except in compliance with the License.
011 * You may obtain a copy of the License at
012 * 
013 *      http://www.apache.org/licenses/LICENSE-2.0
014 * 
015 * Unless required by applicable law or agreed to in writing, software
016 * distributed under the License is distributed on an "AS IS" BASIS,
017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
018 * See the License for the specific language governing permissions and
019 * limitations under the License.
020 * #L%
021 */
022
023import org.hl7.fhir.instance.model.api.IBaseOperationOutcome;
024
025import ca.uhn.fhir.model.api.IResource;
026import ca.uhn.fhir.model.base.composite.BaseIdentifierDt;
027import ca.uhn.fhir.model.primitive.IdDt;
028import ca.uhn.fhir.rest.server.Constants;
029import ca.uhn.fhir.util.CoverageIgnore;
030
031/**
032 * Represents an <b>HTTP 410 Resource Gone</b> response, which geenerally
033 * indicates that the resource has been deleted
034 */
035@CoverageIgnore
036public class ResourceGoneException extends BaseServerResponseException {
037
038        public static final int STATUS_CODE = Constants.STATUS_HTTP_410_GONE;
039
040        public ResourceGoneException(IdDt theId) {
041                super(STATUS_CODE, "Resource " + (theId != null ? theId.getValue() : "") + " is gone/deleted");
042        }
043
044        public ResourceGoneException(Class<? extends IResource> theClass, BaseIdentifierDt thePatientId) {
045                super(STATUS_CODE, "Resource of type " + theClass.getSimpleName() + " with ID " + thePatientId + " is gone/deleted");
046        }
047
048        public ResourceGoneException(Class<? extends IResource> theClass, IdDt thePatientId) {
049                super(STATUS_CODE, "Resource of type " + theClass.getSimpleName() + " with ID " + thePatientId + " is gone/deleted");
050        }
051
052        /**
053         * Constructor
054         * 
055         * @param theMessage
056         *            The message
057         *  @param theOperationOutcome The OperationOutcome resource to return to the client
058         */
059        public ResourceGoneException(String theMessage, IBaseOperationOutcome theOperationOutcome) {
060                super(STATUS_CODE, theMessage, theOperationOutcome);
061        }
062
063        public ResourceGoneException(String theMessage) {
064                super(STATUS_CODE, theMessage);
065        }
066
067        private static final long serialVersionUID = 1L;
068
069}