001package ca.uhn.fhir.rest.client.method; 002 003/* 004 * #%L 005 * HAPI FHIR - Client Framework 006 * %% 007 * Copyright (C) 2014 - 2019 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 java.util.List; 024import java.util.Map; 025 026import org.hl7.fhir.instance.model.api.IIdType; 027 028import ca.uhn.fhir.context.FhirContext; 029import ca.uhn.fhir.rest.api.EncodingEnum; 030import ca.uhn.fhir.rest.api.RequestTypeEnum; 031import ca.uhn.fhir.rest.client.api.IHttpRequest; 032import ca.uhn.fhir.rest.client.impl.BaseHttpClientInvocation; 033 034public class HttpDeleteClientInvocation extends BaseHttpClientInvocation { 035 036 private String myUrlPath; 037 private Map<String, List<String>> myParams; 038 039 public HttpDeleteClientInvocation(FhirContext theContext, IIdType theId) { 040 super(theContext); 041 myUrlPath = theId.toUnqualifiedVersionless().getValue(); 042 } 043 044 public HttpDeleteClientInvocation(FhirContext theContext, String theSearchUrl) { 045 super(theContext); 046 myUrlPath = theSearchUrl; 047 } 048 049 public HttpDeleteClientInvocation(FhirContext theContext, String theResourceType, Map<String, List<String>> theParams) { 050 super(theContext); 051 myUrlPath = theResourceType; 052 myParams = theParams; 053 } 054 055 @Override 056 public IHttpRequest asHttpRequest(String theUrlBase, Map<String, List<String>> theExtraParams, EncodingEnum theEncoding, Boolean thePrettyPrint) { 057 StringBuilder b = new StringBuilder(); 058 b.append(theUrlBase); 059 if (!theUrlBase.endsWith("/")) { 060 b.append('/'); 061 } 062 b.append(myUrlPath); 063 064 appendExtraParamsWithQuestionMark(myParams, b, b.indexOf("?") == -1); 065 appendExtraParamsWithQuestionMark(theExtraParams, b, b.indexOf("?") == -1); 066 067 return createHttpRequest(b.toString(), theEncoding, RequestTypeEnum.DELETE); 068 } 069 070 @Override 071 protected IHttpRequest createHttpRequest(String theUrl, EncodingEnum theEncoding, RequestTypeEnum theRequestType) { 072 // TODO Auto-generated method stub 073 return super.createHttpRequest(theUrl, theEncoding, theRequestType); 074 } 075 076}