Add method to embed collections

This commit is contained in:
Rene Pfeuffer
2019-07-24 13:55:53 +02:00
parent ad772c778d
commit 9e0bee7883
2 changed files with 15 additions and 0 deletions

View File

@@ -2,6 +2,8 @@ package sonia.scm.api.v2.resources;
import de.otto.edison.hal.HalRepresentation; import de.otto.edison.hal.HalRepresentation;
import java.util.List;
/** /**
* The {@link HalAppender} can be used within an {@link HalEnricher} to append hateoas links to a json response. * The {@link HalAppender} can be used within an {@link HalEnricher} to append hateoas links to a json response.
* *
@@ -34,6 +36,14 @@ public interface HalAppender {
*/ */
void appendEmbedded(String rel, HalRepresentation embeddedItem); void appendEmbedded(String rel, HalRepresentation embeddedItem);
/**
* Appends a list of embedded objects to the json response.
*
* @param rel name of relation
* @param embeddedItems embedded objects
*/
void appendEmbedded(String rel, List<HalRepresentation> embeddedItems);
/** /**
* Builder for link arrays. * Builder for link arrays.
*/ */

View File

@@ -33,6 +33,11 @@ class EdisonHalAppender implements HalAppender {
embeddedBuilder.with(rel, embedded); embeddedBuilder.with(rel, embedded);
} }
@Override
public void appendEmbedded(String rel, List<HalRepresentation> embedded) {
embeddedBuilder.with(rel, embedded);
}
private static class EdisonLinkArrayBuilder implements LinkArrayBuilder { private static class EdisonLinkArrayBuilder implements LinkArrayBuilder {
private final Links.Builder builder; private final Links.Builder builder;