@Override public void appendValueAndFormat(ObjectAdapter objectAdapter, String format, JsonRepresentation repr) { final Object obj = unwrapAsObjectElseNullNode(objectAdapter); if(obj instanceof Byte) { final Byte b = (Byte) obj; repr.mapPut("value", b); } else { repr.mapPut("value", obj); } appendFormats(repr, this.format, xIsisFormat); } });
@Override public void appendValueAndFormat(ObjectAdapter objectAdapter, String format, JsonRepresentation repr) { final Object obj = unwrapAsObjectElseNullNode(objectAdapter); if(obj instanceof Double) { final Double d = (Double) obj; repr.mapPut("value", d); } else { repr.mapPut("value", obj); } appendFormats(repr, this.format, xIsisFormat); } });
/** * REVIEW - looks similar to above methods, but now unused; can it be deleted? */ public static JsonRepresentation readParameterMapAsMap(final Map<String, String[]> parameterMap) { final JsonRepresentation map = JsonRepresentation.newMap(); for (final Map.Entry<String, String[]> parameter : parameterMap.entrySet()) { map.mapPut(parameter.getKey(), parameter.getValue()[0]); } return map; }
@Override public ActionParameterDescriptionReprRenderer with(final ParentSpecAndFeature<ObjectActionParameter> specAndFeature) { super.with(specAndFeature); // done eagerly so can use as criteria for x-ro-follow-links representation.mapPut("id", deriveId()); return this; }
/** * Will lazily create links array as required */ protected JsonRepresentation getLinks() { JsonRepresentation links = representation.getArray("links"); if (links == null) { links = JsonRepresentation.newArray(); representation.mapPut("links", links); } return links; }
private JsonRepresentation getMembersOfType(String memberTypeOf) { final JsonRepresentation members = getRepresentation("members"); return JsonRepresentation.newMap().mapPut( Iterables.filter(members.mapIterable(), havingMemberTypeOf(memberTypeOf))); }
@Override protected void addPropertiesSpecificToFeature() { representation.mapPut("optional", !getObjectFeature().isMandatory()); final MaxLengthFacet maxLength = getObjectFeature().getFacet(MaxLengthFacet.class); if (maxLength != null && !maxLength.isNoop()) { representation.mapPut("maxLength", maxLength.value()); } }
@Test public void mapContainsList() { repr.mapPut("x-ro-follow-links", "a,b.c"); final List<List<String>> valueOf = requestParameter.valueOf(repr); assertThat(valueOf.size(), is(2)); assertThat(valueOf.get(0).size(), is(1)); assertThat(valueOf.get(0).get(0), is("a")); assertThat(valueOf.get(1).size(), is(2)); assertThat(valueOf.get(1).get(0), is("b")); assertThat(valueOf.get(1).get(1), is("c")); }
@Test public void mapHasNoKey() { repr.mapPut("something-else", "a,b.c"); final List<List<String>> valueOf = requestParameter.valueOf(repr); assertThat(valueOf.size(), is(0)); }
@Override public ScalarValueReprRenderer with(final ObjectAdapter objectAdapter) { final EncodableFacet facet = objectAdapter.getSpecification().getFacet(EncodableFacet.class); if (facet == null) { throw RestfulObjectsApplicationException.create(HttpStatusCode.INTERNAL_SERVER_ERROR, "Not an (encodable) value", objectAdapter.titleString()); } final Object value = jsonValueEncoder.asObject(objectAdapter); representation.mapPut("value", value); return this; }
private void addParameters() { final JsonRepresentation parameterList = JsonRepresentation.newArray(); final List<ObjectActionParameter> parameters = getObjectFeature().getParameters(); for (final ObjectActionParameter parameter : parameters) { final LinkBuilder linkBuilder = ActionParameterDescriptionReprRenderer.newLinkToBuilder(getResourceContext(), Rel.ACTION_PARAM, objectSpecification, parameter); parameterList.arrayAdd(linkBuilder.build()); } representation.mapPut("parameters", parameterList); }
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 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 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 addLinkToUser() { final JsonRepresentation link = LinkBuilder.newBuilder(getResourceContext(), Rel.USER, RepresentationType.USER, "user").build(); final LinkFollower linkFollower = getLinkFollower().follow("links[rel=user]"); if (linkFollower.matches(link)) { final RendererFactory factory = RendererFactoryRegistry.instance.find(RepresentationType.USER); final UserReprRenderer renderer = (UserReprRenderer) factory.newRenderer(getResourceContext(), linkFollower, JsonRepresentation.newMap()); renderer.with(getResourceContext().getAuthenticationSession()); link.mapPut("value", renderer.render()); } getLinks().arrayAdd(link); }