I have this old Spring Hateos code which I want to migrate to the latest version:
Map<String, Link> links = new HashMap<>();
links.put(Link.REL_NEXT, response.getLink(Link.REL_NEXT));
links.put(Link.REL_PREVIOUS, response.getLink(Link.REL_PREVIOUS));
addLink(url, response, links, Link.REL_NEXT);
addLink(url, response, links, Link.REL_PREVIOUS);
....
private void addLink(String baseUrl, WebResource response, Map<String, Link> links, String rel) {
if (links.get(rel) == null) {
return;
}
Link link = links.get(rel);
String href = baseUrl;
if (link.getHref().contains("?")) {
href = href + link.getHref().substring(link.getHref().indexOf('?'));
}
link = Link.of(href, rel);
response.add(link);
}
I tried this:
Map<LinkRelation, Optional> links = new HashMap<>();
links.put(IanaLinkRelations.SELF, response.getLink(IanaLinkRelations.SELF));
links.put(IanaLinkRelations.NEXT, response.getLink(IanaLinkRelations.NEXT));
links.put(IanaLinkRelations.PREVIOUS, response.getLink(IanaLinkRelations.PREVIOUS));
addLink(apmCoreBaseUrl, response, links, IanaLinkRelations.SELF);
addLink(apmCoreBaseUrl, response, links, IanaLinkRelations.NEXT);
addLink(apmCoreBaseUrl, response, links, IanaLinkRelations.PREVIOUS);
private void addLink(String baseUrl, RegistrationsResource response, Map<LinkRelation, Optional> links, LinkRelation rel) {
if (links.get(rel) == null) {
return;
}
Link link = links.get(rel);
String href = baseUrl;
if (link.getHref().contains("?")) {
href = href + link.getHref().substring(link.getHref().indexOf('?'));
}
link = Link.of(href, rel);
response.add(link);
}
I get error at this line:
Link link = links.get(rel);
Required type: Link
Provided: Optional
Can you advise what is the correct way to implement this?