@Override public void serialize(Link link, JsonGenerator json, SerializerProvider provider) throws IOException { if (link.getMeta() != null) { json.writeStartObject(); json.writeStringField(JSONAPISpecConstants.HREF, link.getHref()); json.writeObjectField(JSONAPISpecConstants.META, link.getMeta()); json.writeEndObject(); } else { json.writeString(link.getHref()); } } }
private JsonNode getRelationshipLinks(Object source, Relationship relationship, String ownerLink, SerializationSettings settings) throws IllegalAccessException { if (shouldSerializeLinks(settings)) { Links links = null; Field relationshipLinksField = configuration .getRelationshipLinksField(source.getClass(), relationship.value()); if (relationshipLinksField != null) { links = (Links) relationshipLinksField.get(source); } Map<String, Link> linkMap = new HashMap<>(); if (links != null) { linkMap.putAll(links.getLinks()); } if (!relationship.path().trim().isEmpty() && !linkMap.containsKey(SELF)) { linkMap.put(SELF, new Link(createURL(ownerLink, relationship.path()))); } if (!relationship.relatedPath().trim().isEmpty() && !linkMap.containsKey(RELATED)) { linkMap.put(RELATED, new Link(createURL(ownerLink, relationship.relatedPath()))); } if (!linkMap.isEmpty()) { return objectMapper.valueToTree(new Links(linkMap)).get(LINKS); } } return null; }
@Override public String toString() { return String.valueOf(getHref()); }
public String getNextCursorFromDocument(JSONAPIDocument document) { Links links = document.getLinks(); if (links == null) { return null; } Link nextLink = links.getNext(); if (nextLink == null) { return null; } String nextLinkString = nextLink.toString(); try { List<NameValuePair> queryParameters = URLEncodedUtils.parse(new URI(nextLinkString), "utf8"); for (NameValuePair pair : queryParameters) { String name = pair.getName(); if (name.equals("page[cursor]")) { return pair.getValue(); } } } catch (URISyntaxException e) { LOG.error(e.getMessage()); } return null; }
private JsonNode getRelationshipLinks(Object source, Relationship relationship, String ownerLink, SerializationSettings settings) throws IllegalAccessException { if (shouldSerializeLinks(settings)) { Links links = null; Field relationshipLinksField = configuration .getRelationshipLinksField(source.getClass(), relationship.value()); if (relationshipLinksField != null) { links = (Links) relationshipLinksField.get(source); } Map<String, Link> linkMap = new HashMap<>(); if (links != null) { linkMap.putAll(links.getLinks()); } if (!relationship.path().trim().isEmpty() && !linkMap.containsKey(SELF)) { linkMap.put(SELF, new Link(createURL(ownerLink, relationship.path()))); } if (!relationship.relatedPath().trim().isEmpty() && !linkMap.containsKey(RELATED)) { linkMap.put(RELATED, new Link(createURL(ownerLink, relationship.relatedPath()))); } if (!linkMap.isEmpty()) { return objectMapper.valueToTree(new Links(linkMap)).get(LINKS); } } return null; }
@Override public String toString() { return String.valueOf(getHref()); }
@Override public void serialize(Link link, JsonGenerator json, SerializerProvider provider) throws IOException { if (link.getMeta() != null) { json.writeStartObject(); json.writeStringField(JSONAPISpecConstants.HREF, link.getHref()); json.writeObjectField(JSONAPISpecConstants.META, link.getMeta()); json.writeEndObject(); } else { json.writeString(link.getHref()); } } }
linkMap.put(SELF, new Link(createURL(baseURL, type.path().replace("{id}", resourceId))));
linkMap.put(SELF, new Link(createURL(baseURL, type.path().replace("{id}", resourceId))));