@Override public JsonValue encode(Number value) { String stringValue; if (value == null) { stringValue = getNullRepresentation(); } else if (formatString != null && locale != null) { stringValue = String.format(locale, formatString, value); } else if (numberFormat != null) { stringValue = numberFormat.format(value); } else { throw new IllegalStateException(String.format("Internal bug: " + "%s is in an illegal state: " + "[locale: %s, numberFormat: %s, formatString: %s]", getClass().getSimpleName(), locale, numberFormat, formatString)); } return encode(stringValue, String.class); }
@Override protected Renderer<Number> createImplementation() { if (numberFormat != null) { return new NumberRenderer(numberFormat, getNullRepresentation()); } else { checkNotNullArgument(formatString, "Format string may not be null"); checkNotNullArgument(locale, "Locale may not be null"); return new NumberRenderer(formatString, locale, getNullRepresentation()); } }
public void listing5() { // tag::listing5[] PropertyListing listing = Components.listing.properties(PROPERTIES) // .render(ID, new NumberRenderer(Locale.US)) // <1> .render(ID, value -> String.valueOf(value), new TextRenderer()) // <2> .build(); // end::listing5[] }
@SuppressWarnings("serial") public void listing5() { // tag::listing5[] PropertyListing listing = Components.listing.properties(PROPERTIES) // .render(ID, new NumberRenderer(Locale.US)) // <1> .render(ID, new Converter<String, Long>() { // <2> @Override public Long convertToModel(String value, Class<? extends Long> targetType, Locale locale) throws ConversionException { return Long.valueOf(value); } @Override public String convertToPresentation(Long value, Class<? extends String> targetType, Locale locale) throws ConversionException { return (value == null) ? null : String.valueOf(value); } @Override public Class<Long> getModelType() { return Long.class; } @Override public Class<String> getPresentationType() { return String.class; } }, new TextRenderer()).build(); // end::listing5[] }