View Javadoc
1   package ca.uhn.fhir.rest.annotation;
2   
3   /*
4    * #%L
5    * HAPI FHIR - Core Library
6    * %%
7    * Copyright (C) 2014 - 2018 University Health Network
8    * %%
9    * Licensed under the Apache License, Version 2.0 (the "License");
10   * you may not use this file except in compliance with the License.
11   * You may obtain a copy of the License at
12   * 
13   *      http://www.apache.org/licenses/LICENSE-2.0
14   * 
15   * Unless required by applicable law or agreed to in writing, software
16   * distributed under the License is distributed on an "AS IS" BASIS,
17   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18   * See the License for the specific language governing permissions and
19   * limitations under the License.
20   * #L%
21   */
22  
23  import java.lang.annotation.ElementType;
24  import java.lang.annotation.Retention;
25  import java.lang.annotation.RetentionPolicy;
26  import java.lang.annotation.Target;
27  
28  /**
29   * On the {@link Update}, {@link Create} and {@link Delete} operation methods, this annotation
30   * can be used to mark a {@link String} parameter which will be populated with the 
31   * conditional "search" URL for the operation, if an incoming client invocation is
32   * a conditional operation. For non-conditional invocations, the value will be set to
33   * <code>null</code> so it is important to handle <code>null</code>.
34   * <p>
35   * Parameters annotated with this annotation <b>must be of type {@link String}</b>
36   * </p>
37   */
38  @Retention(RetentionPolicy.RUNTIME)
39  @Target(ElementType.PARAMETER)
40  public @interface ConditionalUrlParam {
41  
42  	/**
43  	 * Does this param support operating over multiple objects without throwing an error? This
44  	 * should be set to <code>true</code> only for conditional delete operations if the server
45  	 * supports multiple deletes via a conditional URL.
46  	 * <p>
47  	 * Note that this flag is only a hint to the Conformance statement generator,
48  	 * it does not actually affect how the server itself works.
49  	 * </p>  
50  	 */
51  	boolean supportsMultiple() default false;
52  	
53  }