Package jakarta.ws.rs.core
Class Link
- java.lang.Object
-
- jakarta.ws.rs.core.Link
-
public abstract class Link extends Object
Class representing hypermedia links. A hypermedia link may include additional parameters beyond its underlying URI. Parameters such as
relortypeprovide additional meta-data. Links in responses can be followed by creating anInvocation.Builderor aWebTarget.The methods
toString()andvalueOf(java.lang.String)can be used to serialize and de-serialize a link into a link header (RFC 5988).- Since:
- 2.0
- Author:
- Marek Potociar, Santiago Pericas-Geertsen
- See Also:
Client.invocation(jakarta.ws.rs.core.Link),Client.target(jakarta.ws.rs.core.Link),Response.getLink(java.lang.String)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceLink.BuilderBuilder class for hypermedia links.static classLink.JaxbAdapterDeprecated.static classLink.JaxbLinkDeprecated.
-
Constructor Summary
Constructors Constructor Description Link()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description static Link.BuilderfromLink(Link link)Create a new builder instance initialized from another link.static Link.BuilderfromMethod(Class<?> resource, String method)Convenience method to build a link from a resource.static Link.BuilderfromPath(String path)Convenience method to build a link from a path.static Link.BuilderfromResource(Class<?> resource)Convenience method to build a link from a resource.static Link.BuilderfromUri(String uri)Create a new builder instance initialized from an existing URI represented as a string.static Link.BuilderfromUri(URI uri)Create a new builder instance initialized from an existing URI.static Link.BuilderfromUriBuilder(UriBuilder uriBuilder)Create a new builder instance initialized from a URI builder.abstract Map<String,String>getParams()Returns an immutable map that includes all the link parameters defined on this link.abstract StringgetRel()Returns the value associated with the linkrelparam, ornullif this param is not specified.abstract List<String>getRels()Returns the value associated with the linkrelparam as a list of strings or the empty list ifrelis not defined.abstract StringgetTitle()Returns the value associated with the linktitleparam, ornullif this param is not specified.abstract StringgetType()Returns the value associated with the linktypeparam, ornullif this param is not specified.abstract URIgetUri()Returns the underlying URI associated with this link.abstract UriBuildergetUriBuilder()Convenience method that returns aUriBuilderinitialized with this link's underlying URI.abstract StringtoString()Returns a string representation as a link header (RFC 5988).static LinkvalueOf(String value)Simple parser to convert link header string representations into a link.
-
-
-
Field Detail
-
TITLE
public static final String TITLE
Title link param from RFC 5988.- See Also:
- Constant Field Values
-
REL
public static final String REL
Rel link param from RFC 5988.- See Also:
- Constant Field Values
-
TYPE
public static final String TYPE
Type link param from RFC 5988.- See Also:
- Constant Field Values
-
-
Method Detail
-
getUri
public abstract URI getUri()
Returns the underlying URI associated with this link.- Returns:
- underlying URI.
-
getUriBuilder
public abstract UriBuilder getUriBuilder()
Convenience method that returns aUriBuilderinitialized with this link's underlying URI.- Returns:
- UriBuilder initialized using underlying URI.
-
getRel
public abstract String getRel()
Returns the value associated with the linkrelparam, ornullif this param is not specified.- Returns:
- relation types as string or
null.
-
getRels
public abstract List<String> getRels()
Returns the value associated with the linkrelparam as a list of strings or the empty list ifrelis not defined.- Returns:
- relation types as list of strings or empty list.
-
getTitle
public abstract String getTitle()
Returns the value associated with the linktitleparam, ornullif this param is not specified.- Returns:
- value of title parameter or
null.
-
getType
public abstract String getType()
Returns the value associated with the linktypeparam, ornullif this param is not specified.- Returns:
- value of type parameter or
null.
-
getParams
public abstract Map<String,String> getParams()
Returns an immutable map that includes all the link parameters defined on this link. If defined, this map will include entries forrel,titleandtype.- Returns:
- immutable map of link parameters.
-
toString
public abstract String 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
public static Link valueOf(String value)
Simple parser to convert link header string representations into a link.link ::= '<' uri 'gt;' (';' link-param)* link-param ::= name '=' quoted-stringSee RFC 5988 for more information.- Parameters:
value- String representation.- Returns:
- newly parsed link.
- Throws:
IllegalArgumentException- if a syntax error is found.- See Also:
Link.Builder.link(java.lang.String)
-
fromUri
public static Link.Builder fromUri(URI uri)
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
public static Link.Builder fromUri(String uri)
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
public static Link.Builder fromUriBuilder(UriBuilder uriBuilder)
Create a new builder instance initialized from a URI builder.- Parameters:
uriBuilder- instance of URI builder.- Returns:
- a new builder.
-
fromLink
public static Link.Builder fromLink(Link link)
Create a new builder instance initialized from another link.- Parameters:
link- other link used for initialization.- Returns:
- a new builder.
-
fromPath
public static Link.Builder fromPath(String path)
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
public static Link.Builder fromResource(Class<?> resource)
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.Builderinstance returned by this method is relative. Should the link be built as absolute, abase URIhas 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 whosePathvalue will be used to initialize the builder.- Returns:
- a new
link builderinstance. - Throws:
IllegalArgumentException- if resource is not annotated withPathor resource isnull.- See Also:
UriInfo.getBaseUri()
-
fromMethod
public static Link.Builder fromMethod(Class<?> resource, String method)
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.Builderinstance returned by this method is relative. Should the link be built as absolute, abase URIhas 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 whosePathvalue 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:
UriInfo.getBaseUri()
-
-