<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE javadoc SYSTEM "https://raw.githubusercontent.com/eclipse-ee4j/jakartaee-tck/master/internal/docs/dtd/javadoc_assertions.dtd">
<!--

    Copyright (c) 2018, 2020 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    http://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->

<javadoc>
  <next-available-id>1243</next-available-id>
  <previous-id>1130</previous-id>
  <technology>JAXRS</technology>
  <id>JAXRS</id>
  <name>JavaTM API for RESTful Web Services</name>
  <version>3.0</version>
  <assertions>
    <!-- ********************************************************************************** -->
    <!-- ********************************************************************************** -->
    <!-- ********************************************************************************** -->
    <!-- COMMON ASSERTIONS LISTED BELOW -->
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1</id>
      <description>A list of media types. Each entry may specify a single type or consist of a comma separated list of types, with any leading or trailing white-spaces in a single type entry being ignored. For example: {"image/jpeg, image/gif ", " image/png"} Use of the comma-separated form allows definition of a common string constant for use on multiple targets.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>Consumes</class-interface>
      <method name="value" return-type="java.lang.String[]" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>2</id>
      <description>Defines the name of the HTTP cookie whose value will be used to initialize the value of the annotated method argument, class field or bean property.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>CookieParam</class-interface>
      <method name="value" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>3</id>
      <description>The specified default value.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>DefaultValue</class-interface>
      <method name="value" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>4</id>
      <description>Defines the name of the form parameter whose value will be used to initialize the value of the annotated method argument. The name is specified in decoded form, any percent encoded literals within the value will not be decoded and will instead be treated as literal text. E.g. if the parameter name is "a b" then the value of the annotation is "a b", not "a+b" or "a%20b".</description>
      <package>jakarta.ws.rs</package>
      <class-interface>FormParam</class-interface>
      <method name="value" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>5</id>
      <description>Defines the name of the HTTP header whose value will be used to initialize the value of the annotated method argument, class field or bean property. Case insensitive.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>HeaderParam</class-interface>
      <method name="value" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>6</id>
      <description>Specifies the name of a HTTP method. E.g. "GET".</description>
      <package>jakarta.ws.rs</package>
      <class-interface>HttpMethod</class-interface>
      <method name="value" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>7</id>
      <description>Defines the name of the URI matrix parameter whose value will be used to initialize the value of the annotated method argument, class field or bean property. The name is specified in decoded form, any percent encoded literals within the value will not be decoded and will instead be treated as literal text. E.g. if the parameter name is "a b" then the value of the annotation is "a b", not "a+b" or "a%20b".</description>
      <package>jakarta.ws.rs</package>
      <class-interface>MatrixParam</class-interface>
      <method name="value" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>8</id>
      <description>Defines a URI template for the resource class or method, must not include matrix parameters. Embedded template parameters are allowed and are of the form: param = "{" *WSP name *WSP [ ":" *WSP regex *WSP ] "}" name = (ALPHA / DIGIT / "_")*(ALPHA / DIGIT / "." / "_" / "-" ) ; \w[\w\.-]* regex = *( nonbrace / "{" *nonbrace "}" ) ; where nonbrace is any char other than "{" and "}" See RFC 5234 for a description of the syntax used above and the expansions of WSP, ALPHA and DIGIT. In the above name is the template parameter name and the optional regex specifies the contents of the capturing group for the parameter. If regex is not supplied then a default value of [^/]+ which terminates at a path segment boundary, is used. Matching of request URIs to URI templates is performed against encoded path values and implementations will not escape literal characters in regex automatically, therefore any literals in regex should be escaped by the author according to the rules of RFC 3986 section 3.3. Caution is recommended in the use of regex, incorrect use can lead to a template parameter matching unexpected URI paths. See Pattern for further information on the syntax of regular expressions. Values of template parameters may be extracted using PathParam. The literal part of the supplied value (those characters that are not part of a template parameter) is automatically percent encoded to conform to the path production of RFC 3986 section 3.3. Note that percent encoded values are allowed in the literal part of the value, an implementation will recognize such values and will not double encode the '%' character.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>Path</class-interface>
      <method name="value" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>9</id>
      <description>Defines the name of the URI template parameter whose value will be used to initialize the value of the annotated method parameter, class field or property. See Path#value() for a description of the syntax of template parameters. E.g. a class annotated with: @Path("widgets/{id}") can have methods annotated whose arguments are annotated with @PathParam("id").</description>
      <package>jakarta.ws.rs</package>
      <class-interface>PathParam</class-interface>
      <method name="value" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>10</id>
      <description>A list of media types. Each entry may specify a single type or consist of a comma separated list of types, with any leading or trailing white-spaces in a single type entry being ignored. For example: {"image/jpeg, image/gif ", " image/png"} Use of the comma-separated form allows definition of a common string constant for use on multiple targets.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>Produces</class-interface>
      <method name="value" return-type="java.lang.String[]" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>11</id>
      <description>Defines the name of the HTTP query parameter whose value will be used to initialize the value of the annotated method argument, class field or bean property. The name is specified in decoded form, any percent encoded literals within the value will not be decoded and will instead be treated as literal text. E.g. if the parameter name is "a b" then the value of the annotation is "a b", not "a+b" or "a%20b".</description>
      <package>jakarta.ws.rs</package>
      <class-interface>QueryParam</class-interface>
      <method name="value" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>12</id>
      <description>Get the HTTP response.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>WebApplicationException</class-interface>
      <method name="getResponse" return-type="jakarta.ws.rs.core.Response" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>13</id>
      <description>Construct a new instance with a default HTTP status code of 500 and a default message generated from the HTTP status code and the associated HTTP status reason phrase.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>WebApplicationException</class-interface>
      <method name="WebApplicationException" return-type="WebApplicationException" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>14</id>
      <description>Construct a new instance using the supplied response and a default message generated from the response's HTTP status code and the associated HTTP status reason phrase.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>WebApplicationException</class-interface>
      <method name="WebApplicationException" return-type="WebApplicationException">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>15</id>
      <description>Construct a new instance with the supplied HTTP status code and a default message generated from the HTTP status code and the associated HTTP status reason phrase.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>WebApplicationException</class-interface>
      <method name="WebApplicationException" return-type="WebApplicationException">
        <parameters>
          <parameter>int</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>16</id>
      <description>Construct a new instance with the supplied HTTP status and a default message generated from the HTTP status code and the associated HTTP status reason phrase.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>WebApplicationException</class-interface>
      <method name="WebApplicationException" return-type="WebApplicationException">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response.Response.Status</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>17</id>
      <description>Construct a new instance with the supplied root cause, default HTTP status code of 500 and a default message generated from the HTTP status code and the associated HTTP status reason phrase.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>WebApplicationException</class-interface>
      <method name="WebApplicationException" return-type="WebApplicationException">
        <parameters>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>18</id>
      <description>Construct a new instance with the supplied root cause, response and a default message generated from the response's HTTP status code and the associated HTTP status reason phrase.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>WebApplicationException</class-interface>
      <method name="WebApplicationException" return-type="WebApplicationException">
        <parameters>
          <parameter>java.lang.Throwable</parameter>
          <parameter>jakarta.ws.rs.core.Response</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>19</id>
      <description>Construct a new instance with the supplied root cause, HTTP status code and a default message generated from the HTTP status code and the associated HTTP status reason phrase.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>WebApplicationException</class-interface>
      <method name="WebApplicationException" return-type="WebApplicationException">
        <parameters>
          <parameter>java.lang.Throwable</parameter>
          <parameter>int</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>20</id>
      <description>Construct a new instance with the supplied root cause, HTTP status code and a default message generated from the HTTP status code and the associated HTTP status reason phrase.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>WebApplicationException</class-interface>
      <method name="WebApplicationException" return-type="WebApplicationException">
        <parameters>
          <parameter>java.lang.Throwable</parameter>
          <parameter>jakarta.ws.rs.core.Response.Response.Status</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>21</id>
      <description />
      <package>jakarta.ws.rs.core</package>
      <class-interface>Application</class-interface>
      <method name="Application" return-type="Application" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>22</id>
      <description>Get a set of root resource, provider and Feature feature classes. The default life-cycle for resource class instances is per-request. The default life-cycle for providers (registered directly or via a feature) is singleton. Implementations should warn about and ignore classes that do not conform to the requirements of root resource or provider/feature classes. Implementations should warn about and ignore classes for which #getSingletons() returns an instance. Implementations MUST NOT modify the returned set. The default implementation returns an empty set.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Application</class-interface>
      <method name="getClasses" return-type="java.util.Set" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>23</id>
      <description>Get a set of root resource, provider and Feature feature instances. Fields and properties of returned instances are injected with their declared dependencies (see Context) by the runtime prior to use. Implementations should warn about and ignore classes that do not conform to the requirements of root resource or provider classes. Implementations should flag an error if the returned set includes more than one instance of the same class. Implementations MUST NOT modify the returned set. The default implementation returns an empty set.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Application</class-interface>
      <method name="getSingletons" return-type="java.util.Set" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>24</id>
      <description>Create a new instance of CacheControl. The new instance will have the following default settings: private = false noCache = false noStore = false noTransform = true mustRevalidate = false proxyRevalidate = false An empty list of private fields An empty list of no-cache fields An empty map of cache extensions</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>CacheControl</class-interface>
      <method name="CacheControl" return-type="CacheControl" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>25</id>
      <description>Compares object argument to this cache control to see if they are the same considering all property values.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>CacheControl</class-interface>
      <method name="equals" return-type="boolean">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>26</id>
      <description>Corresponds to a set of extension cache control directives.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>CacheControl</class-interface>
      <method name="getCacheExtension" return-type="java.util.Map" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>27</id>
      <description>Corresponds to the max-age cache control directive.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>CacheControl</class-interface>
      <method name="getMaxAge" return-type="int" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>28</id>
      <description>Corresponds to the value of the no-cache cache control directive.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>CacheControl</class-interface>
      <method name="getNoCacheFields" return-type="java.util.List" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>29</id>
      <description>Corresponds to the value of the private cache control directive.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>CacheControl</class-interface>
      <method name="getPrivateFields" return-type="java.util.List" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>30</id>
      <description>Corresponds to the s-maxage cache control directive.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>CacheControl</class-interface>
      <method name="getSMaxAge" return-type="int" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>31</id>
      <description>Generate hash code from cache control properties.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>CacheControl</class-interface>
      <method name="hashCode" return-type="int" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>32</id>
      <description>Corresponds to the must-revalidate cache control directive.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>CacheControl</class-interface>
      <method name="isMustRevalidate" return-type="boolean" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>33</id>
      <description>Corresponds to the no-cache cache control directive.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>CacheControl</class-interface>
      <method name="isNoCache" return-type="boolean" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>34</id>
      <description>Corresponds to the no-store cache control directive.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>CacheControl</class-interface>
      <method name="isNoStore" return-type="boolean" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>35</id>
      <description>Corresponds to the no-transform cache control directive.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>CacheControl</class-interface>
      <method name="isNoTransform" return-type="boolean" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>36</id>
      <description>Corresponds to the private cache control directive.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>CacheControl</class-interface>
      <method name="isPrivate" return-type="boolean" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>37</id>
      <description>Corresponds to the proxy-revalidate cache control directive.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>CacheControl</class-interface>
      <method name="isProxyRevalidate" return-type="boolean" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>38</id>
      <description>Corresponds to the max-age cache control directive.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>CacheControl</class-interface>
      <method name="setMaxAge" return-type="void">
        <parameters>
          <parameter>int</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>39</id>
      <description>Corresponds to the must-revalidate cache control directive.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>CacheControl</class-interface>
      <method name="setMustRevalidate" return-type="void">
        <parameters>
          <parameter>boolean</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>40</id>
      <description>Corresponds to the no-cache cache control directive.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>CacheControl</class-interface>
      <method name="setNoCache" return-type="void">
        <parameters>
          <parameter>boolean</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>41</id>
      <description>Corresponds to the no-store cache control directive.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>CacheControl</class-interface>
      <method name="setNoStore" return-type="void">
        <parameters>
          <parameter>boolean</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>42</id>
      <description>Corresponds to the no-transform cache control directive.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>CacheControl</class-interface>
      <method name="setNoTransform" return-type="void">
        <parameters>
          <parameter>boolean</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>43</id>
      <description>Corresponds to the private cache control directive.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>CacheControl</class-interface>
      <method name="setPrivate" return-type="void">
        <parameters>
          <parameter>boolean</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>44</id>
      <description>Corresponds to the must-revalidate cache control directive.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>CacheControl</class-interface>
      <method name="setProxyRevalidate" return-type="void">
        <parameters>
          <parameter>boolean</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>45</id>
      <description>Corresponds to the s-maxage cache control directive.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>CacheControl</class-interface>
      <method name="setSMaxAge" return-type="void">
        <parameters>
          <parameter>int</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>46</id>
      <description>Convert the cache control to a string suitable for use as the value of the corresponding HTTP header.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>CacheControl</class-interface>
      <method name="toString" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>47</id>
      <description>Creates a new instance of CacheControl by parsing the supplied string.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>CacheControl</class-interface>
      <method name="valueOf" return-type="jakarta.ws.rs.core.CacheControl">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>49</id>
      <description>Create a new instance.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Cookie</class-interface>
      <method name="Cookie" return-type="Cookie">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
          <parameter>int</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>50</id>
      <description>Create a new instance.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Cookie</class-interface>
      <method name="Cookie" return-type="Cookie">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>51</id>
      <description>Create a new instance.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Cookie</class-interface>
      <method name="Cookie" return-type="Cookie">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>52</id>
      <description>Compare for equality.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Cookie</class-interface>
      <method name="equals" return-type="boolean">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>53</id>
      <description>Get the domain of the cookie.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Cookie</class-interface>
      <method name="getDomain" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>54</id>
      <description>Get the name of the cookie.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Cookie</class-interface>
      <method name="getName" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>55</id>
      <description>Get the path of the cookie.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Cookie</class-interface>
      <method name="getPath" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>56</id>
      <description>Get the value of the cookie.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Cookie</class-interface>
      <method name="getValue" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>57</id>
      <description>Get the version of the cookie.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Cookie</class-interface>
      <method name="getVersion" return-type="int" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>58</id>
      <description>Generate a hash code by hashing all of the cookies properties.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Cookie</class-interface>
      <method name="hashCode" return-type="int" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>59</id>
      <description>Convert the cookie to a string suitable for use as the value of the corresponding HTTP header.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Cookie</class-interface>
      <method name="toString" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>60</id>
      <description>Creates a new instance of Cookie by parsing the supplied string.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Cookie</class-interface>
      <method name="valueOf" return-type="jakarta.ws.rs.core.Cookie">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>62</id>
      <description>Creates a new instance of a strong EntityTag.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>EntityTag</class-interface>
      <method name="EntityTag" return-type="EntityTag">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>63</id>
      <description>Creates a new instance of an EntityTag.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>EntityTag</class-interface>
      <method name="EntityTag" return-type="EntityTag">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>boolean</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>64</id>
      <description>Compares obj to this tag to see if they are the same considering weakness and value.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>EntityTag</class-interface>
      <method name="equals" return-type="boolean">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>65</id>
      <description>Get the value of an EntityTag.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>EntityTag</class-interface>
      <method name="getValue" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>66</id>
      <description>Generate hashCode based on value and weakness.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>EntityTag</class-interface>
      <method name="hashCode" return-type="int" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>67</id>
      <description>Check the strength of an EntityTag.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>EntityTag</class-interface>
      <method name="isWeak" return-type="boolean" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>68</id>
      <description>Convert the entity tag to a string suitable for use as the value of the corresponding HTTP header.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>EntityTag</class-interface>
      <method name="toString" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>69</id>
      <description>Creates a new instance of EntityTag by parsing the supplied string.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>EntityTag</class-interface>
      <method name="valueOf" return-type="jakarta.ws.rs.core.EntityTag">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>71</id>
      <description>Create a new instance of GenericEntity, supplying the generic type information. The entity must be assignable to a variable of the supplied generic type, e.g. if entity is an instance of ArrayList then genericType could be the same or a superclass of ArrayList with the same generic type like List.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>GenericEntity</class-interface>
      <method name="GenericEntity" return-type="GenericEntity">
        <parameters>
          <parameter>java.lang.Object</parameter>
          <parameter>java.lang.reflect.Type</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>72</id>
      <description>Get the enclosed entity.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>GenericEntity</class-interface>
      <method name="getEntity" return-type="java.lang.Object" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>73</id>
      <description>Gets the raw type of the enclosed entity. Note that this is the raw type of the instance, not the raw type of the type parameter. I.e. in the example in the introduction, the raw type is ArrayList not List.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>GenericEntity</class-interface>
      <method name="getRawType" return-type="java.lang.Class" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>74</id>
      <description>Gets underlying Type instance. Note that this is derived from the type parameter, not the enclosed instance. I.e. in the example in the introduction, the type is List not ArrayList.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>GenericEntity</class-interface>
      <method name="getType" return-type="java.lang.reflect.Type" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>75</id>
      <description>Get a list of languages that are acceptable for the response. If no acceptable languages are specified, a read-only list containing a single wildcard java.util.Locale instance (with language field set to "*") is returned.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>HttpHeaders</class-interface>
      <method name="getAcceptableLanguages" return-type="java.util.List" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>76</id>
      <description>Get a list of media types that are acceptable for the response. If no acceptable media types are specified, a read-only list containing a single jakarta.ws.rs.core.MediaType#WILDCARD_TYPE wildcard media type instance is returned.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>HttpHeaders</class-interface>
      <method name="getAcceptableMediaTypes" return-type="java.util.List" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>77</id>
      <description>Get any cookies that accompanied the request.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>HttpHeaders</class-interface>
      <method name="getCookies" return-type="java.util.Map" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>78</id>
      <description>Get the language of the request entity.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>HttpHeaders</class-interface>
      <method name="getLanguage" return-type="java.util.Locale" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>79</id>
      <description>Get the media type of the request entity.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>HttpHeaders</class-interface>
      <method name="getMediaType" return-type="jakarta.ws.rs.core.MediaType" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>80</id>
      <description>Get the values of a HTTP request header. The returned List is read-only. This is a shortcut for getRequestHeaders().get(name).</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>HttpHeaders</class-interface>
      <method name="getRequestHeader" return-type="java.util.List">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>81</id>
      <description>Get the values of HTTP request headers. The returned Map is case-insensitive wrt. keys and is read-only. The method never returns null.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>HttpHeaders</class-interface>
      <method name="getRequestHeaders" return-type="jakarta.ws.rs.core.MultivaluedMap" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>82</id>
      <description>Compares obj to this media type to see if they are the same by comparing type, subtype and parameters. Note that the case-sensitivity of parameter values is dependent on the semantics of the parameter name, see HTTP/1.1. This method assumes that values are case-sensitive. Note that the equals(...) implementation does not perform a class equality check (this.getClass() == obj.getClass()). Therefore any class that extends from MediaType class and needs to override one of the equals(...) and #hashCode() methods must always override both methods to ensure the contract between Object#equals(java.lang.Object) and Object#hashCode() does not break.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>MediaType</class-interface>
      <method name="equals" return-type="boolean">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>83</id>
      <description>Getter for a read-only parameter map. Keys are case-insensitive.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>MediaType</class-interface>
      <method name="getParameters" return-type="java.util.Map" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>84</id>
      <description>Getter for subtype.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>MediaType</class-interface>
      <method name="getSubtype" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>85</id>
      <description>Getter for primary type.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>MediaType</class-interface>
      <method name="getType" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>86</id>
      <description>Generate a hash code from the type, subtype and parameters. Note that the #equals(java.lang.Object) implementation does not perform a class equality check (this.getClass() == obj.getClass()). Therefore any class that extends from MediaType class and needs to override one of the #equals(Object) and hashCode() methods must always override both methods to ensure the contract between Object#equals(java.lang.Object) and Object#hashCode() does not break.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>MediaType</class-interface>
      <method name="hashCode" return-type="int" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>87</id>
      <description>Check if this media type is compatible with another media type. E.g. image/* is compatible with image/jpeg, image/png, etc. Media type parameters are ignored. The function is commutative.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>MediaType</class-interface>
      <method name="isCompatible" return-type="boolean">
        <parameters>
          <parameter>jakarta.ws.rs.core.MediaType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>88</id>
      <description>Checks if the subtype is a wildcard.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>MediaType</class-interface>
      <method name="isWildcardSubtype" return-type="boolean" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>89</id>
      <description>Checks if the primary type is a wildcard.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>MediaType</class-interface>
      <method name="isWildcardType" return-type="boolean" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>90</id>
      <description>Creates a new instance of MediaType with the supplied type, subtype and parameters.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>MediaType</class-interface>
      <method name="MediaType" return-type="MediaType">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
          <parameter>java.util.Map</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>91</id>
      <description>Creates a new instance of MediaType with the supplied type and subtype.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>MediaType</class-interface>
      <method name="MediaType" return-type="MediaType">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>92</id>
      <description>Creates a new instance of MediaType, both type and subtype are wildcards. Consider using the constant #WILDCARD_TYPE instead.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>MediaType</class-interface>
      <method name="MediaType" return-type="MediaType" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>93</id>
      <description>Convert the media type to a string suitable for use as the value of a corresponding HTTP header.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>MediaType</class-interface>
      <method name="toString" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>94</id>
      <description>Creates a new instance of MediaType by parsing the supplied string.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>MediaType</class-interface>
      <method name="valueOf" return-type="jakarta.ws.rs.core.MediaType">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>96</id>
      <description>Add a value to the current list of values for the supplied key.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>MultivaluedMap</class-interface>
      <method name="add" return-type="void">
        <parameters>
          <parameter>java.lang.Object</parameter>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>97</id>
      <description>A shortcut to get the first value of the supplied key.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>MultivaluedMap</class-interface>
      <method name="getFirst" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>98</id>
      <description>Set the key's value to be a one item list consisting of the supplied value. Any existing values will be replaced.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>MultivaluedMap</class-interface>
      <method name="putSingle" return-type="void">
        <parameters>
          <parameter>java.lang.Object</parameter>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>99</id>
      <description>Compare for equality. Use #toCookie() to compare a NewCookie to a Cookie considering only the common properties.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>NewCookie</class-interface>
      <method name="equals" return-type="boolean">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>100</id>
      <description>Get the comment associated with the cookie.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>NewCookie</class-interface>
      <method name="getComment" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>101</id>
      <description>Get the maximum age of the the cookie in seconds. Cookies older than the maximum age are discarded. A cookie can be unset by sending a new cookie with maximum age of 0 since it will overwrite any existing cookie and then be immediately discarded. The default value of -1 indicates that the cookie will be discarded at the end of the browser/application session. Note that it is recommended to use Max-Age to control cookie expiration, however some browsers do not understand Max-Age, in which case setting #getExpiry() Expires} parameter may be necessary.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>NewCookie</class-interface>
      <method name="getMaxAge" return-type="int" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>102</id>
      <description>Generate a hash code by hashing all of the properties.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>NewCookie</class-interface>
      <method name="hashCode" return-type="int" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>103</id>
      <description>Whether the cookie will only be sent over a secure connection. Defaults to false.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>NewCookie</class-interface>
      <method name="isSecure" return-type="boolean" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>104</id>
      <description>Create a new instance.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>NewCookie</class-interface>
      <method name="NewCookie" return-type="NewCookie">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>105</id>
      <description>Create a new instance.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>NewCookie</class-interface>
      <method name="NewCookie" return-type="NewCookie">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
          <parameter>int</parameter>
          <parameter>boolean</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>106</id>
      <description>Create a new instance.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>NewCookie</class-interface>
      <method name="NewCookie" return-type="NewCookie">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
          <parameter>int</parameter>
          <parameter>java.lang.String</parameter>
          <parameter>int</parameter>
          <parameter>boolean</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>107</id>
      <description>Create a new instance copying the information in the supplied cookie.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>NewCookie</class-interface>
      <method name="NewCookie" return-type="NewCookie">
        <parameters>
          <parameter>jakarta.ws.rs.core.Cookie</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>108</id>
      <description>Create a new instance supplementing the information in the supplied cookie.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>NewCookie</class-interface>
      <method name="NewCookie" return-type="NewCookie">
        <parameters>
          <parameter>jakarta.ws.rs.core.Cookie</parameter>
          <parameter>java.lang.String</parameter>
          <parameter>int</parameter>
          <parameter>boolean</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>109</id>
      <description>Obtain a new instance of a Cookie with the same name, value, path, domain and version as this NewCookie. This method can be used to obtain an object that can be compared for equality with another Cookie; since a Cookie will never compare equal to a NewCookie.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>NewCookie</class-interface>
      <method name="toCookie" return-type="jakarta.ws.rs.core.Cookie" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>110</id>
      <description>Convert the cookie to a string suitable for use as the value of the corresponding HTTP header.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>NewCookie</class-interface>
      <method name="toString" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>111</id>
      <description>Creates a new instance of NewCookie by parsing the supplied string.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>NewCookie</class-interface>
      <method name="valueOf" return-type="jakarta.ws.rs.core.NewCookie">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>113</id>
      <description>Get a map of the matrix parameters associated with the path segment. The map keys are the names of the matrix parameters with any percent-escaped octets decoded.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>PathSegment</class-interface>
      <method name="getMatrixParameters" return-type="jakarta.ws.rs.core.MultivaluedMap" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>114</id>
      <description>Get the path segment.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>PathSegment</class-interface>
      <method name="getPath" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>115</id>
      <description>Evaluate request preconditions based on the passed in value.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Request</class-interface>
      <method name="evaluatePreconditions" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>jakarta.ws.rs.core.EntityTag</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>116</id>
      <description>Evaluate request preconditions based on the passed in value.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Request</class-interface>
      <method name="evaluatePreconditions" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>java.util.Date</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>117</id>
      <description>Evaluate request preconditions based on the passed in value.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Request</class-interface>
      <method name="evaluatePreconditions" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>java.util.Date</parameter>
          <parameter>jakarta.ws.rs.core.EntityTag</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>118</id>
      <description>Get the request method, e.g. GET, POST, etc.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Request</class-interface>
      <method name="getMethod" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>119</id>
      <description>Select the representation variant that best matches the request. Returns null in case there is no matching variant in the list. More explicit variants are chosen ahead of less explicit ones. A vary header is computed from the supplied list and automatically added to the response.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Request</class-interface>
      <method name="selectVariant" return-type="jakarta.ws.rs.core.Variant">
        <parameters>
          <parameter>java.util.List</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>121</id>
      <description>Create a new ResponseBuilder for a created resource, set the location header using the supplied value.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="created" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>java.net.URI</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>122</id>
      <description>Create a new ResponseBuilder by performing a shallow copy of an existing Response. The returned builder has its own #getHeaders() response headers but the header values are shared with the original Response instance. The original response entity instance reference is set in the new response builder. Note that if the entity is backed by an un-consumed input stream, the reference to the stream is copied. In such case make sure to #bufferEntity() buffer the entity stream of the original response instance before passing it to this method.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="fromResponse" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>123</id>
      <description>Get the message entity Java instance. Returns null if the message does not contain an entity body. If the entity is represented by an un-consumed InputStream input stream the method will return the input stream.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="getEntity" return-type="java.lang.Object" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>124</id>
      <description>See #getHeaders(). This method is considered deprecated. Users are encouraged to switch their code to use the getHeaders() method instead. The method may be annotated as Deprecated #64;Deprecated in a future release of JAX-RS API.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="getMetadata" return-type="jakarta.ws.rs.core.MultivaluedMap" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>125</id>
      <description>Get the status code associated with the response.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="getStatus" return-type="int" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>126</id>
      <description>Create a new ResponseBuilder for an empty response.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="noContent" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>127</id>
      <description>Create a new ResponseBuilder for a not acceptable response.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="notAcceptable" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>java.util.List</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>128</id>
      <description>Create a new ResponseBuilder with a not-modified status.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="notModified" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>129</id>
      <description>Create a new ResponseBuilder with a not-modified status.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="notModified" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>jakarta.ws.rs.core.EntityTag</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>130</id>
      <description>Create a new ResponseBuilder with a not-modified status and a strong entity tag. This is a shortcut for notModified(new EntityTag(value)).</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="notModified" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>131</id>
      <description>Create a new ResponseBuilder with an OK status.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="ok" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>132</id>
      <description>Create a new ResponseBuilder that contains a representation. It is the callers responsibility to wrap the actual entity with GenericEntity if preservation of its generic type is required.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="ok" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>133</id>
      <description>Create a new ResponseBuilder that contains a representation. It is the callers responsibility to wrap the actual entity with GenericEntity if preservation of its generic type is required.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="ok" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>java.lang.Object</parameter>
          <parameter>jakarta.ws.rs.core.MediaType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>134</id>
      <description>Create a new ResponseBuilder that contains a representation. It is the callers responsibility to wrap the actual entity with GenericEntity if preservation of its generic type is required.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="ok" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>java.lang.Object</parameter>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>135</id>
      <description>Create a new ResponseBuilder that contains a representation. It is the callers responsibility to wrap the actual entity with GenericEntity if preservation of its generic type is required.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="ok" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>java.lang.Object</parameter>
          <parameter>jakarta.ws.rs.core.Variant</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>136</id>
      <description>Create a new ResponseBuilder for a redirection. Used in the redirect-after-POST (aka POST/redirect/GET) pattern.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="seeOther" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>java.net.URI</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>137</id>
      <description>Create a new ResponseBuilder with an server error status.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="serverError" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>138</id>
      <description>Create a new ResponseBuilder with the supplied status.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="status" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response.Response.Status</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>139</id>
      <description>Create a new ResponseBuilder with the supplied status.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="status" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>int</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>140</id>
      <description>Create a new ResponseBuilder for a temporary redirection.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="temporaryRedirect" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>java.net.URI</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>141</id>
      <description>Create a Response instance from the current ResponseBuilder. The builder is reset to a blank state equivalent to calling the ok method.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.ResponseBuilder</class-interface>
      <method name="build" return-type="jakarta.ws.rs.core.Response" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>142</id>
      <description>Set the cache control data of the message.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.ResponseBuilder</class-interface>
      <method name="cacheControl" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>jakarta.ws.rs.core.CacheControl</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>143</id>
      <description>Create a copy of the ResponseBuilder preserving its state.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.ResponseBuilder</class-interface>
      <method name="clone" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>144</id>
      <description>Set the content location.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.ResponseBuilder</class-interface>
      <method name="contentLocation" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>java.net.URI</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>145</id>
      <description>Add cookies to the response message.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.ResponseBuilder</class-interface>
      <method name="cookie" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>jakarta.ws.rs.core.NewCookie[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>146</id>
      <description>Set the response entity in the builder. Any Java type instance for a response entity, that is supported by the runtime can be passed. It is the callers responsibility to wrap the actual entity with GenericEntity if preservation of its generic type is required. Note that the entity can be also set as an java.io.InputStream input stream. A specific entity media type can be set using one of the type(...) methods.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.ResponseBuilder</class-interface>
      <method name="entity" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>147</id>
      <description>Set the response expiration date.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.ResponseBuilder</class-interface>
      <method name="expires" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>java.util.Date</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>148</id>
      <description>Add an arbitrary header.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.ResponseBuilder</class-interface>
      <method name="header" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>149</id>
      <description>Set the message entity language.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.ResponseBuilder</class-interface>
      <method name="language" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>150</id>
      <description>Set the message entity language.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.ResponseBuilder</class-interface>
      <method name="language" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>java.util.Locale</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>151</id>
      <description>Set the response entity last modification date.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.ResponseBuilder</class-interface>
      <method name="lastModified" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>java.util.Date</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>152</id>
      <description>Set the location.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.ResponseBuilder</class-interface>
      <method name="location" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>java.net.URI</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>153</id>
      <description>Set the status on the ResponseBuilder.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.ResponseBuilder</class-interface>
      <method name="status" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>int</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>154</id>
      <description>Set the status on the ResponseBuilder.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.ResponseBuilder</class-interface>
      <method name="status" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response.Response.Status</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>155</id>
      <description>Set a response entity tag.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.ResponseBuilder</class-interface>
      <method name="tag" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>jakarta.ws.rs.core.EntityTag</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>156</id>
      <description>Set a strong response entity tag. This is a shortcut for tag(new EntityTag(value)).</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.ResponseBuilder</class-interface>
      <method name="tag" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>157</id>
      <description>Set the message entity media type.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.ResponseBuilder</class-interface>
      <method name="type" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>jakarta.ws.rs.core.MediaType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>158</id>
      <description>Set the message entity media type.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.ResponseBuilder</class-interface>
      <method name="type" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>159</id>
      <description>Set message entity representation metadata. Equivalent to setting the values of content type, content language, and content encoding separately using the values of the variant properties.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.ResponseBuilder</class-interface>
      <method name="variant" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>jakarta.ws.rs.core.Variant</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>160</id>
      <description>Add a Vary header that lists the available variants.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.ResponseBuilder</class-interface>
      <method name="variants" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>java.util.List</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>161</id>
      <description>Convert a numerical status code into the corresponding Status.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.Status</class-interface>
      <method name="fromStatusCode" return-type="jakarta.ws.rs.core.Response.Response.Status">
        <parameters>
          <parameter>int</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>162</id>
      <description>Get the class of status code.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.Status</class-interface>
      <method name="getFamily" return-type="jakarta.ws.rs.core.Response.Status.Response.Status.Family" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>163</id>
      <description>Get the associated status code.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.Status</class-interface>
      <method name="getStatusCode" return-type="int" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>164</id>
      <description>Get the reason phrase.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.Status</class-interface>
      <method name="toString" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>165</id>
      <description />
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.Status</class-interface>
      <method name="valueOf" return-type="jakarta.ws.rs.core.Response.Response.Status">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>166</id>
      <description />
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.Status</class-interface>
      <method name="values" return-type="jakarta.ws.rs.core.Response.Response.Status[]" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>167</id>
      <description />
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.Status.Family</class-interface>
      <method name="valueOf" return-type="jakarta.ws.rs.core.Response.Status.Response.Status.Family">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>168</id>
      <description />
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.Status.Family</class-interface>
      <method name="values" return-type="jakarta.ws.rs.core.Response.Status.Response.Status.Family[]" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>169</id>
      <description>Returns the string value of the authentication scheme used to protect the resource. If the resource is not authenticated, null is returned. Values are the same as the CGI variable AUTH_TYPE</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>SecurityContext</class-interface>
      <method name="getAuthenticationScheme" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>170</id>
      <description>Returns a java.security.Principal object containing the name of the current authenticated user. If the user has not been authenticated, the method returns null.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>SecurityContext</class-interface>
      <method name="getUserPrincipal" return-type="java.security.Principal" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>171</id>
      <description>Returns a boolean indicating whether this request was made using a secure channel, such as HTTPS.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>SecurityContext</class-interface>
      <method name="isSecure" return-type="boolean" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>172</id>
      <description>Returns a boolean indicating whether the authenticated user is included in the specified logical "role". If the user has not been authenticated, the method returns false.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>SecurityContext</class-interface>
      <method name="isUserInRole" return-type="boolean">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>173</id>
      <description>Called to write the message body.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>StreamingOutput</class-interface>
      <method name="write" return-type="void">
        <parameters>
          <parameter>java.io.OutputStream</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>174</id>
      <description>if an IO error is encountered</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>StreamingOutput</class-interface>
      <method name="write" return-type="void">
        <parameters>
          <parameter>java.io.OutputStream</parameter>
        </parameters>
        <throw>java.io.IOException</throw>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>175</id>
      <description>if a specific HTTP error response needs to be produced. Only effective if thrown prior to any bytes being written to output.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>StreamingOutput</class-interface>
      <method name="write" return-type="void">
        <parameters>
          <parameter>java.io.OutputStream</parameter>
        </parameters>
        <throw>jakarta.ws.rs.WebApplicationException</throw>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>176</id>
      <description>Build a URI, using the supplied values in order to replace any URI template parameters. Values are converted to String using their toString() method and are then encoded to match the rules of the URI component to which they pertain. All '%' characters in the stringified values will be encoded. The state of the builder is unaffected; this method may be called multiple times on the same builder instance. All instances of the same template parameter will be replaced by the same value that corresponds to the position of the first instance of the template parameter. e.g. the template "{a}/{b}/{a}" with values {"x", "y", "z"} will result in the the URI "x/y/x", not "x/y/z". NOTE: By default all '/' characters in the stringified values will be encoded in path templates, i.e. the result is identical to invoking #build(Object[], boolean) build(values, true)}. To override this behavior use build(values, false) instead.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="build" return-type="java.net.URI">
        <parameters>
          <parameter>java.lang.Object[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>177</id>
      <description>if there are any URI template parameters without a supplied value, or if a value is null.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="build" return-type="java.net.URI">
        <parameters>
          <parameter>java.lang.Object[]</parameter>
        </parameters>
        <throw>java.lang.IllegalArgumentException</throw>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="false">
      <id>178</id>
      <description>if a URI cannot be constructed based on the current state of the builder.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="build" return-type="java.net.URI">
        <parameters>
          <parameter>java.lang.Object[]</parameter>
        </parameters>
        <throw>jakarta.ws.rs.core.UriBuilderException</throw>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>179</id>
      <description>Build a URI. Any URI templates parameters will be replaced with the supplied values in order. Values are converted to String using their toString() method and are then encoded to match the rules of the URI component to which they pertain. All % characters in the stringified values that are not followed by two hexadecimal numbers will be encoded. The state of the builder is unaffected; this method may be called multiple times on the same builder instance. All instances of the same template parameter will be replaced by the same value that corresponds to the position of the first instance of the template parameter. e.g. the template "{a}/{b}/{a}" with values {"x", "y", "z"} will result in the the URI "x/y/x", not "x/y/z".</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="buildFromEncoded" return-type="java.net.URI">
        <parameters>
          <parameter>java.lang.Object[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>180</id>
      <description>if there are any URI template parameters without a supplied value, or if a value is null.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="buildFromEncoded" return-type="java.net.URI">
        <parameters>
          <parameter>java.lang.Object[]</parameter>
        </parameters>
        <throw>java.lang.IllegalArgumentException</throw>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="false">
      <id>181</id>
      <description>if a URI cannot be constructed based on the current state of the builder.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="buildFromEncoded" return-type="java.net.URI">
        <parameters>
          <parameter>java.lang.Object[]</parameter>
        </parameters>
        <throw>jakarta.ws.rs.core.UriBuilderException</throw>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>182</id>
      <description>Build a URI. Any URI template parameters will be replaced by the value in the supplied map. Values are converted to String using their toString() method and are then encoded to match the rules of the URI component to which they pertain. All % characters in the stringified values that are not followed by two hexadecimal numbers will be encoded. The state of the builder is unaffected; this method may be called multiple times on the same builder instance.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="buildFromEncodedMap" return-type="java.net.URI">
        <parameters>
          <parameter>java.util.Map</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>183</id>
      <description>if there are any URI template parameters without a supplied value, or if a template parameter value is null.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="buildFromEncodedMap" return-type="java.net.URI">
        <parameters>
          <parameter>java.util.Map</parameter>
        </parameters>
        <throw>java.lang.IllegalArgumentException</throw>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="false">
      <id>184</id>
      <description>if a URI cannot be constructed based on the current state of the builder.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="buildFromEncodedMap" return-type="java.net.URI">
        <parameters>
          <parameter>java.util.Map</parameter>
        </parameters>
        <throw>jakarta.ws.rs.core.UriBuilderException</throw>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>185</id>
      <description>Build a URI. Any URI template parameters will be replaced by the value in the supplied map. Values are converted to String using their toString() method and are then encoded to match the rules of the URI component to which they pertain. All '%' characters in the stringified values will be encoded. The state of the builder is unaffected; this method may be called multiple times on the same builder instance. NOTE: By default all '/' characters in the stringified values will be encoded in path templates, i.e. the result is identical to invoking #buildFromMap(java.util.Map, boolean) buildFromMap(valueMap, true). To override this behavior use buildFromMap(valueMap, false) instead.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="buildFromMap" return-type="java.net.URI">
        <parameters>
          <parameter>java.util.Map</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>188</id>
      <description>Create a copy of the UriBuilder preserving its state. This is a more efficient means of creating a copy than constructing a new UriBuilder from a URI returned by the #build(Object...) method.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="clone" return-type="jakarta.ws.rs.core.UriBuilder" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>189</id>
      <description>Set the URI fragment.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="fragment" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>190</id>
      <description>Create a new instance representing a relative URI initialized from a URI path.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="fromPath" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>191</id>
      <description>if path is null.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="fromPath" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
        <throw>java.lang.IllegalArgumentException</throw>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>192</id>
      <description>Create a new instance representing a relative URI initialized from a root resource class.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="fromResource" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>194</id>
      <description>Create a new instance initialized from an existing URI.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="fromUri" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>java.net.URI</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>196</id>
      <description>Create a new instance initialized from an existing URI.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="fromUri" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>198</id>
      <description>Set the URI host.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="host" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>200</id>
      <description>Append a matrix parameter to the existing set of matrix parameters of the current final segment of the URI path. If multiple values are supplied the parameter will be added once per value. Note that the matrix parameters are tied to a particular path segment; subsequent addition of path segments will not affect their position in the URI path.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="matrixParam" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Object[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>202</id>
      <description>Append path to the existing path. When constructing the final path, a '/' separator will be inserted between the existing path and the supplied path if necessary. Existing '/' characters are preserved thus a single value can represent multiple URI path segments.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="path" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>204</id>
      <description>Append the path from a Path-annotated class to the existing path. When constructing the final path, a '/' separator will be inserted between the existing path and the supplied path if necessary.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="path" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>206</id>
      <description>Append the path from a Path-annotated method to the existing path. When constructing the final path, a '/' separator will be inserted between the existing path and the supplied path if necessary. This method is a convenience shortcut to path(Method), it can only be used in cases where there is a single method with the specified name that is annotated with jakarta.ws.rs.Path.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="path" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>java.lang.Class</parameter>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>208</id>
      <description>Append the path from a jakarta.ws.rs.Path-annotated method to the existing path. When constructing the final path, a '/' separator will be inserted between the existing path and the supplied path if necessary.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="path" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>java.lang.reflect.Method</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>210</id>
      <description>Set the URI port.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="port" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>int</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>212</id>
      <description>Append a query parameter to the existing set of query parameters. If multiple values are supplied the parameter will be added once per value.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="queryParam" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Object[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>214</id>
      <description>Set the matrix parameters of the current final segment of the current URI path. This method will overwrite any existing matrix parameters on the current final segment of the current URI path. Note that the matrix parameters are tied to a particular path segment; subsequent addition of path segments will not affect their position in the URI path.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="replaceMatrix" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>216</id>
      <description>Replace the existing value(s) of a matrix parameter on the current final segment of the URI path. If multiple values are supplied the parameter will be added once per value. Note that the matrix parameters are tied to a particular path segment; subsequent addition of path segments will not affect their position in the URI path.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="replaceMatrixParam" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Object[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>218</id>
      <description>Set the URI path. This method will overwrite any existing path and associated matrix parameters. Existing '/' characters are preserved thus a single value can represent multiple URI path segments.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="replacePath" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>219</id>
      <description>Set the URI query string. This method will overwrite any existing query parameters.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="replaceQuery" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>221</id>
      <description>Replace the existing value(s) of a query parameter. If multiple values are supplied the parameter will be added once per value.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="replaceQueryParam" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Object[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>223</id>
      <description>Set the URI scheme.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="scheme" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>225</id>
      <description>Set the URI scheme-specific-part (see java.net.URI). This method will overwrite any existing values for authority, user-info, host, port and path.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="schemeSpecificPart" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>227</id>
      <description>Append path segments to the existing path. When constructing the final path, a '/' separator will be inserted between the existing path and the first path segment if necessary and each supplied segment will also be separated by '/'. Existing '/' characters are encoded thus a single value can only represent a single URI path segment.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="segment" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>java.lang.String[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>229</id>
      <description>Copies the non-null components of the supplied URI to the UriBuilder replacing any existing values for those components.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="uri" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>java.net.URI</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>231</id>
      <description>Set the URI user-info.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="userInfo" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>232</id>
      <description>Creates a new instance of UriBuilderException without detail message.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilderException</class-interface>
      <method name="UriBuilderException" return-type="UriBuilderException" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>233</id>
      <description>Constructs an instance of UriBuilderException with the specified detail message.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilderException</class-interface>
      <method name="UriBuilderException" return-type="UriBuilderException">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>234</id>
      <description>Constructs an instance of UriBuilderException with the specified detail message and cause. Note that the detail message associated with cause is not automatically incorporated in this exception's detail message.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilderException</class-interface>
      <method name="UriBuilderException" return-type="UriBuilderException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>235</id>
      <description>Constructs a new exception with the specified cause and a detail message of (cause==null ? null : cause.toString()) (which typically contains the class and detail message of cause). This constructor is useful for exceptions that are little more than wrappers for other throwables.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilderException</class-interface>
      <method name="UriBuilderException" return-type="UriBuilderException">
        <parameters>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>236</id>
      <description>Get the absolute path of the request. This includes everything preceding the path (host, port etc) but excludes query parameters. This is a shortcut for uriInfo.getBaseUri().resolve(uriInfo.getPath(false)).</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriInfo</class-interface>
      <method name="getAbsolutePath" return-type="java.net.URI" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>237</id>
      <description>Get the absolute path of the request in the form of a UriBuilder. This includes everything preceding the path (host, port etc) but excludes query parameters.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriInfo</class-interface>
      <method name="getAbsolutePathBuilder" return-type="jakarta.ws.rs.core.UriBuilder" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>238</id>
      <description>Get the base URI of the application. URIs of root resource classes are all relative to this base URI.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriInfo</class-interface>
      <method name="getBaseUri" return-type="java.net.URI" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>239</id>
      <description>Get the base URI of the application in the form of a UriBuilder.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriInfo</class-interface>
      <method name="getBaseUriBuilder" return-type="jakarta.ws.rs.core.UriBuilder" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>240</id>
      <description>Get a read-only list of the currently matched resource class instances. Each entry is a resource class instance that matched the request URI either directly or via a sub-resource method or a sub-resource locator. Entries are ordered according to reverse request URI matching order, with the current resource first. E.g. given the following resource classes: #064;Path("foo") public class FooResource { #064;GET public String getFoo() {...} #064;Path("bar") public BarResource getBarResource() {...} } public class BarResource { #064;GET public String getBar() {...} } The values returned by this method based on request uri and where the method is called from are: Request Called from Value(s) GET /foo FooResource.getFoo FooResource GET /foo/bar FooResource.getBarResource FooResource GET /foo/bar BarResource.getBar BarResource, FooResource In case the method is invoked prior to the request matching (e.g. from a pre-matching filter), the method returns an empty list.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriInfo</class-interface>
      <method name="getMatchedResources" return-type="java.util.List" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>241</id>
      <description>Get a read-only list of URIs for matched resources. Each entry is a relative URI that matched a resource class, a sub-resource method or a sub-resource locator. All sequences of escaped octets are decoded, equivalent to getMatchedURIs(true). Entries do not include query parameters but do include matrix parameters if present in the request URI. Entries are ordered in reverse request URI matching order, with the current resource URI first. E.g. given the following resource classes: #064;Path("foo") public class FooResource { #064;GET public String getFoo() {...} #064;Path("bar") public BarResource getBarResource() {...} } public class BarResource { #064;GET public String getBar() {...} } The values returned by this method based on request uri and where the method is called from are: Request Called from Value(s) GET /foo FooResource.getFoo foo GET /foo/bar FooResource.getBarResource foo/bar, foo GET /foo/bar BarResource.getBar foo/bar, foo In case the method is invoked prior to the request matching (e.g. from a pre-matching filter), the method returns an empty list.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriInfo</class-interface>
      <method name="getMatchedURIs" return-type="java.util.List" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>242</id>
      <description>Get a read-only list of URIs for matched resources. Each entry is a relative URI that matched a resource class, a sub-resource method or a sub-resource locator. Entries do not include query parameters but do include matrix parameters if present in the request URI. Entries are ordered in reverse request URI matching order, with the current resource URI first. See #getMatchedURIs() for an example. In case the method is invoked prior to the request matching (e.g. from a pre-matching filter), the method returns an empty list.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriInfo</class-interface>
      <method name="getMatchedURIs" return-type="java.util.List">
        <parameters>
          <parameter>boolean</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>243</id>
      <description>Get the path of the current request relative to the base URI as a string. All sequences of escaped octets are decoded, equivalent to #getPath(boolean) getPath(true).</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriInfo</class-interface>
      <method name="getPath" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>244</id>
      <description>Get the path of the current request relative to the base URI as a string.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriInfo</class-interface>
      <method name="getPath" return-type="java.lang.String">
        <parameters>
          <parameter>boolean</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>245</id>
      <description>Get the values of any embedded URI template parameters. All sequences of escaped octets are decoded, equivalent to #getPathParameters(boolean) getPathParameters(true).</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriInfo</class-interface>
      <method name="getPathParameters" return-type="jakarta.ws.rs.core.MultivaluedMap" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>246</id>
      <description>Get the values of any embedded URI template parameters.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriInfo</class-interface>
      <method name="getPathParameters" return-type="jakarta.ws.rs.core.MultivaluedMap">
        <parameters>
          <parameter>boolean</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>247</id>
      <description>Get the path of the current request relative to the base URI as a list of PathSegment. This method is useful when the path needs to be parsed, particularly when matrix parameters may be present in the path. All sequences of escaped octets in path segments and matrix parameter values are decoded, equivalent to getPathSegments(true).</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriInfo</class-interface>
      <method name="getPathSegments" return-type="java.util.List" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>248</id>
      <description>Get the path of the current request relative to the base URI as a list of PathSegment. This method is useful when the path needs to be parsed, particularly when matrix parameters may be present in the path.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriInfo</class-interface>
      <method name="getPathSegments" return-type="java.util.List">
        <parameters>
          <parameter>boolean</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>249</id>
      <description>Get the URI query parameters of the current request. The map keys are the names of the query parameters with any escaped characters decoded. All sequences of escaped octets in parameter names and values are decoded, equivalent to #getQueryParameters(boolean) getQueryParameters(true).</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriInfo</class-interface>
      <method name="getQueryParameters" return-type="jakarta.ws.rs.core.MultivaluedMap" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>250</id>
      <description>Get the URI query parameters of the current request. The map keys are the names of the query parameters with any escaped characters decoded.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriInfo</class-interface>
      <method name="getQueryParameters" return-type="jakarta.ws.rs.core.MultivaluedMap">
        <parameters>
          <parameter>boolean</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>251</id>
      <description>Get the absolute request URI including any query parameters.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriInfo</class-interface>
      <method name="getRequestUri" return-type="java.net.URI" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>252</id>
      <description>Get the absolute request URI in the form of a UriBuilder.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriInfo</class-interface>
      <method name="getRequestUriBuilder" return-type="jakarta.ws.rs.core.UriBuilder" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>253</id>
      <description>Create a VariantListBuilder initialized with a set of supported encodings.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Variant</class-interface>
      <method name="encodings" return-type="jakarta.ws.rs.core.Variant.Variant.VariantListBuilder">
        <parameters>
          <parameter>java.lang.String[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>254</id>
      <description>Compares obj to this variant to see if they are the same considering all property values.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Variant</class-interface>
      <method name="equals" return-type="boolean">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>255</id>
      <description>Get the encoding of the variant.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Variant</class-interface>
      <method name="getEncoding" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>256</id>
      <description>Get the language of the variant.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Variant</class-interface>
      <method name="getLanguage" return-type="java.util.Locale" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>257</id>
      <description>Get the media type of the variant.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Variant</class-interface>
      <method name="getMediaType" return-type="jakarta.ws.rs.core.MediaType" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>258</id>
      <description>Generate hash code from variant properties.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Variant</class-interface>
      <method name="hashCode" return-type="int" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>259</id>
      <description>Create a VariantListBuilder initialized with a set of supported languages.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Variant</class-interface>
      <method name="languages" return-type="jakarta.ws.rs.core.Variant.Variant.VariantListBuilder">
        <parameters>
          <parameter>java.util.Locale[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>260</id>
      <description>Create a VariantListBuilder initialized with a set of supported media types.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Variant</class-interface>
      <method name="mediaTypes" return-type="jakarta.ws.rs.core.Variant.Variant.VariantListBuilder">
        <parameters>
          <parameter>jakarta.ws.rs.core.MediaType[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>261</id>
      <description />
      <package>jakarta.ws.rs.core</package>
      <class-interface>Variant</class-interface>
      <method name="toString" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>262</id>
      <description>Create a new instance of Variant.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Variant</class-interface>
      <method name="Variant" return-type="Variant">
        <parameters>
          <parameter>jakarta.ws.rs.core.MediaType</parameter>
          <parameter>java.util.Locale</parameter>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>263</id>
      <description>Add the current combination of metadata to the list of supported variants, after this method is called the current combination of metadata is emptied. If more than one value is supplied for one or more of the variant properties then a variant will be generated for each possible combination. E.g. in the following list would have five (4 + 1) members: List list = VariantListBuilder.newInstance() .languages(Locale.ENGLISH, Locale.FRENCH).encodings("zip", "identity").add() .languages(Locale.GERMAN).mediaTypes(MediaType.TEXT_PLAIN_TYPE).add() .build() Note that it is not necessary to call the add() method immediately before the build method is called. E.g. the resulting list produced in the example above would be identical to the list produced by the following code: List list = VariantListBuilder.newInstance() .languages(Locale.ENGLISH, Locale.FRENCH).encodings("zip", "identity").add() .languages(Locale.GERMAN).mediaTypes(MediaType.TEXT_PLAIN_TYPE) .build()</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Variant.VariantListBuilder</class-interface>
      <method name="add" return-type="jakarta.ws.rs.core.Variant.Variant.VariantListBuilder" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>264</id>
      <description>Add the current combination of metadata to the list of supported variants (provided the current combination of metadata is not empty) and build a list of representation variants from the current state of the builder. After this method is called the builder is reset to an empty state.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Variant.VariantListBuilder</class-interface>
      <method name="build" return-type="java.util.List" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>265</id>
      <description>Set the encoding(s) for this variant.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Variant.VariantListBuilder</class-interface>
      <method name="encodings" return-type="jakarta.ws.rs.core.Variant.Variant.VariantListBuilder">
        <parameters>
          <parameter>java.lang.String[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>266</id>
      <description>Set the language(s) for this variant.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Variant.VariantListBuilder</class-interface>
      <method name="languages" return-type="jakarta.ws.rs.core.Variant.Variant.VariantListBuilder">
        <parameters>
          <parameter>java.util.Locale[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>267</id>
      <description>Set the media type(s) for this variant.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Variant.VariantListBuilder</class-interface>
      <method name="mediaTypes" return-type="jakarta.ws.rs.core.Variant.Variant.VariantListBuilder">
        <parameters>
          <parameter>jakarta.ws.rs.core.MediaType[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>268</id>
      <description>Create a new builder instance.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Variant.VariantListBuilder</class-interface>
      <method name="newInstance" return-type="jakarta.ws.rs.core.Variant.Variant.VariantListBuilder" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>269</id>
      <description>Get a context of type T that is applicable to the supplied type.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>ContextResolver</class-interface>
      <method name="getContext" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>270</id>
      <description>Map an exception to a jakarta.ws.rs.core.Response. Returning null results in a jakarta.ws.rs.core.Response.Status#NO_CONTENT response. Throwing a runtime exception results in a jakarta.ws.rs.core.Response.Status#INTERNAL_SERVER_ERROR response.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>ExceptionMapper</class-interface>
      <method name="toResponse" return-type="jakarta.ws.rs.core.Response">
        <parameters>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>271</id>
      <description>Ascertain if the MessageBodyReader can produce an instance of a particular type. The type parameter gives the class of the instance that should be produced, the genericType parameter gives the java.lang.reflect.Type java.lang.reflect.Type of the instance that should be produced. E.g. if the instance to be produced is List, the type parameter will be java.util.List and the genericType parameter will be java.lang.reflect.ParameterizedType java.lang.reflect.ParameterizedType.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>MessageBodyReader</class-interface>
      <method name="isReadable" return-type="boolean">
        <parameters>
          <parameter>java.lang.Class</parameter>
          <parameter>java.lang.reflect.Type</parameter>
          <parameter>java.lang.annotation.Annotation[]</parameter>
          <parameter>jakarta.ws.rs.core.MediaType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>272</id>
      <description>Read a type from the InputStream. In case the entity input stream is empty, the reader is expected to either return a Java representation of a zero-length entity or throw a jakarta.ws.rs.core.NoContentException in case no zero-length entity representation is defined for the supported Java type. A NoContentException, if thrown by a message body reader while reading a server request entity, is automatically translated by JAX-RS server runtime into a jakarta.ws.rs.BadRequestException wrapping the original NoContentException and rethrown for a standard processing by the registered jakarta.ws.rs.ext.ExceptionMapper exception mappers.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>MessageBodyReader</class-interface>
      <method name="readFrom" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.Class</parameter>
          <parameter>java.lang.reflect.Type</parameter>
          <parameter>java.lang.annotation.Annotation[]</parameter>
          <parameter>jakarta.ws.rs.core.MediaType</parameter>
          <parameter>jakarta.ws.rs.core.MultivaluedMap</parameter>
          <parameter>java.io.InputStream</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>273</id>
      <description>if an IO error arises. In case the entity input stream is empty and the reader is not able to produce a Java representation for a zero-length entity, NoContentException is expected to be thrown.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>MessageBodyReader</class-interface>
      <method name="readFrom" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.Class</parameter>
          <parameter>java.lang.reflect.Type</parameter>
          <parameter>java.lang.annotation.Annotation[]</parameter>
          <parameter>jakarta.ws.rs.core.MediaType</parameter>
          <parameter>jakarta.ws.rs.core.MultivaluedMap</parameter>
          <parameter>java.io.InputStream</parameter>
        </parameters>
        <throw>java.io.IOException</throw>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>274</id>
      <description>if a specific HTTP error response needs to be produced. Only effective if thrown prior to the response being committed.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>MessageBodyReader</class-interface>
      <method name="readFrom" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.Class</parameter>
          <parameter>java.lang.reflect.Type</parameter>
          <parameter>java.lang.annotation.Annotation[]</parameter>
          <parameter>jakarta.ws.rs.core.MediaType</parameter>
          <parameter>jakarta.ws.rs.core.MultivaluedMap</parameter>
          <parameter>java.io.InputStream</parameter>
        </parameters>
        <throw>jakarta.ws.rs.WebApplicationException</throw>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>275</id>
      <description>Originally, the method has been called before writeTo to ascertain the length in bytes of the serialized form of t. A non-negative return value has been used in a HTTP Content-Length header. As of JAX-RS 2.0, the method has been deprecated and the value returned by the method is ignored by a JAX-RS runtime. All MessageBodyWriter implementations are advised to return -1 from the method. Responsibility to compute the actual Content-Length header value has been delegated to JAX-RS runtime.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>MessageBodyWriter</class-interface>
      <method name="getSize" return-type="long">
        <parameters>
          <parameter>java.lang.Object</parameter>
          <parameter>java.lang.Class</parameter>
          <parameter>java.lang.reflect.Type</parameter>
          <parameter>java.lang.annotation.Annotation[]</parameter>
          <parameter>jakarta.ws.rs.core.MediaType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>276</id>
      <description>Ascertain if the MessageBodyWriter supports a particular type.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>MessageBodyWriter</class-interface>
      <method name="isWriteable" return-type="boolean">
        <parameters>
          <parameter>java.lang.Class</parameter>
          <parameter>java.lang.reflect.Type</parameter>
          <parameter>java.lang.annotation.Annotation[]</parameter>
          <parameter>jakarta.ws.rs.core.MediaType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>277</id>
      <description>Write a type to an HTTP message. The message header map is mutable but any changes must be made before writing to the output stream since the headers will be flushed prior to writing the message body.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>MessageBodyWriter</class-interface>
      <method name="writeTo" return-type="void">
        <parameters>
          <parameter>java.lang.Object</parameter>
          <parameter>java.lang.Class</parameter>
          <parameter>java.lang.reflect.Type</parameter>
          <parameter>java.lang.annotation.Annotation[]</parameter>
          <parameter>jakarta.ws.rs.core.MediaType</parameter>
          <parameter>jakarta.ws.rs.core.MultivaluedMap</parameter>
          <parameter>java.io.OutputStream</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>278</id>
      <description>if an IO error arises.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>MessageBodyWriter</class-interface>
      <method name="writeTo" return-type="void">
        <parameters>
          <parameter>java.lang.Object</parameter>
          <parameter>java.lang.Class</parameter>
          <parameter>java.lang.reflect.Type</parameter>
          <parameter>java.lang.annotation.Annotation[]</parameter>
          <parameter>jakarta.ws.rs.core.MediaType</parameter>
          <parameter>jakarta.ws.rs.core.MultivaluedMap</parameter>
          <parameter>java.io.OutputStream</parameter>
        </parameters>
        <throw>java.io.IOException</throw>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="false">
      <id>279</id>
      <description>if a specific HTTP error response needs to be produced. Only effective if thrown prior to the message being committed.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>MessageBodyWriter</class-interface>
      <method name="writeTo" return-type="void">
        <parameters>
          <parameter>java.lang.Object</parameter>
          <parameter>java.lang.Class</parameter>
          <parameter>java.lang.reflect.Type</parameter>
          <parameter>java.lang.annotation.Annotation[]</parameter>
          <parameter>jakarta.ws.rs.core.MediaType</parameter>
          <parameter>jakarta.ws.rs.core.MultivaluedMap</parameter>
          <parameter>java.io.OutputStream</parameter>
        </parameters>
        <throw>jakarta.ws.rs.WebApplicationException</throw>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>280</id>
      <description>Get a context resolver for a particular type of context and media type. The set of resolvers is first filtered by comparing the supplied value of mediaType with the value of each resolver's jakarta.ws.rs.Produces, ensuring the generic type of the context resolver is assignable to the supplied value of contextType, and eliminating those that do not match. If only one resolver matches the criteria then it is returned. If more than one resolver matches then the list of matching resolvers is ordered with those with the best matching values of jakarta.ws.rs.Produces (x/y &gt; x #47;* &gt; * #47;*) sorted first. A proxy is returned that delegates calls to ContextResolver#getContext(java.lang.Class) to each matching context resolver in order and returns the first non-null value it obtains or null if all matching context resolvers return null.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>Providers</class-interface>
      <method name="getContextResolver" return-type="jakarta.ws.rs.ext.ContextResolver">
        <parameters>
          <parameter>java.lang.Class</parameter>
          <parameter>jakarta.ws.rs.core.MediaType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>281</id>
      <description>Get an exception mapping provider for a particular class of exception. Returns the provider whose generic type is the nearest superclass of type.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>Providers</class-interface>
      <method name="getExceptionMapper" return-type="jakarta.ws.rs.ext.ExceptionMapper">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>282</id>
      <description>Get a message body reader that matches a set of criteria. The set of readers is first filtered by comparing the supplied value of mediaType with the value of each reader's jakarta.ws.rs.Consumes, ensuring the supplied value of type is assignable to the generic type of the reader, and eliminating those that do not match. The list of matching readers is then ordered with those with the best matching values of jakarta.ws.rs.Consumes (x/y &gt; x #47;* &gt; * #47;*) sorted first. Finally, the MessageBodyReader#isReadable(Class, Type, Annotation[], MediaType) method is called on each reader in order using the supplied criteria and the first reader that returns true is selected and returned.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>Providers</class-interface>
      <method name="getMessageBodyReader" return-type="jakarta.ws.rs.ext.MessageBodyReader">
        <parameters>
          <parameter>java.lang.Class</parameter>
          <parameter>java.lang.reflect.Type</parameter>
          <parameter>java.lang.annotation.Annotation[]</parameter>
          <parameter>jakarta.ws.rs.core.MediaType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>283</id>
      <description>Get a message body writer that matches a set of criteria. The set of writers is first filtered by comparing the supplied value of mediaType with the value of each writer's jakarta.ws.rs.Produces, ensuring the supplied value of type is assignable to the generic type of the reader, and eliminating those that do not match. The list of matching writers is then ordered with those with the best matching values of jakarta.ws.rs.Produces (x/y &gt; x #47;* &gt; * #47;*) sorted first. Finally, the MessageBodyWriter#isWriteable(Class, Type, Annotation[], MediaType) method is called on each writer in order using the supplied criteria and the first writer that returns true is selected and returned.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>Providers</class-interface>
      <method name="getMessageBodyWriter" return-type="jakarta.ws.rs.ext.MessageBodyWriter">
        <parameters>
          <parameter>java.lang.Class</parameter>
          <parameter>java.lang.reflect.Type</parameter>
          <parameter>java.lang.annotation.Annotation[]</parameter>
          <parameter>jakarta.ws.rs.core.MediaType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>284</id>
      <description>Create a configured instance of the supplied endpoint type. How the returned endpoint instance is published is dependent on the type of endpoint.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>RuntimeDelegate</class-interface>
      <method name="createEndpoint" return-type="java.lang.Object">
        <parameters>
          <parameter>jakarta.ws.rs.core.Application</parameter>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>285</id>
      <description>if application is null or the requested endpoint type is not supported.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>RuntimeDelegate</class-interface>
      <method name="createEndpoint" return-type="java.lang.Object">
        <parameters>
          <parameter>jakarta.ws.rs.core.Application</parameter>
          <parameter>java.lang.Class</parameter>
        </parameters>
        <throw>java.lang.IllegalArgumentException</throw>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>286</id>
      <description>if the implementation supports no endpoint types.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>RuntimeDelegate</class-interface>
      <method name="createEndpoint" return-type="java.lang.Object">
        <parameters>
          <parameter>jakarta.ws.rs.core.Application</parameter>
          <parameter>java.lang.Class</parameter>
        </parameters>
        <throw>java.lang.UnsupportedOperationException</throw>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>287</id>
      <description>Obtain an instance of a HeaderDelegate for the supplied class. An implementation is required to support the following values for type: jakarta.ws.rs.core.CacheControl, jakarta.ws.rs.core.Cookie, jakarta.ws.rs.core.EntityTag, jakarta.ws.rs.core.Link, jakarta.ws.rs.core.NewCookie, jakarta.ws.rs.core.MediaType and java.util.Date.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>RuntimeDelegate</class-interface>
      <method name="createHeaderDelegate" return-type="jakarta.ws.rs.ext.RuntimeDelegate.RuntimeDelegate.HeaderDelegate">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>288</id>
      <description>Create a new instance of a jakarta.ws.rs.core.Response.ResponseBuilder.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>RuntimeDelegate</class-interface>
      <method name="createResponseBuilder" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>289</id>
      <description>Create a new instance of a jakarta.ws.rs.core.UriBuilder.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>RuntimeDelegate</class-interface>
      <method name="createUriBuilder" return-type="jakarta.ws.rs.core.UriBuilder" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>290</id>
      <description>Create a new instance of a jakarta.ws.rs.core.Variant.VariantListBuilder.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>RuntimeDelegate</class-interface>
      <method name="createVariantListBuilder" return-type="jakarta.ws.rs.core.Variant.Variant.VariantListBuilder" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>291</id>
      <description>Obtain a RuntimeDelegate instance. If an instance had not already been created and set via #setInstance(RuntimeDelegate), the first invocation will create an instance which will then be cached for future use. The algorithm used to locate the RuntimeDelegate subclass to use consists of the following steps: If a resource with the name of META-INF/services/jakarta.ws.rs.ext.RuntimeDelegate exists, then its first line, if present, is used as the UTF-8 encoded name of the implementation class. If the $java.home/lib/jaxrs.properties file exists and it is readable by the java.util.Properties.load(InputStream) method and it contains an entry whose key is jakarta.ws.rs.ext.RuntimeDelegate, then the value of that entry is used as the name of the implementation class. If a system property with the name jakarta.ws.rs.ext.RuntimeDelegate is defined, then its value is used as the name of the implementation class. Finally, a default implementation class name is used.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>RuntimeDelegate</class-interface>
      <method name="getInstance" return-type="jakarta.ws.rs.ext.RuntimeDelegate" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>292</id>
      <description>Set the runtime delegate that will be used by JAX-RS classes. If this method is not called prior to #getInstance then an implementation will be sought as described in #getInstance.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>RuntimeDelegate</class-interface>
      <method name="setInstance" return-type="void">
        <parameters>
          <parameter>jakarta.ws.rs.ext.RuntimeDelegate</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>294</id>
      <description>Parse the supplied value and create an instance of T.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>RuntimeDelegate.HeaderDelegate</class-interface>
      <method name="fromString" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>296</id>
      <description>Convert the supplied value to a String.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>RuntimeDelegate.HeaderDelegate</class-interface>
      <method name="toString" return-type="java.lang.String">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>297</id>
      <description>Defines the base URI for all resource URIs. A trailing '/' character will be automatically appended if one is not present. The supplied value is automatically percent encoded to conform to the path production of RFC 3986 section 3.3. Note that percent encoded values are allowed in the value, an implementation will recognize such values and will not double encode the '%' character.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ApplicationPath</class-interface>
      <method name="value" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>298</id>
      <description>Evaluate request preconditions for a resource that does not currently exist. The primary use of this method is to support the If-Match: * and If-None-Match: * preconditions. Note that both preconditions If-None-Match: * and If-None-Match: something will always be considered to have been met and it is the applications responsibility to enforce any additional method-specific semantics. E.g. a PUT on a resource that does not exist might succeed whereas a GET on a resource that does not exist would likely result in a 404 response. It would be the responsibility of the application to generate the 404 response.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Request</class-interface>
      <method name="evaluatePreconditions" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>299</id>
      <description>Create a new ResponseBuilder with the supplied status.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="status" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response.Response.StatusType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>300</id>
      <description>Set the status on the ResponseBuilder.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.ResponseBuilder</class-interface>
      <method name="status" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response.Response.StatusType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>301</id>
      <description>Get the reason phrase.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.Status</class-interface>
      <method name="getReasonPhrase" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>302</id>
      <description>Get the class of status code.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.StatusType</class-interface>
      <method name="getFamily" return-type="jakarta.ws.rs.core.Response.Status.Response.Status.Family" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>303</id>
      <description>Get the reason phrase.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.StatusType</class-interface>
      <method name="getReasonPhrase" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>304</id>
      <description>Get the associated status code.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.StatusType</class-interface>
      <method name="getStatusCode" return-type="int" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>305</id>
      <description>Construct a new bad client request exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>BadRequestException</class-interface>
      <method name="BadRequestException" return-type="BadRequestException" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>306</id>
      <description>Construct a new bad client request exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>BadRequestException</class-interface>
      <method name="BadRequestException" return-type="BadRequestException">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>307</id>
      <description>Construct a new bad client request exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>BadRequestException</class-interface>
      <method name="BadRequestException" return-type="BadRequestException">
        <parameters>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>308</id>
      <description>Construct a new bad client request exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>BadRequestException</class-interface>
      <method name="BadRequestException" return-type="BadRequestException">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>310</id>
      <description>Construct a new client error exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ClientErrorException</class-interface>
      <method name="ClientErrorException" return-type="ClientErrorException">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response.Response.Status</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>311</id>
      <description>Construct a new client error exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ClientErrorException</class-interface>
      <method name="ClientErrorException" return-type="ClientErrorException">
        <parameters>
          <parameter>int</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>312</id>
      <description>Construct a new client error exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ClientErrorException</class-interface>
      <method name="ClientErrorException" return-type="ClientErrorException">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>313</id>
      <description>Construct a new client error exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ClientErrorException</class-interface>
      <method name="ClientErrorException" return-type="ClientErrorException">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response.Response.Status</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>314</id>
      <description>Construct a new client error exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ClientErrorException</class-interface>
      <method name="ClientErrorException" return-type="ClientErrorException">
        <parameters>
          <parameter>int</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>315</id>
      <description>Construct a new client error exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ClientErrorException</class-interface>
      <method name="ClientErrorException" return-type="ClientErrorException">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>319</id>
      <description>Construct a new internal server error exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>InternalServerErrorException</class-interface>
      <method name="InternalServerErrorException" return-type="InternalServerErrorException" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>320</id>
      <description>Construct a new internal server error exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>InternalServerErrorException</class-interface>
      <method name="InternalServerErrorException" return-type="InternalServerErrorException">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>321</id>
      <description>Construct a new internal server error exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>InternalServerErrorException</class-interface>
      <method name="InternalServerErrorException" return-type="InternalServerErrorException">
        <parameters>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>322</id>
      <description>Construct a new internal server error exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>InternalServerErrorException</class-interface>
      <method name="InternalServerErrorException" return-type="InternalServerErrorException">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>326</id>
      <description>Construct a new "request not acceptable" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotAcceptableException</class-interface>
      <method name="NotAcceptableException" return-type="NotAcceptableException" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>327</id>
      <description>Construct a new "request not acceptable" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotAcceptableException</class-interface>
      <method name="NotAcceptableException" return-type="NotAcceptableException">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>328</id>
      <description>Construct a new "request not acceptable" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotAcceptableException</class-interface>
      <method name="NotAcceptableException" return-type="NotAcceptableException">
        <parameters>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>329</id>
      <description>Construct a new "request not acceptable" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotAcceptableException</class-interface>
      <method name="NotAcceptableException" return-type="NotAcceptableException">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>331</id>
      <description>Construct a new method not allowed exception. Note that this constructor does not validate the presence of HTTP Allow header. I.e. it is possible to use the constructor to create a client-side exception instance even for an invalid HTTP 405 response content returned from a server.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotAllowedException</class-interface>
      <method name="NotAllowedException" return-type="NotAllowedException">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>332</id>
      <description>Construct a new method not allowed exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotAllowedException</class-interface>
      <method name="NotAllowedException" return-type="NotAllowedException">
        <parameters>
          <parameter>java.lang.Throwable</parameter>
          <parameter>java.lang.String[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>333</id>
      <description>Construct a new method not allowed exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotAllowedException</class-interface>
      <method name="NotAllowedException" return-type="NotAllowedException">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>334</id>
      <description>Get the list of authorization challenges associated with the exception and applicable to the resource requested by the client.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotAuthorizedException</class-interface>
      <method name="getChallenges" return-type="java.util.List" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>335</id>
      <description>Construct a new "not authorized" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotAuthorizedException</class-interface>
      <method name="NotAuthorizedException" return-type="NotAuthorizedException">
        <parameters>
          <parameter>java.lang.Object</parameter>
          <parameter>java.lang.Object[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>336</id>
      <description>Construct a new "not authorized" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotAuthorizedException</class-interface>
      <method name="NotAuthorizedException" return-type="NotAuthorizedException">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>337</id>
      <description>Construct a new "not authorized" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotAuthorizedException</class-interface>
      <method name="NotAuthorizedException" return-type="NotAuthorizedException">
        <parameters>
          <parameter>java.lang.Throwable</parameter>
          <parameter>java.lang.Object</parameter>
          <parameter>java.lang.Object[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>338</id>
      <description>Construct a new "not authorized" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotAuthorizedException</class-interface>
      <method name="NotAuthorizedException" return-type="NotAuthorizedException">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>339</id>
      <description>Construct a new "not found" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotFoundException</class-interface>
      <method name="NotFoundException" return-type="NotFoundException" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>340</id>
      <description>Construct a new "not found" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotFoundException</class-interface>
      <method name="NotFoundException" return-type="NotFoundException">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>341</id>
      <description>Construct a new "not found" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotFoundException</class-interface>
      <method name="NotFoundException" return-type="NotFoundException">
        <parameters>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>342</id>
      <description>Construct a new "not found" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotFoundException</class-interface>
      <method name="NotFoundException" return-type="NotFoundException">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>343</id>
      <description>Construct a new unsupported media type exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotSupportedException</class-interface>
      <method name="NotSupportedException" return-type="NotSupportedException" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>344</id>
      <description>Construct a new unsupported media type exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotSupportedException</class-interface>
      <method name="NotSupportedException" return-type="NotSupportedException">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>345</id>
      <description>Construct a new unsupported media type exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotSupportedException</class-interface>
      <method name="NotSupportedException" return-type="NotSupportedException">
        <parameters>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>346</id>
      <description>Construct a new unsupported media type exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotSupportedException</class-interface>
      <method name="NotSupportedException" return-type="NotSupportedException">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>347</id>
      <description>Get the redirection response location.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>RedirectionException</class-interface>
      <method name="getLocation" return-type="java.net.URI" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>348</id>
      <description>Construct a new redirection exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>RedirectionException</class-interface>
      <method name="RedirectionException" return-type="RedirectionException">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response.Response.Status</parameter>
          <parameter>java.net.URI</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>349</id>
      <description>Construct a new redirection exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>RedirectionException</class-interface>
      <method name="RedirectionException" return-type="RedirectionException">
        <parameters>
          <parameter>int</parameter>
          <parameter>java.net.URI</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>350</id>
      <description>Construct a new redirection exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>RedirectionException</class-interface>
      <method name="RedirectionException" return-type="RedirectionException">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>351</id>
      <description>Construct a new server error exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ServerErrorException</class-interface>
      <method name="ServerErrorException" return-type="ServerErrorException">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response.Response.Status</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>352</id>
      <description>Construct a new server error exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ServerErrorException</class-interface>
      <method name="ServerErrorException" return-type="ServerErrorException">
        <parameters>
          <parameter>int</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>353</id>
      <description>Construct a new server error exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ServerErrorException</class-interface>
      <method name="ServerErrorException" return-type="ServerErrorException">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>354</id>
      <description>Construct a new server error exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ServerErrorException</class-interface>
      <method name="ServerErrorException" return-type="ServerErrorException">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response.Response.Status</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>355</id>
      <description>Construct a new server error exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ServerErrorException</class-interface>
      <method name="ServerErrorException" return-type="ServerErrorException">
        <parameters>
          <parameter>int</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>356</id>
      <description>Construct a new server error exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ServerErrorException</class-interface>
      <method name="ServerErrorException" return-type="ServerErrorException">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>357</id>
      <description>Get the retry time for the failed request.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ServiceUnavailableException</class-interface>
      <method name="getRetryTime" return-type="java.util.Date">
        <parameters>
          <parameter>java.util.Date</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>358</id>
      <description>Check if the underlying response contains the information on when is it possible to HttpHeaders#RETRY_AFTER retry the request.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ServiceUnavailableException</class-interface>
      <method name="hasRetryAfter" return-type="boolean" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>359</id>
      <description>Construct a new "service unavailable" exception without any "Retry-After" information specified for the failed request.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ServiceUnavailableException</class-interface>
      <method name="ServiceUnavailableException" return-type="ServiceUnavailableException" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>360</id>
      <description>Construct a new "service unavailable" exception with an interval specifying the "Retry-After" information for the failed request.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ServiceUnavailableException</class-interface>
      <method name="ServiceUnavailableException" return-type="ServiceUnavailableException">
        <parameters>
          <parameter>java.lang.Long</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>361</id>
      <description>Construct a new "service unavailable" exception with an interval specifying the "Retry-After" information for the failed request.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ServiceUnavailableException</class-interface>
      <method name="ServiceUnavailableException" return-type="ServiceUnavailableException">
        <parameters>
          <parameter>java.util.Date</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>362</id>
      <description>Construct a new "service unavailable" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ServiceUnavailableException</class-interface>
      <method name="ServiceUnavailableException" return-type="ServiceUnavailableException">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>363</id>
      <description>Construct a new "service unavailable" exception with a date specifying the "Retry-After" information for the failed request and an underlying request failure cause.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ServiceUnavailableException</class-interface>
      <method name="ServiceUnavailableException" return-type="ServiceUnavailableException">
        <parameters>
          <parameter>java.util.Date</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>364</id>
      <description>Construct a new "service unavailable" exception with an interval specifying the "Retry-After" information for the failed request and an underlying request failure cause.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ServiceUnavailableException</class-interface>
      <method name="ServiceUnavailableException" return-type="ServiceUnavailableException">
        <parameters>
          <parameter>java.lang.Long</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>365</id>
      <description>Construct a new "service unavailable" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ServiceUnavailableException</class-interface>
      <method name="ServiceUnavailableException" return-type="ServiceUnavailableException">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>375</id>
      <description>Invoke HTTP DELETE method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="delete" return-type="java.util.concurrent.Future" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>376</id>
      <description>Invoke HTTP DELETE method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps either a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses thrown in case the received response status code is not jakarta.ws.rs.core.Response.Status.Family#SUCCESSFUL successful and the specified response type is not jakarta.ws.rs.core.Response. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="delete" return-type="java.util.concurrent.Future">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>377</id>
      <description>Invoke HTTP DELETE method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps either a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses thrown in case the received response status code is not jakarta.ws.rs.core.Response.Status.Family#SUCCESSFUL successful and the specified response type is not jakarta.ws.rs.core.Response. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="delete" return-type="java.util.concurrent.Future">
        <parameters>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>378</id>
      <description>Invoke HTTP DELETE method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps either a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses thrown in case the received response status code is not jakarta.ws.rs.core.Response.Status.Family#SUCCESSFUL successful and the generic type of the supplied response callback is not jakarta.ws.rs.core.Response. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="delete" return-type="java.util.concurrent.Future">
        <parameters>
          <parameter>jakarta.ws.rs.client.InvocationCallback</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>379</id>
      <description>Invoke HTTP GET method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure. Note that in case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="get" return-type="java.util.concurrent.Future" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>380</id>
      <description>Invoke HTTP GET method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps either a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses thrown in case the received response status code is not jakarta.ws.rs.core.Response.Status.Family#SUCCESSFUL successful and the specified response type is not jakarta.ws.rs.core.Response. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="get" return-type="java.util.concurrent.Future">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>381</id>
      <description>Invoke HTTP GET method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps either a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses thrown in case the received response status code is not jakarta.ws.rs.core.Response.Status.Family#SUCCESSFUL successful and the specified response type is not jakarta.ws.rs.core.Response. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="get" return-type="java.util.concurrent.Future">
        <parameters>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>382</id>
      <description>Invoke HTTP GET method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps either a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses thrown in case the received response status code is not jakarta.ws.rs.core.Response.Status.Family#SUCCESSFUL successful and the generic type of the supplied response callback is not jakarta.ws.rs.core.Response. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="get" return-type="java.util.concurrent.Future">
        <parameters>
          <parameter>jakarta.ws.rs.client.InvocationCallback</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>383</id>
      <description>Invoke HTTP HEAD method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="head" return-type="java.util.concurrent.Future" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>384</id>
      <description>Invoke HTTP HEAD method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="head" return-type="java.util.concurrent.Future">
        <parameters>
          <parameter>jakarta.ws.rs.client.InvocationCallback</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>385</id>
      <description>Invoke an arbitrary method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="method" return-type="java.util.concurrent.Future">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>386</id>
      <description>Invoke an arbitrary method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps either a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses thrown in case the received response status code is not jakarta.ws.rs.core.Response.Status.Family#SUCCESSFUL successful and the specified response type is not jakarta.ws.rs.core.Response. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="method" return-type="java.util.concurrent.Future">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>387</id>
      <description>Invoke an arbitrary method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps either a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses thrown in case the received response status code is not jakarta.ws.rs.core.Response.Status.Family#SUCCESSFUL successful and the specified response type is not jakarta.ws.rs.core.Response. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="method" return-type="java.util.concurrent.Future">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>388</id>
      <description>Invoke an arbitrary method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps either a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses thrown in case the received response status code is not jakarta.ws.rs.core.Response.Status.Family#SUCCESSFUL successful and the generic type of the supplied response callback is not jakarta.ws.rs.core.Response. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="method" return-type="java.util.concurrent.Future">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.client.InvocationCallback</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>389</id>
      <description>Invoke an arbitrary method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="method" return-type="java.util.concurrent.Future">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>390</id>
      <description>Invoke an arbitrary method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps either a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses thrown in case the received response status code is not jakarta.ws.rs.core.Response.Status.Family#SUCCESSFUL successful and the specified response type is not jakarta.ws.rs.core.Response. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="method" return-type="java.util.concurrent.Future">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>391</id>
      <description>Invoke an arbitrary method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps either a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses thrown in case the received response status code is not jakarta.ws.rs.core.Response.Status.Family#SUCCESSFUL successful and the specified response type is not jakarta.ws.rs.core.Response. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="method" return-type="java.util.concurrent.Future">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>392</id>
      <description>Invoke an arbitrary method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps either a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses thrown in case the received response status code is not jakarta.ws.rs.core.Response.Status.Family#SUCCESSFUL successful and the generic type of the supplied response callback is not jakarta.ws.rs.core.Response. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="method" return-type="java.util.concurrent.Future">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
          <parameter>jakarta.ws.rs.client.InvocationCallback</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>393</id>
      <description>Invoke HTTP OPTIONS method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="options" return-type="java.util.concurrent.Future" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>394</id>
      <description>Invoke HTTP OPTIONS method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps either a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses thrown in case the received response status code is not jakarta.ws.rs.core.Response.Status.Family#SUCCESSFUL successful and the specified response type is not jakarta.ws.rs.core.Response. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="options" return-type="java.util.concurrent.Future">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>395</id>
      <description>Invoke HTTP OPTIONS method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps either a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses thrown in case the received response status code is not jakarta.ws.rs.core.Response.Status.Family#SUCCESSFUL successful and the specified response type is not jakarta.ws.rs.core.Response. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="options" return-type="java.util.concurrent.Future">
        <parameters>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>396</id>
      <description>Invoke HTTP OPTIONS method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps either a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses thrown in case the received response status code is not jakarta.ws.rs.core.Response.Status.Family#SUCCESSFUL successful and the generic type of the supplied response callback is not jakarta.ws.rs.core.Response. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="options" return-type="java.util.concurrent.Future">
        <parameters>
          <parameter>jakarta.ws.rs.client.InvocationCallback</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>397</id>
      <description>Invoke HTTP POST method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="post" return-type="java.util.concurrent.Future">
        <parameters>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>398</id>
      <description>Invoke HTTP POST method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps either a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses thrown in case the received response status code is not jakarta.ws.rs.core.Response.Status.Family#SUCCESSFUL successful and the specified response type is not jakarta.ws.rs.core.Response. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="post" return-type="java.util.concurrent.Future">
        <parameters>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>399</id>
      <description>Invoke HTTP POST method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps either a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses thrown in case the received response status code is not jakarta.ws.rs.core.Response.Status.Family#SUCCESSFUL successful and the specified response type is not jakarta.ws.rs.core.Response. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="post" return-type="java.util.concurrent.Future">
        <parameters>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>400</id>
      <description>Invoke HTTP POST method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps either a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses thrown in case the received response status code is not jakarta.ws.rs.core.Response.Status.Family#SUCCESSFUL successful and the generic type of the supplied response callback is not jakarta.ws.rs.core.Response. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="post" return-type="java.util.concurrent.Future">
        <parameters>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
          <parameter>jakarta.ws.rs.client.InvocationCallback</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>401</id>
      <description>Invoke HTTP PUT method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="put" return-type="java.util.concurrent.Future">
        <parameters>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>402</id>
      <description>Invoke HTTP PUT method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps either a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses thrown in case the received response status code is not jakarta.ws.rs.core.Response.Status.Family#SUCCESSFUL successful and the specified response type is not jakarta.ws.rs.core.Response. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="put" return-type="java.util.concurrent.Future">
        <parameters>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>403</id>
      <description>Invoke HTTP PUT method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps either a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses thrown in case the received response status code is not jakarta.ws.rs.core.Response.Status.Family#SUCCESSFUL successful and the specified response type is not jakarta.ws.rs.core.Response. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="put" return-type="java.util.concurrent.Future">
        <parameters>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>404</id>
      <description>Invoke HTTP PUT method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps either a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses thrown in case the received response status code is not jakarta.ws.rs.core.Response.Status.Family#SUCCESSFUL successful and the generic type of the supplied response callback is not jakarta.ws.rs.core.Response. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="put" return-type="java.util.concurrent.Future">
        <parameters>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
          <parameter>jakarta.ws.rs.client.InvocationCallback</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>405</id>
      <description>Invoke HTTP TRACE method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="trace" return-type="java.util.concurrent.Future" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>406</id>
      <description>Invoke HTTP TRACE method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps either a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses thrown in case the received response status code is not jakarta.ws.rs.core.Response.Status.Family#SUCCESSFUL successful and the specified response type is not jakarta.ws.rs.core.Response. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="trace" return-type="java.util.concurrent.Future">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>407</id>
      <description>Invoke HTTP TRACE method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps either a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses thrown in case the received response status code is not jakarta.ws.rs.core.Response.Status.Family#SUCCESSFUL successful and the specified response type is not jakarta.ws.rs.core.Response. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="trace" return-type="java.util.concurrent.Future">
        <parameters>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>408</id>
      <description>Invoke HTTP TRACE method for the current request asynchronously. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps either a jakarta.ws.rs.ProcessingException thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses thrown in case the received response status code is not jakarta.ws.rs.core.Response.Status.Family#SUCCESSFUL successful and the generic type of the supplied response callback is not jakarta.ws.rs.core.Response. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>AsyncInvoker</class-interface>
      <method name="trace" return-type="java.util.concurrent.Future">
        <parameters>
          <parameter>jakarta.ws.rs.client.InvocationCallback</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>409</id>
      <description>Close client instance and all its associated resources. Subsequent calls have no effect and are ignored. Once the client is closed, invoking any other method on the client instance would result in an IllegalStateException being thrown. Calling this method effectively invalidates all WebTarget resource targets produced by the client instance. Invoking any method on such targets once the client is closed would result in an IllegalStateException being thrown.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Client</class-interface>
      <method name="close" return-type="void" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>411</id>
      <description>Build an invocation builder from a link. It uses the URI and the type of the link to initialize the invocation builder. The type is used as the initial value for the HTTP Accept header, if present.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Client</class-interface>
      <method name="invocation" return-type="jakarta.ws.rs.client.Invocation.Invocation.Builder">
        <parameters>
          <parameter>jakarta.ws.rs.core.Link</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>413</id>
      <description>Build a new web resource target.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Client</class-interface>
      <method name="target" return-type="jakarta.ws.rs.client.WebTarget">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>416</id>
      <description>Build a new web resource target.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Client</class-interface>
      <method name="target" return-type="jakarta.ws.rs.client.WebTarget">
        <parameters>
          <parameter>java.net.URI</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>418</id>
      <description>Build a new web resource target.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Client</class-interface>
      <method name="target" return-type="jakarta.ws.rs.client.WebTarget">
        <parameters>
          <parameter>jakarta.ws.rs.core.UriBuilder</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>420</id>
      <description>Build a new web resource target.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Client</class-interface>
      <method name="target" return-type="jakarta.ws.rs.client.WebTarget">
        <parameters>
          <parameter>jakarta.ws.rs.core.Link</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>427</id>
      <description>Abort the filter chain with a response. This method breaks the filter chain processing and returns the provided response back to the client. The provided response goes through the chain of applicable response filters.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientRequestContext</class-interface>
      <method name="abortWith" return-type="void">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>428</id>
      <description>Get a list of languages that are acceptable for the response.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientRequestContext</class-interface>
      <method name="getAcceptableLanguages" return-type="java.util.List" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>429</id>
      <description>Get a list of media types that are acceptable for the response.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientRequestContext</class-interface>
      <method name="getAcceptableMediaTypes" return-type="java.util.List" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>430</id>
      <description>Get the client instance associated with the request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientRequestContext</class-interface>
      <method name="getClient" return-type="jakarta.ws.rs.client.Client" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>432</id>
      <description>Get any cookies that accompanied the request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientRequestContext</class-interface>
      <method name="getCookies" return-type="java.util.Map" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>433</id>
      <description>Get message date.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientRequestContext</class-interface>
      <method name="getDate" return-type="java.util.Date" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>434</id>
      <description>Get the message entity Java instance. Returns null if the message does not contain an entity.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientRequestContext</class-interface>
      <method name="getEntity" return-type="java.lang.Object" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>435</id>
      <description>Get the annotations attached to the entity instance. Note that the returned annotations array contains only those annotations explicitly attached to entity instance (such as the ones attached using Entity#Entity(Object, jakarta.ws.rs.core.MediaType, java.lang.annotation.Annotation[]) method). The entity instance annotations array does not include annotations declared on the entity implementation class or its ancestors.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientRequestContext</class-interface>
      <method name="getEntityAnnotations" return-type="java.lang.annotation.Annotation[]" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>436</id>
      <description>Get the raw entity type information.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientRequestContext</class-interface>
      <method name="getEntityClass" return-type="java.lang.Class" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>437</id>
      <description>Get the entity output stream. The JAX-RS runtime is responsible for closing the output stream.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientRequestContext</class-interface>
      <method name="getEntityStream" return-type="java.io.OutputStream" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>438</id>
      <description>Get the generic entity type information.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientRequestContext</class-interface>
      <method name="getEntityType" return-type="java.lang.reflect.Type" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>439</id>
      <description>Get the mutable request headers multivalued map.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientRequestContext</class-interface>
      <method name="getHeaders" return-type="jakarta.ws.rs.core.MultivaluedMap" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>440</id>
      <description>Get a message header as a single string value. Each single header value is converted to String using a jakarta.ws.rs.ext.RuntimeDelegate.HeaderDelegate if one is available via jakarta.ws.rs.ext.RuntimeDelegate#createHeaderDelegate(java.lang.Class) for the header value class or using its toString method if a header delegate is not available.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientRequestContext</class-interface>
      <method name="getHeaderString" return-type="java.lang.String">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>441</id>
      <description>Get the language of the entity.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientRequestContext</class-interface>
      <method name="getLanguage" return-type="java.util.Locale" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>442</id>
      <description>Get the media type of the entity.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientRequestContext</class-interface>
      <method name="getMediaType" return-type="jakarta.ws.rs.core.MediaType" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>443</id>
      <description>Get the request method.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientRequestContext</class-interface>
      <method name="getMethod" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>444</id>
      <description>Returns the property with the given name registered in the current request/response exchange context, or null if there is no property by that name. A property allows a JAX-RS filters and interceptors to exchange additional custom information not already provided by this interface. A list of supported properties can be retrieved using #getPropertyNames(). Custom property names should follow the same convention as package names.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientRequestContext</class-interface>
      <method name="getProperty" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>446</id>
      <description>Get a string view of header values associated with the message. Changes in the underlying #getHeaders() headers map are reflected in this view. The method converts the non-string header values to strings using a jakarta.ws.rs.ext.RuntimeDelegate.HeaderDelegate if one is available via jakarta.ws.rs.ext.RuntimeDelegate#createHeaderDelegate(java.lang.Class) for the class of the value or using the values toString method if a header delegate is not available.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientRequestContext</class-interface>
      <method name="getStringHeaders" return-type="jakarta.ws.rs.core.MultivaluedMap" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>447</id>
      <description>Get the request URI.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientRequestContext</class-interface>
      <method name="getUri" return-type="java.net.URI" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>448</id>
      <description>Check if there is an entity available in the request. The method returns true if the entity is present, returns false otherwise.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientRequestContext</class-interface>
      <method name="hasEntity" return-type="boolean" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>449</id>
      <description>Removes a property with the given name from the current request/response exchange context. After removal, subsequent calls to #getProperty to retrieve the property value will return null.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientRequestContext</class-interface>
      <method name="removeProperty" return-type="void">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>450</id>
      <description>Set a new message entity, including the attached annotations and the media type. It is the callers responsibility to wrap the actual entity with jakarta.ws.rs.core.GenericEntity if preservation of its generic type is required.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientRequestContext</class-interface>
      <method name="setEntity" return-type="void">
        <parameters>
          <parameter>java.lang.Object</parameter>
          <parameter>java.lang.annotation.Annotation[]</parameter>
          <parameter>jakarta.ws.rs.core.MediaType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>451</id>
      <description>Set a new entity output stream. The JAX-RS runtime is responsible for closing the output stream.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientRequestContext</class-interface>
      <method name="setEntityStream" return-type="void">
        <parameters>
          <parameter>java.io.OutputStream</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>452</id>
      <description>Set the request method.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientRequestContext</class-interface>
      <method name="setMethod" return-type="void">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>453</id>
      <description>Binds an object to a given property name in the current request/response exchange context. If the name specified is already used for a property, this method will replace the value of the property with the new value. A property allows a JAX-RS filters and interceptors to exchange additional custom information not already provided by this interface. A list of supported properties can be retrieved using #getPropertyNames(). Custom property names should follow the same convention as package names. If a null value is passed, the effect is the same as calling the #removeProperty(String) method.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientRequestContext</class-interface>
      <method name="setProperty" return-type="void">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>454</id>
      <description>Set a new request URI.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientRequestContext</class-interface>
      <method name="setUri" return-type="void">
        <parameters>
          <parameter>java.net.URI</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>455</id>
      <description>Filter method called before a request has been dispatched to a client transport layer. Filters in the filter chain are ordered according to their jakarta.annotation.Priority class-level annotation value.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientRequestFilter</class-interface>
      <method name="filter" return-type="void">
        <parameters>
          <parameter>jakarta.ws.rs.client.ClientRequestContext</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>456</id>
      <description>if an I/O exception occurs.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientRequestFilter</class-interface>
      <method name="filter" return-type="void">
        <parameters>
          <parameter>jakarta.ws.rs.client.ClientRequestContext</parameter>
        </parameters>
        <throw>java.io.IOException</throw>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>457</id>
      <description>Get the allowed HTTP methods from the Allow HTTP header.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientResponseContext</class-interface>
      <method name="getAllowedMethods" return-type="java.util.Set" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>458</id>
      <description>Get any new cookies set on the response message.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientResponseContext</class-interface>
      <method name="getCookies" return-type="java.util.Map" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>459</id>
      <description>Get message date.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientResponseContext</class-interface>
      <method name="getDate" return-type="java.util.Date" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>460</id>
      <description>Get the entity input stream. The JAX-RS runtime is responsible for closing the input stream.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientResponseContext</class-interface>
      <method name="getEntityStream" return-type="java.io.InputStream" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>461</id>
      <description>Get the entity tag.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientResponseContext</class-interface>
      <method name="getEntityTag" return-type="jakarta.ws.rs.core.EntityTag" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>462</id>
      <description>Get the mutable response headers multivalued map.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientResponseContext</class-interface>
      <method name="getHeaders" return-type="jakarta.ws.rs.core.MultivaluedMap" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>463</id>
      <description>Get a message header as a single string value.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientResponseContext</class-interface>
      <method name="getHeaderString" return-type="java.lang.String">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>464</id>
      <description>Get the language of the entity.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientResponseContext</class-interface>
      <method name="getLanguage" return-type="java.util.Locale" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>465</id>
      <description>Get the last modified date.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientResponseContext</class-interface>
      <method name="getLastModified" return-type="java.util.Date" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>466</id>
      <description>Get Content-Length value.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientResponseContext</class-interface>
      <method name="getLength" return-type="int" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>467</id>
      <description>Get the link for the relation.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientResponseContext</class-interface>
      <method name="getLink" return-type="jakarta.ws.rs.core.Link">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>468</id>
      <description>Convenience method that returns a jakarta.ws.rs.core.Link.Builder Link.Builder for the relation.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientResponseContext</class-interface>
      <method name="getLinkBuilder" return-type="jakarta.ws.rs.core.Link.Link.Builder">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>469</id>
      <description>Get the links attached to the message as header.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientResponseContext</class-interface>
      <method name="getLinks" return-type="java.util.Set" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>470</id>
      <description>Get the location.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientResponseContext</class-interface>
      <method name="getLocation" return-type="java.net.URI" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>471</id>
      <description>Get the media type of the entity.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientResponseContext</class-interface>
      <method name="getMediaType" return-type="jakarta.ws.rs.core.MediaType" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>472</id>
      <description>Get the status code associated with the response.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientResponseContext</class-interface>
      <method name="getStatus" return-type="int" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>473</id>
      <description>Get the complete status information associated with the response.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientResponseContext</class-interface>
      <method name="getStatusInfo" return-type="jakarta.ws.rs.core.Response.Response.StatusType" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>474</id>
      <description>Check if there is a non-empty entity input stream is available in the response message. The method returns true if the entity is present, returns false otherwise.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientResponseContext</class-interface>
      <method name="hasEntity" return-type="boolean" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>475</id>
      <description>Check if link for relation exists.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientResponseContext</class-interface>
      <method name="hasLink" return-type="boolean">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>476</id>
      <description>Set a new entity input stream. The JAX-RS runtime is responsible for closing the input stream.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientResponseContext</class-interface>
      <method name="setEntityStream" return-type="void">
        <parameters>
          <parameter>java.io.InputStream</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>477</id>
      <description>Set a new response status code.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientResponseContext</class-interface>
      <method name="setStatus" return-type="void">
        <parameters>
          <parameter>int</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>478</id>
      <description>Set the complete status information (status code and reason phrase) associated with the response.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientResponseContext</class-interface>
      <method name="setStatusInfo" return-type="void">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response.Response.StatusType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>479</id>
      <description>Filter method called after a response has been provided for a request (either by a ClientRequestFilter request filter or when the HTTP invocation returns. Filters in the filter chain are ordered according to their jakarta.annotation.Priority class-level annotation value.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientResponseFilter</class-interface>
      <method name="filter" return-type="void">
        <parameters>
          <parameter>jakarta.ws.rs.client.ClientRequestContext</parameter>
          <parameter>jakarta.ws.rs.client.ClientResponseContext</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>480</id>
      <description>if an I/O exception occurs.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientResponseFilter</class-interface>
      <method name="filter" return-type="void">
        <parameters>
          <parameter>jakarta.ws.rs.client.ClientRequestContext</parameter>
          <parameter>jakarta.ws.rs.client.ClientResponseContext</parameter>
        </parameters>
        <throw>java.io.IOException</throw>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>492</id>
      <description>Create an entity using a supplied content media type.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Entity</class-interface>
      <method name="entity" return-type="jakarta.ws.rs.client.Entity">
        <parameters>
          <parameter>java.lang.Object</parameter>
          <parameter>jakarta.ws.rs.core.MediaType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>493</id>
      <description>Create an entity using a supplied content media type.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Entity</class-interface>
      <method name="entity" return-type="jakarta.ws.rs.client.Entity">
        <parameters>
          <parameter>java.lang.Object</parameter>
          <parameter>jakarta.ws.rs.core.MediaType</parameter>
          <parameter>java.lang.annotation.Annotation[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>494</id>
      <description>Create an entity using a supplied content media type.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Entity</class-interface>
      <method name="entity" return-type="jakarta.ws.rs.client.Entity">
        <parameters>
          <parameter>java.lang.Object</parameter>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>496</id>
      <description>Create an entity using a supplied content media type.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Entity</class-interface>
      <method name="entity" return-type="jakarta.ws.rs.client.Entity">
        <parameters>
          <parameter>java.lang.Object</parameter>
          <parameter>jakarta.ws.rs.core.Variant</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>497</id>
      <description>Create an entity using a supplied content media type.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Entity</class-interface>
      <method name="entity" return-type="jakarta.ws.rs.client.Entity">
        <parameters>
          <parameter>java.lang.Object</parameter>
          <parameter>jakarta.ws.rs.core.Variant</parameter>
          <parameter>java.lang.annotation.Annotation[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>498</id>
      <description>Create an form entity. re.MediaType#APPLICATION_FORM_URLENCODED form entity.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Entity</class-interface>
      <method name="form" return-type="jakarta.ws.rs.client.Entity">
        <parameters>
          <parameter>jakarta.ws.rs.core.Form</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>499</id>
      <description>Create an form entity. re.MediaType#APPLICATION_FORM_URLENCODED form entity.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Entity</class-interface>
      <method name="form" return-type="jakarta.ws.rs.client.Entity">
        <parameters>
          <parameter>jakarta.ws.rs.core.MultivaluedMap</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>500</id>
      <description>Get the entity annotations.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Entity</class-interface>
      <method name="getAnnotations" return-type="java.lang.annotation.Annotation[]" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>501</id>
      <description>Get entity encoding.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Entity</class-interface>
      <method name="getEncoding" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>502</id>
      <description>Get entity data.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Entity</class-interface>
      <method name="getEntity" return-type="java.lang.Object" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>503</id>
      <description>Get entity language.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Entity</class-interface>
      <method name="getLanguage" return-type="java.util.Locale" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>504</id>
      <description>Get entity media type.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Entity</class-interface>
      <method name="getMediaType" return-type="jakarta.ws.rs.core.MediaType" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>505</id>
      <description>Get entity Variant variant information.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Entity</class-interface>
      <method name="getVariant" return-type="jakarta.ws.rs.core.Variant" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>506</id>
      <description>Create a entity. .rs.core.MediaType#TEXT_HTML entity.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Entity</class-interface>
      <method name="html" return-type="jakarta.ws.rs.client.Entity">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>507</id>
      <description>Create an entity. .rs.core.MediaType#APPLICATION_JSON entity.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Entity</class-interface>
      <method name="json" return-type="jakarta.ws.rs.client.Entity">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>508</id>
      <description>Create a entity. .rs.core.MediaType#TEXT_PLAIN entity.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Entity</class-interface>
      <method name="text" return-type="jakarta.ws.rs.client.Entity">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>509</id>
      <description>Create an entity. .rs.core.MediaType#APPLICATION_XHTML_XML entity.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Entity</class-interface>
      <method name="xhtml" return-type="jakarta.ws.rs.client.Entity">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>510</id>
      <description>Create an entity. .rs.core.MediaType#APPLICATION_XML entity.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Entity</class-interface>
      <method name="xml" return-type="jakarta.ws.rs.client.Entity">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>512</id>
      <description>Synchronously invoke the request and receive a response back.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Invocation</class-interface>
      <method name="invoke" return-type="jakarta.ws.rs.core.Response" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>514</id>
      <description>Synchronously invoke the request and receive a response of the specified type back.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Invocation</class-interface>
      <method name="invoke" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>517</id>
      <description>Synchronously invoke the request and receive a response of the specified generic type back.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Invocation</class-interface>
      <method name="invoke" return-type="java.lang.Object">
        <parameters>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>520</id>
      <description>Submit the request for an asynchronous invocation and receive a future response back. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps a ProcessingException thrown in case of an invocation processing failure. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Invocation</class-interface>
      <method name="submit" return-type="java.util.concurrent.Future" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>521</id>
      <description>Submit the request for an asynchronous invocation and receive a future response of the specified type back. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps either a ProcessingException thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses thrown in case the received response status code is not jakarta.ws.rs.core.Response.Status.Family#SUCCESSFUL successful and the specified response type is not jakarta.ws.rs.core.Response. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Invocation</class-interface>
      <method name="submit" return-type="java.util.concurrent.Future">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>522</id>
      <description>Submit the request for an asynchronous invocation and receive a future response of the specified generic type back. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps either a ProcessingException thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses thrown in case the received response status code is not jakarta.ws.rs.core.Response.Status.Family#SUCCESSFUL successful and the specified response type is not jakarta.ws.rs.core.Response. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Invocation</class-interface>
      <method name="submit" return-type="java.util.concurrent.Future">
        <parameters>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>523</id>
      <description>Submit the request for an asynchronous invocation and register an InvocationCallback to process the future result of the invocation. Note that calling the java.util.concurrent.Future#get() method on the returned Future instance may throw an java.util.concurrent.ExecutionException that wraps either a ProcessingException thrown in case of an invocation processing failure or a WebApplicationException or one of its subclasses thrown in case the received response status code is not jakarta.ws.rs.core.Response.Status.Family#SUCCESSFUL successful and the generic type of the supplied response callback is not jakarta.ws.rs.core.Response. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the Response instance whose processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Invocation</class-interface>
      <method name="submit" return-type="java.util.concurrent.Future">
        <parameters>
          <parameter>jakarta.ws.rs.client.InvocationCallback</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>524</id>
      <description>Add acceptable languages.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Invocation.Builder</class-interface>
      <method name="acceptLanguage" return-type="jakarta.ws.rs.client.Invocation.Invocation.Builder">
        <parameters>
          <parameter>java.util.Locale[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>525</id>
      <description>Add acceptable languages.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Invocation.Builder</class-interface>
      <method name="acceptLanguage" return-type="jakarta.ws.rs.client.Invocation.Invocation.Builder">
        <parameters>
          <parameter>java.lang.String[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>526</id>
      <description>Access the asynchronous uniform request invocation interface to asynchronously invoke the built request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Invocation.Builder</class-interface>
      <method name="async" return-type="jakarta.ws.rs.client.AsyncInvoker" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>527</id>
      <description>Build a request invocation using an arbitrary request method name.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Invocation.Builder</class-interface>
      <method name="build" return-type="jakarta.ws.rs.client.Invocation">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>528</id>
      <description>Build a request invocation using an arbitrary request method name and request entity.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Invocation.Builder</class-interface>
      <method name="build" return-type="jakarta.ws.rs.client.Invocation">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>529</id>
      <description>Build a DELETE request invocation.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Invocation.Builder</class-interface>
      <method name="buildDelete" return-type="jakarta.ws.rs.client.Invocation" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>530</id>
      <description>Build a GET request invocation.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Invocation.Builder</class-interface>
      <method name="buildGet" return-type="jakarta.ws.rs.client.Invocation" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>531</id>
      <description>Build a POST request invocation.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Invocation.Builder</class-interface>
      <method name="buildPost" return-type="jakarta.ws.rs.client.Invocation">
        <parameters>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>532</id>
      <description>Build a PUT request invocation.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Invocation.Builder</class-interface>
      <method name="buildPut" return-type="jakarta.ws.rs.client.Invocation">
        <parameters>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>533</id>
      <description>Set the cache control data of the message.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Invocation.Builder</class-interface>
      <method name="cacheControl" return-type="jakarta.ws.rs.client.Invocation.Invocation.Builder">
        <parameters>
          <parameter>jakarta.ws.rs.core.CacheControl</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>535</id>
      <description>Add a cookie to be set.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Invocation.Builder</class-interface>
      <method name="cookie" return-type="jakarta.ws.rs.client.Invocation.Invocation.Builder">
        <parameters>
          <parameter>jakarta.ws.rs.core.Cookie</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>536</id>
      <description>Add a cookie to be set.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Invocation.Builder</class-interface>
      <method name="cookie" return-type="jakarta.ws.rs.client.Invocation.Invocation.Builder">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>537</id>
      <description>Add an arbitrary header.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Invocation.Builder</class-interface>
      <method name="header" return-type="jakarta.ws.rs.client.Invocation.Invocation.Builder">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>538</id>
      <description>Replaces all existing headers with the newly supplied headers.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Invocation.Builder</class-interface>
      <method name="headers" return-type="jakarta.ws.rs.client.Invocation.Invocation.Builder">
        <parameters>
          <parameter>jakarta.ws.rs.core.MultivaluedMap</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>539</id>
      <description>Called when the invocation was successfully completed. Note that this does not necessarily mean the response has bean fully read, which depends on the parameterized invocation callback response type. Once this invocation callback method returns, the underlying jakarta.ws.rs.core.Response instance will be automatically closed by the runtime.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>InvocationCallback</class-interface>
      <method name="completed" return-type="void">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>541</id>
      <description>Invoke HTTP DELETE method for the current request synchronously.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>SyncInvoker</class-interface>
      <method name="delete" return-type="jakarta.ws.rs.core.Response" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>543</id>
      <description>Invoke HTTP DELETE method for the current request synchronously.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>SyncInvoker</class-interface>
      <method name="delete" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>546</id>
      <description>Invoke HTTP DELETE method for the current request synchronously.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>SyncInvoker</class-interface>
      <method name="delete" return-type="java.lang.Object">
        <parameters>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>549</id>
      <description>Invoke HTTP GET method for the current request synchronously.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>SyncInvoker</class-interface>
      <method name="get" return-type="jakarta.ws.rs.core.Response" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>551</id>
      <description>Invoke HTTP GET method for the current request synchronously.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>SyncInvoker</class-interface>
      <method name="get" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>554</id>
      <description>Invoke HTTP GET method for the current request synchronously.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>SyncInvoker</class-interface>
      <method name="get" return-type="java.lang.Object">
        <parameters>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>557</id>
      <description>Invoke HTTP HEAD method for the current request synchronously.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>SyncInvoker</class-interface>
      <method name="head" return-type="jakarta.ws.rs.core.Response" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>559</id>
      <description>Invoke an arbitrary method for the current request synchronously.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>SyncInvoker</class-interface>
      <method name="method" return-type="jakarta.ws.rs.core.Response">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>561</id>
      <description>Invoke an arbitrary method for the current request synchronously.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>SyncInvoker</class-interface>
      <method name="method" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>564</id>
      <description>Invoke an arbitrary method for the current request synchronously.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>SyncInvoker</class-interface>
      <method name="method" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>567</id>
      <description>Invoke an arbitrary method for the current request synchronously.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>SyncInvoker</class-interface>
      <method name="method" return-type="jakarta.ws.rs.core.Response">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>569</id>
      <description>Invoke an arbitrary method for the current request synchronously.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>SyncInvoker</class-interface>
      <method name="method" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>572</id>
      <description>Invoke an arbitrary method for the current request synchronously.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>SyncInvoker</class-interface>
      <method name="method" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>575</id>
      <description>Invoke HTTP OPTIONS method for the current request synchronously.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>SyncInvoker</class-interface>
      <method name="options" return-type="jakarta.ws.rs.core.Response" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>577</id>
      <description>Invoke HTTP OPTIONS method for the current request synchronously.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>SyncInvoker</class-interface>
      <method name="options" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>580</id>
      <description>Invoke HTTP OPTIONS method for the current request synchronously.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>SyncInvoker</class-interface>
      <method name="options" return-type="java.lang.Object">
        <parameters>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>583</id>
      <description>Invoke HTTP POST method for the current request synchronously.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>SyncInvoker</class-interface>
      <method name="post" return-type="jakarta.ws.rs.core.Response">
        <parameters>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>585</id>
      <description>Invoke HTTP POST method for the current request synchronously.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>SyncInvoker</class-interface>
      <method name="post" return-type="java.lang.Object">
        <parameters>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>588</id>
      <description>Invoke HTTP POST method for the current request synchronously.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>SyncInvoker</class-interface>
      <method name="post" return-type="java.lang.Object">
        <parameters>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>591</id>
      <description>Invoke HTTP PUT method for the current request synchronously.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>SyncInvoker</class-interface>
      <method name="put" return-type="jakarta.ws.rs.core.Response">
        <parameters>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>593</id>
      <description>Invoke HTTP PUT method for the current request synchronously.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>SyncInvoker</class-interface>
      <method name="put" return-type="java.lang.Object">
        <parameters>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>596</id>
      <description>Invoke HTTP PUT method for the current request synchronously.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>SyncInvoker</class-interface>
      <method name="put" return-type="java.lang.Object">
        <parameters>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>599</id>
      <description>Invoke HTTP TRACE method for the current request synchronously.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>SyncInvoker</class-interface>
      <method name="trace" return-type="jakarta.ws.rs.core.Response" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>601</id>
      <description>Invoke HTTP TRACE method for the current request synchronously.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>SyncInvoker</class-interface>
      <method name="trace" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>604</id>
      <description>Invoke HTTP TRACE method for the current request synchronously.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>SyncInvoker</class-interface>
      <method name="trace" return-type="java.lang.Object">
        <parameters>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>608</id>
      <description>Get the URI identifying the resource.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>WebTarget</class-interface>
      <method name="getUri" return-type="java.net.URI" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>609</id>
      <description>Get the URI builder initialized with the URI of the current resource target. The returned URI builder is detached from the target, i.e. any updates in the URI builder MUST NOT have any effects on the URI of the originating target.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>WebTarget</class-interface>
      <method name="getUriBuilder" return-type="jakarta.ws.rs.core.UriBuilder" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>610</id>
      <description>Create a new WebTarget instance by appending a matrix parameter to the existing set of matrix parameters of the current final segment of the URI of the current target instance. If multiple values are supplied the parameter will be added once per value. In case a single null value is entered, all parameters with that name in the current final path segment are removed (if present) from the collection of last segment matrix parameters inherited from the current target. Note that the matrix parameters are tied to a particular path segment; appending a value to an existing matrix parameter name will not affect the position of the matrix parameter in the URI path. A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the newly constructed (child) target instance.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>WebTarget</class-interface>
      <method name="matrixParam" return-type="jakarta.ws.rs.client.WebTarget">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Object[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>612</id>
      <description>Create a new WebTarget instance by appending path to the URI of the current target instance. When constructing the final path, a '/' separator will be inserted between the existing path and the supplied path if necessary. Existing '/' characters are preserved thus a single value can represent multiple URI path segments. A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the newly constructed (child) target instance.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>WebTarget</class-interface>
      <method name="path" return-type="jakarta.ws.rs.client.WebTarget">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>618</id>
      <description>Create a new WebTarget instance by configuring a query parameter on the URI of the current target instance. If multiple values are supplied the parameter will be added once per value. In case a single null value is entered, all parameters with that name are removed (if present) from the collection of query parameters inherited from the current target. A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the newly constructed (child) target instance.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>WebTarget</class-interface>
      <method name="queryParam" return-type="jakarta.ws.rs.client.WebTarget">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Object[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>622</id>
      <description>Start building a request to the targeted web resource.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>WebTarget</class-interface>
      <method name="request" return-type="jakarta.ws.rs.client.Invocation.Invocation.Builder" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>623</id>
      <description>Start building a request to the targeted web resource and define the accepted response media types. Invoking this method is identical to: webTarget.request().accept(types);</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>WebTarget</class-interface>
      <method name="request" return-type="jakarta.ws.rs.client.Invocation.Invocation.Builder">
        <parameters>
          <parameter>java.lang.String[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>624</id>
      <description>Start building a request to the targeted web resource and define the accepted response media types. Invoking this method is identical to: webTarget.request().accept(types);</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>WebTarget</class-interface>
      <method name="request" return-type="jakarta.ws.rs.client.Invocation.Invocation.Builder">
        <parameters>
          <parameter>jakarta.ws.rs.core.MediaType[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>628</id>
      <description>Check if the asynchronous response instance has been cancelled. Method returns true if this asynchronous response has been canceled before completion.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>AsyncResponse</class-interface>
      <method name="isCancelled" return-type="boolean" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>629</id>
      <description>Check if the processing of a request this asynchronous response instance belongs to has finished. Method returns true if the processing of a request this asynchronous response is bound to is finished. The request processing may be finished due to a normal termination, a suspend timeout, or cancellation -- in all of these cases, this method will return true.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>AsyncResponse</class-interface>
      <method name="isDone" return-type="boolean" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>630</id>
      <description>Check if the asynchronous response instance is in a suspended state. Method returns true if this asynchronous response is still suspended and has not finished processing yet (either by resuming or canceling the response).</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>AsyncResponse</class-interface>
      <method name="isSuspended" return-type="boolean" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>645</id>
      <description>Set/replace a time-out handler for the suspended asynchronous response. The time-out handler will be invoked when the suspend period of this asynchronous response times out. The job of the time-out handler is to resolve the time-out situation by either resuming the suspended response cancelling the suspended response extending the suspend period by setting a new suspend time-out Note that in case the response is suspended #NO_TIMEOUT indefinitely, the time-out handler may never be invoked.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>AsyncResponse</class-interface>
      <method name="setTimeoutHandler" return-type="void">
        <parameters>
          <parameter>jakarta.ws.rs.container.TimeoutHandler</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="false" impl-spec="false" status="active" testable="true">
      <id>648</id>
      <description>This callback notification method is invoked in case the container detects that the remote client connection associated with the asynchronous response has been disconnected.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ConnectionCallback</class-interface>
      <method name="onDisconnect" return-type="void">
        <parameters>
          <parameter>jakarta.ws.rs.container.AsyncResponse</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>649</id>
      <description>Abort the filter chain with a response. This method breaks the filter chain processing and returns the provided response back to the client. The provided response goes through the chain of applicable response filters.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerRequestContext</class-interface>
      <method name="abortWith" return-type="void">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>650</id>
      <description>Get a list of languages that are acceptable for the response.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerRequestContext</class-interface>
      <method name="getAcceptableLanguages" return-type="java.util.List" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>651</id>
      <description>Get a list of media types that are acceptable for the response.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerRequestContext</class-interface>
      <method name="getAcceptableMediaTypes" return-type="java.util.List" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>652</id>
      <description>Get any cookies that accompanied the request.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerRequestContext</class-interface>
      <method name="getCookies" return-type="java.util.Map" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>653</id>
      <description>Get message date.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerRequestContext</class-interface>
      <method name="getDate" return-type="java.util.Date" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>654</id>
      <description>Get the entity input stream. The JAX-RS runtime is responsible for closing the input stream.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerRequestContext</class-interface>
      <method name="getEntityStream" return-type="java.io.InputStream" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>655</id>
      <description>Get the mutable request headers multivalued map.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerRequestContext</class-interface>
      <method name="getHeaders" return-type="jakarta.ws.rs.core.MultivaluedMap" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>656</id>
      <description>Get a message header as a single string value.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerRequestContext</class-interface>
      <method name="getHeaderString" return-type="java.lang.String">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>657</id>
      <description>Get the language of the entity.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerRequestContext</class-interface>
      <method name="getLanguage" return-type="java.util.Locale" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>658</id>
      <description>Get Content-Length value.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerRequestContext</class-interface>
      <method name="getLength" return-type="int" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>659</id>
      <description>Get the media type of the entity.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerRequestContext</class-interface>
      <method name="getMediaType" return-type="jakarta.ws.rs.core.MediaType" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>660</id>
      <description>Get the request method.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerRequestContext</class-interface>
      <method name="getMethod" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>661</id>
      <description>Returns the property with the given name registered in the current request/response exchange context, or null if there is no property by that name. A property allows a JAX-RS filters and interceptors to exchange additional custom information not already provided by this interface. A list of supported properties can be retrieved using #getPropertyNames(). Custom property names should follow the same convention as package names. In a Servlet container, the properties are synchronized with the ServletRequest and expose all the attributes available in the ServletRequest. Any modifications of the properties are also reflected in the set of properties of the associated ServletRequest.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerRequestContext</class-interface>
      <method name="getProperty" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>663</id>
      <description>Get the injectable request information.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerRequestContext</class-interface>
      <method name="getRequest" return-type="jakarta.ws.rs.core.Request" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>664</id>
      <description>Get the injectable security context information for the current request. The SecurityContext#getUserPrincipal() must return null if the current request has not been authenticated.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerRequestContext</class-interface>
      <method name="getSecurityContext" return-type="jakarta.ws.rs.core.SecurityContext" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>665</id>
      <description>Get request URI information. The returned object contains "live" view of the request URI information in a sense that any changes made to the request URI using one of the setRequestUri(...) methods will be reflected in the previously returned UriInfo instance.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerRequestContext</class-interface>
      <method name="getUriInfo" return-type="jakarta.ws.rs.core.UriInfo" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>666</id>
      <description>Check if there is a non-empty entity input stream available in the request message. The method returns true if the entity is present, returns false otherwise.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerRequestContext</class-interface>
      <method name="hasEntity" return-type="boolean" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>667</id>
      <description>Removes a property with the given name from the current request/response exchange context. After removal, subsequent calls to #getProperty to retrieve the property value will return null. In a Servlet container, the properties are synchronized with the ServletRequest and expose all the attributes available in the ServletRequest. Any modifications of the properties are also reflected in the set of properties of the associated ServletRequest.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerRequestContext</class-interface>
      <method name="removeProperty" return-type="void">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>668</id>
      <description>Set a new entity input stream. The JAX-RS runtime is responsible for closing the input stream.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerRequestContext</class-interface>
      <method name="setEntityStream" return-type="void">
        <parameters>
          <parameter>java.io.InputStream</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>669</id>
      <description>Set the request method. Note that the method is usable only in pre-matching filters, prior to the resource matching occurs. Trying to invoke the method in a filter bound to a resource method results in an IllegalStateException being thrown.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerRequestContext</class-interface>
      <method name="setMethod" return-type="void">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>671</id>
      <description>Binds an object to a given property name in the current request/response exchange context. If the name specified is already used for a property, this method will replace the value of the property with the new value. A property allows a JAX-RS filters and interceptors to exchange additional custom information not already provided by this interface. A list of supported properties can be retrieved using #getPropertyNames(). Custom property names should follow the same convention as package names. If a null value is passed, the effect is the same as calling the #removeProperty(String) method. In a Servlet container, the properties are synchronized with the ServletRequest and expose all the attributes available in the ServletRequest. Any modifications of the properties are also reflected in the set of properties of the associated ServletRequest.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerRequestContext</class-interface>
      <method name="setProperty" return-type="void">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>672</id>
      <description>Set a new request URI using the current base URI of the application to resolve the application-specific request URI part. Note that the method is usable only in pre-matching filters, prior to the resource matching occurs. Trying to invoke the method in a filter bound to a resource method results in an IllegalStateException being thrown.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerRequestContext</class-interface>
      <method name="setRequestUri" return-type="void">
        <parameters>
          <parameter>java.net.URI</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>674</id>
      <description>Set a new request URI using a new base URI to resolve the application-specific request URI part. Note that the method is usable only in pre-matching filters, prior to the resource matching occurs. Trying to invoke the method in a filter bound to a resource method results in an IllegalStateException being thrown.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerRequestContext</class-interface>
      <method name="setRequestUri" return-type="void">
        <parameters>
          <parameter>java.net.URI</parameter>
          <parameter>java.net.URI</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>676</id>
      <description>Set a new injectable security context information for the current request. The SecurityContext#getUserPrincipal() must return null if the current request has not been authenticated.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerRequestContext</class-interface>
      <method name="setSecurityContext" return-type="void">
        <parameters>
          <parameter>jakarta.ws.rs.core.SecurityContext</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>677</id>
      <description>Filter method called before a request has been dispatched to a resource. Filters in the filter chain are ordered according to their jakarta.annotation.Priority class-level annotation value. If a request filter produces a response by calling ContainerRequestContext#abortWith method, the execution of the (either pre-match or post-match) request filter chain is stopped and the response is passed to the corresponding response filter chain (either pre-match or post-match). For example, a pre-match caching filter may produce a response in this way, which would effectively skip any post-match request filters as well as post-match response filters. Note however that a responses produced in this manner would still be processed by the pre-match response filter chain.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerRequestFilter</class-interface>
      <method name="filter" return-type="void">
        <parameters>
          <parameter>jakarta.ws.rs.container.ContainerRequestContext</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>678</id>
      <description>if an I/O exception occurs.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerRequestFilter</class-interface>
      <method name="filter" return-type="void">
        <parameters>
          <parameter>jakarta.ws.rs.container.ContainerRequestContext</parameter>
        </parameters>
        <throw>java.io.IOException</throw>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>679</id>
      <description>Get the allowed HTTP methods from the Allow HTTP header.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerResponseContext</class-interface>
      <method name="getAllowedMethods" return-type="java.util.Set" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>680</id>
      <description>Get any new cookies set on the response message.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerResponseContext</class-interface>
      <method name="getCookies" return-type="java.util.Map" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>681</id>
      <description>Get message date.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerResponseContext</class-interface>
      <method name="getDate" return-type="java.util.Date" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>682</id>
      <description>Get the message entity Java instance. Returns null if the message does not contain an entity.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerResponseContext</class-interface>
      <method name="getEntity" return-type="java.lang.Object" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>683</id>
      <description>Get the annotations attached to the entity instance. Note that the returned annotations array contains only those annotations explicitly attached to entity instance (such as the ones attached using jakarta.ws.rs.core.Response.ResponseBuilder#entity(Object, java.lang.annotation.Annotation[]) method as well as the ones attached to the resource method that has returned the response). The entity instance annotations array does not include annotations declared on the entity implementation class or its ancestors. Note that container response filters invoked earlier in the filter chain may modify the entity annotations value, in which case this getter method would return the last annotations value set by a container response filter invoked earlier in the filter chain. For example: #64;Path("my-resource") public class MyResource { private final Annotations[] extras = ... ; #64;GET #64;Custom public String getAnnotatedMe() { return Response.ok().entity("Annotated me", extras).build(); } ... } The container response context for a response returned from the getMe() method above would contain all the annotations declared on the getAnnotatedMe() method ( #64;GET, #64;Custom) as well as all the annotations from the extras field, provided this value has not been replaced by any container response filter invoked earlier. Similarly: #64;Custom public class AnnotatedMe { ... } #64;Path("my-resource") public class MyResource { private final Annotations[] extras = ... ; #64;GET public AnnotatedMe getMe() { return Response.ok().entity(new AnnotatedMe(), extras).build(); } ... } Provided that the value has not been replaced by any container response filter invoked earlier, the container response context for a response returned from the getMe() method above would contain all the annotations on the getMe() method ( #64;GET) as well as all the annotations from the extras field. It would however not contain any annotations declared on the AnnotatedMe class.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerResponseContext</class-interface>
      <method name="getEntityAnnotations" return-type="java.lang.annotation.Annotation[]" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>684</id>
      <description>Get the raw entity type information.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerResponseContext</class-interface>
      <method name="getEntityClass" return-type="java.lang.Class" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>685</id>
      <description>Get the entity output stream. The JAX-RS runtime is responsible for closing the output stream.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerResponseContext</class-interface>
      <method name="getEntityStream" return-type="java.io.OutputStream" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>686</id>
      <description>Get the entity tag.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerResponseContext</class-interface>
      <method name="getEntityTag" return-type="jakarta.ws.rs.core.EntityTag" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>687</id>
      <description>Get the generic entity type information.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerResponseContext</class-interface>
      <method name="getEntityType" return-type="java.lang.reflect.Type" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>688</id>
      <description>Get the mutable response headers multivalued map.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerResponseContext</class-interface>
      <method name="getHeaders" return-type="jakarta.ws.rs.core.MultivaluedMap" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>689</id>
      <description>Get a message header as a single string value. Each single header value is converted to String using a jakarta.ws.rs.ext.RuntimeDelegate.HeaderDelegate if one is available via jakarta.ws.rs.ext.RuntimeDelegate#createHeaderDelegate(java.lang.Class) for the header value class or using its toString method if a header delegate is not available.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerResponseContext</class-interface>
      <method name="getHeaderString" return-type="java.lang.String">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>690</id>
      <description>Get the language of the entity.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerResponseContext</class-interface>
      <method name="getLanguage" return-type="java.util.Locale" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>691</id>
      <description>Get the last modified date.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerResponseContext</class-interface>
      <method name="getLastModified" return-type="java.util.Date" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>692</id>
      <description>Get Content-Length value.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerResponseContext</class-interface>
      <method name="getLength" return-type="int" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>693</id>
      <description>Get the link for the relation.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerResponseContext</class-interface>
      <method name="getLink" return-type="jakarta.ws.rs.core.Link">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>694</id>
      <description>Convenience method that returns a jakarta.ws.rs.core.Link.Builder Link.Builder for the relation.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerResponseContext</class-interface>
      <method name="getLinkBuilder" return-type="jakarta.ws.rs.core.Link.Link.Builder">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>695</id>
      <description>Get the links attached to the message as header.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerResponseContext</class-interface>
      <method name="getLinks" return-type="java.util.Set" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>696</id>
      <description>Get the location.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerResponseContext</class-interface>
      <method name="getLocation" return-type="java.net.URI" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>697</id>
      <description>Get the media type of the entity.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerResponseContext</class-interface>
      <method name="getMediaType" return-type="jakarta.ws.rs.core.MediaType" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>698</id>
      <description>Get the status code associated with the response.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerResponseContext</class-interface>
      <method name="getStatus" return-type="int" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>699</id>
      <description>Get the complete status information associated with the response.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerResponseContext</class-interface>
      <method name="getStatusInfo" return-type="jakarta.ws.rs.core.Response.Response.StatusType" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>700</id>
      <description>Get a string view of header values associated with the message. Changes in the underlying #getHeaders() headers map are reflected in this view. The method converts the non-string header values to strings using a jakarta.ws.rs.ext.RuntimeDelegate.HeaderDelegate if one is available via jakarta.ws.rs.ext.RuntimeDelegate#createHeaderDelegate(java.lang.Class) for the class of the value or using the values toString method if a header delegate is not available.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerResponseContext</class-interface>
      <method name="getStringHeaders" return-type="jakarta.ws.rs.core.MultivaluedMap" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>701</id>
      <description>Check if there is an entity available in the response. The method returns true if the entity is present, returns false otherwise.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerResponseContext</class-interface>
      <method name="hasEntity" return-type="boolean" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>702</id>
      <description>Check if link for relation exists.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerResponseContext</class-interface>
      <method name="hasLink" return-type="boolean">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>703</id>
      <description>Set a new message entity, including the attached annotations and the media type. It is the callers responsibility to wrap the actual entity with jakarta.ws.rs.core.GenericEntity if preservation of its generic type is required.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerResponseContext</class-interface>
      <method name="setEntity" return-type="void">
        <parameters>
          <parameter>java.lang.Object</parameter>
          <parameter>java.lang.annotation.Annotation[]</parameter>
          <parameter>jakarta.ws.rs.core.MediaType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>704</id>
      <description>Set a new entity output stream. The JAX-RS runtime is responsible for closing the output stream.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerResponseContext</class-interface>
      <method name="setEntityStream" return-type="void">
        <parameters>
          <parameter>java.io.OutputStream</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>705</id>
      <description>Set a new response status code.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerResponseContext</class-interface>
      <method name="setStatus" return-type="void">
        <parameters>
          <parameter>int</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>706</id>
      <description>Set the complete status information (status code and reason phrase) associated with the response.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerResponseContext</class-interface>
      <method name="setStatusInfo" return-type="void">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response.Response.StatusType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>707</id>
      <description>Filter method called after a response has been provided for a request (either by a ContainerRequestFilter request filter or by a matched resource method. Filters in the filter chain are ordered according to their jakarta.annotation.Priority class-level annotation value.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerResponseFilter</class-interface>
      <method name="filter" return-type="void">
        <parameters>
          <parameter>jakarta.ws.rs.container.ContainerRequestContext</parameter>
          <parameter>jakarta.ws.rs.container.ContainerResponseContext</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>708</id>
      <description>if an I/O exception occurs.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerResponseFilter</class-interface>
      <method name="filter" return-type="void">
        <parameters>
          <parameter>jakarta.ws.rs.container.ContainerRequestContext</parameter>
          <parameter>jakarta.ws.rs.container.ContainerResponseContext</parameter>
        </parameters>
        <throw>java.io.IOException</throw>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>710</id>
      <description>Get a resolved instance of a resource or sub-resource class. The resolved resource instance is properly initialized in the context of the current request processing scope. The scope of the resolved resource instance depends on the managing container. For resources managed by JAX-RS container the default scope is per-request.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ResourceContext</class-interface>
      <method name="getResource" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>721</id>
      <description>Get the resource class that is the target of a request, or null if this information is not available.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ResourceInfo</class-interface>
      <method name="getResourceClass" return-type="java.lang.Class" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>722</id>
      <description>Get the resource method that is the target of a request, or null if this information is not available.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ResourceInfo</class-interface>
      <method name="getResourceMethod" return-type="java.lang.reflect.Method" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>725</id>
      <description>Invoked when the suspended asynchronous response is about to time out. Implementing time-out handlers may use the callback method to change the default time-out strategy defined by JAX-RS specification (see jakarta.ws.rs.container.AsyncResponse API documentation). A custom time-out handler may decide to either resume the suspended response using one of its resume(...) methods, cancel the suspended response using one of its cancel(...) methods, or extend the suspend period by AsyncResponse#setTimeout(long, java.util.concurrent.TimeUnit) setting a new suspend time-out In case the time-out handler does not take any of the actions mentioned above, a default time-out strategy is executed by the JAX-RS runtime.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>TimeoutHandler</class-interface>
      <method name="handleTimeout" return-type="void">
        <parameters>
          <parameter>jakarta.ws.rs.container.AsyncResponse</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>726</id>
      <description>Initialize the backing store in the abstract parent multivalued map implementation.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>AbstractMultivaluedMap</class-interface>
      <method name="AbstractMultivaluedMap" return-type="AbstractMultivaluedMap">
        <parameters>
          <parameter>java.util.Map</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>727</id>
      <description>Add a value to the current list of values for the supplied key. NOTE: This implementation ignores null values; A supplied value of null is ignored and not added to the value list. Overriding implementations may modify this behavior by redefining the #addNull(java.util.List) method.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>AbstractMultivaluedMap</class-interface>
      <method name="add" return-type="void">
        <parameters>
          <parameter>java.lang.Object</parameter>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>728</id>
      <description>Add multiple values to the current list of values for the supplied key. If the supplied array of new values is empty, method returns immediately. Method throws a NullPointerException if the supplied array of values is null. NOTE: This implementation ignores null values; Any of the supplied values of null is ignored and not added to the value list. Overriding implementations may modify this behavior by redefining the #addNull(java.util.List) method.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>AbstractMultivaluedMap</class-interface>
      <method name="addAll" return-type="void">
        <parameters>
          <parameter>java.lang.Object</parameter>
          <parameter>java.lang.Object[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>729</id>
      <description>Add all the values from the supplied value list to the current list of values for the supplied key. If the supplied value list is empty, method returns immediately. Method throws a NullPointerException if the supplied array of values is null. NOTE: This implementation ignores null values; Any null value in the supplied value list is ignored and not added to the value list. Overriding implementations may modify this behavior by redefining the #addNull(java.util.List) method.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>AbstractMultivaluedMap</class-interface>
      <method name="addAll" return-type="void">
        <parameters>
          <parameter>java.lang.Object</parameter>
          <parameter>java.util.List</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>730</id>
      <description>Add a value to the first position in the current list of values for the supplied key. NOTE: This implementation ignores null values; A supplied value of null is ignored and not added to the purged value list. Overriding implementations may modify this behavior by redefining the #addFirstNull(java.util.List) method.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>AbstractMultivaluedMap</class-interface>
      <method name="addFirst" return-type="void">
        <parameters>
          <parameter>java.lang.Object</parameter>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>731</id>
      <description />
      <package>jakarta.ws.rs.core</package>
      <class-interface>AbstractMultivaluedMap</class-interface>
      <method name="clear" return-type="void" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>732</id>
      <description />
      <package>jakarta.ws.rs.core</package>
      <class-interface>AbstractMultivaluedMap</class-interface>
      <method name="containsKey" return-type="boolean">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>733</id>
      <description />
      <package>jakarta.ws.rs.core</package>
      <class-interface>AbstractMultivaluedMap</class-interface>
      <method name="containsValue" return-type="boolean">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>734</id>
      <description />
      <package>jakarta.ws.rs.core</package>
      <class-interface>AbstractMultivaluedMap</class-interface>
      <method name="entrySet" return-type="java.util.Set" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>735</id>
      <description>This implementation delegates the method call to to the the underlying [key, multi-value] store. This implementation delegates the method call to to the the underlying [key, multi-value] store.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>AbstractMultivaluedMap</class-interface>
      <method name="equals" return-type="boolean">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>736</id>
      <description>Compare the specified map with this map for equality modulo the order of values for each key. Specifically, the values associated with each key are compared as if they were ordered lists.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>AbstractMultivaluedMap</class-interface>
      <method name="equalsIgnoreValueOrder" return-type="boolean">
        <parameters>
          <parameter>jakarta.ws.rs.core.MultivaluedMap</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>737</id>
      <description />
      <package>jakarta.ws.rs.core</package>
      <class-interface>AbstractMultivaluedMap</class-interface>
      <method name="get" return-type="java.util.List">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>738</id>
      <description>A shortcut to get the first value of the supplied key.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>AbstractMultivaluedMap</class-interface>
      <method name="getFirst" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>739</id>
      <description>This implementation delegates the method call to to the the underlying [key, multi-value] store. This implementation delegates the method call to to the the underlying [key, multi-value] store.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>AbstractMultivaluedMap</class-interface>
      <method name="hashCode" return-type="int" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>740</id>
      <description />
      <package>jakarta.ws.rs.core</package>
      <class-interface>AbstractMultivaluedMap</class-interface>
      <method name="isEmpty" return-type="boolean" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>741</id>
      <description />
      <package>jakarta.ws.rs.core</package>
      <class-interface>AbstractMultivaluedMap</class-interface>
      <method name="keySet" return-type="java.util.Set" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>742</id>
      <description />
      <package>jakarta.ws.rs.core</package>
      <class-interface>AbstractMultivaluedMap</class-interface>
      <method name="put" return-type="java.util.List">
        <parameters>
          <parameter>java.lang.Object</parameter>
          <parameter>java.util.List</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>743</id>
      <description />
      <package>jakarta.ws.rs.core</package>
      <class-interface>AbstractMultivaluedMap</class-interface>
      <method name="putAll" return-type="void">
        <parameters>
          <parameter>java.util.Map</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>744</id>
      <description>Set the value for the key to be a one item list consisting of the supplied value. Any existing values will be replaced. NOTE: This implementation ignores null values; A supplied value of null is ignored and not added to the purged value list. As a result of such operation, empty value list would be registered for the supplied key. Overriding implementations may modify this behavior by redefining the #addNull(java.util.List) method.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>AbstractMultivaluedMap</class-interface>
      <method name="putSingle" return-type="void">
        <parameters>
          <parameter>java.lang.Object</parameter>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>745</id>
      <description />
      <package>jakarta.ws.rs.core</package>
      <class-interface>AbstractMultivaluedMap</class-interface>
      <method name="remove" return-type="java.util.List">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>746</id>
      <description />
      <package>jakarta.ws.rs.core</package>
      <class-interface>AbstractMultivaluedMap</class-interface>
      <method name="size" return-type="int" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>747</id>
      <description />
      <package>jakarta.ws.rs.core</package>
      <class-interface>AbstractMultivaluedMap</class-interface>
      <method name="toString" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>748</id>
      <description />
      <package>jakarta.ws.rs.core</package>
      <class-interface>AbstractMultivaluedMap</class-interface>
      <method name="values" return-type="java.util.Collection" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>754</id>
      <description>Register a class of a custom JAX-RS component (such as an extension provider or a jakarta.ws.rs.core.Feature feature meta-provider) to be instantiated and used in the scope of this configurable context. Implementations SHOULD warn about and ignore registrations that do not conform to the requirements of supported JAX-RS component types in the given configurable context. Any subsequent registration attempts for a component type, for which a class or instance-based registration already exists in the system MUST be rejected by the JAX-RS implementation and a warning SHOULD be raised to inform the user about the rejected registration. The registered JAX-RS component class is registered as a contract provider of all the recognized JAX-RS or implementation-specific extension contracts including meta-provider contracts, such as Feature or jakarta.ws.rs.container.DynamicFeature. As opposed to component instances registered via #register(Object) method, the lifecycle of components registered using this class-based register(...) method is fully managed by the JAX-RS implementation or any underlying IoC container supported by the implementation.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Configurable</class-interface>
      <method name="register" return-type="jakarta.ws.rs.core.Configurable">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>755</id>
      <description>Register a class of a custom JAX-RS component (such as an extension provider or a jakarta.ws.rs.core.Feature feature meta-provider) to be instantiated and used in the scope of this configurable context. This registration method provides the same functionality as #register(Class) except that any priority specified on the registered JAX-RS component class via jakarta.annotation.Priority annotation is overridden with the supplied priority value. Note that in case the priority is not applicable to a particular provider contract implemented by the class of the registered component, the supplied priority value will be ignored for that contract.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Configurable</class-interface>
      <method name="register" return-type="jakarta.ws.rs.core.Configurable">
        <parameters>
          <parameter>java.lang.Class</parameter>
          <parameter>int</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>756</id>
      <description>Register a class of a custom JAX-RS component (such as an extension provider or a jakarta.ws.rs.core.Feature feature meta-provider) to be instantiated and used in the scope of this configurable context. This registration method provides the same functionality as #register(Class) except the JAX-RS component class is only registered as a provider of the listed extension provider or meta-provider contracts. All explicitly enumerated contract types must represent a class or an interface implemented or extended by the registered component. Contracts that are not Class#isAssignableFrom(Class) assignable from the registered component class MUST be ignored and implementations SHOULD raise a warning to inform users about the ignored contract(s).</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Configurable</class-interface>
      <method name="register" return-type="jakarta.ws.rs.core.Configurable">
        <parameters>
          <parameter>java.lang.Class</parameter>
          <parameter>java.lang.Class[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>758</id>
      <description>Register an instance of a custom JAX-RS component (such as an extension provider or a jakarta.ws.rs.core.Feature feature meta-provider) to be instantiated and used in the scope of this configurable context. Implementations SHOULD warn about and ignore registrations that do not conform to the requirements of supported JAX-RS component types in the given configurable context. Any subsequent registration attempts for a component type, for which a class or instance-based registration already exists in the system MUST be rejected by the JAX-RS implementation and a warning SHOULD be raised to inform the user about the rejected registration. The registered JAX-RS component is registered as a contract provider of all the recognized JAX-RS or implementation-specific extension contracts including meta-provider contracts, such as Feature or jakarta.ws.rs.container.DynamicFeature. As opposed to components registered via #register(Class) method, the lifecycle of providers registered using this instance-based register(...) is not managed by JAX-RS runtime. The same registered component instance is used during the whole lifespan of the configurable context. Fields and properties of all registered JAX-RS component instances are injected with their declared dependencies (see Context) by the JAX-RS runtime prior to use.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Configurable</class-interface>
      <method name="register" return-type="jakarta.ws.rs.core.Configurable">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>759</id>
      <description>Register an instance of a custom JAX-RS component (such as an extension provider or a jakarta.ws.rs.core.Feature feature meta-provider) to be instantiated and used in the scope of this configurable context. This registration method provides the same functionality as #register(Object) except that any priority specified on the registered JAX-RS component class via jakarta.annotation.Priority annotation is overridden with the supplied priority value. Note that in case the priority is not applicable to a particular provider contract implemented by the class of the registered component, the supplied priority value will be ignored for that contract.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Configurable</class-interface>
      <method name="register" return-type="jakarta.ws.rs.core.Configurable">
        <parameters>
          <parameter>java.lang.Object</parameter>
          <parameter>int</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>760</id>
      <description>Register an instance of a custom JAX-RS component (such as an extension provider or a jakarta.ws.rs.core.Feature feature meta-provider) to be instantiated and used in the scope of this configurable context. This registration method provides the same functionality as #register(Object) except the JAX-RS component class is only registered as a provider of the listed extension provider or meta-provider contracts. All explicitly enumerated contract types must represent a class or an interface implemented or extended by the registered component. Contracts that are not Class#isAssignableFrom(Class) assignable from the registered component class MUST be ignored and implementations SHOULD raise a warning to inform users about the ignored contract(s).</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Configurable</class-interface>
      <method name="register" return-type="jakarta.ws.rs.core.Configurable">
        <parameters>
          <parameter>java.lang.Object</parameter>
          <parameter>java.lang.Class[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>765</id>
      <description>Returns multivalued map representation of the form.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Form</class-interface>
      <method name="asMap" return-type="jakarta.ws.rs.core.MultivaluedMap" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>766</id>
      <description>Create a new form data instance. The underlying form parameter store is configured to preserve the insertion order of the parameters. I.e. parameters can be iterated in the same order as they were inserted into the Form.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Form</class-interface>
      <method name="Form" return-type="Form" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>767</id>
      <description>Create a new form data instance with a single parameter entry. The underlying form parameter store is configured to preserve the insertion order of the parameters. I.e. parameters can be iterated in the same order as they were inserted into the Form.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Form</class-interface>
      <method name="Form" return-type="Form">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>768</id>
      <description>Create a new form data instance and register a custom underlying parameter store. This method is useful in situations when a custom parameter store is needed in order to change the default parameter iteration order, improve performance or facilitate other custom requirements placed on the parameter store.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Form</class-interface>
      <method name="Form" return-type="Form">
        <parameters>
          <parameter>jakarta.ws.rs.core.MultivaluedMap</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>769</id>
      <description>Adds a new value to the specified form parameter.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Form</class-interface>
      <method name="param" return-type="jakarta.ws.rs.core.Form">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>770</id>
      <description />
      <package>jakarta.ws.rs.core</package>
      <class-interface>GenericEntity</class-interface>
      <method name="equals" return-type="boolean">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>771</id>
      <description />
      <package>jakarta.ws.rs.core</package>
      <class-interface>GenericEntity</class-interface>
      <method name="hashCode" return-type="int" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>772</id>
      <description />
      <package>jakarta.ws.rs.core</package>
      <class-interface>GenericEntity</class-interface>
      <method name="toString" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>773</id>
      <description />
      <package>jakarta.ws.rs.core</package>
      <class-interface>GenericType</class-interface>
      <method name="equals" return-type="boolean">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>774</id>
      <description>Constructs a new generic type, supplying the generic type information and deriving the class.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>GenericType</class-interface>
      <method name="GenericType" return-type="GenericType">
        <parameters>
          <parameter>java.lang.reflect.Type</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>775</id>
      <description>Returns the object representing the class or interface that declared the type represented by this generic type instance.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>GenericType</class-interface>
      <method name="getRawType" return-type="java.lang.Class" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>776</id>
      <description>Retrieve the type represented by the generic type instance.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>GenericType</class-interface>
      <method name="getType" return-type="java.lang.reflect.Type" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>777</id>
      <description />
      <package>jakarta.ws.rs.core</package>
      <class-interface>GenericType</class-interface>
      <method name="hashCode" return-type="int" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>778</id>
      <description />
      <package>jakarta.ws.rs.core</package>
      <class-interface>GenericType</class-interface>
      <method name="toString" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>779</id>
      <description>Get message date.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>HttpHeaders</class-interface>
      <method name="getDate" return-type="java.util.Date" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>780</id>
      <description>Get a HTTP header as a single string value. Each single header value is converted to String using a jakarta.ws.rs.ext.RuntimeDelegate.HeaderDelegate if one is available via jakarta.ws.rs.ext.RuntimeDelegate#createHeaderDelegate(java.lang.Class) for the header value class or using its toString method if a header delegate is not available.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>HttpHeaders</class-interface>
      <method name="getHeaderString" return-type="java.lang.String">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>781</id>
      <description>Get Content-Length value.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>HttpHeaders</class-interface>
      <method name="getLength" return-type="int" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>783</id>
      <description>Create a new builder instance initialized from another link.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link</class-interface>
      <method name="fromLink" return-type="jakarta.ws.rs.core.Link.Link.Builder">
        <parameters>
          <parameter>jakarta.ws.rs.core.Link</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>788</id>
      <description>Create a new builder instance initialized from an existing URI.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link</class-interface>
      <method name="fromUri" return-type="jakarta.ws.rs.core.Link.Link.Builder">
        <parameters>
          <parameter>java.net.URI</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>790</id>
      <description>Create a new builder instance initialized from an existing URI represented as a string.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link</class-interface>
      <method name="fromUri" return-type="jakarta.ws.rs.core.Link.Link.Builder">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>792</id>
      <description>Returns an immutable map that includes all the link parameters defined on this link. If defined, this map will include entries for rel, title and type.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link</class-interface>
      <method name="getParams" return-type="java.util.Map" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>793</id>
      <description>Returns the value associated with the link rel param, or null if this param is not specified.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link</class-interface>
      <method name="getRel" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>794</id>
      <description>Returns the value associated with the link title param, or null if this param is not specified.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link</class-interface>
      <method name="getTitle" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>795</id>
      <description>Returns the value associated with the link type param, or null if this param is not specified.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link</class-interface>
      <method name="getType" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>796</id>
      <description>Returns the underlying URI associated with this link.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link</class-interface>
      <method name="getUri" return-type="java.net.URI" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>797</id>
      <description>Convenience method that returns a jakarta.ws.rs.core.UriBuilder initialized with this link's underlying URI.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link</class-interface>
      <method name="getUriBuilder" return-type="jakarta.ws.rs.core.UriBuilder" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>799</id>
      <description />
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link</class-interface>
      <method name="Link" return-type="Link" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>800</id>
      <description>Returns a string representation as a link header (RFC 5988). All link params are serialized as link-param="value" where value is a quoted-string. For example, ; title="employee"; rel="manager friend"</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link</class-interface>
      <method name="toString" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>801</id>
      <description>Simple parser to convert link header string representations into a link. link ::= '' (';' link-param)* link-param ::= name '=' quoted-string See RFC 5988 for more information.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link</class-interface>
      <method name="valueOf" return-type="jakarta.ws.rs.core.Link">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>804</id>
      <description>Finish building this link using the supplied values as URI parameters. The state of the builder is unaffected; this method may be called multiple times on the same builder instance.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link.Builder</class-interface>
      <method name="build" return-type="jakarta.ws.rs.core.Link">
        <parameters>
          <parameter>java.lang.Object[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>807</id>
      <description>Set an arbitrary parameter on this link. Note that link parameters are those defined in RFC 5988 and should not be confused with URI parameters which can be specified when calling #build(Object...).</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link.Builder</class-interface>
      <method name="param" return-type="jakarta.ws.rs.core.Link.Link.Builder">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>809</id>
      <description>Convenience method to set a link relation. More than one rel value can be specified by using one or more whitespace characters as delimiters according to RFC 5988. The effect of calling this method is cumulative; relations are appended using a single space character as separator.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link.Builder</class-interface>
      <method name="rel" return-type="jakarta.ws.rs.core.Link.Link.Builder">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>810</id>
      <description>Convenience method to set a title on this link.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link.Builder</class-interface>
      <method name="title" return-type="jakarta.ws.rs.core.Link.Link.Builder">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>811</id>
      <description>Convenience method to set a type on this link.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link.Builder</class-interface>
      <method name="type" return-type="jakarta.ws.rs.core.Link.Link.Builder">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>812</id>
      <description>Set underlying URI template for the link being constructed.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link.Builder</class-interface>
      <method name="uri" return-type="jakarta.ws.rs.core.Link.Link.Builder">
        <parameters>
          <parameter>java.net.URI</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>813</id>
      <description>Set underlying string representing URI template for the link being constructed.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link.Builder</class-interface>
      <method name="uri" return-type="jakarta.ws.rs.core.Link.Link.Builder">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>815</id>
      <description />
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link.JaxbAdapter</class-interface>
      <method name="Link.JaxbAdapter" return-type="Link.JaxbAdapter" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>816</id>
      <description>Convert a Link into a JaxbLink.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link.JaxbAdapter</class-interface>
      <method name="marshal" return-type="jakarta.ws.rs.core.Link.Link.JaxbLink">
        <parameters>
          <parameter>jakarta.ws.rs.core.Link</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>818</id>
      <description>Convert a JaxbLink into a Link.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link.JaxbAdapter</class-interface>
      <method name="unmarshal" return-type="jakarta.ws.rs.core.Link">
        <parameters>
          <parameter>jakarta.ws.rs.core.Link.Link.JaxbLink</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>820</id>
      <description>Get the parameter map for this link.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link.JaxbLink</class-interface>
      <method name="getParams" return-type="java.util.Map" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>821</id>
      <description>Get the underlying URI for this link.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link.JaxbLink</class-interface>
      <method name="getUri" return-type="java.net.URI" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>822</id>
      <description>Default constructor needed during unmarshalling.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link.JaxbLink</class-interface>
      <method name="Link.JaxbLink" return-type="Link.JaxbLink" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>823</id>
      <description>Construct an instance from a URI and no parameters.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link.JaxbLink</class-interface>
      <method name="Link.JaxbLink" return-type="Link.JaxbLink">
        <parameters>
          <parameter>java.net.URI</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>824</id>
      <description>Construct an instance from a URI and some parameters.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link.JaxbLink</class-interface>
      <method name="Link.JaxbLink" return-type="Link.JaxbLink">
        <parameters>
          <parameter>java.net.URI</parameter>
          <parameter>java.util.Map</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>825</id>
      <description>Creates a new instance of MediaType with the supplied type, subtype and parameter. RAMETER parameter.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>MediaType</class-interface>
      <method name="MediaType" return-type="MediaType">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>826</id>
      <description>Create a new MediaType instance with the same type, subtype and parameters copied from the original instance and the supplied parameter. RAMETER parameter.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>MediaType</class-interface>
      <method name="withCharset" return-type="jakarta.ws.rs.core.MediaType">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>827</id>
      <description>Constructs an empty multivalued hash map with the default initial capacity (16) and the default load factor (0.75).</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>MultivaluedHashMap</class-interface>
      <method name="MultivaluedHashMap" return-type="MultivaluedHashMap" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>828</id>
      <description>Constructs an empty multivalued hash map with the specified initial capacity and the default load factor (0.75).</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>MultivaluedHashMap</class-interface>
      <method name="MultivaluedHashMap" return-type="MultivaluedHashMap">
        <parameters>
          <parameter>int</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>829</id>
      <description>Constructs an empty multivalued hash map with the specified initial capacity and load factor.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>MultivaluedHashMap</class-interface>
      <method name="MultivaluedHashMap" return-type="MultivaluedHashMap">
        <parameters>
          <parameter>int</parameter>
          <parameter>float</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>830</id>
      <description>Constructs a new multivalued hash map with the same mappings as the specified MultivaluedMap . The List instances holding the values of each key are created anew instead of being reused.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>MultivaluedHashMap</class-interface>
      <method name="MultivaluedHashMap" return-type="MultivaluedHashMap">
        <parameters>
          <parameter>jakarta.ws.rs.core.MultivaluedMap</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>831</id>
      <description>Constructs a new multivalued hash map with the same mappings as the specified single-valued Map .</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>MultivaluedHashMap</class-interface>
      <method name="MultivaluedHashMap" return-type="MultivaluedHashMap">
        <parameters>
          <parameter>java.util.Map</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>832</id>
      <description>Add multiple values to the current list of values for the supplied key. If the supplied array of new values is empty, method returns immediately. Method throws a NullPointerException if the supplied array of values is null.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>MultivaluedMap</class-interface>
      <method name="addAll" return-type="void">
        <parameters>
          <parameter>java.lang.Object</parameter>
          <parameter>java.lang.Object[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>833</id>
      <description>Add all the values from the supplied value list to the current list of values for the supplied key. If the supplied value list is empty, method returns immediately. Method throws a NullPointerException if the supplied array of values is null.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>MultivaluedMap</class-interface>
      <method name="addAll" return-type="void">
        <parameters>
          <parameter>java.lang.Object</parameter>
          <parameter>java.util.List</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>834</id>
      <description>Add a value to the first position in the current list of values for the supplied key.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>MultivaluedMap</class-interface>
      <method name="addFirst" return-type="void">
        <parameters>
          <parameter>java.lang.Object</parameter>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>835</id>
      <description>Compare the specified map with this map for equality modulo the order of values for each key. Specifically, the values associated with each key are compared as if they were ordered lists.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>MultivaluedMap</class-interface>
      <method name="equalsIgnoreValueOrder" return-type="boolean">
        <parameters>
          <parameter>jakarta.ws.rs.core.MultivaluedMap</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>836</id>
      <description>Create a new ResponseBuilder with an ACCEPTED status.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="accepted" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>837</id>
      <description>Create a new ResponseBuilder with an ACCEPTED status that contains a representation. It is the callers responsibility to wrap the actual entity with GenericEntity if preservation of its generic type is required.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="accepted" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>838</id>
      <description>Buffer the message entity data. In case the message entity is backed by an unconsumed entity input stream, all the bytes of the original entity input stream are read and stored in a local buffer. The original entity input stream is consumed and automatically closed as part of the operation and the method returns true. In case the response entity instance is not backed by an unconsumed input stream an invocation of bufferEntity method is ignored and the method returns false. This operation is idempotent, i.e. it can be invoked multiple times with the same effect which also means that calling the bufferEntity() method on an already buffered (and thus closed) message instance is legal and has no further effect. Also, the result returned by the bufferEntity() method is consistent across all invocations of the method on the same Response instance. Buffering the message entity data allows for multiple invocations of readEntity(...) methods on the response instance. Note however, that once the response instance itself is #close() closed, the implementations are expected to release the buffered message entity data too. Therefore any subsequent attempts to read a message entity stream on such closed response will result in an IllegalStateException being thrown.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="bufferEntity" return-type="boolean" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>841</id>
      <description>Close the underlying message entity input stream (if available and open) as well as releases any other resources associated with the response (e.g. #bufferEntity() buffered message entity data). This operation is idempotent, i.e. it can be invoked multiple times with the same effect which also means that calling the close() method on an already closed message instance is legal and has no further effect. The close() method should be invoked on all instances that contain an un-consumed entity input stream to ensure the resources associated with the instance are properly cleaned-up and prevent potential memory leaks. This is typical for client-side scenarios where application layer code processes only the response headers and ignores the response entity. Any attempts to manipulate (read, get, buffer) a message entity on a closed response will result in an IllegalStateException being thrown.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="close" return-type="void" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>843</id>
      <description>Get the allowed HTTP methods from the Allow HTTP header.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="getAllowedMethods" return-type="java.util.Set" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>844</id>
      <description>Get any new cookies set on the response message.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="getCookies" return-type="java.util.Map" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>845</id>
      <description>Get message date.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="getDate" return-type="java.util.Date" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>847</id>
      <description>Get the entity tag.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="getEntityTag" return-type="jakarta.ws.rs.core.EntityTag" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>848</id>
      <description>Get view of the response headers and their object values. The underlying header data may be subsequently modified by the JAX-RS runtime on the server side. Changes in the underlying header data are reflected in this view. On the server-side, when the message is sent, the non-string values will be serialized using a jakarta.ws.rs.ext.RuntimeDelegate.HeaderDelegate if one is available via jakarta.ws.rs.ext.RuntimeDelegate#createHeaderDelegate(java.lang.Class) for the class of the value or using the values toString method if a header delegate is not available. On the client side, the returned map is identical to the one returned by #getStringHeaders().</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="getHeaders" return-type="jakarta.ws.rs.core.MultivaluedMap" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>849</id>
      <description>Get a message header as a single string value. Each single header value is converted to String using a jakarta.ws.rs.ext.RuntimeDelegate.HeaderDelegate if one is available via jakarta.ws.rs.ext.RuntimeDelegate#createHeaderDelegate(java.lang.Class) for the header value class or using its toString method if a header delegate is not available.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="getHeaderString" return-type="java.lang.String">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>850</id>
      <description>Get the language of the message entity.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="getLanguage" return-type="java.util.Locale" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>851</id>
      <description>Get the last modified date.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="getLastModified" return-type="java.util.Date" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>852</id>
      <description>Get Content-Length value.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="getLength" return-type="int" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>853</id>
      <description>Get the link for the relation. A relative link is resolved with respect to the actual request URI that produced this response. Note that request URIs may be updated by filters, so the actual request URI may differ from that in the original invocation.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="getLink" return-type="jakarta.ws.rs.core.Link">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>854</id>
      <description>Convenience method that returns a Link.Builder for the relation. See #getLink for more information.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="getLinkBuilder" return-type="jakarta.ws.rs.core.Link.Link.Builder">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>855</id>
      <description>Get the links attached to the message as headers. Any links in the message that are relative must be resolved with respect to the actual request URI that produced this response. Note that request URIs may be updated by filters, so the actual request URI may differ from that in the original invocation.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="getLinks" return-type="java.util.Set" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>856</id>
      <description>Get the location.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="getLocation" return-type="java.net.URI" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>857</id>
      <description>Get the media type of the message entity.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="getMediaType" return-type="jakarta.ws.rs.core.MediaType" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>858</id>
      <description>Get the complete status information associated with the response.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="getStatusInfo" return-type="jakarta.ws.rs.core.Response.Response.StatusType" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>859</id>
      <description>Get view of the response headers and their string values. The underlying header data may be subsequently modified by the JAX-RS runtime on the server side. Changes in the underlying header data are reflected in this view.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="getStringHeaders" return-type="jakarta.ws.rs.core.MultivaluedMap" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>860</id>
      <description>Check if there is an entity available in the response. The method returns true if the entity is present, returns false otherwise. Note that the method may return true also for response messages with a zero-length content, in case the and headers are specified in the message. In such case, an attempt to read the entity using one of the readEntity(...) methods will return a corresponding instance representing a zero-length entity for a given Java type or produce a ProcessingException in case no such instance is available for the Java type.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="hasEntity" return-type="boolean" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>862</id>
      <description>Check if link for relation exists.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="hasLink" return-type="boolean">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>863</id>
      <description>Read the message entity input stream as an instance of specified Java type using a jakarta.ws.rs.ext.MessageBodyReader that supports mapping the message entity stream onto the requested type. Method throws an ProcessingException if the content of the message cannot be mapped to an entity of the requested type and IllegalStateException in case the entity is not backed by an input stream or if the original entity input stream has already been consumed without #bufferEntity() buffering the entity data prior consuming. A message instance returned from this method will be cached for subsequent retrievals via #getEntity(). Unless the supplied entity type is an java.io.InputStream input stream, this method automatically #close() closes the an unconsumed original response entity data stream if open. In case the entity data has been buffered, the buffer will be reset prior consuming the buffered data to enable subsequent invocations of readEntity(...) methods on this response.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="readEntity" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>866</id>
      <description>Read the message entity input stream as an instance of specified Java type using a jakarta.ws.rs.ext.MessageBodyReader that supports mapping the message entity stream onto the requested type. Method throws an ProcessingException if the content of the message cannot be mapped to an entity of the requested type and IllegalStateException in case the entity is not backed by an input stream or if the original entity input stream has already been consumed without #bufferEntity() buffering the entity data prior consuming. A message instance returned from this method will be cached for subsequent retrievals via #getEntity(). Unless the supplied entity type is an java.io.InputStream input stream, this method automatically #close() closes the an unconsumed original response entity data stream if open. In case the entity data has been buffered, the buffer will be reset prior consuming the buffered data to enable subsequent invocations of readEntity(...) methods on this response.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="readEntity" return-type="java.lang.Object">
        <parameters>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>869</id>
      <description>Read the message entity input stream as an instance of specified Java type using a jakarta.ws.rs.ext.MessageBodyReader that supports mapping the message entity stream onto the requested type. Method throws an ProcessingException if the content of the message cannot be mapped to an entity of the requested type and IllegalStateException in case the entity is not backed by an input stream or if the original entity input stream has already been consumed without #bufferEntity() buffering the entity data prior consuming. A message instance returned from this method will be cached for subsequent retrievals via #getEntity(). Unless the supplied entity type is an java.io.InputStream input stream, this method automatically #close() closes the an unconsumed original response entity data stream if open. In case the entity data has been buffered, the buffer will be reset prior consuming the buffered data to enable subsequent invocations of readEntity(...) methods on this response.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="readEntity" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.Class</parameter>
          <parameter>java.lang.annotation.Annotation[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>872</id>
      <description>Read the message entity input stream as an instance of specified Java type using a jakarta.ws.rs.ext.MessageBodyReader that supports mapping the message entity stream onto the requested type. Method throws an ProcessingException if the content of the message cannot be mapped to an entity of the requested type and IllegalStateException in case the entity is not backed by an input stream or if the original entity input stream has already been consumed without #bufferEntity() buffering the entity data prior consuming. A message instance returned from this method will be cached for subsequent retrievals via #getEntity(). Unless the supplied entity type is an java.io.InputStream input stream, this method automatically #close() closes the an unconsumed original response entity data stream if open. In case the entity data has been buffered, the buffer will be reset prior consuming the buffered data to enable subsequent invocations of readEntity(...) methods on this response.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="readEntity" return-type="java.lang.Object">
        <parameters>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
          <parameter>java.lang.annotation.Annotation[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>875</id>
      <description>Set the list of allowed methods for the resource. Any duplicate method names will be truncated to a single entry.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.ResponseBuilder</class-interface>
      <method name="allow" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>java.lang.String[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>876</id>
      <description>Set the list of allowed methods for the resource.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.ResponseBuilder</class-interface>
      <method name="allow" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>java.util.Set</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>878</id>
      <description>Set the message entity content encoding.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.ResponseBuilder</class-interface>
      <method name="encoding" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>879</id>
      <description>Set the response entity in the builder. Any Java type instance for a response entity, that is supported by the runtime can be passed. It is the callers responsibility to wrap the actual entity with GenericEntity if preservation of its generic type is required. Note that the entity can be also set as an java.io.InputStream input stream. A specific entity media type can be set using one of the type(...) methods.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.ResponseBuilder</class-interface>
      <method name="entity" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>java.lang.Object</parameter>
          <parameter>java.lang.annotation.Annotation[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>880</id>
      <description>Add a link header.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.ResponseBuilder</class-interface>
      <method name="link" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>java.net.URI</parameter>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>881</id>
      <description>Add a link header.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.ResponseBuilder</class-interface>
      <method name="link" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>882</id>
      <description>Add one or more link headers.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.ResponseBuilder</class-interface>
      <method name="links" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>jakarta.ws.rs.core.Link[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>883</id>
      <description>Replaces all existing headers with the newly supplied headers.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.ResponseBuilder</class-interface>
      <method name="replaceAll" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>jakarta.ws.rs.core.MultivaluedMap</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>884</id>
      <description>Add a Vary header that lists the available variants.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.ResponseBuilder</class-interface>
      <method name="variants" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>jakarta.ws.rs.core.Variant[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>885</id>
      <description>Get the response status family for the status code.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.Status.Family</class-interface>
      <method name="familyOf" return-type="jakarta.ws.rs.core.Response.Status.Response.Status.Family">
        <parameters>
          <parameter>int</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>886</id>
      <description>Build a URI, using the supplied values in order to replace any URI template parameters. Values are converted to String using their toString() method and are then encoded to match the rules of the URI component to which they pertain. All '%' characters in the stringified values will be encoded. The state of the builder is unaffected; this method may be called multiple times on the same builder instance. All instances of the same template parameter will be replaced by the same value that corresponds to the position of the first instance of the template parameter. e.g. the template "{a}/{b}/{a}" with values {"x", "y", "z"} will result in the the URI "x/y/x", not "x/y/z". The encodeSlashInPath parameter may be used to override the default encoding of '/' characters in the stringified template values in cases when the template is part of the URI path component when using the #build(Object[]) method. If the encodeSlashInPath parameter is set to true (default), the slash ('/') characters in parameter values will be encoded if the template is placed in the URI path component. If set to false the default encoding behavior is overridden an slash characters in template values will not be encoded when used to substitute path templates.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="build" return-type="java.net.URI">
        <parameters>
          <parameter>java.lang.Object[]</parameter>
          <parameter>boolean</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>887</id>
      <description>if there are any URI template parameters without a supplied value, or if a value is null.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="build" return-type="java.net.URI">
        <parameters>
          <parameter>java.lang.Object[]</parameter>
          <parameter>boolean</parameter>
        </parameters>
        <throw>java.lang.IllegalArgumentException</throw>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="false">
      <id>888</id>
      <description>if a URI cannot be constructed based on the current state of the builder.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="build" return-type="java.net.URI">
        <parameters>
          <parameter>java.lang.Object[]</parameter>
          <parameter>boolean</parameter>
        </parameters>
        <throw>jakarta.ws.rs.core.UriBuilderException</throw>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>889</id>
      <description>Build a URI. Any URI template parameters will be replaced by the value in the supplied map. Values are converted to String using their toString() method and are then encoded to match the rules of the URI component to which they pertain. All '%' characters in the stringified values will be encoded. The state of the builder is unaffected; this method may be called multiple times on the same builder instance. The encodeSlashInPath parameter may be used to override the default encoding of '/' characters in the stringified template values in cases when the template is part of the URI path component when using the #buildFromMap(java.util.Map) method. If the encodeSlashInPath parameter is set to true (default), the slash ('/') characters in parameter values will be encoded if the template is placed in the URI path component. If set to false the default encoding behavior is overridden an slash characters in template values will not be encoded when used to substitute path templates.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="buildFromMap" return-type="java.net.URI">
        <parameters>
          <parameter>java.util.Map</parameter>
          <parameter>boolean</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>890</id>
      <description>if there are any URI template parameters without a supplied value, or if a template parameter value is null.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="buildFromMap" return-type="java.net.URI">
        <parameters>
          <parameter>java.util.Map</parameter>
          <parameter>boolean</parameter>
        </parameters>
        <throw>java.lang.IllegalArgumentException</throw>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="false">
      <id>891</id>
      <description>if a URI cannot be constructed based on the current state of the builder.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="buildFromMap" return-type="java.net.URI">
        <parameters>
          <parameter>java.util.Map</parameter>
          <parameter>boolean</parameter>
        </parameters>
        <throw>jakarta.ws.rs.core.UriBuilderException</throw>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>892</id>
      <description>Create a new instance initialized from a Link.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="fromLink" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>jakarta.ws.rs.core.Link</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>894</id>
      <description>Create a new instance representing a relative URI initialized from a jakarta.ws.rs.Path-annotated method. This method can only be used in cases where there is a single method with the specified name that is annotated with jakarta.ws.rs.Path.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="fromMethod" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>java.lang.Class</parameter>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>896</id>
      <description>Get the URI template string represented by this URI builder.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="toTemplate" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>897</id>
      <description>Parses the uriTemplate string and copies the parsed components of the supplied URI to the UriBuilder replacing any existing values for those components.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="uri" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>899</id>
      <description>Get the string representation of the variant language, or null if no language has been set.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Variant</class-interface>
      <method name="getLanguageString" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>900</id>
      <description>Create a new instance of Variant.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Variant</class-interface>
      <method name="Variant" return-type="Variant">
        <parameters>
          <parameter>jakarta.ws.rs.core.MediaType</parameter>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>901</id>
      <description>Create a new instance of Variant.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Variant</class-interface>
      <method name="Variant" return-type="Variant">
        <parameters>
          <parameter>jakarta.ws.rs.core.MediaType</parameter>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>902</id>
      <description>Create a new instance of Variant.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Variant</class-interface>
      <method name="Variant" return-type="Variant">
        <parameters>
          <parameter>jakarta.ws.rs.core.MediaType</parameter>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>903</id>
      <description>Get an array of the annotations formally declared on the artifact that initiated the intercepted entity provider invocation. E.g. if the message body is to be converted into a method parameter, this will be the annotations on that parameter returned by java.lang.reflect.Method#getParameterAnnotations Method.getParameterAnnotations(); if the server-side response entity instance is to be converted into an output stream, this will be the annotations on the matched resource method returned by java.lang.reflect.Method#getAnnotations() Method.getAnnotations(). This method may return an empty array in case the interceptor is not invoked in a context of any particular resource method (e.g. as part of the client API), but will never return null.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>InterceptorContext</class-interface>
      <method name="getAnnotations" return-type="java.lang.annotation.Annotation[]" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>904</id>
      <description>Get the type of the object to be produced or written.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>InterceptorContext</class-interface>
      <method name="getGenericType" return-type="java.lang.reflect.Type" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>905</id>
      <description>Get media type of HTTP entity.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>InterceptorContext</class-interface>
      <method name="getMediaType" return-type="jakarta.ws.rs.core.MediaType" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>906</id>
      <description>Returns the property with the given name registered in the current request/response exchange context, or null if there is no property by that name. A property allows a JAX-RS filters and interceptors to exchange additional custom information not already provided by this interface. A list of supported properties can be retrieved using #getPropertyNames(). Custom property names should follow the same convention as package names. In a Servlet container, on the server side, the properties are backed by the ServletRequest and contain all the attributes available in the ServletRequest.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>InterceptorContext</class-interface>
      <method name="getProperty" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>908</id>
      <description>Get Java type supported by corresponding message body provider.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>InterceptorContext</class-interface>
      <method name="getType" return-type="java.lang.Class" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>909</id>
      <description>Removes a property with the given name from the current request/response exchange context. After removal, subsequent calls to #getProperty to retrieve the property value will return null. In a Servlet container, on the server side, the properties are backed by the ServletRequest and contain all the attributes available in the ServletRequest.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>InterceptorContext</class-interface>
      <method name="removeProperty" return-type="void">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>910</id>
      <description>Update annotations on the formal declaration of the artifact that initiated the intercepted entity provider invocation. Calling this method has no effect in the client API.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>InterceptorContext</class-interface>
      <method name="setAnnotations" return-type="void">
        <parameters>
          <parameter>java.lang.annotation.Annotation[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>911</id>
      <description>Update type of the object to be produced or written.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>InterceptorContext</class-interface>
      <method name="setGenericType" return-type="void">
        <parameters>
          <parameter>java.lang.reflect.Type</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>912</id>
      <description>Update media type of HTTP entity.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>InterceptorContext</class-interface>
      <method name="setMediaType" return-type="void">
        <parameters>
          <parameter>jakarta.ws.rs.core.MediaType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>913</id>
      <description>Binds an object to a given property name in the current request/response exchange context. If the name specified is already used for a property, this method will replace the value of the property with the new value. A property allows a JAX-RS filters and interceptors to exchange additional custom information not already provided by this interface. A list of supported properties can be retrieved using #getPropertyNames(). Custom property names should follow the same convention as package names. If a null value is passed, the effect is the same as calling the #removeProperty(String) method. In a Servlet container, on the server side, the properties are backed by the ServletRequest and contain all the attributes available in the ServletRequest.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>InterceptorContext</class-interface>
      <method name="setProperty" return-type="void">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>914</id>
      <description>Update Java type before calling message body provider.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>InterceptorContext</class-interface>
      <method name="setType" return-type="void">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>915</id>
      <description>Parse the supplied value and create an instance of T.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>ParamConverter</class-interface>
      <method name="fromString" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="false" impl-spec="false" status="active" testable="true">
      <id>917</id>
      <description>Convert the supplied value to a String. This method is reserved for future use. Proprietary JAX-RS extensions may leverage the method. Users should be aware that any such support for the method comes at the expense of producing non-portable code.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>ParamConverter</class-interface>
      <method name="toString" return-type="java.lang.String">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>919</id>
      <description>Obtain a ParamConverter that can provide from/to string conversion for an instance of a particular Java type.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>ParamConverterProvider</class-interface>
      <method name="getConverter" return-type="jakarta.ws.rs.ext.ParamConverter">
        <parameters>
          <parameter>java.lang.Class</parameter>
          <parameter>java.lang.reflect.Type</parameter>
          <parameter>java.lang.annotation.Annotation[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>920</id>
      <description>Interceptor method wrapping calls to MessageBodyReader#readFrom method. The parameters of the wrapped method called are available from context. Implementations of this method SHOULD explicitly call ReaderInterceptorContext#proceed to invoke the next interceptor in the chain, and ultimately the wrapped MessageBodyReader#readFrom method.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>ReaderInterceptor</class-interface>
      <method name="aroundReadFrom" return-type="java.lang.Object">
        <parameters>
          <parameter>jakarta.ws.rs.ext.ReaderInterceptorContext</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>921</id>
      <description>if an IO error arises or is thrown by the wrapped MessageBodyReader.readFrom method.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>ReaderInterceptor</class-interface>
      <method name="aroundReadFrom" return-type="java.lang.Object">
        <parameters>
          <parameter>jakarta.ws.rs.ext.ReaderInterceptorContext</parameter>
        </parameters>
        <throw>java.io.IOException</throw>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>922</id>
      <description>thrown by the wrapped MessageBodyReader.readFrom method.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>ReaderInterceptor</class-interface>
      <method name="aroundReadFrom" return-type="java.lang.Object">
        <parameters>
          <parameter>jakarta.ws.rs.ext.ReaderInterceptorContext</parameter>
        </parameters>
        <throw>jakarta.ws.rs.WebApplicationException</throw>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>923</id>
      <description>Get mutable map of HTTP headers. Note that while the headers are mutable, a ReaderInterceptor reader interceptor should typically roll-back any header modifications once the call to #proceed() context.proceed() returns, to avoid externally visible side-effects of the interceptor invocation.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>ReaderInterceptorContext</class-interface>
      <method name="getHeaders" return-type="jakarta.ws.rs.core.MultivaluedMap" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>924</id>
      <description>Get the input stream of the object to be read. The JAX-RS runtime is responsible for closing the input stream.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>ReaderInterceptorContext</class-interface>
      <method name="getInputStream" return-type="java.io.InputStream" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>925</id>
      <description>Proceed to the next interceptor in the chain. Return the result of the next interceptor invoked. Interceptors MUST explicitly call this method to continue the execution chain; the call to this method in the last interceptor of the chain will invoke the wrapped jakarta.ws.rs.ext.MessageBodyReader#readFrom.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>ReaderInterceptorContext</class-interface>
      <method name="proceed" return-type="java.lang.Object" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>926</id>
      <description>if an IO error arises or is thrown by the wrapped MessageBodyReader.readFrom method.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>ReaderInterceptorContext</class-interface>
      <method name="proceed" return-type="java.lang.Object">
        <throw>java.io.IOException</throw>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>927</id>
      <description>Set the input stream of the object to be read. For example, by wrapping it with another input stream. The JAX-RS runtime is responsible for closing the input stream that is set.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>ReaderInterceptorContext</class-interface>
      <method name="setInputStream" return-type="void">
        <parameters>
          <parameter>java.io.InputStream</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>928</id>
      <description>if type is null.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>RuntimeDelegate</class-interface>
      <method name="createHeaderDelegate" return-type="jakarta.ws.rs.ext.RuntimeDelegate.RuntimeDelegate.HeaderDelegate">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
        <throw>java.lang.IllegalArgumentException</throw>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>930</id>
      <description>Interceptor method wrapping calls to MessageBodyWriter#writeTo method. The parameters of the wrapped method called are available from context. Implementations of this method SHOULD explicitly call WriterInterceptorContext#proceed to invoke the next interceptor in the chain, and ultimately the wrapped MessageBodyWriter.writeTo method.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>WriterInterceptor</class-interface>
      <method name="aroundWriteTo" return-type="void">
        <parameters>
          <parameter>jakarta.ws.rs.ext.WriterInterceptorContext</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>931</id>
      <description>if an IO error arises or is thrown by the wrapped MessageBodyWriter.writeTo method.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>WriterInterceptor</class-interface>
      <method name="aroundWriteTo" return-type="void">
        <parameters>
          <parameter>jakarta.ws.rs.ext.WriterInterceptorContext</parameter>
        </parameters>
        <throw>java.io.IOException</throw>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>932</id>
      <description>thrown by the wrapped MessageBodyWriter.writeTo method.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>WriterInterceptor</class-interface>
      <method name="aroundWriteTo" return-type="void">
        <parameters>
          <parameter>jakarta.ws.rs.ext.WriterInterceptorContext</parameter>
        </parameters>
        <throw>jakarta.ws.rs.WebApplicationException</throw>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>933</id>
      <description>Get object to be written as HTTP entity.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>WriterInterceptorContext</class-interface>
      <method name="getEntity" return-type="java.lang.Object" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>934</id>
      <description>Get mutable map of HTTP headers.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>WriterInterceptorContext</class-interface>
      <method name="getHeaders" return-type="jakarta.ws.rs.core.MultivaluedMap" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>935</id>
      <description>Get the output stream for the object to be written. The JAX-RS runtime is responsible for closing the output stream.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>WriterInterceptorContext</class-interface>
      <method name="getOutputStream" return-type="java.io.OutputStream" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>936</id>
      <description>Proceed to the next interceptor in the chain. Interceptors MUST explicitly call this method to continue the execution chain; the call to this method in the last interceptor of the chain will invoke the wrapped jakarta.ws.rs.ext.MessageBodyWriter#writeTo method.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>WriterInterceptorContext</class-interface>
      <method name="proceed" return-type="void" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>937</id>
      <description>if an IO error arises or is thrown by the wrapped MessageBodyWriter.writeTo method.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>WriterInterceptorContext</class-interface>
      <method name="proceed" return-type="void">
        <throw>java.io.IOException</throw>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>938</id>
      <description>Update object to be written as HTTP entity.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>WriterInterceptorContext</class-interface>
      <method name="setEntity" return-type="void">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>939</id>
      <description>Set a new output stream for the object to be written. For example, by wrapping it with another output stream. The JAX-RS runtime is responsible for closing the output stream that is set.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>WriterInterceptorContext</class-interface>
      <method name="setOutputStream" return-type="void">
        <parameters>
          <parameter>java.io.OutputStream</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>940</id>
      <description>Create a new WebTarget instance by resolving a URI template with a given name in the URI of the current target instance using a supplied value. In case a null template name or value is entered a NullPointerException is thrown. A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the newly constructed (child) target instance.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>WebTarget</class-interface>
      <method name="resolveTemplate" return-type="jakarta.ws.rs.client.WebTarget">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>942</id>
      <description>Create a new WebTarget instance by resolving a URI template with a given name in the URI of the current target instance using a supplied value. In case a null template name or value is entered a NullPointerException is thrown. A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the newly constructed (child) target instance.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>WebTarget</class-interface>
      <method name="resolveTemplate" return-type="jakarta.ws.rs.client.WebTarget">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Object</parameter>
          <parameter>boolean</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>944</id>
      <description>Create a new WebTarget instance by resolving a URI template with a given name in the URI of the current target instance using a supplied encoded value. A template with a matching name will be replaced by the supplied value. Value is converted to String using its toString() method and is then encoded to match the rules of the URI component to which they pertain. All % characters in the stringified values that are not followed by two hexadecimal numbers will be encoded. In case a null template name or value is entered a NullPointerException is thrown. A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the newly constructed (child) target instance.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>WebTarget</class-interface>
      <method name="resolveTemplateFromEncoded" return-type="jakarta.ws.rs.client.WebTarget">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>946</id>
      <description>Create a new WebTarget instance by resolving one or more URI templates in the URI of the current target instance using supplied name-value pairs. A call to the method with an empty parameter map is ignored, i.e. same WebTarget instance is returned. A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the newly constructed (child) target instance.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>WebTarget</class-interface>
      <method name="resolveTemplates" return-type="jakarta.ws.rs.client.WebTarget">
        <parameters>
          <parameter>java.util.Map</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>948</id>
      <description>Create a new WebTarget instance by resolving one or more URI templates in the URI of the current target instance using supplied name-value pairs. A call to the method with an empty parameter map is ignored, i.e. same WebTarget instance is returned. A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the newly constructed (child) target instance.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>WebTarget</class-interface>
      <method name="resolveTemplates" return-type="jakarta.ws.rs.client.WebTarget">
        <parameters>
          <parameter>java.util.Map</parameter>
          <parameter>boolean</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>950</id>
      <description>Create a new WebTarget instance by resolving one or more URI templates in the URI of the current target instance using supplied name-encoded value pairs. All templates with their name matching one of the keys in the supplied map will be replaced by the value in the supplied map. Values are converted to String using their toString() method and are then encoded to match the rules of the URI component to which they pertain. All % characters in the stringified values that are not followed by two hexadecimal numbers will be encoded. A call to the method with an empty parameter map is ignored, i.e. same WebTarget instance is returned. A snapshot of the present configuration of the current (parent) target instance is taken and is inherited by the newly constructed (child) target instance.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>WebTarget</class-interface>
      <method name="resolveTemplatesFromEncoded" return-type="jakarta.ws.rs.client.WebTarget">
        <parameters>
          <parameter>java.util.Map</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>955</id>
      <description>Initialize the resource or sub-resource instance. All JAX-RS injectable fields in the resource instance will be properly initialized in the context of the current request processing scope.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ResourceContext</class-interface>
      <method name="initResource" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>956</id>
      <description>Returns the value associated with the link rel param as a list of strings or the empty list if rel is not defined.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link</class-interface>
      <method name="getRels" return-type="java.util.List" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>957</id>
      <description>Resolve a URI template with a given name in this UriBuilder instance using a supplied value. In case a null template name or value is entered a IllegalArgumentException is thrown.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="resolveTemplate" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>959</id>
      <description>Resolve a URI template with a given name in this UriBuilder instance using a supplied value. In case a null template name or value is entered a IllegalArgumentException is thrown.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="resolveTemplate" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Object</parameter>
          <parameter>boolean</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>961</id>
      <description>Resolve a URI template with a given name in this UriBuilder instance using a supplied encoded value. A template with a matching name will be replaced by the supplied value. Value is converted to String using its toString() method and is then encoded to match the rules of the URI component to which they pertain. All % characters in the stringified values that are not followed by two hexadecimal numbers will be encoded. In case a null template name or encoded value is entered a IllegalArgumentException is thrown.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="resolveTemplateFromEncoded" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>963</id>
      <description>Resolve one or more URI templates in this UriBuilder instance using supplied name-value pairs. A call to the method with an empty parameter map is ignored.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="resolveTemplates" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>java.util.Map</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>965</id>
      <description>Resolve one or more URI templates in this UriBuilder instance using supplied name-value pairs. A call to the method with an empty parameter map is ignored.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="resolveTemplates" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>java.util.Map</parameter>
          <parameter>boolean</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>966</id>
      <description>if the name-value map or any of the names or values in the map is null.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="resolveTemplates" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>java.util.Map</parameter>
          <parameter>boolean</parameter>
        </parameters>
        <throw>java.lang.IllegalArgumentException</throw>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>967</id>
      <description>Resolve one or more URI templates in this UriBuilder instance using supplied name-value pairs. All templates with their name matching one of the keys in the supplied map will be replaced by the value in the supplied map. Values are converted to String using their toString() method and are then encoded to match the rules of the URI component to which they pertain. All % characters in the stringified values that are not followed by two hexadecimal numbers will be encoded. A call to the method with an empty parameter map is ignored.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriBuilder</class-interface>
      <method name="resolveTemplatesFromEncoded" return-type="jakarta.ws.rs.core.UriBuilder">
        <parameters>
          <parameter>java.util.Map</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>969</id>
      <description>Define the RuntimeType constraint type to be placed on a JAX-RS provider.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ConstrainedTo</class-interface>
      <method name="value" return-type="jakarta.ws.rs.RuntimeType" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>970</id>
      <description>Construct a new "forbidden" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ForbiddenException</class-interface>
      <method name="ForbiddenException" return-type="ForbiddenException" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>971</id>
      <description>Construct a new "forbidden" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ForbiddenException</class-interface>
      <method name="ForbiddenException" return-type="ForbiddenException">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>972</id>
      <description>Construct a new "forbidden" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ForbiddenException</class-interface>
      <method name="ForbiddenException" return-type="ForbiddenException">
        <parameters>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>973</id>
      <description>Construct a new "forbidden" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ForbiddenException</class-interface>
      <method name="ForbiddenException" return-type="ForbiddenException">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>974</id>
      <description />
      <package>jakarta.ws.rs</package>
      <class-interface>RuntimeType</class-interface>
      <method name="valueOf" return-type="jakarta.ws.rs.RuntimeType">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>975</id>
      <description />
      <package>jakarta.ws.rs</package>
      <class-interface>RuntimeType</class-interface>
      <method name="values" return-type="jakarta.ws.rs.RuntimeType[]" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>977</id>
      <description>Get the immutable configuration of the request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientRequestContext</class-interface>
      <method name="getConfiguration" return-type="jakarta.ws.rs.core.Configuration" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>978</id>
      <description>Returns an immutable Collection collection containing the property names available within the context of the current request/response exchange context. Use the #getProperty method with a property name to get the value of a property.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientRequestContext</class-interface>
      <method name="getPropertyNames" return-type="java.util.Collection" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>979</id>
      <description>Called when the invocation has failed for any reason. Note that the provided Throwable may be a jakarta.ws.rs.ProcessingException in case the invocation processing failure has been caused by a client-side runtime component error. The Throwable may also be a jakarta.ws.rs.WebApplicationException or one of its subclasses in case the response status code is not jakarta.ws.rs.core.Response.Status.Family#SUCCESSFUL successful and the generic callback type is not jakarta.ws.rs.core.Response. In case a processing of a properly received response fails, the wrapped processing exception will be of ResponseProcessingException type and will contain the jakarta.ws.rs.core.Response instance whose processing has failed. A java.util.concurrent.CancellationException would be indicate that the invocation has been cancelled. An InterruptedException would indicate that the thread executing the invocation has been interrupted. Once this invocation callback method returns, the underlying jakarta.ws.rs.core.Response instance will be automatically closed by the runtime.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>InvocationCallback</class-interface>
      <method name="failed" return-type="void">
        <parameters>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>980</id>
      <description>Cancel the suspended request processing. When a request processing is cancelled using this method, the JAX-RS implementation MUST indicate to the client that the request processing has been cancelled by sending back a jakarta.ws.rs.core.Response.Status#SERVICE_UNAVAILABLE HTTP 503 (Service unavailable) error response. Invoking a cancel(...) method multiple times to cancel request processing has the same effect as canceling the request processing only once. Invoking a cancel(...) method on an asynchronous response instance that has already been cancelled or resumed has no effect and the method call is ignored while returning true, in case the request has been cancelled previously. Otherwise, in case the request has been resumed regularly (using a resume(...) method) or resumed due to a time-out, method returns false.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>AsyncResponse</class-interface>
      <method name="cancel" return-type="boolean" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>981</id>
      <description>Cancel the suspended request processing. When a request processing is cancelled using this method, the JAX-RS implementation MUST indicate to the client that the request processing has been cancelled by sending back a jakarta.ws.rs.core.Response.Status#SERVICE_UNAVAILABLE HTTP 503 (Service unavailable) error response with a Retry-After header set to the value provided by the method parameter. Invoking a cancel(...) method multiple times to cancel request processing has the same effect as canceling the request processing only once. Invoking a cancel(...) method on an asynchronous response instance that has already been cancelled or resumed has no effect and the method call is ignored while returning true, in case the request has been cancelled previously. Otherwise, in case the request has been resumed regularly (using a resume(...) method) or resumed due to a time-out, method returns false.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>AsyncResponse</class-interface>
      <method name="cancel" return-type="boolean">
        <parameters>
          <parameter>int</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>982</id>
      <description>Cancel the suspended request processing. When a request processing is cancelled using this method, the JAX-RS implementation MUST indicate to the client that the request processing has been cancelled by sending back a jakarta.ws.rs.core.Response.Status#SERVICE_UNAVAILABLE HTTP 503 (Service unavailable) error response with a Retry-After header set to the value provided by the method parameter. Invoking a cancel(...) method multiple times to cancel request processing has the same effect as canceling the request processing only once. Invoking a cancel(...) method on an asynchronous response instance that has already been cancelled or resumed has no effect and the method call is ignored while returning true, in case the request has been cancelled previously. Otherwise, in case the request has been resumed regularly (using a resume(...) method) or resumed due to a time-out, method returns false.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>AsyncResponse</class-interface>
      <method name="cancel" return-type="boolean">
        <parameters>
          <parameter>java.util.Date</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>983</id>
      <description>Resume the suspended request processing using the provided response data. The provided response data can be of any Java type that can be returned from a jakarta.ws.rs.HttpMethod JAX-RS resource method. The asynchronous response must be still in a #isSuspended() suspended state for this method to succeed. By executing this method, the request is guaranteed to complete either successfully or with an error. The data processing by the JAX-RS runtime follows the same path as it would for the response data returned synchronously by a JAX-RS resource, except that unmapped exceptions are not re-thrown by JAX-RS runtime to be handled by a hosting I/O container. Instead, any unmapped exceptions are propagated to the hosting I/O container via a container-specific callback mechanism. Depending on the container implementation, propagated unmapped exceptions typically result in an error status being sent to the client and/or the connection being closed.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>AsyncResponse</class-interface>
      <method name="resume" return-type="boolean">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>984</id>
      <description>Resume the suspended request processing using the provided throwable. For the provided throwable same rules apply as for an exception thrown by a jakarta.ws.rs.HttpMethod JAX-RS resource method. By executing this method, the request is guaranteed to complete either successfully or with an error. The throwable processing by the JAX-RS runtime follows the same path as it would for the response data returned synchronously by a JAX-RS resource, except that unmapped exceptions are not re-thrown by JAX-RS runtime to be handled by a hosting I/O container. Instead, any unmapped exceptions are propagated to the hosting I/O container via a container-specific callback mechanism. Depending on the container implementation, propagated unmapped exceptions typically result in an error status being sent to the client and/or the connection being closed.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>AsyncResponse</class-interface>
      <method name="resume" return-type="boolean">
        <parameters>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>985</id>
      <description>A completion callback notification method that will be invoked when the request processing is finished, after a response is processed and is sent back to the client or when an unmapped throwable has been propagated to the hosting I/O container. An unmapped throwable is propagated to the hosting I/O container in case no jakarta.ws.rs.ext.ExceptionMapper exception mapper has been found for a throwable indicating a request processing failure. In this case a non-null unmapped throwable instance is passed to the method. Note that the throwable instance represents the actual unmapped exception thrown during the request processing, before it has been wrapped into an I/O container-specific exception that was used to propagate the throwable to the hosting I/O container.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>CompletionCallback</class-interface>
      <method name="onComplete" return-type="void">
        <parameters>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>986</id>
      <description>Returns an immutable java.util.Collection collection containing the property names available within the context of the current request/response exchange context. Use the #getProperty method with a property name to get the value of a property. In a Servlet container, the properties are synchronized with the ServletRequest and expose all the attributes available in the ServletRequest. Any modifications of the properties are also reflected in the set of properties of the associated ServletRequest.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerRequestContext</class-interface>
      <method name="getPropertyNames" return-type="java.util.Collection" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>987</id>
      <description>A callback method called by the JAX-RS runtime during the application deployment to register provider instances or classes in a jakarta.ws.rs.core.Configuration runtime configuration scope of a particular jakarta.ws.rs.HttpMethod resource or sub-resource method; i.e. the providers that should be dynamically bound to the method. The registered provider instances or classes are expected to be implementing one or more of the following interfaces: ContainerRequestFilterContainerResponseFilterReaderInterceptorWriterInterceptorjakarta.ws.rs.core.Feature A provider instance or class that does not implement any of the interfaces above may be ignored by the JAX-RS implementation. In such case a java.util.logging.Level#WARNING warning message must be logged. JAX-RS implementations may support additional provider contracts that can be registered using a dynamic feature concept. Conceptually, this callback method is called during a jakarta.ws.rs.HttpMethod resource or sub-resource method discovery phase (typically once per each discovered resource or sub-resource method) to register provider instances or classes in a configuration scope of each particular method identified by the supplied ResourceInfo resource information. The responsibility of the feature is to properly update the supplied configuration context.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>DynamicFeature</class-interface>
      <method name="configure" return-type="void">
        <parameters>
          <parameter>jakarta.ws.rs.container.ResourceInfo</parameter>
          <parameter>jakarta.ws.rs.core.FeatureContext</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>988</id>
      <description>Get a live view of an internal configuration state of this configurable instance. Any changes made using methods of this Configurable instance will be reflected in the returned Configuration instance. The returned Configuration instance and the collection data it provides are not thread-safe wrt. modification made using methods on the parent configurable object.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Configurable</class-interface>
      <method name="getConfiguration" return-type="jakarta.ws.rs.core.Configuration" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>989</id>
      <description>Register a class of a custom JAX-RS component (such as an extension provider or a jakarta.ws.rs.core.Feature feature meta-provider) to be instantiated and used in the scope of this configurable context. This registration method provides same functionality as #register(Class, Class[]) except that any priority specified on the registered JAX-RS component class via jakarta.annotation.Priority annotation is overridden for each extension provider contract type separately with an integer priority value specified as a value in the supplied map of [contract type, priority] pairs. Note that in case a priority is not applicable to a provider contract registered for the JAX-RS component, the supplied priority value is ignored for such contract.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Configurable</class-interface>
      <method name="register" return-type="jakarta.ws.rs.core.Configurable">
        <parameters>
          <parameter>java.lang.Class</parameter>
          <parameter>java.util.Map</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>990</id>
      <description>Register an instance of a custom JAX-RS component (such as an extension provider or a jakarta.ws.rs.core.Feature feature meta-provider) to be instantiated and used in the scope of this configurable context. This registration method provides same functionality as #register(Object, Class[]) except that any priority specified on the registered JAX-RS component class via jakarta.annotation.Priority annotation is overridden for each extension provider contract type separately with an integer priority value specified as a value in the supplied map of [contract type, priority] pairs. Note that in case a priority is not applicable to a provider contract registered for the JAX-RS component, the supplied priority value is ignored for such contract.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Configurable</class-interface>
      <method name="register" return-type="jakarta.ws.rs.core.Configurable">
        <parameters>
          <parameter>java.lang.Object</parameter>
          <parameter>java.util.Map</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>992</id>
      <description>Get the immutable set of registered JAX-RS component (such as provider or Feature feature) classes to be instantiated, injected and utilized in the scope of the configurable instance. For each component type, there can be only a single class-based or instance-based registration present in the configuration context at any given time.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Configuration</class-interface>
      <method name="getClasses" return-type="java.util.Set" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>993</id>
      <description>Get the extension contract registration information for a component of a given class. For component classes that are not configured in this configuration context the method returns an empty Map. Method does not return null.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Configuration</class-interface>
      <method name="getContracts" return-type="java.util.Map">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>994</id>
      <description>Get the immutable set of registered JAX-RS component (such as provider or Feature feature) instances to be utilized by the configurable instance. Fields and properties of returned instances are injected with their declared dependencies (see Context) by the runtime prior to use. For each component type, there can be only a single class-based or instance-based registration present in the configuration context at any given time.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Configuration</class-interface>
      <method name="getInstances" return-type="java.util.Set" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>995</id>
      <description>Get the immutable bag of configuration properties.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Configuration</class-interface>
      <method name="getProperties" return-type="java.util.Map" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>996</id>
      <description>Get the value for the property with a given name.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Configuration</class-interface>
      <method name="getProperty" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>997</id>
      <description>Returns an immutable java.util.Collection collection containing the property names available within the context of the current configuration instance. Use the #getProperty method with a property name to get the value of a property.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Configuration</class-interface>
      <method name="getPropertyNames" return-type="java.util.Collection" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>998</id>
      <description>Get the runtime type of this configuration context.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Configuration</class-interface>
      <method name="getRuntimeType" return-type="jakarta.ws.rs.RuntimeType" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>999</id>
      <description>Check if a particular Feature feature instance has been previously enabled in the runtime configuration context. Method returns true only in case an instance equal to the feature instance is already present among the features previously successfully enabled in the configuration context.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Configuration</class-interface>
      <method name="isEnabled" return-type="boolean">
        <parameters>
          <parameter>jakarta.ws.rs.core.Feature</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1000</id>
      <description>Check if a Feature feature instance of featureClass class has been previously enabled in the runtime configuration context. Method returns true in case any instance of the featureClass class is already present among the features previously successfully enabled in the configuration context.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Configuration</class-interface>
      <method name="isEnabled" return-type="boolean">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1001</id>
      <description>Check if a particular JAX-RS component instance (such as providers or Feature features) has been previously registered in the runtime configuration context. Method returns true only in case an instance equal to the component instance is already present among the components previously registered in the configuration context.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Configuration</class-interface>
      <method name="isRegistered" return-type="boolean">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1002</id>
      <description>Check if a JAX-RS component of the supplied componentClass class has been previously registered in the runtime configuration context. Method returns true in case a component of the supplied componentClass class is already present among the previously registered component classes or instances in the configuration context.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Configuration</class-interface>
      <method name="isRegistered" return-type="boolean">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1003</id>
      <description>A call-back method called when the feature is to be enabled in a given runtime configuration scope. The responsibility of the feature is to properly update the supplied runtime configuration context and return true if the feature was successfully enabled or false otherwise. Note that under some circumstances the feature may decide not to enable itself, which is indicated by returning false. In such case the configuration context does not add the feature to the collection of enabled features and a subsequent call to Configuration#isEnabled(Feature) or Configuration#isEnabled(Class) method would return false.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Feature</class-interface>
      <method name="configure" return-type="boolean">
        <parameters>
          <parameter>jakarta.ws.rs.core.FeatureContext</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1005</id>
      <description>Create a new builder instance initialized from a URI builder.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link</class-interface>
      <method name="fromUriBuilder" return-type="jakarta.ws.rs.core.Link.Link.Builder">
        <parameters>
          <parameter>jakarta.ws.rs.core.UriBuilder</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1006</id>
      <description>Set underlying URI builder representing the URI template for the link being constructed.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link.Builder</class-interface>
      <method name="uriBuilder" return-type="jakarta.ws.rs.core.Link.Link.Builder">
        <parameters>
          <parameter>jakarta.ws.rs.core.UriBuilder</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1007</id>
      <description>Returns an immutable java.util.Collection collection containing the property names available within the context of the current request/response exchange context. Use the #getProperty method with a property name to get the value of a property. In a Servlet container, the properties are synchronized with the ServletRequest and expose all the attributes available in the ServletRequest. Any modifications of the properties are also reflected in the set of properties of the associated ServletRequest.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>InterceptorContext</class-interface>
      <method name="getPropertyNames" return-type="java.util.Collection" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1008</id>
      <description>thrown by the wrapped MessageBodyReader.readFrom method.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>ReaderInterceptorContext</class-interface>
      <method name="proceed" return-type="java.lang.Object">
        <throw>jakarta.ws.rs.WebApplicationException</throw>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1009</id>
      <description>thrown by the wrapped MessageBodyWriter.writeTo method.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>WriterInterceptorContext</class-interface>
      <method name="proceed" return-type="void">
        <throw>jakarta.ws.rs.WebApplicationException</throw>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1010</id>
      <description>Constructs a new JAX-RS runtime processing exception with the specified cause and a detail message of (cause==null ? null : cause.toString()) (which typically contains the class and detail message of cause). This constructor is useful for runtime exceptions that are little more than wrappers for other throwables.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ProcessingException</class-interface>
      <method name="ProcessingException" return-type="ProcessingException">
        <parameters>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1011</id>
      <description>Constructs a new JAX-RS runtime processing exception with the specified detail message and cause. Note that the detail message associated with cause is not automatically incorporated in this runtime exception's detail message.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ProcessingException</class-interface>
      <method name="ProcessingException" return-type="ProcessingException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1012</id>
      <description>Constructs a new JAX-RS runtime processing exception with the specified detail message. The cause is not initialized, and may subsequently be initialized by a call to #initCause.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ProcessingException</class-interface>
      <method name="ProcessingException" return-type="ProcessingException">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1013</id>
      <description>Get the SSL context configured to be used with the current client run-time.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Client</class-interface>
      <method name="getSslContext" return-type="javax.net.ssl.SSLContext" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1014</id>
      <description>Build a new client instance using all the configuration previously specified in this client builder.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientBuilder</class-interface>
      <method name="build" return-type="jakarta.ws.rs.client.Client" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1015</id>
      <description>Set the hostname verifier to be used by the client to verify the endpoint's hostname against its identification information.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientBuilder</class-interface>
      <method name="hostnameVerifier" return-type="jakarta.ws.rs.client.ClientBuilder">
        <parameters>
          <parameter>javax.net.ssl.HostnameVerifier</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1016</id>
      <description>Set the client-side key store. Key store contains client's private keys, and the certificates with their corresponding public keys. Setting a key store instance resets any #sslContext(javax.net.ssl.SSLContext) SSL context instance value previously specified. Note that a custom key store is only required if you want to enable a custom setup of a 2-way SSL connections (client certificate authentication).</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientBuilder</class-interface>
      <method name="keyStore" return-type="jakarta.ws.rs.client.ClientBuilder">
        <parameters>
          <parameter>java.security.KeyStore</parameter>
          <parameter>char[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1017</id>
      <description>Set the client-side key store. Key store contains client's private keys, and the certificates with their corresponding public keys. Setting a key store instance resets any #sslContext(javax.net.ssl.SSLContext) SSL context instance value previously specified. Note that for improved security of working with password data and avoid storing passwords in Java string objects, the #keyStore(java.security.KeyStore, char[]) version of the method can be utilized. Also note that a custom key store is only required if you want to enable a custom setup of a 2-way SSL connections (client certificate authentication).</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientBuilder</class-interface>
      <method name="keyStore" return-type="jakarta.ws.rs.client.ClientBuilder">
        <parameters>
          <parameter>java.security.KeyStore</parameter>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1018</id>
      <description>Create a new ClientBuilder instance using the default client builder implementation class provided by the JAX-RS implementation provider.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientBuilder</class-interface>
      <method name="newBuilder" return-type="jakarta.ws.rs.client.ClientBuilder" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1019</id>
      <description>Create a new Client instance using the default client builder implementation class provided by the JAX-RS implementation provider.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientBuilder</class-interface>
      <method name="newClient" return-type="jakarta.ws.rs.client.Client" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1020</id>
      <description>Create a new custom-configured Client instance using the default client builder implementation class provided by the JAX-RS implementation provider.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientBuilder</class-interface>
      <method name="newClient" return-type="jakarta.ws.rs.client.Client">
        <parameters>
          <parameter>jakarta.ws.rs.core.Configuration</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1021</id>
      <description>Set the SSL context that will be used when creating secured transport connections to server endpoints from WebTarget web targets created by the client instance that is using this SSL context. The SSL context is expected to have all the security infrastructure initialized, including the key and trust managers. Setting a SSL context instance resets any #keyStore(java.security.KeyStore, char[]) key store or #trustStore(java.security.KeyStore) trust store values previously specified.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientBuilder</class-interface>
      <method name="sslContext" return-type="jakarta.ws.rs.client.ClientBuilder">
        <parameters>
          <parameter>javax.net.ssl.SSLContext</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1022</id>
      <description>Set the client-side trust store. Trust store is expected to contain certificates from other parties the client is you expect to communicate with, or from Certificate Authorities that are trusted to identify other parties. Setting a trust store instance resets any #sslContext(javax.net.ssl.SSLContext) SSL context instance value previously specified. In case a custom trust store or custom SSL context is not specified, the trust management will be configured to use the default Java runtime settings.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientBuilder</class-interface>
      <method name="trustStore" return-type="jakarta.ws.rs.client.ClientBuilder">
        <parameters>
          <parameter>java.security.KeyStore</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1023</id>
      <description>Add the accepted response media types.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Invocation.Builder</class-interface>
      <method name="accept" return-type="jakarta.ws.rs.client.Invocation.Invocation.Builder">
        <parameters>
          <parameter>java.lang.String[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1024</id>
      <description>Add the accepted response media types.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Invocation.Builder</class-interface>
      <method name="accept" return-type="jakarta.ws.rs.client.Invocation.Invocation.Builder">
        <parameters>
          <parameter>jakarta.ws.rs.core.MediaType[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1025</id>
      <description>Add acceptable encodings.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Invocation.Builder</class-interface>
      <method name="acceptEncoding" return-type="jakarta.ws.rs.client.Invocation.Invocation.Builder">
        <parameters>
          <parameter>java.lang.String[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1026</id>
      <description>Get the HTTP response for which the processing has failed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ResponseProcessingException</class-interface>
      <method name="getResponse" return-type="jakarta.ws.rs.core.Response" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1027</id>
      <description>Constructs a new JAX-RS runtime response processing exception for a specific Response response with the specified cause and a detail message of (cause==null ? null : cause.toString()) (which typically contains the class and detail message of cause). This constructor is useful for runtime exceptions that are little more than wrappers for other throwables.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ResponseProcessingException</class-interface>
      <method name="ResponseProcessingException" return-type="ResponseProcessingException">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1028</id>
      <description>Constructs a new JAX-RS runtime response processing exception with the specified detail message and cause. Note that the detail message associated with cause is not automatically incorporated in this runtime exception's detail message.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ResponseProcessingException</class-interface>
      <method name="ResponseProcessingException" return-type="ResponseProcessingException">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response</parameter>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1029</id>
      <description>Constructs a new JAX-RS runtime processing exception with the specified detail message. The cause is not initialized, and may subsequently be initialized by a call to #initCause.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ResponseProcessingException</class-interface>
      <method name="ResponseProcessingException" return-type="ResponseProcessingException">
        <parameters>
          <parameter>jakarta.ws.rs.core.Response</parameter>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1030</id>
      <description>Register an asynchronous processing lifecycle callback class to receive lifecycle events for the asynchronous response based on the implemented callback interfaces.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>AsyncResponse</class-interface>
      <method name="register" return-type="java.util.Collection">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1031</id>
      <description>Register asynchronous processing lifecycle callback classes to receive lifecycle events for the asynchronous response based on the implemented callback interfaces.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>AsyncResponse</class-interface>
      <method name="register" return-type="java.util.Map">
        <parameters>
          <parameter>java.lang.Class</parameter>
          <parameter>java.lang.Class[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1032</id>
      <description>Register an asynchronous processing lifecycle callback instance to receive lifecycle events for the asynchronous response based on the implemented callback interfaces.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>AsyncResponse</class-interface>
      <method name="register" return-type="java.util.Collection">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1033</id>
      <description>Register an asynchronous processing lifecycle callback instances to receive lifecycle events for the asynchronous response based on the implemented callback interfaces.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>AsyncResponse</class-interface>
      <method name="register" return-type="java.util.Map">
        <parameters>
          <parameter>java.lang.Object</parameter>
          <parameter>java.lang.Object[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1034</id>
      <description>Set/update the suspend timeout. The new suspend timeout values override any timeout value previously specified. The asynchronous response must be still in a #isSuspended() suspended state for this method to succeed.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>AsyncResponse</class-interface>
      <method name="setTimeout" return-type="boolean">
        <parameters>
          <parameter>long</parameter>
          <parameter>java.util.concurrent.TimeUnit</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1035</id>
      <description>Get a map of custom application-wide properties. The returned properties are reflected in the application Configuration configuration passed to the server-side features or injected into server-side JAX-RS components. The set of returned properties may be further extended or customized at deployment time using container-specific features and deployment descriptors. For example, in a Servlet-based deployment scenario, web application's and Servlet values may be used to extend or override values of the properties programmatically returned by this method. The default implementation returns an empty set.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Application</class-interface>
      <method name="getProperties" return-type="java.util.Map" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1036</id>
      <description>Set the new configuration property, if already set, the existing value of the property will be updated. Setting a null value into a property effectively removes the property from the property bag.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Configurable</class-interface>
      <method name="property" return-type="jakarta.ws.rs.core.Configurable">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1037</id>
      <description>Convenience method to build a link from a resource. Equivalent to Link.fromUriBuilder(UriBuilder#fromMethod(Class, String) UriBuilder.fromMethod(resource, method)). Note that the link URI passed to the Link.Builder instance returned by this method is relative. Should the link be built as absolute, a Link.Builder#baseUri(URI) base URI has to be specified in the builder prior to building the new link instance. For example, on a server side a UriInfo#getBaseUri() may be typically used to define the base URI of a link created using this method.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link</class-interface>
      <method name="fromMethod" return-type="jakarta.ws.rs.core.Link.Link.Builder">
        <parameters>
          <parameter>java.lang.Class</parameter>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1038</id>
      <description>Convenience method to build a link from a path. Equivalent to fromUriBuilder(UriBuilder.fromPath(path)).</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link</class-interface>
      <method name="fromPath" return-type="jakarta.ws.rs.core.Link.Link.Builder">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1039</id>
      <description>Convenience method to build a link from a resource. Equivalent to Link.fromUriBuilder(UriBuilder#fromResource UriBuilder.fromResource(resource)). Note that the link URI passed to the Link.Builder instance returned by this method is relative. Should the link be built as absolute, a Link.Builder#baseUri(URI) base URI has to be specified in the builder prior to building the new link instance. For example, on a server side a UriInfo#getBaseUri() may be typically used to define the base URI of a link created using this method.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link</class-interface>
      <method name="fromResource" return-type="jakarta.ws.rs.core.Link.Link.Builder">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1042</id>
      <description>Initialize builder using another link. Sets underlying URI and copies all parameters.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link.Builder</class-interface>
      <method name="link" return-type="jakarta.ws.rs.core.Link.Link.Builder">
        <parameters>
          <parameter>jakarta.ws.rs.core.Link</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1043</id>
      <description>Initialize builder using another link represented as a string. Uses simple parser to convert string representation into a link. link ::= '' (';' link-param)* link-param ::= name '=' quoted-string See RFC 5988 for more information.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link.Builder</class-interface>
      <method name="link" return-type="jakarta.ws.rs.core.Link.Link.Builder">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1044</id>
      <description>Get the cookie expiry date. Cookies whose expiry date has passed are discarded. A cookie can be unset by setting a new cookie with an expiry date in the past, typically the lowest possible date that can be set. Note that it is recommended to use #getMaxAge() Max-Age to control cookie expiration, however some browsers do not understand Max-Age, in which case setting Expires parameter may be necessary.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>NewCookie</class-interface>
      <method name="getExpiry" return-type="java.util.Date" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1045</id>
      <description>Returns true if this cookie contains the HttpOnly attribute. This means that the cookie should not be accessible to scripting engines, like javascript.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>NewCookie</class-interface>
      <method name="isHttpOnly" return-type="boolean" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1046</id>
      <description>Create a new instance.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>NewCookie</class-interface>
      <method name="NewCookie" return-type="NewCookie">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
          <parameter>int</parameter>
          <parameter>boolean</parameter>
          <parameter>boolean</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1047</id>
      <description>Create a new instance.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>NewCookie</class-interface>
      <method name="NewCookie" return-type="NewCookie">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
          <parameter>int</parameter>
          <parameter>java.lang.String</parameter>
          <parameter>int</parameter>
          <parameter>java.util.Date</parameter>
          <parameter>boolean</parameter>
          <parameter>boolean</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1048</id>
      <description>Create a new instance supplementing the information in the supplied cookie.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>NewCookie</class-interface>
      <method name="NewCookie" return-type="NewCookie">
        <parameters>
          <parameter>jakarta.ws.rs.core.Cookie</parameter>
          <parameter>java.lang.String</parameter>
          <parameter>int</parameter>
          <parameter>java.util.Date</parameter>
          <parameter>boolean</parameter>
          <parameter>boolean</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1049</id>
      <description>Relativize a URI with respect to the current request URI. Relativization works as follows: If the URI to relativize is already relative, it is first resolved using #resolve(java.net.URI). The resulting URI is relativized with respect to the current request URI. If the two URIs do not share a prefix, the URI computed in step 1 is returned. Examples (for base URI http://example.com:8080/app/root/): Request URI: http://example.com:8080/app/root/a/b/c/resource.html Supplied URI: a/b/c/d/file.txt Returned URI: d/file.txt Request URI: http://example.com:8080/app/root/a/b/c/resource.html Supplied URI: http://example2.com:9090/app2/root2/a/d/file.txt Returned URI: http://example2.com:9090/app2/root2/a/d/file.txt In the second example, the supplied URI is returned given that it is absolute and there is no common prefix between it and the request URI.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriInfo</class-interface>
      <method name="relativize" return-type="java.net.URI">
        <parameters>
          <parameter>java.net.URI</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1051</id>
      <description>Resolve a relative URI with respect to the base URI of the application. The resolved URI returned by this method is normalized. If the supplied URI is already resolved, it is just returned.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>UriInfo</class-interface>
      <method name="resolve" return-type="java.net.URI">
        <parameters>
          <parameter>java.net.URI</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1053</id>
      <description>Create a new instance of a jakarta.ws.rs.core.Link.Builder.</description>
      <package>jakarta.ws.rs.ext</package>
      <class-interface>RuntimeDelegate</class-interface>
      <method name="createLinkBuilder" return-type="jakarta.ws.rs.core.Link.Link.Builder" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1054</id>
      <description>Finish building this link using the supplied values as URI parameters and relativize the result with respect to the supplied URI. If the underlying link is already relative or if it is absolute but does not share a prefix with the supplied URI, this method is equivalent to calling Link.Builder#build(java.lang.Object[]). Note that a base URI can be set on a relative link using Link.Builder#baseUri(java.net.URI). The state of the builder is unaffected; this method may be called multiple times on the same builder instance.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link.Builder</class-interface>
      <method name="buildRelativized" return-type="jakarta.ws.rs.core.Link">
        <parameters>
          <parameter>java.net.URI</parameter>
          <parameter>java.lang.Object[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1056</id>
      <description>Construct a new bad client request exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>BadRequestException</class-interface>
      <method name="BadRequestException" return-type="BadRequestException">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1057</id>
      <description>Construct a new bad client request exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>BadRequestException</class-interface>
      <method name="BadRequestException" return-type="BadRequestException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.Response</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1058</id>
      <description>Construct a new bad client request exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>BadRequestException</class-interface>
      <method name="BadRequestException" return-type="BadRequestException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1059</id>
      <description>Construct a new bad client request exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>BadRequestException</class-interface>
      <method name="BadRequestException" return-type="BadRequestException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.Response</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1060</id>
      <description>Construct a new client error exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ClientErrorException</class-interface>
      <method name="ClientErrorException" return-type="ClientErrorException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.Response.Response.Status</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1061</id>
      <description>Construct a new client error exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ClientErrorException</class-interface>
      <method name="ClientErrorException" return-type="ClientErrorException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>int</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1062</id>
      <description>Construct a new client error exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ClientErrorException</class-interface>
      <method name="ClientErrorException" return-type="ClientErrorException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.Response</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1063</id>
      <description>Construct a new client error exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ClientErrorException</class-interface>
      <method name="ClientErrorException" return-type="ClientErrorException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.Response.Response.Status</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1064</id>
      <description>Construct a new client error exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ClientErrorException</class-interface>
      <method name="ClientErrorException" return-type="ClientErrorException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>int</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1065</id>
      <description>Construct a new client error exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ClientErrorException</class-interface>
      <method name="ClientErrorException" return-type="ClientErrorException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.Response</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1066</id>
      <description>Construct a new "forbidden" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ForbiddenException</class-interface>
      <method name="ForbiddenException" return-type="ForbiddenException">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1067</id>
      <description>Construct a new "forbidden" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ForbiddenException</class-interface>
      <method name="ForbiddenException" return-type="ForbiddenException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.Response</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1068</id>
      <description>Construct a new "forbidden" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ForbiddenException</class-interface>
      <method name="ForbiddenException" return-type="ForbiddenException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1069</id>
      <description>Construct a new "forbidden" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ForbiddenException</class-interface>
      <method name="ForbiddenException" return-type="ForbiddenException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.Response</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1070</id>
      <description>Construct a new internal server error exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>InternalServerErrorException</class-interface>
      <method name="InternalServerErrorException" return-type="InternalServerErrorException">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1071</id>
      <description>Construct a new internal server error exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>InternalServerErrorException</class-interface>
      <method name="InternalServerErrorException" return-type="InternalServerErrorException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.Response</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1072</id>
      <description>Construct a new internal server error exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>InternalServerErrorException</class-interface>
      <method name="InternalServerErrorException" return-type="InternalServerErrorException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1073</id>
      <description>Construct a new internal server error exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>InternalServerErrorException</class-interface>
      <method name="InternalServerErrorException" return-type="InternalServerErrorException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.Response</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1074</id>
      <description>Construct a new "request not acceptable" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotAcceptableException</class-interface>
      <method name="NotAcceptableException" return-type="NotAcceptableException">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1075</id>
      <description>Construct a new "request not acceptable" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotAcceptableException</class-interface>
      <method name="NotAcceptableException" return-type="NotAcceptableException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.Response</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1076</id>
      <description>Construct a new "request not acceptable" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotAcceptableException</class-interface>
      <method name="NotAcceptableException" return-type="NotAcceptableException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1077</id>
      <description>Construct a new "request not acceptable" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotAcceptableException</class-interface>
      <method name="NotAcceptableException" return-type="NotAcceptableException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.Response</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1078</id>
      <description>Construct a new method not allowed exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotAllowedException</class-interface>
      <method name="NotAllowedException" return-type="NotAllowedException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1079</id>
      <description>Construct a new method not allowed exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotAllowedException</class-interface>
      <method name="NotAllowedException" return-type="NotAllowedException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1080</id>
      <description>Construct a new method not allowed exception. Note that this constructor does not validate the presence of HTTP Allow header. I.e. it is possible to use the constructor to create a client-side exception instance even for an invalid HTTP 405 response content returned from a server.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotAllowedException</class-interface>
      <method name="NotAllowedException" return-type="NotAllowedException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.Response</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1081</id>
      <description>Construct a new method not allowed exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotAllowedException</class-interface>
      <method name="NotAllowedException" return-type="NotAllowedException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Throwable</parameter>
          <parameter>java.lang.String[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1082</id>
      <description>Construct a new method not allowed exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotAllowedException</class-interface>
      <method name="NotAllowedException" return-type="NotAllowedException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.Response</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1083</id>
      <description>Construct a new "not authorized" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotAuthorizedException</class-interface>
      <method name="NotAuthorizedException" return-type="NotAuthorizedException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Object</parameter>
          <parameter>java.lang.Object[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1084</id>
      <description>Construct a new "not authorized" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotAuthorizedException</class-interface>
      <method name="NotAuthorizedException" return-type="NotAuthorizedException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.Response</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1085</id>
      <description>Construct a new "not authorized" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotAuthorizedException</class-interface>
      <method name="NotAuthorizedException" return-type="NotAuthorizedException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Throwable</parameter>
          <parameter>java.lang.Object</parameter>
          <parameter>java.lang.Object[]</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1086</id>
      <description>Construct a new "not authorized" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotAuthorizedException</class-interface>
      <method name="NotAuthorizedException" return-type="NotAuthorizedException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.Response</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1087</id>
      <description>Construct a new "not found" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotFoundException</class-interface>
      <method name="NotFoundException" return-type="NotFoundException">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1088</id>
      <description>Construct a new "not found" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotFoundException</class-interface>
      <method name="NotFoundException" return-type="NotFoundException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.Response</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1089</id>
      <description>Construct a new "not found" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotFoundException</class-interface>
      <method name="NotFoundException" return-type="NotFoundException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1090</id>
      <description>Construct a new "not found" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotFoundException</class-interface>
      <method name="NotFoundException" return-type="NotFoundException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.Response</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1091</id>
      <description>Construct a new unsupported media type exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotSupportedException</class-interface>
      <method name="NotSupportedException" return-type="NotSupportedException">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1092</id>
      <description>Construct a new unsupported media type exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotSupportedException</class-interface>
      <method name="NotSupportedException" return-type="NotSupportedException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.Response</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1093</id>
      <description>Construct a new unsupported media type exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotSupportedException</class-interface>
      <method name="NotSupportedException" return-type="NotSupportedException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1094</id>
      <description>Construct a new unsupported media type exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>NotSupportedException</class-interface>
      <method name="NotSupportedException" return-type="NotSupportedException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.Response</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1095</id>
      <description>Construct a new redirection exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>RedirectionException</class-interface>
      <method name="RedirectionException" return-type="RedirectionException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.Response.Response.Status</parameter>
          <parameter>java.net.URI</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1096</id>
      <description>Construct a new redirection exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>RedirectionException</class-interface>
      <method name="RedirectionException" return-type="RedirectionException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>int</parameter>
          <parameter>java.net.URI</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1097</id>
      <description>Construct a new redirection exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>RedirectionException</class-interface>
      <method name="RedirectionException" return-type="RedirectionException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.Response</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1098</id>
      <description>Construct a new server error exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ServerErrorException</class-interface>
      <method name="ServerErrorException" return-type="ServerErrorException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.Response.Response.Status</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1099</id>
      <description>Construct a new server error exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ServerErrorException</class-interface>
      <method name="ServerErrorException" return-type="ServerErrorException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>int</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1100</id>
      <description>Construct a new server error exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ServerErrorException</class-interface>
      <method name="ServerErrorException" return-type="ServerErrorException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.Response</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1101</id>
      <description>Construct a new server error exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ServerErrorException</class-interface>
      <method name="ServerErrorException" return-type="ServerErrorException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.Response.Response.Status</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1102</id>
      <description>Construct a new server error exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ServerErrorException</class-interface>
      <method name="ServerErrorException" return-type="ServerErrorException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>int</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1103</id>
      <description>Construct a new server error exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ServerErrorException</class-interface>
      <method name="ServerErrorException" return-type="ServerErrorException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.Response</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1104</id>
      <description>Construct a new "service unavailable" exception without any "Retry-After" information specified for the failed request.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ServiceUnavailableException</class-interface>
      <method name="ServiceUnavailableException" return-type="ServiceUnavailableException">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1105</id>
      <description>Construct a new "service unavailable" exception with an interval specifying the "Retry-After" information for the failed request.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ServiceUnavailableException</class-interface>
      <method name="ServiceUnavailableException" return-type="ServiceUnavailableException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Long</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1106</id>
      <description>Construct a new "service unavailable" exception with an interval specifying the "Retry-After" information for the failed request.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ServiceUnavailableException</class-interface>
      <method name="ServiceUnavailableException" return-type="ServiceUnavailableException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.util.Date</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1107</id>
      <description>Construct a new "service unavailable" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ServiceUnavailableException</class-interface>
      <method name="ServiceUnavailableException" return-type="ServiceUnavailableException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.Response</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1108</id>
      <description>Construct a new "service unavailable" exception with a date specifying the "Retry-After" information for the failed request and an underlying request failure cause.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ServiceUnavailableException</class-interface>
      <method name="ServiceUnavailableException" return-type="ServiceUnavailableException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.util.Date</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1109</id>
      <description>Construct a new "service unavailable" exception with an interval specifying the "Retry-After" information for the failed request and an underlying request failure cause.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ServiceUnavailableException</class-interface>
      <method name="ServiceUnavailableException" return-type="ServiceUnavailableException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Long</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1110</id>
      <description>Construct a new "service unavailable" exception.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>ServiceUnavailableException</class-interface>
      <method name="ServiceUnavailableException" return-type="ServiceUnavailableException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.Response</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1111</id>
      <description>Construct a new instance with the supplied message and a default HTTP status code of 500.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>WebApplicationException</class-interface>
      <method name="WebApplicationException" return-type="WebApplicationException">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1112</id>
      <description>Construct a new instance using the supplied message and response.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>WebApplicationException</class-interface>
      <method name="WebApplicationException" return-type="WebApplicationException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.Response</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1113</id>
      <description>Construct a new instance with a supplied message and HTTP status code.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>WebApplicationException</class-interface>
      <method name="WebApplicationException" return-type="WebApplicationException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>int</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1114</id>
      <description>Construct a new instance with the supplied message and HTTP status.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>WebApplicationException</class-interface>
      <method name="WebApplicationException" return-type="WebApplicationException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.Response.Response.Status</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1115</id>
      <description>Construct a new instance with the supplied message, root cause and default HTTP status code of 500.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>WebApplicationException</class-interface>
      <method name="WebApplicationException" return-type="WebApplicationException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1116</id>
      <description>Construct a new instance with the supplied message, root cause and response.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>WebApplicationException</class-interface>
      <method name="WebApplicationException" return-type="WebApplicationException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Throwable</parameter>
          <parameter>jakarta.ws.rs.core.Response</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1117</id>
      <description>Construct a new instance with the supplied message, root cause and HTTP status code.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>WebApplicationException</class-interface>
      <method name="WebApplicationException" return-type="WebApplicationException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Throwable</parameter>
          <parameter>int</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1118</id>
      <description>Construct a new instance with a the supplied message, root cause and HTTP status code.</description>
      <package>jakarta.ws.rs</package>
      <class-interface>WebApplicationException</class-interface>
      <method name="WebApplicationException" return-type="WebApplicationException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Throwable</parameter>
          <parameter>jakarta.ws.rs.core.Response.Response.Status</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1119</id>
      <description>Get the hostname verifier configured in the client or null in case no hostname verifier has been configured.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Client</class-interface>
      <method name="getHostnameVerifier" return-type="javax.net.ssl.HostnameVerifier" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1120</id>
      <description>Set the internal configuration state to an externally provided configuration state.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientBuilder</class-interface>
      <method name="withConfig" return-type="jakarta.ws.rs.client.ClientBuilder">
        <parameters>
          <parameter>jakarta.ws.rs.core.Configuration</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1121</id>
      <description>Set a new message entity. The existing entity #getEntityAnnotations() annotations and #getMediaType() media type are preserved. It is the callers responsibility to wrap the actual entity with jakarta.ws.rs.core.GenericEntity if preservation of its generic type is required.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientRequestContext</class-interface>
      <method name="setEntity" return-type="void">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1122</id>
      <description>Set a new property in the context of a request represented by this invocation. The property is available for a later retrieval via ClientRequestContext#getProperty(String) or jakarta.ws.rs.ext.InterceptorContext#getProperty(String). If a property with a given name is already set in the request context, the existing value of the property will be updated. Setting a null value into a property effectively removes the property from the request property bag.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Invocation</class-interface>
      <method name="property" return-type="jakarta.ws.rs.client.Invocation">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1123</id>
      <description>Set a new property in the context of a request represented by this invocation builder. The property is available for a later retrieval via ClientRequestContext#getProperty(String) or jakarta.ws.rs.ext.InterceptorContext#getProperty(String). If a property with a given name is already set in the request context, the existing value of the property will be updated. Setting a null value into a property effectively removes the property from the request property bag.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Invocation.Builder</class-interface>
      <method name="property" return-type="jakarta.ws.rs.client.Invocation.Invocation.Builder">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1124</id>
      <description>Set a new message entity. The existing entity #getEntityAnnotations() annotations and #getMediaType() media type are preserved. It is the callers responsibility to wrap the actual entity with jakarta.ws.rs.core.GenericEntity if preservation of its generic type is required.</description>
      <package>jakarta.ws.rs.container</package>
      <class-interface>ContainerResponseContext</class-interface>
      <method name="setEntity" return-type="void">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1125</id>
      <description>Set the base URI for resolution of relative URIs. If the underlying URI is already absolute, the base URI is ignored.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link.Builder</class-interface>
      <method name="baseUri" return-type="jakarta.ws.rs.core.Link.Link.Builder">
        <parameters>
          <parameter>java.net.URI</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1126</id>
      <description>Set the base URI as a string for resolution of relative URIs. If the underlying URI is already absolute, the base URI is ignored.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link.Builder</class-interface>
      <method name="baseUri" return-type="jakarta.ws.rs.core.Link.Link.Builder">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1127</id>
      <description>Construct a new NoContentException instance.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>NoContentException</class-interface>
      <method name="NoContentException" return-type="NoContentException">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1128</id>
      <description>Construct a new NoContentException instance.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>NoContentException</class-interface>
      <method name="NoContentException" return-type="NoContentException">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>1129</id>
      <description>Construct a new NoContentException instance.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>NoContentException</class-interface>
      <method name="NoContentException" return-type="NoContentException">
        <parameters>
          <parameter>java.lang.Throwable</parameter>
        </parameters>
      </method>
    </assertion>
    <!-- ********************************************************************************** -->
    <!-- ********************************************************************************** -->
    <!-- ********************************************************************************** -->
    <!-- NEW ASSERTIONS LISTED BELOW -->
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1130</id>
      <description>Set the connect timeout. Value 0 represents infinity. Negative values are not allowed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientBuilder</class-interface>
      <method name="connectTimeout" return-type="jakarta.ws.rs.client.ClientBuilder">
        <parameters>
          <parameter>long</parameter>
          <parameter>java.util.concurrent.TimeUnit</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1131</id>
      <description>Set the client-side ExecutorService. Provided executor service will be used for executing asynchronous tasks. When running in a Java EE container, implementations are required to use the container-managed executor service.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientBuilder</class-interface>
      <method name="executorService" return-type="jakarta.ws.rs.client.ClientBuilder">
        <parameters>
          <parameter>java.util.concurrent.ExecutorService</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1132</id>
      <description>Set the read timeout. The value is the timeout to read a response. If the server doesn't respond within the defined timeframe, ProcessingException is thrown with TimeoutException as a cause. Value 0 represents infinity. Negative values are not allowed.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientBuilder</class-interface>
      <method name="readTimeout" return-type="jakarta.ws.rs.client.ClientBuilder">
        <parameters>
          <parameter>long</parameter>
          <parameter>java.util.concurrent.TimeUnit</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1133</id>
      <description>Set the client-side ScheduledExecutorService. Provided executor service will be used for executing scheduled asynchronous tasks. When running in a Java EE container, implementations are required to use the container-managed scheduled executor service.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>ClientBuilder</class-interface>
      <method name="scheduledExecutorService" return-type="jakarta.ws.rs.client.ClientBuilder">
        <parameters>
          <parameter>java.util.concurrent.ScheduledExecutorService</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1134</id>
      <description>Invoke HTTP DELETE method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>CompletionStageRxInvoker</class-interface>
      <method name="delete" return-type="java.util.concurrent.CompletionStage" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1135</id>
      <description>Invoke HTTP DELETE method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>CompletionStageRxInvoker</class-interface>
      <method name="delete" return-type="java.util.concurrent.CompletionStage">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1136</id>
      <description>Invoke HTTP DELETE method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>CompletionStageRxInvoker</class-interface>
      <method name="delete" return-type="java.util.concurrent.CompletionStage">
        <parameters>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1137</id>
      <description>Invoke HTTP GET method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>CompletionStageRxInvoker</class-interface>
      <method name="get" return-type="java.util.concurrent.CompletionStage" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1138</id>
      <description>Invoke HTTP GET method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>CompletionStageRxInvoker</class-interface>
      <method name="get" return-type="java.util.concurrent.CompletionStage">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1139</id>
      <description>Invoke HTTP GET method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>CompletionStageRxInvoker</class-interface>
      <method name="get" return-type="java.util.concurrent.CompletionStage">
        <parameters>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1140</id>
      <description>Invoke HTTP HEAD method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>CompletionStageRxInvoker</class-interface>
      <method name="head" return-type="java.util.concurrent.CompletionStage" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1141</id>
      <description>Invoke an arbitrary method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>CompletionStageRxInvoker</class-interface>
      <method name="method" return-type="java.util.concurrent.CompletionStage">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1142</id>
      <description>Invoke an arbitrary method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>CompletionStageRxInvoker</class-interface>
      <method name="method" return-type="java.util.concurrent.CompletionStage">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1143</id>
      <description>Invoke an arbitrary method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>CompletionStageRxInvoker</class-interface>
      <method name="method" return-type="java.util.concurrent.CompletionStage">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1144</id>
      <description>Invoke an arbitrary method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>CompletionStageRxInvoker</class-interface>
      <method name="method" return-type="java.util.concurrent.CompletionStage">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1145</id>
      <description>Invoke an arbitrary method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>CompletionStageRxInvoker</class-interface>
      <method name="method" return-type="java.util.concurrent.CompletionStage">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1146</id>
      <description>Invoke an arbitrary method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>CompletionStageRxInvoker</class-interface>
      <method name="method" return-type="java.util.concurrent.CompletionStage">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1147</id>
      <description>Invoke HTTP OPTIONS method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>CompletionStageRxInvoker</class-interface>
      <method name="options" return-type="java.util.concurrent.CompletionStage" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1148</id>
      <description>Invoke HTTP OPTIONS method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>CompletionStageRxInvoker</class-interface>
      <method name="options" return-type="java.util.concurrent.CompletionStage">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1149</id>
      <description>Invoke HTTP OPTIONS method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>CompletionStageRxInvoker</class-interface>
      <method name="options" return-type="java.util.concurrent.CompletionStage">
        <parameters>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1150</id>
      <description>Invoke HTTP POST method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>CompletionStageRxInvoker</class-interface>
      <method name="post" return-type="java.util.concurrent.CompletionStage">
        <parameters>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1151</id>
      <description>Invoke HTTP POST method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>CompletionStageRxInvoker</class-interface>
      <method name="post" return-type="java.util.concurrent.CompletionStage">
        <parameters>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1152</id>
      <description>Invoke HTTP POST method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>CompletionStageRxInvoker</class-interface>
      <method name="post" return-type="java.util.concurrent.CompletionStage">
        <parameters>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1153</id>
      <description>Invoke HTTP PUT method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>CompletionStageRxInvoker</class-interface>
      <method name="put" return-type="java.util.concurrent.CompletionStage">
        <parameters>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1154</id>
      <description>Invoke HTTP PUT method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>CompletionStageRxInvoker</class-interface>
      <method name="put" return-type="java.util.concurrent.CompletionStage">
        <parameters>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1155</id>
      <description>Invoke HTTP PUT method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>CompletionStageRxInvoker</class-interface>
      <method name="put" return-type="java.util.concurrent.CompletionStage">
        <parameters>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1156</id>
      <description>Invoke HTTP TRACE method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>CompletionStageRxInvoker</class-interface>
      <method name="trace" return-type="java.util.concurrent.CompletionStage" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1157</id>
      <description>Invoke HTTP TRACE method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>CompletionStageRxInvoker</class-interface>
      <method name="trace" return-type="java.util.concurrent.CompletionStage">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1158</id>
      <description>Invoke HTTP TRACE method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>CompletionStageRxInvoker</class-interface>
      <method name="trace" return-type="java.util.concurrent.CompletionStage">
        <parameters>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1159</id>
      <description />
      <package>jakarta.ws.rs.client</package>
      <class-interface>Entity</class-interface>
      <method name="equals" return-type="boolean">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1160</id>
      <description />
      <package>jakarta.ws.rs.client</package>
      <class-interface>Entity</class-interface>
      <method name="hashCode" return-type="int" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1161</id>
      <description />
      <package>jakarta.ws.rs.client</package>
      <class-interface>Entity</class-interface>
      <method name="toString" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1162</id>
      <description>Access the default reactive invoker based on java.util.concurrent.CompletionStage.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Invocation.Builder</class-interface>
      <method name="rx" return-type="jakarta.ws.rs.client.CompletionStageRxInvoker" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1163</id>
      <description>Access a reactive invoker based on a RxInvoker subclass provider. Note that corresponding RxInvokerProvider must be registered in the client runtime. This method is an extension point for JAX-RS implementations to support other types representing asynchronous computations.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>Invocation.Builder</class-interface>
      <method name="rx" return-type="jakarta.ws.rs.client.RxInvoker">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1164</id>
      <description>Invoke HTTP DELETE method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>RxInvoker</class-interface>
      <method name="delete" return-type="java.lang.Object" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1165</id>
      <description>Invoke HTTP DELETE method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>RxInvoker</class-interface>
      <method name="delete" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1166</id>
      <description>Invoke HTTP DELETE method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>RxInvoker</class-interface>
      <method name="delete" return-type="java.lang.Object">
        <parameters>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1167</id>
      <description>Invoke HTTP GET method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>RxInvoker</class-interface>
      <method name="get" return-type="java.lang.Object" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1168</id>
      <description>Invoke HTTP GET method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>RxInvoker</class-interface>
      <method name="get" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1169</id>
      <description>Invoke HTTP GET method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>RxInvoker</class-interface>
      <method name="get" return-type="java.lang.Object">
        <parameters>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1170</id>
      <description>Invoke HTTP HEAD method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>RxInvoker</class-interface>
      <method name="head" return-type="java.lang.Object" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1171</id>
      <description>Invoke an arbitrary method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>RxInvoker</class-interface>
      <method name="method" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1172</id>
      <description>Invoke an arbitrary method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>RxInvoker</class-interface>
      <method name="method" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1173</id>
      <description>Invoke an arbitrary method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>RxInvoker</class-interface>
      <method name="method" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1174</id>
      <description>Invoke an arbitrary method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>RxInvoker</class-interface>
      <method name="method" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1175</id>
      <description>Invoke an arbitrary method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>RxInvoker</class-interface>
      <method name="method" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1176</id>
      <description>Invoke an arbitrary method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>RxInvoker</class-interface>
      <method name="method" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1177</id>
      <description>Invoke HTTP OPTIONS method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>RxInvoker</class-interface>
      <method name="options" return-type="java.lang.Object" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1178</id>
      <description>Invoke HTTP OPTIONS method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>RxInvoker</class-interface>
      <method name="options" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1179</id>
      <description>Invoke HTTP OPTIONS method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>RxInvoker</class-interface>
      <method name="options" return-type="java.lang.Object">
        <parameters>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1180</id>
      <description>Invoke HTTP POST method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>RxInvoker</class-interface>
      <method name="post" return-type="java.lang.Object">
        <parameters>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1181</id>
      <description>Invoke HTTP POST method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>RxInvoker</class-interface>
      <method name="post" return-type="java.lang.Object">
        <parameters>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1182</id>
      <description>Invoke HTTP POST method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>RxInvoker</class-interface>
      <method name="post" return-type="java.lang.Object">
        <parameters>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1183</id>
      <description>Invoke HTTP PUT method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>RxInvoker</class-interface>
      <method name="put" return-type="java.lang.Object">
        <parameters>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1184</id>
      <description>Invoke HTTP PUT method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>RxInvoker</class-interface>
      <method name="put" return-type="java.lang.Object">
        <parameters>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1185</id>
      <description>Invoke HTTP PUT method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>RxInvoker</class-interface>
      <method name="put" return-type="java.lang.Object">
        <parameters>
          <parameter>jakarta.ws.rs.client.Entity</parameter>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1186</id>
      <description>Invoke HTTP TRACE method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>RxInvoker</class-interface>
      <method name="trace" return-type="java.lang.Object" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1187</id>
      <description>Invoke HTTP TRACE method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>RxInvoker</class-interface>
      <method name="trace" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1188</id>
      <description>Invoke HTTP TRACE method for the current request.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>RxInvoker</class-interface>
      <method name="trace" return-type="java.lang.Object">
        <parameters>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1189</id>
      <description>Get RxInvoker implementation instance. The returned instance has to be thread safe.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>RxInvokerProvider</class-interface>
      <method name="getRxInvoker" return-type="jakarta.ws.rs.client.RxInvoker">
        <parameters>
          <parameter>jakarta.ws.rs.client.SyncInvoker</parameter>
          <parameter>java.util.concurrent.ExecutorService</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1190</id>
      <description>Determine if this is a provider for the given RxInvoker subclass.</description>
      <package>jakarta.ws.rs.client</package>
      <class-interface>RxInvokerProvider</class-interface>
      <method name="isProviderFor" return-type="boolean">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1191</id>
      <description>Create a jakarta.ws.rs.core.GenericType generic type from a Java instance. If the supplied instance is a jakarta.ws.rs.core.GenericEntity, the generic type will be computed using the jakarta.ws.rs.core.GenericEntity#getType(). Otherwise instance.getClass() will be used.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>GenericType</class-interface>
      <method name="forInstance" return-type="jakarta.ws.rs.core.GenericType">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1192</id>
      <description />
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link.JaxbLink</class-interface>
      <method name="equals" return-type="boolean">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1193</id>
      <description />
      <package>jakarta.ws.rs.core</package>
      <class-interface>Link.JaxbLink</class-interface>
      <method name="hashCode" return-type="int" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1194</id>
      <description>Create a new ResponseBuilder with the supplied status and reason phrase.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response</class-interface>
      <method name="status" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>int</parameter>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1195</id>
      <description>Set the status on the ResponseBuilder.</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.ResponseBuilder</class-interface>
      <method name="status" return-type="jakarta.ws.rs.core.Response.Response.ResponseBuilder">
        <parameters>
          <parameter>int</parameter>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1196</id>
      <description>Get the this Status Type as a Status. Please note that returned status contains only a status code, the reason phrase is set to default one (corresponding to the status code).</description>
      <package>jakarta.ws.rs.core</package>
      <class-interface>Response.StatusType</class-interface>
      <method name="toEnum" return-type="jakarta.ws.rs.core.Response.Response.Status" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1197</id>
      <description>Check if the event is empty (i.e. does not contain any data).</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>InboundSseEvent</class-interface>
      <method name="isEmpty" return-type="boolean" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1198</id>
      <description>Get the original event data as String.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>InboundSseEvent</class-interface>
      <method name="readData" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1199</id>
      <description>Read event data as a given Java type.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>InboundSseEvent</class-interface>
      <method name="readData" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.Class</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1200</id>
      <description>Read event data as a given generic type.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>InboundSseEvent</class-interface>
      <method name="readData" return-type="java.lang.Object">
        <parameters>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1201</id>
      <description>Read event data as a given Java type.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>InboundSseEvent</class-interface>
      <method name="readData" return-type="java.lang.Object">
        <parameters>
          <parameter>java.lang.Class</parameter>
          <parameter>jakarta.ws.rs.core.MediaType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1202</id>
      <description>Read event data as a given generic type.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>InboundSseEvent</class-interface>
      <method name="readData" return-type="java.lang.Object">
        <parameters>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
          <parameter>jakarta.ws.rs.core.MediaType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1203</id>
      <description>Get event data. The event data, if specified, are serialized and sent as one or more SSE event "data" fields (depending on the line breaks in the actual serialized data content). The data are serialized using an available jakarta.ws.rs.ext.MessageBodyWriter that is selected based on the event #getType() type, #getGenericType() generic type} and #getMediaType() media type}.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>OutboundSseEvent</class-interface>
      <method name="getData" return-type="java.lang.Object" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1204</id>
      <description>Get generic data type. This information is used to select a proper jakarta.ws.rs.ext.MessageBodyWriter to be used for serializing the #getData() event data.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>OutboundSseEvent</class-interface>
      <method name="getGenericType" return-type="java.lang.reflect.Type" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1205</id>
      <description>Get MediaType media type of the event data. This information is used to a select proper jakarta.ws.rs.ext.MessageBodyWriter to be used for serializing the #getData() event data.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>OutboundSseEvent</class-interface>
      <method name="getMediaType" return-type="jakarta.ws.rs.core.MediaType" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1206</id>
      <description>Get data type. This information is used to select a proper jakarta.ws.rs.ext.MessageBodyWriter to be used for serializing the #getData() event data.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>OutboundSseEvent</class-interface>
      <method name="getType" return-type="java.lang.Class" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1207</id>
      <description>Build OutboundSseEvent. There are two valid configurations: if a Builder#comment(String) comment is set, all other parameters are optional. If event Builder#data(Class, Object) data and Builder#mediaType(MediaType) media type is set, event data will be serialized after the comment. if a Builder#comment(String) comment is not set, at least the event Builder#data(Class, Object) data must be set. All other parameters are optional.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>OutboundSseEvent.Builder</class-interface>
      <method name="build" return-type="jakarta.ws.rs.sse.OutboundSseEvent" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1208</id>
      <description>Set comment string associated with the event. The comment will be serialized with the event, before event data are serialized. If the event does not contain any data, a separate "event" that contains only the comment will be sent. This information is optional, provided the event data are set. Note that multiple invocations of this method result in a previous comment being replaced with a new one. To achieve multi-line comments, a multi-line comment string has to be used.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>OutboundSseEvent.Builder</class-interface>
      <method name="comment" return-type="jakarta.ws.rs.sse.OutboundSseEvent.OutboundSseEvent.Builder">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1209</id>
      <description>Set event data and java type of event data. Type information will be used for jakarta.ws.rs.ext.MessageBodyWriter lookup. Note that multiple invocations of this method result in previous even data being replaced with new one.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>OutboundSseEvent.Builder</class-interface>
      <method name="data" return-type="jakarta.ws.rs.sse.OutboundSseEvent.OutboundSseEvent.Builder">
        <parameters>
          <parameter>java.lang.Class</parameter>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1210</id>
      <description>Set event data and a generic java type of event data. Type information will be used for jakarta.ws.rs.ext.MessageBodyWriter lookup. Note that multiple invocations of this method result in previous even data being replaced with new one.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>OutboundSseEvent.Builder</class-interface>
      <method name="data" return-type="jakarta.ws.rs.sse.OutboundSseEvent.OutboundSseEvent.Builder">
        <parameters>
          <parameter>jakarta.ws.rs.core.GenericType</parameter>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1211</id>
      <description>Set event data and java type of event data. This is a convenience method that derives the event data type information from the runtime type of the event data. The supplied event data may be represented as jakarta.ws.rs.core.GenericEntity. Note that multiple invocations of this method result in previous even data being replaced with new one.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>OutboundSseEvent.Builder</class-interface>
      <method name="data" return-type="jakarta.ws.rs.sse.OutboundSseEvent.OutboundSseEvent.Builder">
        <parameters>
          <parameter>java.lang.Object</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1212</id>
      <description>Set the event id. Will be send as a value of the SSE "id" field. This field is optional.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>OutboundSseEvent.Builder</class-interface>
      <method name="id" return-type="jakarta.ws.rs.sse.OutboundSseEvent.OutboundSseEvent.Builder">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1213</id>
      <description>Set the MediaType media type of the event data. This information is mandatory. The default value is MediaType#TEXT_PLAIN.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>OutboundSseEvent.Builder</class-interface>
      <method name="mediaType" return-type="jakarta.ws.rs.sse.OutboundSseEvent.OutboundSseEvent.Builder">
        <parameters>
          <parameter>jakarta.ws.rs.core.MediaType</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1214</id>
      <description>Set event name. Will be send as a value of the SSE "event" field. This field is optional.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>OutboundSseEvent.Builder</class-interface>
      <method name="name" return-type="jakarta.ws.rs.sse.OutboundSseEvent.OutboundSseEvent.Builder">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1215</id>
      <description>Set reconnection delay (in milliseconds) that indicates how long the event receiver should wait before attempting to reconnect in case a connection to SSE event source is lost. Will be send as a value of the SSE "retry" field. This field is optional. Absence of a value of this field in an OutboundSseEvent instance is indicated by SseEvent#RECONNECT_NOT_SET value returned from #getReconnectDelay().</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>OutboundSseEvent.Builder</class-interface>
      <method name="reconnectDelay" return-type="jakarta.ws.rs.sse.OutboundSseEvent.OutboundSseEvent.Builder">
        <parameters>
          <parameter>long</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1216</id>
      <description>Get a new Server-sent event broadcaster.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>Sse</class-interface>
      <method name="newBroadcaster" return-type="jakarta.ws.rs.sse.SseBroadcaster" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1217</id>
      <description>Create new OutboundSseEvent from provided data. The data can be string only and must not be null.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>Sse</class-interface>
      <method name="newEvent" return-type="jakarta.ws.rs.sse.OutboundSseEvent">
        <parameters>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1218</id>
      <description>Create new OutboundSseEvent from provided data and name.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>Sse</class-interface>
      <method name="newEvent" return-type="jakarta.ws.rs.sse.OutboundSseEvent">
        <parameters>
          <parameter>java.lang.String</parameter>
          <parameter>java.lang.String</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1219</id>
      <description>Get a new outbound event builder.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>Sse</class-interface>
      <method name="newEventBuilder" return-type="jakarta.ws.rs.sse.OutboundSseEvent.OutboundSseEvent.Builder" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1220</id>
      <description>Publish an SSE event to all registered SseEventSink instances.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>SseBroadcaster</class-interface>
      <method name="broadcast" return-type="java.util.concurrent.CompletionStage">
        <parameters>
          <parameter>jakarta.ws.rs.sse.OutboundSseEvent</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1221</id>
      <description>Close the broadcaster and all registered SseEventSink instances. Any other resources associated with the SseBroadcaster should be released. Subsequent calls have no effect and are ignored. Once the SseBroadcaster is closed, invoking any other method on the broadcaster instance would result in an IllegalStateException being thrown.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>SseBroadcaster</class-interface>
      <method name="close" return-type="void" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1222</id>
      <description>Register a listener, which will be called when the SSE event output has been closed (either by client closing the connection or by calling SseEventSink#close() on the server side. This operation is potentially slow, especially if large number of listeners get registered in the broadcaster. The SseBroadcaster implementation is optimized to efficiently handle small amounts of concurrent listener registrations and removals and large amounts of registered listener notifications.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>SseBroadcaster</class-interface>
      <method name="onClose" return-type="void">
        <parameters>
          <parameter>java.util.function.Consumer</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1223</id>
      <description>Register a listener, which will be called when an exception was thrown by a given SSE event output when trying to write to it or close it. This operation is potentially slow, especially if large number of listeners get registered in the broadcaster. The SseBroadcaster implementation is optimized to efficiently handle small amounts of concurrent listener registrations and removals and large amounts of registered listener notifications.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>SseBroadcaster</class-interface>
      <method name="onError" return-type="void">
        <parameters>
          <parameter>java.util.function.BiConsumer</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1224</id>
      <description>Register provided SseEventSink instance to this SseBroadcaster.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>SseBroadcaster</class-interface>
      <method name="register" return-type="void">
        <parameters>
          <parameter>jakarta.ws.rs.sse.SseEventSink</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1225</id>
      <description>Get a comment string that accompanies the event. Contains value of the comment associated with SSE event. This field is optional. Method may return null, if the event comment is not specified.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>SseEvent</class-interface>
      <method name="getComment" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1226</id>
      <description>Get event identifier. Contains value of SSE "id" field. This field is optional. Method may return null, if the event identifier is not specified.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>SseEvent</class-interface>
      <method name="getId" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1227</id>
      <description>Get event name. Contains value of SSE "event" field. This field is optional. Method may return null, if the event name is not specified.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>SseEvent</class-interface>
      <method name="getName" return-type="java.lang.String" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1228</id>
      <description>Get new connection retry time in milliseconds the event receiver should wait before attempting to reconnect after a connection to the SSE event source is lost. Contains value of SSE "retry" field. This field is optional. Method returns #RECONNECT_NOT_SET if no value has been set.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>SseEvent</class-interface>
      <method name="getReconnectDelay" return-type="long" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1229</id>
      <description>Check if the connection retry time has been set in the event.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>SseEvent</class-interface>
      <method name="isReconnectDelaySet" return-type="boolean" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1230</id>
      <description>Close the SseEventSink instance and release all associated resources. Subsequent calls have no effect and are ignored. Once the SseEventSink is closed, invoking any method other than this one and #isClosed() would result in an IllegalStateException being thrown.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>SseEventSink</class-interface>
      <method name="close" return-type="void" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1231</id>
      <description>Check if the stream has been closed already. Please note that the client connection represented by this SseServerSink can be closed by the client side when a client decides to close connection and disconnect from the server.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>SseEventSink</class-interface>
      <method name="isClosed" return-type="boolean" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1232</id>
      <description>Send an outbound Server-sent event to this sink. Event will be serialized and sent to the client.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>SseEventSink</class-interface>
      <method name="send" return-type="java.util.concurrent.CompletionStage">
        <parameters>
          <parameter>jakarta.ws.rs.sse.OutboundSseEvent</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1233</id>
      <description>Close this event source. The method will wait up to 5 seconds for the internal event processing tasks to complete.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>SseEventSource</class-interface>
      <method name="close" return-type="void" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1234</id>
      <description>Close this event source and wait for the internal event processing task to complete for up to the specified amount of wait time. The method blocks until the event processing task has completed execution after a shutdown request, or until the timeout occurs, or the current thread is interrupted, whichever happens first. In case the waiting for the event processing task has been interrupted, this method restores the Thread#interrupted() interrupt flag on the thread before returning false.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>SseEventSource</class-interface>
      <method name="close" return-type="boolean">
        <parameters>
          <parameter>long</parameter>
          <parameter>java.util.concurrent.TimeUnit</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1235</id>
      <description>Check if this event source instance has already been #open() opened.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>SseEventSource</class-interface>
      <method name="isOpen" return-type="boolean" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1236</id>
      <description>Open the connection to the supplied SSE underlying WebTarget web target and start processing incoming InboundSseEvent events.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>SseEventSource</class-interface>
      <method name="open" return-type="void" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1237</id>
      <description>Register a InboundSseEvent consumer. Given consumer is invoked once per each received event.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>SseEventSource</class-interface>
      <method name="register" return-type="void">
        <parameters>
          <parameter>java.util.function.Consumer</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1238</id>
      <description>Register InboundSseEvent and Throwable consumers. Event consumer is invoked once per each received event, Throwable consumer is invoked invoked upon a unrecoverable error encountered by a SseEventSource.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>SseEventSource</class-interface>
      <method name="register" return-type="void">
        <parameters>
          <parameter>java.util.function.Consumer</parameter>
          <parameter>java.util.function.Consumer</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1239</id>
      <description>Register InboundSseEvent and Throwable consumers and onComplete callback. Event consumer is invoked once per each received event, Throwable consumer is invoked invoked upon a unrecoverable error encountered by a SseEventSource, onComplete callback is invoked when there are no further events to be received.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>SseEventSource</class-interface>
      <method name="register" return-type="void">
        <parameters>
          <parameter>java.util.function.Consumer</parameter>
          <parameter>java.util.function.Consumer</parameter>
          <parameter>java.lang.Runnable</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1240</id>
      <description>Create a new SseEventSource.Builder event source builder that provides convenient way how to configure and fine-tune various aspects of a newly prepared event source instance.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>SseEventSource</class-interface>
      <method name="target" return-type="jakarta.ws.rs.sse.SseEventSource.SseEventSource.Builder">
        <parameters>
          <parameter>jakarta.ws.rs.client.WebTarget</parameter>
        </parameters>
      </method>
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1241</id>
      <description>Build new SSE event source pointing at a SSE streaming WebTarget web target. The returned event source is ready, but not SseEventSource#open() connected to the SSE endpoint. It is expected that you will manually invoke its #open() method once you are ready to start receiving SSE events. In case you want to build an event source instance that is already connected to the SSE endpoint, use the event source builder #open() method instead. Once the event source is open, the incoming events are processed by the event source in an asynchronous task that runs in an internal single-threaded ScheduledExecutorService scheduled executor service.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>SseEventSource.Builder</class-interface>
      <method name="build" return-type="jakarta.ws.rs.sse.SseEventSource" />
    </assertion>
    <assertion required="true" impl-spec="false" status="active" testable="true">
      <id>JAXRS:JAVADOC:1242</id>
      <description>Set the initial reconnect delay to be used by the event source. Note that this value may be later overridden by the SSE endpoint using either a retry SSE event field or HTTP 503 + mechanism as described in the SseEventSource javadoc.</description>
      <package>jakarta.ws.rs.sse</package>
      <class-interface>SseEventSource.Builder</class-interface>
      <method name="reconnectingEvery" return-type="jakarta.ws.rs.sse.SseEventSource.SseEventSource.Builder">
        <parameters>
          <parameter>long</parameter>
          <parameter>java.util.concurrent.TimeUnit</parameter>
        </parameters>
      </method>
    </assertion>
  </assertions>
</javadoc>

