@Override public Link linkToSingleResource(Class<?> type, Object id) { return getPluginFor(type).linkToSingleResource(type, id); }
public Link createSelfLinkFor(Object instance) { Assert.notNull(instance, "Domain object must not be null!"); return entityLinks.linkToSingleResource(instance.getClass(), getResourceId(instance)); }
/** * Accepts a payment for an {@link Order} * * @param order the {@link Order} to process the payment for. Retrieved from the path variable and converted into an * {@link Order} instance by Spring Data's {@link DomainClassConverter}. Will be {@literal null} in case no * {@link Order} with the given id could be found. * @param number the {@link CreditCardNumber} unmarshaled from the request payload. * @return */ @RequestMapping(path = PaymentLinks.PAYMENT, method = PUT) ResponseEntity<?> submitPayment(@PathVariable("id") Order order, @RequestBody CreditCardNumber number) { if (order == null || order.isPaid()) { return ResponseEntity.notFound().build(); } CreditCardPayment payment = paymentService.pay(order, number); PaymentResource resource = new PaymentResource(order.getPrice(), payment.getCreditCard()); resource.add(entityLinks.linkToSingleResource(order)); return new ResponseEntity<>(resource, HttpStatus.CREATED); }
/** * Renders the given {@link Receipt} including links to the associated {@link Order} as well as a self link in case * the {@link Receipt} is still available. * * @param receipt * @return */ private HttpEntity<Resource<Receipt>> createReceiptResponse(Receipt receipt) { Order order = receipt.getOrder(); Resource<Receipt> resource = new Resource<>(receipt); resource.add(entityLinks.linkToSingleResource(order)); if (!order.isTaken()) { resource.add(entityLinks.linkForSingleResource(order).slash("receipt").withSelfRel()); } return ResponseEntity.ok(resource); }
@Override public Link linkToSingleResource(Class<?> type, Object id) { return getPluginFor(type).linkToSingleResource(type, id); }
@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; } }
/** * Return a {@link ResourceSupport} object containing the resources * served by the admin server. * * @return {@code ResourceSupport} object containing the admin server's resources */ @RequestMapping("/") public ResourceSupport info() { ResourceSupport resourceSupport = new ResourceSupport(); resourceSupport.add(entityLinks.linkToCollectionResource(StreamDefinitionResource.class).withRel("streams/definitions")); resourceSupport.add(unescapeTemplateVariables(entityLinks.linkToSingleResource(StreamDefinitionResource.class, "{name}").withRel("streams/definitions/definition"))); resourceSupport.add(entityLinks.linkToCollectionResource(StreamDeploymentResource.class).withRel("streams/deployments")); resourceSupport.add(unescapeTemplateVariables(entityLinks.linkToSingleResource(StreamDeploymentResource.class, "{name}").withRel("streams/deployments/deployment"))); resourceSupport.add(entityLinks.linkToCollectionResource(TaskDefinitionResource.class).withRel("tasks")); resourceSupport.add(entityLinks.linkToCollectionResource(CounterResource.class).withRel("counters")); resourceSupport.add(unescapeTemplateVariables(entityLinks.linkToSingleResource(CounterResource.class, "{name}").withRel("counters/counter"))); resourceSupport.add(entityLinks.linkToCollectionResource(ModuleRegistrationResource.class).withRel("modules")); resourceSupport.add(entityLinks.linkToCollectionResource(LibraryRegistrationResource.class).withRel("libraries")); resourceSupport.add(entityLinks.linkToCollectionResource(ModuleStatusResource.class).withRel("runtime/modules")); resourceSupport.add(unescapeTemplateVariables(entityLinks.linkForSingleResource(ModuleStatusResource.class, "{moduleId}").withRel("runtime/module"))); resourceSupport.add(unescapeTemplateVariables(entityLinks.linkFor(ModuleInstanceStatusResource.class, UriComponents.UriTemplateVariables.SKIP_VALUE).withRel("runtime/modules/instances"))); String templated = entityLinks.linkFor(CompletionProposalsResource.class).withSelfRel().getHref() + ("/stream{?start,detailLevel}"); resourceSupport.add(new Link(templated).withRel("completions/stream")); return resourceSupport; }
.withRel("streams/definitions")); root.add( unescapeTemplateVariables(entityLinks.linkToSingleResource(StreamDefinitionResource.class, "{name}") .withRel("streams/definitions/definition"))); root.add(unescapeTemplateVariables(entityLinks.linkToSingleResource(StreamAppStatusResource.class, "{name}") .withRel("streams/validation"))); root.add(entityLinks.linkToCollectionResource(AppStatusResource.class).withRel("runtime/apps")); unescapeTemplateVariables(entityLinks.linkToSingleResource(StreamDeploymentResource.class, "{name}") .withRel("streams/deployments/deployment"))); root.add(unescapeTemplateVariables(entityLinks.linkToSingleResource(TaskDefinitionResource.class, "{name}") .withRel("tasks/definitions/definition"))); root.add(entityLinks.linkToCollectionResource(TaskExecutionResource.class).withRel("tasks/executions")); root.add(ControllerLinkBuilder.linkTo(ControllerLinkBuilder.methodOn(TaskExecutionController.class) .getCurrentTaskExecutionsInfo()).withRel("tasks/executions/current")); root.add(unescapeTemplateVariables(entityLinks.linkToSingleResource(TaskExecutionResource.class, "{id}") .withRel("tasks/executions/execution"))); root.add(unescapeTemplateVariables(entityLinks.linkToSingleResource(TaskAppStatusResource.class, "{name}") .withRel("tasks/validation"))); taskTemplated = entityLinks.linkToCollectionResource(JobExecutionResource.class).getHref() + "{?name}"; root.add(new Link(taskTemplated).withRel("jobs/executions/name")); root.add(unescapeTemplateVariables(entityLinks.linkToSingleResource(JobExecutionResource.class, "{id}") .withRel("jobs/executions/execution"))); root.add(unescapeTemplateVariables(entityLinks.linkFor(StepExecutionResource.class, "{jobExecutionId}") taskTemplated = entityLinks.linkToCollectionResource(JobInstanceResource.class).getHref() + "{?name}";
.withRel("streams/definitions")); root.add( unescapeTemplateVariables(entityLinks.linkToSingleResource(StreamDefinitionResource.class, "{name}") .withRel("streams/definitions/definition"))); root.add(unescapeTemplateVariables(entityLinks.linkToSingleResource(StreamAppStatusResource.class, "{name}") .withRel("streams/validation"))); unescapeTemplateVariables(entityLinks.linkToSingleResource(StreamDeploymentResource.class, "{name}") .withRel("streams/deployments/deployment"))); root.add(entityLinks.linkToCollectionResource(LauncherResource.class).withRel("tasks/platforms")); root.add(entityLinks.linkToCollectionResource(TaskDefinitionResource.class).withRel("tasks/definitions")); root.add(unescapeTemplateVariables(entityLinks.linkToSingleResource(TaskDefinitionResource.class, "{name}") .withRel("tasks/definitions/definition"))); root.add(entityLinks.linkToCollectionResource(TaskExecutionResource.class).withRel("tasks/executions")); root.add(ControllerLinkBuilder.linkTo(ControllerLinkBuilder.methodOn(TaskExecutionController.class) .getCurrentTaskExecutionsInfo()).withRel("tasks/executions/current")); root.add(unescapeTemplateVariables(entityLinks.linkToSingleResource(TaskExecutionResource.class, "{id}") .withRel("tasks/executions/execution"))); root.add(unescapeTemplateVariables(entityLinks.linkToSingleResource(TaskAppStatusResource.class, "{name}") .withRel("tasks/validation"))); taskTemplated = entityLinks.linkToCollectionResource(JobExecutionResource.class).getHref() + "{?name}"; root.add(new Link(taskTemplated).withRel("jobs/executions/name")); root.add(unescapeTemplateVariables(entityLinks.linkToSingleResource(JobExecutionResource.class, "{id}") .withRel("jobs/executions/execution"))); root.add(unescapeTemplateVariables(entityLinks.linkFor(StepExecutionResource.class, "{jobExecutionId}")