Package jakarta.ws.rs.core
Class Link
java.lang.Object
jakarta.ws.rs.core.Link
Class representing hypermedia links. A hypermedia link may include additional parameters beyond its underlying URI.
Parameters such as rel
or type
provide additional meta-data. Links in responses can be
followed by creating an Invocation.Builder
or a
WebTarget
.
The methods toString()
and valueOf(java.lang.String)
can be used to serialize and de-serialize a link into a link
header (RFC 5988).
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic interface
Builder class for hypermedia links.static class
An implementation of JAXBXmlAdapter
that maps the JAX-RSLink
type to a value that can be marshalled and unmarshalled by JAXB.static class
Value type forLink
that can be marshalled and unmarshalled by JAXB. -
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic Link.Builder
Create a new builder instance initialized from another link.static Link.Builder
fromMethod
(Class<?> resource, String method) Convenience method to build a link from a resource.static Link.Builder
Convenience method to build a link from a path.static Link.Builder
fromResource
(Class<?> resource) Convenience method to build a link from a resource.static Link.Builder
Create a new builder instance initialized from an existing URI represented as a string.static Link.Builder
Create a new builder instance initialized from an existing URI.static Link.Builder
fromUriBuilder
(UriBuilder uriBuilder) Create a new builder instance initialized from a URI builder.Returns an immutable map that includes all the link parameters defined on this link.abstract String
getRel()
Returns the value associated with the linkrel
param, ornull
if this param is not specified.getRels()
Returns the value associated with the linkrel
param as a list of strings or the empty list ifrel
is not defined.abstract String
getTitle()
Returns the value associated with the linktitle
param, ornull
if this param is not specified.abstract String
getType()
Returns the value associated with the linktype
param, ornull
if this param is not specified.abstract URI
getUri()
Returns the underlying URI associated with this link.abstract UriBuilder
Convenience method that returns aUriBuilder
initialized with this link's underlying URI.abstract String
toString()
Returns a string representation as a link header (RFC 5988).static Link
Simple parser to convert link header string representations into a link.
-
Field Details
-
TITLE
Title link param from RFC 5988.- See Also:
-
REL
Rel link param from RFC 5988.- See Also:
-
TYPE
Type link param from RFC 5988.- See Also:
-
-
Constructor Details
-
Link
public Link()
-
-
Method Details
-
getUri
Returns the underlying URI associated with this link.- Returns:
- underlying URI.
-
getUriBuilder
Convenience method that returns aUriBuilder
initialized with this link's underlying URI.- Returns:
- UriBuilder initialized using underlying URI.
-
getRel
Returns the value associated with the linkrel
param, ornull
if this param is not specified.- Returns:
- relation types as string or
null
.
-
getRels
Returns the value associated with the linkrel
param as a list of strings or the empty list ifrel
is not defined.- Returns:
- relation types as list of strings or empty list.
-
getTitle
Returns the value associated with the linktitle
param, ornull
if this param is not specified.- Returns:
- value of title parameter or
null
.
-
getType
Returns the value associated with the linktype
param, ornull
if this param is not specified.- Returns:
- value of type parameter or
null
.
-
getParams
Returns an immutable map that includes all the link parameters defined on this link. If defined, this map will include entries forrel
,title
andtype
.- Returns:
- immutable map of link parameters.
-
toString
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, <http://foo.bar/employee/john>; title="employee"; rel="manager friend" -
valueOf
Simple parser to convert link header string representations into a link.link ::= '<' uri 'gt;' (';' link-param)* link-param ::= name '=' quoted-string
See RFC 5988 for more information.- Parameters:
value
- String representation.- Returns:
- newly parsed link.
- Throws:
IllegalArgumentException
- if a syntax error is found.- See Also:
-
fromUri
Create a new builder instance initialized from an existing URI.- Parameters:
uri
- a URI that will be used to initialize the builder.- Returns:
- a new builder.
- Throws:
IllegalArgumentException
- if uri isnull
.
-
fromUri
Create a new builder instance initialized from an existing URI represented as a string.- Parameters:
uri
- a URI that will be used to initialize the builder.- Returns:
- a new builder.
- Throws:
IllegalArgumentException
- if uri isnull
.
-
fromUriBuilder
Create a new builder instance initialized from a URI builder.- Parameters:
uriBuilder
- instance of URI builder.- Returns:
- a new builder.
-
fromLink
Create a new builder instance initialized from another link.- Parameters:
link
- other link used for initialization.- Returns:
- a new builder.
-
fromPath
Convenience method to build a link from a path. Equivalent tofromUriBuilder(UriBuilder.fromPath(path))
.- Parameters:
path
- a URI path that will be used to initialize the Link, may contain URI template parameters.- Returns:
- a new Link.Builder.
- Throws:
IllegalArgumentException
- if path isnull
.
-
fromResource
Convenience method to build a link from a resource. Equivalent toLink.fromUriBuilder({@link UriBuilder#fromResource UriBuilder.fromResource(resource)})
. Note that the link URI passed to theLink.Builder
instance returned by this method is relative. Should the link be built as absolute, abase URI
has to be specified in the builder prior to building the new link instance. For example, on a server side aUriInfo.getBaseUri()
may be typically used to define the base URI of a link created using this method.- Parameters:
resource
- a root resource whosePath
value will be used to initialize the builder.- Returns:
- a new
link builder
instance. - Throws:
IllegalArgumentException
- if resource is not annotated withPath
or resource isnull
.- See Also:
-
fromMethod
Convenience method to build a link from a resource. Equivalent toLink.fromUriBuilder({@link UriBuilder#fromMethod(Class, String) UriBuilder.fromMethod(resource, method)})
. Note that the link URI passed to theLink.Builder
instance returned by this method is relative. Should the link be built as absolute, abase URI
has to be specified in the builder prior to building the new link instance. For example, on a server side aUriInfo.getBaseUri()
may be typically used to define the base URI of a link created using this method.- Parameters:
resource
- the resource containing the method.method
- the name of the method whosePath
value will be used to obtain the path to append.- Returns:
- the updated Link.Builder.
- Throws:
IllegalArgumentException
- if resource or method isnull
, or there is more than or less than one variant of the method annotated withPath
.- See Also:
-