/** * Turns the current template into a {@link Link} by expanding it using the given parameters. * * @param arguments must not be {@literal null}. * @return */ public Link expand(Map<String, ? extends Object> arguments) { return new Link(getUriTemplate().expand(arguments).toString(), getRel()); }
/** * Turns the current template into a {@link Link} by expanding it using the given parameters. * * @param arguments * @return */ public Link expand(Object... arguments) { return new Link(getUriTemplate().expand(arguments).toString(), getRel()); }
@Override public Object deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { String source = jp.getValueAsString(); if (!StringUtils.hasText(source)) { return null; } try { URI uri = new UriTemplate(source).expand(); TypeDescriptor typeDescriptor = TypeDescriptor.valueOf(property.getActualType()); return converter.convert(uri, URI_DESCRIPTOR, typeDescriptor); } catch (IllegalArgumentException o_O) { throw ctxt.weirdStringException(source, URI.class, String.format(UNEXPECTED_VALUE, property)); } }
private URIAndHeaders traverseToExpandedFinalUrl() { UriStringAndHeaders uriAndHeaders = getAndFindLinkWithRel(baseUri.toString(), this.rels.iterator(), HttpHeaders.EMPTY); return new URIAndHeaders(new UriTemplate(uriAndHeaders.getUri()).expand(this.templateParameters), uriAndHeaders.getHttpHeaders()); }
/** * Sets the location header pointing to the resource representing the given instance. Will make sure we properly * expand the URI template potentially created as self link. * * @param headers must not be {@literal null}. * @param assembler must not be {@literal null}. * @param source must not be {@literal null}. */ private void addLocationHeader(HttpHeaders headers, PersistentEntityResourceAssembler assembler, Object source) { String selfLink = assembler.getSelfLinkFor(source).getHref(); headers.setLocation(new UriTemplate(selfLink).expand()); }
private UriStringAndHeaders getAndFindLinkWithRel(String uri, Iterator<Hop> rels, HttpHeaders extraHeaders) { if (!rels.hasNext()) { return new UriStringAndHeaders(uri, extraHeaders); } HttpEntity<?> request = prepareRequest(mergeHeaders(this.headers, extraHeaders)); UriTemplate template = new UriTemplate(uri); ResponseEntity<String> responseEntity = operations.exchange(template.expand(), GET, request, String.class); MediaType contentType = responseEntity.getHeaders().getContentType(); String responseBody = responseEntity.getBody(); Hop thisHop = rels.next(); Rel rel = Rels.getRelFor(thisHop.getRel(), discoverers); Link link = rel.findInResponse(responseBody, contentType); if (link == null) { throw new IllegalStateException( String.format("Expected to find link with rel '%s' in response %s!", rel, responseBody)); } /* * Don't expand if the parameters are empty */ if (!thisHop.hasParameters()) { return getAndFindLinkWithRel(link.getHref(), rels, thisHop.getHeaders()); } else { return getAndFindLinkWithRel(link.expand(thisHop.getMergedParameters(this.templateParameters)).getHref(), rels, thisHop.getHeaders()); } }
@Override public CompletionProposalsResource streamCompletions(String prefix, int levelOfDetail) { return restTemplate.getForObject(streamCompletionUriTemplate.expand(prefix, levelOfDetail), CompletionProposalsResource.class); }
@Override public CompletionProposalsResource taskCompletions(String prefix, int levelOfDetail) { return restTemplate.getForObject(taskCompletionUriTemplate.expand(prefix, levelOfDetail), CompletionProposalsResource.class); }
@Override public CompletionProposalsResource taskCompletions(String prefix, int levelOfDetail) { return restTemplate.getForObject(taskCompletionUriTemplate.expand(prefix, levelOfDetail), CompletionProposalsResource.class); }
@Override public CompletionProposalsResource streamCompletions(String prefix, int levelOfDetail) { return restTemplate.getForObject(streamCompletionUriTemplate.expand(prefix, levelOfDetail), CompletionProposalsResource.class); }
@Override public List<String> completions(CompletionKind kind, String start, int lod) { UriTemplate template = resources.get(String.format("completions/%s", kind)); URI expanded = template.expand(start, lod); return Arrays.asList(restTemplate.getForObject(expanded, String[].class)); } }
@Override public StreamDefinitionResource createStream(String name, String defintion, boolean deploy) { MultiValueMap<String, Object> values = new LinkedMultiValueMap<String, Object>(); values.add("name", name); values.add("definition", defintion); values.add("deploy", Boolean.toString(deploy)); StreamDefinitionResource stream = restTemplate.postForObject(resources.get("streams/definitions").expand(), values, StreamDefinitionResource.class); return stream; }
@Override public ModuleDefinitionResource composeModule(String name, String definition) { MultiValueMap<String, Object> values = new LinkedMultiValueMap<String, Object>(); values.add("name", name); values.add("definition", definition); return restTemplate.postForObject(resources.get("modules").expand(), values, ModuleDefinitionResource.class); }
@Override public JobDefinitionResource createJob(String name, String definition, boolean deploy) { MultiValueMap<String, Object> values = new LinkedMultiValueMap<String, Object>(); values.add("name", name); values.add("deploy", String.valueOf(deploy)); values.add("definition", definition); JobDefinitionResource job = restTemplate.postForObject(resources.get("jobs/definitions").expand(), values, JobDefinitionResource.class); return job; }
@Override public void undeployAll() { restTemplate.delete(resources.get("jobs/deployments").expand()); }
@Override public void undeployAll() { restTemplate.delete(resources.get("streams/deployments").expand()); }
private URI traverseToExpandedFinalUrl() { String uri = getAndFindLinkWithRel(baseUri.toString(), rels.iterator()); return new UriTemplate(uri).expand(templateParameters); }
/** * Turns the current template into a {@link Link} by expanding it using the given parameters. * * @param arguments * @return */ public Link expand(Object... arguments) { return new Link(getUriTemplate().expand(arguments).toString(), getRel()); }
/** * Turns the current template into a {@link Link} by expanding it using the given parameters. * * @param arguments must not be {@literal null}. * @return */ public Link expand(Map<String, ? extends Object> arguments) { return new Link(getUriTemplate().expand(arguments).toString(), getRel()); }
/** * Sets the location header pointing to the resource representing the given instance. Will make sure we properly * expand the URI template potentially created as self link. * * @param headers must not be {@literal null}. * @param assembler must not be {@literal null}. * @param source must not be {@literal null}. */ private void addLocationHeader(HttpHeaders headers, PersistentEntityResourceAssembler assembler, Object source) { String selfLink = assembler.getSelfLinkFor(source).getHref(); headers.setLocation(new UriTemplate(selfLink).expand()); }