Class AbstractJsonEnricher<EntityType>
java.lang.Object
org.nuxeo.ecm.core.io.marshallers.json.AbstractJsonWriter<Enriched<EntityType>>
org.nuxeo.ecm.core.io.marshallers.json.enrichers.AbstractJsonEnricher<EntityType>
- Type Parameters:
EntityType
- The Java type whose the generated JSON will be enriched.
- All Implemented Interfaces:
Marshaller<Enriched<EntityType>>
,Writer<Enriched<EntityType>>
- Direct Known Subclasses:
ACLJsonEnricher
,AuditJsonEnricher
,BasePermissionsJsonEnricher
,BlobAppLinksJsonEnricher
,BlobPreviewJsonEnricher
,BreadcrumbJsonEnricher
,ChildrenJsonEnricher
,CollectionsJsonEnricher
,ContextualParametersJsonEnricher
,DocumentUrlJsonEnricher
,FavoritesJsonEnricher
,FirstAccessibleAncestorJsonEnricher
,HasContentJsonEnricher
,HasFolderishChildJsonEnricher
,HighlightJsonEnricher
,NotificationsJsonEnricher
,PendingTasksJsonEnricher
,PreviewJsonEnricher
,PublicationJsonEnricher
,RenditionJsonEnricher
,RunnableWorkflowJsonEnricher
,RunningWorkflowJsonEnricher
,SubtypesJsonEnricher
,SubtypesJsonEnricher
,TagsJsonEnricher
,ThumbnailJsonEnricher
,UserProfileEnricher
,UserVisiblePermissionsJsonEnricher
,WOPIJsonEnricher
public abstract class AbstractJsonEnricher<EntityType>
extends AbstractJsonWriter<Enriched<EntityType>>
Base class to write
ExtensibleEntityJsonWriter
's enricher.- Since:
- 7.2
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
protected static final com.fasterxml.jackson.databind.ObjectMapper
Fields inherited from class org.nuxeo.ecm.core.io.marshallers.json.AbstractJsonWriter
ctx, registry
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
Checks if this marshaller can handle the marshalling request.protected String
safeReadBuffer
(com.fasterxml.jackson.databind.util.TokenBuffer tb) abstract void
write
(com.fasterxml.jackson.core.JsonGenerator jg, EntityType enriched) When implementing this method, the providedJsonGenerator
expect you write a field name and a field value (or many).void
write
(Enriched<EntityType> enrichable, com.fasterxml.jackson.core.JsonGenerator jg) Implement this method to writes the entity in the providedJsonGenerator
.Methods inherited from class org.nuxeo.ecm.core.io.marshallers.json.AbstractJsonWriter
getGenerator, write, writeEntity, writeEntity, writeEntityField, writeSerializable, writeSerializableField, writeSerializableListField, writeSerializableMapField
-
Field Details
-
ENTITY_ENRICHER_NAME
- See Also:
-
MAPPER
protected static final com.fasterxml.jackson.databind.ObjectMapper MAPPER
-
-
Constructor Details
-
AbstractJsonEnricher
-
-
Method Details
-
accept
Description copied from interface:Marshaller
Checks if this marshaller can handle the marshalling request.Please note it's useless to check that clazz is an instance of EntityType or if generic type and entity type are compatible (unlike JAX-RS which just checks the clazz, not the generic type). It's also useless to check
Supports
is compatible with mediatype. This is already done by theMarshallerRegistry
This method implementation can use injected properties. So you can check the current
RenderingContext
to accept or reject a marshalling request.- Specified by:
accept
in interfaceMarshaller<EntityType>
- Overrides:
accept
in classAbstractJsonWriter<Enriched<EntityType>>
- Parameters:
clazz
- The type to marshall.genericType
- The generic type to marshall.mediatype
- The managed mimetype.- Returns:
- true if this converter handle the request, false otherwise.
-
write
Description copied from class:AbstractJsonWriter
Implement this method to writes the entity in the providedJsonGenerator
.This method implementation can use injected properties.
The
JsonGenerator
's flushing is done by this abstract class, it's also not not necessary to flush it. Do not close the providedJsonGenerator
. It may be used is another marshaller calling this one.- Specified by:
write
in classAbstractJsonWriter<Enriched<EntityType>>
- Parameters:
enrichable
- The entity to marshall as Json.jg
- TheJsonGenerator
used to produce Json output.
-
safeReadBuffer
-
write
public abstract void write(com.fasterxml.jackson.core.JsonGenerator jg, EntityType enriched) throws IOException When implementing this method, the providedJsonGenerator
expect you write a field name and a field value (or many).- Parameters:
jg
- TheJsonGenerator
to use.enriched
- The enriched entity.- Throws:
IOException
- Since:
- 7.2
-