001package org.nuxeo.sample; 002 003import static org.nuxeo.ecm.core.io.registry.reflect.Instantiations.SINGLETON; 004import static org.nuxeo.ecm.core.io.registry.reflect.Priorities.REFERENCE; 005 006import java.io.IOException; 007import java.util.Collections; 008 009import org.nuxeo.ecm.core.api.DocumentModel; 010import org.nuxeo.ecm.core.io.marshallers.json.enrichers.AbstractJsonEnricher; 011import org.nuxeo.ecm.core.io.registry.reflect.Setup; 012 013import com.fasterxml.jackson.core.JsonGenerator; 014 015/** 016 * Enrich {@link nuxeo.ecm.core.api.DocumentModel} Json. 017 * <p> 018 * Format is: 019 * 020 * <pre> 021 * {@code 022 * { 023 * ... 024 * "contextParameters": { 025 * "sample_document": { ... } 026 * } 027 * } 028 * </pre> 029 * </p> 030 */ 031@Setup(mode = SINGLETON, priority = REFERENCE) 032public class SampleDocumentEnricher extends AbstractJsonEnricher<DocumentModel> { 033 034 public static final String NAME = "sample_document"; 035 036 public SampleDocumentEnricher() { 037 super(NAME); 038 } 039 040 @Override 041 public void write(JsonGenerator jg, DocumentModel obj) throws IOException { 042 // How to instanciate a Session if `obj` is a DocumentModel 043 //try (SessionWrapper wrapper = ctx.getSession(obj)) { 044 // CoreSession session = wrapper.getSession(); 045 // ... 046 //} 047 048 jg.writeFieldName(NAME); 049 jg.writeObject(Collections.EMPTY_MAP); 050 } 051}