private Link createSelfLink(Object object, Links existing) { if (existing.hasLink(Link.REL_SELF)) { return existing.getLink(Link.REL_SELF); } return links.createSelfLinkFor(object).withSelfRel(); }
/** * List a profile link for each exported repository. * * @return */ @RequestMapping(value = PROFILE_ROOT_MAPPING, method = GET) HttpEntity<ResourceSupport> listAllFormsOfMetadata() { ResourceSupport profile = new ResourceSupport(); profile.add(new Link(getRootPath(this.configuration)).withSelfRel()); for (Class<?> domainType : this.repositories) { ResourceMetadata mapping = this.mappings.getMetadataFor(domainType); if (mapping.isExported()) { profile.add(new Link(getPath(this.configuration, mapping), mapping.getRel())); } } return new ResponseEntity<ResourceSupport>(profile, HttpStatus.OK); }
@Override public void doWithAssociation(Association<? extends PersistentProperty<?>> association) { PersistentProperty<?> property = association.getInverse(); if (!jackson.isExported(property) || !associations.isLinkableAssociation(property)) { return; } ResourceMapping mapping = metadata.getMappingFor(property); DescriptorBuilder builder = descriptor().// name(mapping.getRel()).doc(getDocFor(mapping.getDescription())); ResourceMetadata targetTypeMetadata = associations.getMetadataFor(property.getActualType()); String href = ProfileController.getPath(configuration, targetTypeMetadata) + "#" + getRepresentationDescriptorId(targetTypeMetadata); Link link = new Link(href).withSelfRel(); builder.// type(Type.SAFE).// rt(link.getHref()); propertyDescriptors.add(builder.build()); } });
private String customerHref(String customerId) { return configuration.entityLinks() .linkToSingleResource(Customer.class, customerId) .withSelfRel().getHref(); } }
private Link createSelfLink(Object object, Links existing) { if (existing.hasLink(Link.REL_SELF)) { return existing.getLink(Link.REL_SELF); } return links.createSelfLinkFor(object).withSelfRel(); }
/** * List a profile link for each exported repository. * * @return */ @RequestMapping(value = PROFILE_ROOT_MAPPING, method = GET) HttpEntity<ResourceSupport> listAllFormsOfMetadata() { ResourceSupport profile = new ResourceSupport(); profile.add(new Link(getRootPath(this.configuration)).withSelfRel()); for (Class<?> domainType : this.repositories) { ResourceMetadata mapping = this.mappings.getMetadataFor(domainType); if (mapping.isExported()) { profile.add(new Link(getPath(this.configuration, mapping), mapping.getRel())); } } return new ResponseEntity<ResourceSupport>(profile, HttpStatus.OK); }
@Override public OrderResource toResource(Order order) { OrderResource resource = new OrderResource(order); final Link selfLink = entityLinks.linkToSingleResource(order); resource.add(selfLink.withSelfRel()); resource.add(selfLink.withRel(UPDATE_REL)); resource.add(selfLink.withRel(DELETE_REL)); return resource; } }
@Override public void doWithAssociation(Association<? extends PersistentProperty<?>> association) { PersistentProperty<?> property = association.getInverse(); if (!jackson.isExported(property) || !associations.isLinkableAssociation(property)) { return; } ResourceMapping mapping = metadata.getMappingFor(property); DescriptorBuilder builder = descriptor().// name(mapping.getRel()).doc(getDocFor(mapping.getDescription())); ResourceMetadata targetTypeMetadata = associations.getMetadataFor(property.getActualType()); String href = ProfileController.getPath(configuration, targetTypeMetadata) + "#" + getRepresentationDescriptorId(targetTypeMetadata); Link link = new Link(href).withSelfRel(); builder.// type(Type.SAFE).// rt(link.getHref()); propertyDescriptors.add(builder.build()); } });
private <R> PagedResources<R> addPaginationLinks(PagedResources<R> resources, Page<?> page, Optional<Link> link) { UriTemplate base = getUriTemplate(link); boolean isNavigable = page.hasPrevious() || page.hasNext(); if (isNavigable || forceFirstAndLastRels) { resources.add(createLink(base, PageRequest.of(0, page.getSize(), page.getSort()), Link.REL_FIRST)); } if (page.hasPrevious()) { resources.add(createLink(base, page.previousPageable(), Link.REL_PREVIOUS)); } Link selfLink = link.map(it -> it.withSelfRel())// .orElseGet(() -> createLink(base, page.getPageable(), Link.REL_SELF)); resources.add(selfLink); if (page.hasNext()) { resources.add(createLink(base, page.nextPageable(), Link.REL_NEXT)); } if (isNavigable || forceFirstAndLastRels) { int lastIndex = page.getTotalPages() == 0 ? 0 : page.getTotalPages() - 1; resources.add(createLink(base, PageRequest.of(lastIndex, page.getSize(), page.getSort()), Link.REL_LAST)); } return resources; }