Class BeanFilter
Bean filters provide fine-grained control over how beans are processed, allowing you to:
- Specify which properties to include or exclude
- Define read-only and write-only properties
- Control property ordering and naming
- Configure bean dictionaries for polymorphic types
- Intercept property getter and setter calls
- Define interface classes and stop classes for property filtering
Bean filters are created using the BeanFilter.Builder class, which is the programmatic equivalent to the
@Bean annotation. Filters can be registered with serializers and parsers to customize
how specific bean classes are handled.
Example:
See Also:
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptionstatic <T> BeanFilter.Buildercreate(ClassInfoTyped<T> beanClass) Create a new builder for this object.Returns the bean class that this filter applies to.Returns the bean dictionary defined on this bean.Returns the example associated with this class.Returns the list of properties to ignore on a bean.Returns the implementation class associated with this class.Returns the interface class associated with this class.Returns the set and order of names of properties associated with a bean class.Returns thePropertyNamerassociated with the bean to tailor the names of bean properties.Returns the list of read-only properties on a bean.Returns the stop class associated with this class.Returns the dictionary name associated with this bean.Returns the list of write-only properties on a bean.booleanReturnstrue if we should find fluent setters.booleanReturnstrue if the properties defined on this bean class should be ordered alphabetically.readProperty(Object bean, String name, Object value) Calls theBeanInterceptor.readProperty(Object, String, Object)method on the registered property filters.writeProperty(Object bean, String name, Object value) Calls theBeanInterceptor.writeProperty(Object, String, Object)method on the registered property filters.
-
Method Details
-
create
Create a new builder for this object.- Type Parameters:
T- The bean class being filtered.- Parameters:
beanClass- The bean class being filtered.- Returns:
- A new builder.
-
getBeanClass
Returns the bean class that this filter applies to.- Returns:
- The bean class that this filter applies to.
-
getBeanDictionary
Returns the bean dictionary defined on this bean.- Returns:
- An unmodifiable list of the bean dictionary defined on this bean, or an empty list if no bean dictionary is defined.
-
getExample
Returns the example associated with this class.- Returns:
- The example associated with this class, or
null if no example is associated.
-
getExcludeProperties
Returns the list of properties to ignore on a bean.- Returns:
- The names of the properties to ignore on a bean, or an empty set to not ignore any properties.
-
getImplClass
Returns the implementation class associated with this class.- Returns:
- The implementation class associated with this class, or
null if no implementation class is associated.
-
getInterfaceClass
Returns the interface class associated with this class.- Returns:
- The interface class associated with this class, or
null if no interface class is associated.
-
getProperties
Returns the set and order of names of properties associated with a bean class.- Returns:
- The names of the properties associated with a bean class, or and empty set if all bean properties should be used.
-
getPropertyNamer
Returns thePropertyNamerassociated with the bean to tailor the names of bean properties.- Returns:
- The property namer class, or
null if no property namer is associated with this bean property.
-
getReadOnlyProperties
Returns the list of read-only properties on a bean.- Returns:
- The names of the read-only properties on a bean, or an empty set to not have any read-only properties.
-
getStopClass
Returns the stop class associated with this class.- Returns:
- The stop class associated with this class, or
null if no stop class is associated.
-
getTypeName
Returns the dictionary name associated with this bean.- Returns:
- The dictionary name associated with this bean, or
null if no name is defined.
-
getWriteOnlyProperties
Returns the list of write-only properties on a bean.- Returns:
- The names of the write-only properties on a bean, or an empty set to not have any write-only properties.
-
isFluentSetters
Returnstrue if we should find fluent setters.- Returns:
true if fluent setters should be found.
-
isSortProperties
Returnstrue if the properties defined on this bean class should be ordered alphabetically.This method is only used when the
getProperties()method returnsnull . Otherwise, the ordering of the properties in the returned value is used.- Returns:
true if bean properties should be sorted.
-
readProperty
Calls theBeanInterceptor.readProperty(Object, String, Object)method on the registered property filters.- Parameters:
bean- The bean from which the property was read.name- The property name.value- The value just extracted from calling the bean getter.- Returns:
- The value to serialize. Default is just to return the existing value.
-
writeProperty
Calls theBeanInterceptor.writeProperty(Object, String, Object)method on the registered property filters.- Parameters:
bean- The bean from which the property was read.name- The property name.value- The value just parsed.- Returns:
- The value to serialize. Default is just to return the existing value.
-