public static Link of(String name, URI uri) { return new Link(name, uri); }
@Override public LinksBuilder link(Link link) { links.put(link.getName(), link); return this; }
@Override public LinksBuilder link(String name, URI uri) { return link(Link.of(name, uri)); }
@Override public void serialize(Object bean, JsonGenerator jgen, SerializerProvider provider) throws IOException { // Checks the type Validate.isTrue( resourceDecorator.appliesFor(bean.getClass()), format( "The bean class <%s> cannot be processed by the <%s> decorator.", bean.getClass().getName(), resourceDecorator.getClass().getName() ) ); @SuppressWarnings("unchecked") T t = (T) bean; // Starting the serialization jgen.writeStartObject(); // Decorating the bean itself before serialization T decoratedBean = resourceDecorator.decorateBeforeSerialization(t); // Default fields serializeFields(decoratedBean, jgen, provider); // Decorations for (Link link : resourceDecorator.links(decoratedBean, resourceContext)) { jgen.writeObjectField(link.getName(), link.getHref()); } // End jgen.writeEndObject(); }