001package ca.uhn.fhir.rest.server.method; 002 003/* 004 * #%L 005 * HAPI FHIR - Server Framework 006 * %% 007 * Copyright (C) 2014 - 2022 Smile CDR, Inc. 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 java.lang.reflect.Method; 024import java.util.Collections; 025import java.util.Set; 026 027import ca.uhn.fhir.context.FhirContext; 028import ca.uhn.fhir.rest.annotation.Delete; 029import ca.uhn.fhir.rest.api.RequestTypeEnum; 030import ca.uhn.fhir.rest.api.RestOperationTypeEnum; 031import ca.uhn.fhir.rest.api.server.RequestDetails; 032 033import javax.annotation.Nonnull; 034 035public class DeleteMethodBinding extends BaseOutcomeReturningMethodBindingWithResourceIdButNoResourceBody { 036 037 public DeleteMethodBinding(Method theMethod, FhirContext theContext, Object theProvider) { 038 super(theMethod, theContext, theProvider, Delete.class, theMethod.getAnnotation(Delete.class).type()); 039 } 040 041 @Nonnull 042 @Override 043 public RestOperationTypeEnum getRestOperationType() { 044 return RestOperationTypeEnum.DELETE; 045 } 046 047 @Override 048 protected Set<RequestTypeEnum> provideAllowableRequestTypes() { 049 return Collections.singleton(RequestTypeEnum.DELETE); 050 } 051 052 @Override 053 protected boolean allowVoidReturnType() { 054 return true; 055 } 056 057 @Override 058 protected void addParametersForServerRequest(RequestDetails theRequest, Object[] theParams) { 059 theParams[getIdParameterIndex()] = theRequest.getId(); 060 } 061 062 @Override 063 protected String getMatchingOperation() { 064 return null; 065 } 066 067}