<?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 it's 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 it's resume(...) methods, cancel the suspended response using one of it's 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 it's 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>

