Annotation Type Operation

    • Field Summary

      Fields 
      Modifier and Type Fields Description
      static String NAME_MATCH_ALL
      This constant is a special return value for name().
    • Required Element Summary

      Required Elements 
      Modifier and Type Required Element Description
      String name
      The name of the operation, e.g.
    • Optional Element Summary

      Optional Elements 
      Modifier and Type Optional Element Description
      BundleTypeEnum bundleType
      If this operation returns a bundle, this parameter can be used to specify the bundle type to set in the bundle.
      boolean global
      If this is set to true, this method will be a global operation meaning that it applies to all resource types
      boolean idempotent
      If a given operation method is idempotent (meaning roughly that it does not modify any data or state on the server) then this flag should be set to true (default is false).
      boolean manualRequest
      If this is set to true (default is false and this is almost always the right choice), the framework will not attempt to parse the request body, but will instead delegate it to the @Operation method.
      boolean manualResponse
      If this is set to true (default is false and this is almost always the right choice), the framework will not attempt to generate a response to this method.
      OperationParam[] returnParameters
      This parameter may be used to specify the parts which will be found in the response to this operation.
      Class<? extends IBaseResource> type
      This value may be populated with the resource type that the operation applies to.
      String typeName
      This value may be populated with the resource type that the operation applies to.
    • Field Detail

      • NAME_MATCH_ALL

        static final String NAME_MATCH_ALL
        This constant is a special return value for name(). If this name is used, the given operation method will match all operation calls. This is generally not desirable, but can be useful if you have a server that should dynamically match any FHIR operations that are requested.
    • Element Detail

      • name

        String name
        The name of the operation, e.g. "$everything"

        This may be specified with or without a leading '$'. (If the leading '$' is omitted, it will be added internally by the API).

      • type

        Class<? extends IBaseResourcetype
        This value may be populated with the resource type that the operation applies to. If set to IBaseResource (which is the default) than the operation applies to the server and not to a specific resource type.

        This attribute should not be used a resource provider implementing IResourceProvider since the type can be inferred from the resource provider type.

        See Also:
        may also be used to specify a value as a String
        Default:
        org.hl7.fhir.instance.model.api.IBaseResource.class
      • idempotent

        boolean idempotent
        If a given operation method is idempotent (meaning roughly that it does not modify any data or state on the server) then this flag should be set to true (default is false).

        One the server, setting this to true means that the server will allow the operation to be invoked using an HTTP GET (on top of the standard HTTP POST)

        Default:
        false
      • returnParameters

        OperationParam[] returnParameters
        This parameter may be used to specify the parts which will be found in the response to this operation.
        Default:
        {}
      • bundleType

        BundleTypeEnum bundleType
        If this operation returns a bundle, this parameter can be used to specify the bundle type to set in the bundle.
        Default:
        ca.uhn.fhir.model.valueset.BundleTypeEnum.COLLECTION
      • manualResponse

        boolean manualResponse
        If this is set to true (default is false and this is almost always the right choice), the framework will not attempt to generate a response to this method.

        This is useful if you want to include an javax.servlet.http.HttpServletResponse in your method parameters and create a response yourself directly from your @Operation method.

        Note that this will mean that interceptor methods will not get fired for the response, so there are security implications to using this flag.

        Default:
        false
      • manualRequest

        boolean manualRequest
        If this is set to true (default is false and this is almost always the right choice), the framework will not attempt to parse the request body, but will instead delegate it to the @Operation method.

        This is useful if you want to include an javax.servlet.http.HttpServletRequest in your method parameters and parse the request yourself.

        Default:
        false
      • global

        boolean global
        If this is set to true, this method will be a global operation meaning that it applies to all resource types
        Default:
        false