List<String> getLinkHeaderValues(Object entity, UriInfo uriInfo) { final List<Object> matchedResources = uriInfo.getMatchedResources(); if (!matchedResources.isEmpty()) { final Object resource = matchedResources.get(0); final List<String> headerValues = new ArrayList<String>(); for (LinkHeaderDescriptor desc : instanceDescriptor.getLinkHeaders()) { if (ELLinkBuilder.evaluateCondition(desc.getCondition(), entity, resource, entity)) { String headerValue = getLinkHeaderValue(desc, entity, resource, uriInfo); headerValues.add(headerValue); } } return headerValues; } return Collections.emptyList(); }
static String getLinkHeaderValue( LinkHeaderDescriptor desc, Object entity, Object resource, UriInfo uriInfo) { URI uri = ELLinkBuilder.buildURI(desc, entity, resource, entity, uriInfo); InjectLink link = desc.getLinkHeader(); return InjectLink.Util.buildLinkFromUri(uri, link).toString(); }