@Test public void example_of_eager_loading_of_collection() throws Exception { final List<List<String>> links = asListOfLists("members[children].value"); final LinkFollowSpecs linkFollower = LinkFollowSpecs.create(links); LinkFollowSpecs followMembers = linkFollower.follow("members[children]"); assertThat(followMembers.isFollowing(), is(true)); assertThat(followMembers.isTerminated(), is(false)); assertThat(followMembers.follow("value").isFollowing(), is(true)); assertThat(followMembers.follow("value").isTerminated(), is(false)); }
@Test public void notMatching() throws Exception { final List<List<String>> links = asListOfLists("a.b.c"); final LinkFollowSpecs linkFollower = LinkFollowSpecs.create(links); assertThat(linkFollower.follow("x").isFollowing(), is(false)); assertThat(linkFollower.follow("x").isTerminated(), is(true)); }
@Test public void multiplePaths_withCriteria() throws Exception { final List<List<String>> links = asListOfLists("links[rel=urn:org.restfulobjects:rels/version].x,links[rel=urn:org.restfulobjects:rels/user].y"); final LinkFollowSpecs linkFollower = LinkFollowSpecs.create(links); LinkFollowSpecs followRelVersion = linkFollower.follow("links[rel=urn:org.restfulobjects:rels/version]"); assertThat(followRelVersion.isFollowing(), is(true)); assertThat(followRelVersion.isTerminated(), is(false)); assertThat(followRelVersion.follow("x").isFollowing(), is(true)); LinkFollowSpecs followRelUser = linkFollower.follow("links[rel=urn:org.restfulobjects:rels/user]"); assertThat(followRelUser.isFollowing(), is(true)); assertThat(followRelUser.isTerminated(), is(false)); assertThat(followRelUser.follow("y").isFollowing(), is(true)); }
@Test public void follow_withSingleMapCriteria() throws Exception { final List<List<String>> links = asListOfLists("a[x].b.c"); final LinkFollowSpecs linkFollower = LinkFollowSpecs.create(links); assertThat(linkFollower.follow("x").isFollowing(), is(false)); final LinkFollowSpecs followA = linkFollower.follow("a"); assertThat(followA.isFollowing(), is(true)); assertThat(followA.matches(JsonRepresentation.newMap("x", "y")), is(true)); assertThat(followA.matches(JsonRepresentation.newMap("x", "z")), is(true)); assertThat(followA.matches(JsonRepresentation.newMap()), is(false)); assertThat(followA.matches(JsonRepresentation.newMap("p", "z")), is(false)); }
private void addLinkToSelf() { final JsonRepresentation link = LinkBuilder.newBuilder(rendererContext, Rel.SELF.getName(), RepresentationType.HOME_PAGE, "").build(); final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("links"); if (linkFollower.matches(link)) { final HomePageReprRenderer renderer = new HomePageReprRenderer(getRendererContext(), linkFollower, JsonRepresentation.newMap()); link.mapPut("value", renderer.render()); } getLinks().arrayAdd(link); }
private void addLinkToUp() { final JsonRepresentation link = LinkBuilder.newBuilder(rendererContext, Rel.UP.getName(), RepresentationType.HOME_PAGE, "").build(); final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("links"); if (linkFollower.matches(link)) { final HomePageReprRenderer renderer = new HomePageReprRenderer(getRendererContext(), linkFollower, JsonRepresentation.newMap()); link.mapPut("value", renderer.render()); } getLinks().arrayAdd(link); }
private void addLinkToUp() { final JsonRepresentation link = LinkBuilder.newBuilder(rendererContext, Rel.UP.getName(), RepresentationType.HOME_PAGE, "").build(); final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("links"); if (linkFollower.matches(link)) { final HomePageReprRenderer renderer = new HomePageReprRenderer(getRendererContext(), linkFollower, JsonRepresentation.newMap()); link.mapPut("value", renderer.render()); } getLinks().arrayAdd(link); }
private void addLinkToUp() { final JsonRepresentation link = LinkBuilder.newBuilder(rendererContext, Rel.UP.getName(), RepresentationType.HOME_PAGE, "").build(); final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("links"); if (linkFollower.matches(link)) { final HomePageReprRenderer renderer = new HomePageReprRenderer(getRendererContext(), linkFollower, JsonRepresentation.newMap()); link.mapPut("value", renderer.render()); } getLinks().arrayAdd(link); }
private void addLinkToUp() { final JsonRepresentation link = LinkBuilder.newBuilder(rendererContext, Rel.UP.getName(), RepresentationType.HOME_PAGE, "").build(); final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("links"); if (linkFollower.matches(link)) { final HomePageReprRenderer renderer = new HomePageReprRenderer(getRendererContext(), linkFollower, JsonRepresentation.newMap()); link.mapPut("value", renderer.render()); } getLinks().arrayAdd(link); }
private void addLinkToSelf() { final JsonRepresentation link = LinkBuilder.newBuilder(rendererContext, Rel.SELF.getName(), RepresentationType.HOME_PAGE, "").build(); final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("links"); if (linkFollower.matches(link)) { final HomePageReprRenderer renderer = new HomePageReprRenderer(getRendererContext(), linkFollower, JsonRepresentation.newMap()); link.mapPut("value", renderer.render()); } getLinks().arrayAdd(link); }
private void addLinkToUp() { final JsonRepresentation link = LinkBuilder.newBuilder(rendererContext, Rel.UP.getName(), RepresentationType.HOME_PAGE, "").build(); final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("links"); if (linkFollower.matches(link)) { final HomePageReprRenderer renderer = new HomePageReprRenderer(getRendererContext(), linkFollower, JsonRepresentation.newMap()); link.mapPut("value", renderer.render()); } getLinks().arrayAdd(link); }
private void addLinkToSelf() { final JsonRepresentation link = LinkBuilder.newBuilder(getRendererContext(), Rel.SELF.getName(), RepresentationType.VERSION, "version").build(); final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("links"); if (linkFollower.matches(link)) { final VersionReprRenderer renderer = new VersionReprRenderer(getRendererContext(), linkFollower, JsonRepresentation.newMap()); link.mapPut("value", renderer.render()); } getLinks().arrayAdd(link); }
private void addLinkToSelf() { final JsonRepresentation link = LinkBuilder.newBuilder(getRendererContext(), Rel.SELF.getName(), RepresentationType.VERSION, "version").build(); final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("links"); if (linkFollower.matches(link)) { final VersionReprRenderer renderer = new VersionReprRenderer(getRendererContext(), linkFollower, JsonRepresentation.newMap()); link.mapPut("value", renderer.render()); } getLinks().arrayAdd(link); }
private void addLinkToVersion() { final JsonRepresentation link = LinkBuilder.newBuilder(getRendererContext(), Rel.VERSION.getName(), RepresentationType.VERSION, "version").build(); final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("links"); if (linkFollower.matches(link)) { final VersionReprRenderer renderer = new VersionReprRenderer(getRendererContext(), linkFollower, JsonRepresentation.newMap()); link.mapPut("value", renderer.render()); } getLinks().arrayAdd(link); }
private void addLinkToVersion() { final JsonRepresentation link = LinkBuilder.newBuilder(getRendererContext(), Rel.VERSION.getName(), RepresentationType.VERSION, "version").build(); final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("links"); if (linkFollower.matches(link)) { final VersionReprRenderer renderer = new VersionReprRenderer(getRendererContext(), linkFollower, JsonRepresentation.newMap()); link.mapPut("value", renderer.render()); } getLinks().arrayAdd(link); }
private void addLinkToSelf() { final JsonRepresentation link = LinkBuilder.newBuilder(getRendererContext(), Rel.SELF.getName(), RepresentationType.LIST, "services").build(); final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("links"); if (linkFollower.matches(link)) { final DomainServicesListReprRenderer renderer = new DomainServicesListReprRenderer(getRendererContext(), linkFollower, JsonRepresentation.newMap()); renderer.with(getServiceAdapters()); link.mapPut("value", renderer.render()); } getLinks().arrayAdd(link); }
private void addLinkToSelf() { final JsonRepresentation link = LinkBuilder.newBuilder(getRendererContext(), Rel.SELF.getName(), RepresentationType.LIST, "services").build(); final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("links"); if (linkFollower.matches(link)) { final DomainServicesListReprRenderer renderer = new DomainServicesListReprRenderer(getRendererContext(), linkFollower, JsonRepresentation.newMap()); renderer.with(getServiceAdapters()); link.mapPut("value", renderer.render()); } getLinks().arrayAdd(link); }
private void addLinkToDomainTypes(final Collection<ObjectSpecification> specifications) { final JsonRepresentation link = LinkBuilder.newBuilder(getRendererContext(), Rel.DOMAIN_TYPES.getName(), RepresentationType.TYPE_LIST, "domain-types").build(); final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("links"); if (linkFollower.matches(link)) { final TypeListReprRenderer renderer = new TypeListReprRenderer(getRendererContext(), linkFollower, JsonRepresentation.newMap()); renderer.withLink(Rel.SELF, "domain-types").with(specifications); link.mapPut("value", renderer.render()); } getLinks().arrayAdd(link); }
private void addLinkToDescribedBy() { final JsonRepresentation link = DomainTypeReprRenderer.newLinkToBuilder(getRendererContext(), Rel.DESCRIBEDBY, objectAdapter.getSpecification()).build(); final LinkFollowSpecs linkFollower = getLinkFollowSpecs().follow("links"); if (linkFollower.matches(link)) { final DomainTypeReprRenderer renderer = new DomainTypeReprRenderer(getRendererContext(), linkFollower, JsonRepresentation.newMap()); renderer.with(objectAdapter.getSpecification()); link.mapPut("value", renderer.render()); } getLinks().arrayAdd(link); }
private void addActions(final ObjectAdapter objectAdapter, final List<ObjectAction> actions, final JsonRepresentation members) { for (final ObjectAction action : actions) { final Consent visibility = action.isVisible(objectAdapter, getInteractionInitiatedBy(), rendererContext.getWhere()); if (!visibility.isAllowed()) { continue; } final LinkFollowSpecs linkFollowSpecs = getLinkFollowSpecs().follow("members["+action.getId()+"]"); final ObjectActionReprRenderer renderer = new ObjectActionReprRenderer(getRendererContext(), linkFollowSpecs, action.getId(), JsonRepresentation.newMap()); renderer.with(new ObjectAndAction(objectAdapter, action)).usingLinkTo(linkToBuilder); members.mapPut(action.getId(), renderer.render()); } }