mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-09 06:55:47 +01:00
extends LinkEnricher api to append link arrays to the response
This commit is contained in:
@@ -3,6 +3,9 @@ package sonia.scm.api.v2.resources;
|
||||
import de.otto.edison.hal.Link;
|
||||
import de.otto.edison.hal.Links;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
class EdisonLinkAppender implements LinkAppender {
|
||||
|
||||
private final Links.Builder builder;
|
||||
@@ -15,4 +18,32 @@ class EdisonLinkAppender implements LinkAppender {
|
||||
public void appendOne(String rel, String href) {
|
||||
builder.single(Link.link(rel, href));
|
||||
}
|
||||
|
||||
@Override
|
||||
public LinkArrayBuilder arrayBuilder(String rel) {
|
||||
return new EdisonLinkArrayBuilder(builder, rel);
|
||||
}
|
||||
|
||||
private static class EdisonLinkArrayBuilder implements LinkArrayBuilder {
|
||||
|
||||
private final Links.Builder builder;
|
||||
private final String rel;
|
||||
private final List<Link> linkArray = new ArrayList<>();
|
||||
|
||||
private EdisonLinkArrayBuilder(Links.Builder builder, String rel) {
|
||||
this.builder = builder;
|
||||
this.rel = rel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public LinkArrayBuilder append(String name, String href) {
|
||||
linkArray.add(Link.linkBuilder(rel, href).withName(name).build());
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void build() {
|
||||
builder.array(linkArray);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user