Interface PropertyFilter
- All Known Implementing Classes:
SimpleBeanPropertyFilter
,SimpleBeanPropertyFilter.FilterExceptFilter
,SimpleBeanPropertyFilter.SerializeExceptFilter
public interface PropertyFilter
Interface that defines API for filter objects use (as configured
using
JsonFilter
)
for filtering bean properties to serialize.
Note that this is the replacement for BeanPropertyFilter
,
which is replaced because it was too closely bound to Bean properties
and would not work with Map
s or "any getters".
Note that since this is an interface, it is
strongly recommended that custom implementations extend
SimpleBeanPropertyFilter
,
to avoid backwards compatibility issues in case interface needs to change.
- Since:
- 2.3
-
Method Summary
Modifier and TypeMethodDescriptionvoid
depositSchemaProperty
(PropertyWriter writer, JsonObjectFormatVisitor objectVisitor, SerializerProvider provider) Method called byBeanSerializer
to let the filter determine whether, and in what form the given property exist within the parent, or root, schema.void
depositSchemaProperty
(PropertyWriter writer, ObjectNode propertiesNode, SerializerProvider provider) Deprecated.void
serializeAsElement
(Object elementValue, JsonGenerator gen, SerializerProvider prov, PropertyWriter writer) Method called by container to let the filter decide what to do with given element value: the usual choices are to either filter out (i.e.void
serializeAsField
(Object pojo, JsonGenerator gen, SerializerProvider prov, PropertyWriter writer) Method called byBeanSerializer
to let the filter decide what to do with given bean property value: the usual choices are to either filter out (i.e.
-
Method Details
-
serializeAsField
void serializeAsField(Object pojo, JsonGenerator gen, SerializerProvider prov, PropertyWriter writer) throws Exception Method called byBeanSerializer
to let the filter decide what to do with given bean property value: the usual choices are to either filter out (i.e. do nothing) or write using givenPropertyWriter
, although filters can choose other to do something different altogether.Typical implementation is something like:
if (include(writer)) { writer.serializeAsField(pojo, gen, prov); }
- Parameters:
pojo
- Object that contains property value to serializegen
- Generator use for serializing valueprov
- Provider that can be used for accessing dynamic aspects of serialization processingwriter
- Object called to do actual serialization of the field, if not filtered out- Throws:
Exception
-
serializeAsElement
void serializeAsElement(Object elementValue, JsonGenerator gen, SerializerProvider prov, PropertyWriter writer) throws Exception Method called by container to let the filter decide what to do with given element value: the usual choices are to either filter out (i.e. do nothing) or write using givenPropertyWriter
, although filters can choose other to do something different altogether.Typical implementation is something like:
if (include(writer)) { writer.serializeAsElement(pojo, gen, prov); }
- Parameters:
elementValue
- Element value being serializerdgen
- Generator use for serializing valueprov
- Provider that can be used for accessing dynamic aspects of serialization processingwriter
- Object called to do actual serialization of the field, if not filtered out- Throws:
Exception
-
depositSchemaProperty
@Deprecated void depositSchemaProperty(PropertyWriter writer, ObjectNode propertiesNode, SerializerProvider provider) throws JsonMappingException Deprecated.Since 2.3: new code should use the alternativedepositSchemaProperty
methodMethod called byBeanSerializer
to let the filter determine whether, and in what form the given property exist within the parent, or root, schema. Filters can omit adding the property to the node, or choose the form of the schema value for the property.Typical implementation is something like:
if (include(writer)) { writer.depositSchemaProperty(propertiesNode, provider); }
- Parameters:
writer
- Bean property writer to use to create schema valuepropertiesNode
- Node which the given property would exist withinprovider
- Provider that can be used for accessing dynamic aspects of serialization processing- Throws:
JsonMappingException
-
depositSchemaProperty
void depositSchemaProperty(PropertyWriter writer, JsonObjectFormatVisitor objectVisitor, SerializerProvider provider) throws JsonMappingException Method called byBeanSerializer
to let the filter determine whether, and in what form the given property exist within the parent, or root, schema. Filters can omit adding the property to the node, or choose the form of the schema value for the propertyTypical implementation is something like:
if (include(writer)) { writer.depositSchemaProperty(objectVisitor, provider); }
- Parameters:
writer
- Bean property serializer to use to create schema valueobjectVisitor
- JsonObjectFormatVisitor which should be aware of the property's existenceprovider
- Provider that can be used for accessing dynamic aspects of serialization processing- Throws:
JsonMappingException
-
depositSchemaProperty
method