public class BeanContextBuilder extends ContextBuilder
All serializers and parsers extend from this class.
Provides a base set of common config property setters that allow you to build up serializers and parsers.
WriterSerializer s = JsonSerializer
.
Additional convenience methods are provided for setting properties using reduced syntax.
WriterSerializer s = JsonSerializer
.
Constructor and Description |
---|
BeanContextBuilder()
Constructor.
|
BeanContextBuilder(PropertyStore ps)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
BeanContextBuilder |
add(Map<String,Object> properties)
Adds multiple free-form configuration properties on this object without first clearing out any previous values.
|
BeanContextBuilder |
addTo(String name,
Object value)
Adds a free-form value to a SET property.
|
BeanContextBuilder |
annotations(Annotation... values)
|
BeanContextBuilder |
appendTo(String name,
Object value)
Adds a free-form value to the end of a LIST property.
|
BeanContextBuilder |
apply(PropertyStore copyFrom)
Copies the settings from the specified property store into this builder.
|
BeanContextBuilder |
applyAnnotations(AnnotationList al,
VarResolverSession r)
Applies a set of annotations to this property store.
|
BeanContextBuilder |
applyAnnotations(Class<?>... fromClasses)
Applies any of the various
|
BeanContextBuilder |
applyAnnotations(Method... fromMethods)
Applies any of the various
|
BeanContextBuilder |
beanClassVisibility(Visibility value)
|
BeanContextBuilder |
beanConstructorVisibility(Visibility value)
|
BeanContextBuilder |
beanDictionary(Class<?>... values)
Deprecated.
|
BeanContextBuilder |
beanDictionary(Object... values)
Deprecated.
|
BeanContextBuilder |
beanDictionaryRemove(Class<?>... values)
Deprecated.
|
BeanContextBuilder |
beanDictionaryRemove(Object... values)
Deprecated.
|
BeanContextBuilder |
beanDictionaryReplace(Class<?>... values)
Deprecated.
|
BeanContextBuilder |
beanDictionaryReplace(Object... values)
Deprecated.
|
BeanContextBuilder |
beanFieldVisibility(Visibility value)
|
BeanContextBuilder |
beanFilters(Object... values)
Deprecated.
|
BeanContextBuilder |
beanFiltersRemove(Object... values)
Deprecated.
|
BeanContextBuilder |
beanFiltersReplace(Object... values)
Deprecated.
|
BeanContextBuilder |
beanInterceptor(Class<?> on,
Class<? extends BeanInterceptor<?>> value)
Bean interceptor.
|
BeanContextBuilder |
beanMapPutReturnsOldValue()
|
BeanContextBuilder |
beanMapPutReturnsOldValue(boolean value)
Deprecated.
|
BeanContextBuilder |
beanMethodVisibility(Visibility value)
|
BeanContextBuilder |
beansDontRequireSomeProperties()
|
BeanContextBuilder |
beansRequireDefaultConstructor()
|
BeanContextBuilder |
beansRequireDefaultConstructor(boolean value)
Deprecated.
|
BeanContextBuilder |
beansRequireSerializable()
|
BeanContextBuilder |
beansRequireSerializable(boolean value)
Deprecated.
|
BeanContextBuilder |
beansRequireSettersForGetters()
|
BeanContextBuilder |
beansRequireSettersForGetters(boolean value)
Deprecated.
|
BeanContextBuilder |
beansRequireSomeProperties(boolean value)
Deprecated.
|
BeanContextBuilder |
bpi(Class<?> beanClass,
String properties)
Bean property includes.
|
BeanContextBuilder |
bpi(Map<String,Object> values)
Bean property includes.
|
BeanContextBuilder |
bpi(String beanClassName,
String properties)
Bean property includes.
|
BeanContextBuilder |
bpro(Class<?> beanClass,
String properties)
Read-only bean properties.
|
BeanContextBuilder |
bpro(Map<String,Object> values)
Read-only bean properties.
|
BeanContextBuilder |
bpro(String beanClassName,
String properties)
Read-only bean properties.
|
BeanContextBuilder |
bpwo(Class<?> beanClass,
String properties)
Write-only bean properties.
|
BeanContextBuilder |
bpwo(Map<String,Object> values)
Write-only bean properties.
|
BeanContextBuilder |
bpwo(String beanClassName,
String properties)
Write-only bean properties.
|
BeanContextBuilder |
bpx(Class<?> beanClass,
String properties)
Bean property excludes.
|
BeanContextBuilder |
bpx(Map<String,Object> values)
Bean property excludes.
|
BeanContextBuilder |
bpx(String beanClassName,
String properties)
Bean property excludes.
|
BeanContext |
build()
Build the object.
|
BeanContextBuilder |
debug()
|
BeanContextBuilder |
debug(boolean value)
Deprecated.
|
BeanContextBuilder |
dictionary(Object... values)
|
BeanContextBuilder |
dictionaryOn(Class<?> on,
Class<?>... values)
|
BeanContextBuilder |
dontIgnorePropertiesWithoutSetters()
|
BeanContextBuilder |
dontIgnoreTransientFields()
|
BeanContextBuilder |
dontIgnoreUnknownNullBeanProperties()
|
BeanContextBuilder |
dontUseInterfaceProxies()
|
<T> BeanContextBuilder |
example(Class<T> pojoClass,
T o)
|
<T> BeanContextBuilder |
exampleJson(Class<T> pojoClass,
String json)
|
BeanContextBuilder |
excludeProperties(Class<?> beanClass,
String properties)
Deprecated.
|
BeanContextBuilder |
excludeProperties(Map<String,String> values)
Deprecated.
|
BeanContextBuilder |
excludeProperties(String beanClassName,
String value)
Deprecated.
|
BeanContextBuilder |
fluentSetters()
|
BeanContextBuilder |
fluentSetters(boolean value)
Deprecated.
|
BeanContextBuilder |
fluentSetters(Class<?> on)
|
BeanContextBuilder |
ignoreInvocationExceptionsOnGetters()
|
BeanContextBuilder |
ignoreInvocationExceptionsOnGetters(boolean value)
Deprecated.
|
BeanContextBuilder |
ignoreInvocationExceptionsOnSetters()
|
BeanContextBuilder |
ignoreInvocationExceptionsOnSetters(boolean value)
Deprecated.
|
BeanContextBuilder |
ignorePropertiesWithoutSetters(boolean value)
Deprecated.
|
BeanContextBuilder |
ignoreTransientFields(boolean value)
Deprecated.
|
BeanContextBuilder |
ignoreUnknownBeanProperties()
|
BeanContextBuilder |
ignoreUnknownBeanProperties(boolean value)
Deprecated.
|
BeanContextBuilder |
ignoreUnknownNullBeanProperties(boolean value)
Deprecated.
|
BeanContextBuilder |
implClass(Class<?> interfaceClass,
Class<?> implClass)
|
BeanContextBuilder |
implClasses(Map<Class<?>,Class<?>> values)
|
BeanContextBuilder |
includeProperties(Class<?> beanClass,
String value)
Deprecated.
|
BeanContextBuilder |
includeProperties(Map<String,String> values)
Deprecated.
|
BeanContextBuilder |
includeProperties(String beanClassName,
String value)
Deprecated.
|
BeanContextBuilder |
interfaceClass(Class<?> on,
Class<?> value)
Identifies a class to be used as the interface class for the specified class and all subclasses.
|
BeanContextBuilder |
interfaces(Class<?>... value)
Identifies a set of interfaces.
|
BeanContextBuilder |
locale(Locale value)
|
BeanContextBuilder |
mediaType(MediaType value)
|
BeanContextBuilder |
notBeanClasses(Object... values)
|
BeanContextBuilder |
notBeanPackages(Object... values)
|
BeanContextBuilder |
pojoSwaps(Object... values)
Deprecated.
|
BeanContextBuilder |
pojoSwapsRemove(Object... values)
Deprecated.
|
BeanContextBuilder |
pojoSwapsReplace(Object... values)
Deprecated.
|
BeanContextBuilder |
prependTo(String name,
Object value)
Adds a free-form value to the beginning of a LIST property.
|
BeanContextBuilder |
propertyNamer(Class<?> on,
Class<? extends PropertyNamer> value)
Bean property namer
|
BeanContextBuilder |
propertyNamer(Class<? extends PropertyNamer> value)
|
BeanContextBuilder |
putAllTo(String name,
Object value)
Adds or overwrites multiple free-form entries in a MAP property.
|
BeanContextBuilder |
putTo(String name,
String key,
Object value)
Adds or overwrites a free-form entry in a MAP property.
|
BeanContextBuilder |
removeFrom(String name,
Object value)
Removes a free-form value from a SET, LIST, or MAP property.
|
BeanContextBuilder |
set(Map<String,Object> properties)
Sets multiple free-form configuration properties on this object replacing all previous values.
|
BeanContextBuilder |
set(String name,
Object value)
Sets a free-form configuration property on this object.
|
BeanContextBuilder |
sortProperties()
|
BeanContextBuilder |
sortProperties(boolean value)
Deprecated.
|
BeanContextBuilder |
sortProperties(Class<?>... on)
Sort bean properties.
|
BeanContextBuilder |
stopClass(Class<?> on,
Class<?> value)
Identifies a stop class for the annotated class.
|
BeanContextBuilder |
swaps(Object... values)
|
BeanContextBuilder |
timeZone(TimeZone value)
|
BeanContextBuilder |
typeName(Class<?> on,
String value)
An identifying name for this class.
|
BeanContextBuilder |
typePropertyName(Class<?> on,
String value)
|
BeanContextBuilder |
typePropertyName(String value)
|
BeanContextBuilder |
useEnumNames()
|
BeanContextBuilder |
useEnumNames(boolean value)
Deprecated.
|
BeanContextBuilder |
useInterfaceProxies(boolean value)
Deprecated.
|
BeanContextBuilder |
useJavaBeanIntrospector()
|
BeanContextBuilder |
useJavaBeanIntrospector(boolean value)
Deprecated.
|
build, getPropertyStore, getPropertyStoreBuilder, peek, peek
public BeanContextBuilder()
public BeanContextBuilder(PropertyStore ps)
ps
- The initial configuration settings for this builder.public BeanContext build()
ContextBuilder
build
in class ContextBuilder
public BeanContextBuilder annotations(Annotation... values)
Defines annotations to apply to specific classes and methods.
Allows you to dynamically apply Juneau annotations typically applied directly to classes and methods. Useful in cases where you want to use the functionality of the annotation on beans and bean properties but do not have access to the code to do so.
As a rule, any Juneau annotation with an
The following example shows the equivalent methods for applying the @Bean
annotation:
In general, the underlying framework uses this method when it finds dynamically applied annotations on config annotations. However, concrete implementations of annotations are also provided that can be passed directly into builder classes like so:
The following is the list of concrete annotations provided that can be constructed and passed into the builder class:
BeanAnnotation
BeancAnnotation
BeanIgnoreAnnotation
BeanpAnnotation
ExampleAnnotation
NamePropertyAnnotation
ParentPropertyAnnotation
SwapAnnotation
UriAnnotation
CsvAnnotation
HtmlAnnotation
JsoAnnotation
JsonAnnotation
SchemaAnnotation
MsgPackAnnotation
OpenApiAnnotation
PlainTextAnnotation
SoapXmlAnnotation
UonAnnotation
UrlEncodingAnnotation
XmlAnnotation
The syntax for the
values
- The values to add to this property.public BeanContextBuilder beanClassVisibility(Visibility value)
Classes are not considered beans unless they meet the minimum visibility requirements.
For example, if the visibility is
@Bean
annotation can be used on a non-public bean class to override this setting.
@BeanIgnore
annotation can also be used on a public bean class to ignore it as a bean.
value
- The new value for this property.
Visibility.PUBLIC
.public BeanContextBuilder beanConstructorVisibility(Visibility value)
Only look for constructors with the specified minimum visibility.
This setting affects the logic for finding no-arg constructors for bean. Normally, only
@Beanc
annotation can also be used to expose a non-public constructor.
@BeanIgnore
annotation can also be used on a public bean constructor to ignore it.
value
- The new value for this property.
Visibility.PUBLIC
.@Deprecated public BeanContextBuilder beanDictionary(Object... values)
dictionary(Object...)
values
- The values to add to this property.@Deprecated public BeanContextBuilder beanDictionary(Class<?>... values)
dictionary(Object...)
@Deprecated public BeanContextBuilder beanDictionaryReplace(Class<?>... values)
dictionary(Object...)
@Deprecated public BeanContextBuilder beanDictionaryReplace(Object... values)
dictionary(Object...)
@Deprecated public BeanContextBuilder beanDictionaryRemove(Class<?>... values)
dictionary(Object...)
@Deprecated public BeanContextBuilder beanDictionaryRemove(Object... values)
dictionary(Object...)
public BeanContextBuilder beanFieldVisibility(Visibility value)
Only look for bean fields with the specified minimum visibility.
This affects which fields on a bean class are considered bean properties. Normally only
Bean fields can be ignored as properties entirely by setting the value to Visibility.NONE
@Beanp
annotation can also be used to expose a non-public field.
@BeanIgnore
annotation can also be used on a public bean field to ignore it as a bean property.
value
- The new value for this property.
Visibility.PUBLIC
.@Deprecated public BeanContextBuilder beanFilters(Object... values)
BeanConfig.interfaces()
and other methods.
@Deprecated public BeanContextBuilder beanFiltersReplace(Object... values)
BeanConfig.interfaces()
and other methods.
@Deprecated public BeanContextBuilder beanFiltersRemove(Object... values)
BeanConfig.interfaces()
and other methods.
public BeanContextBuilder beanInterceptor(Class<?> on, Class<? extends BeanInterceptor<?>> value)
Bean interceptors can be used to intercept calls to getters and setters and alter their values in transit.
on
- The bean that the filter applies to.value
- The new value for this property.@Deprecated public BeanContextBuilder beanMapPutReturnsOldValue(boolean value)
beanMapPutReturnsOldValue()
public BeanContextBuilder beanMapPutReturnsOldValue()
When enabled, then the BeanMap.put()
method will return old property
values. Otherwise, it returns
Disabled by default because it introduces a slight performance penalty during serialization.
public BeanContextBuilder beanMethodVisibility(Visibility value)
Only look for bean methods with the specified minimum visibility.
This affects which methods are detected as getters and setters on a bean class. Normally only
@Beanp
annotation can also be used to expose a non-public method.
@BeanIgnore
annotation can also be used on a public bean getter/setter to ignore it as a bean property.
value
- The new value for this property.
Visibility.PUBLIC
@Deprecated public BeanContextBuilder beansRequireDefaultConstructor(boolean value)
beansRequireDefaultConstructor()
public BeanContextBuilder beansRequireDefaultConstructor()
When enabled, a Java class must implement a default no-arg constructor to be considered a bean.
Otherwise, the bean will be serialized as a string using the Object.toString()
method.
@Bean
annotation can be used on a bean class to override this setting.
@BeanIgnore
annotation can also be used on a class to ignore it as a bean.
@Deprecated public BeanContextBuilder beansRequireSerializable(boolean value)
beansRequireSerializable()
public BeanContextBuilder beansRequireSerializable()
When enabled, a Java class must implement the Serializable
interface to be considered a bean.
Otherwise, the bean will be serialized as a string using the Object.toString()
method.
@Bean
annotation can be used on a bean class to override this setting.
@BeanIgnore
annotation can also be used on a class to ignore it as a bean.
@Deprecated public BeanContextBuilder beansRequireSettersForGetters(boolean value)
beansRequireSettersForGetters()
public BeanContextBuilder beansRequireSettersForGetters()
When enabled, ignore read-only properties (properties with getters but not setters).
@Beanp
annotation can be used on the getter to override this setting.
@BeanIgnore
annotation can also be used on getters to ignore them as bean properties.
@Deprecated public BeanContextBuilder beansRequireSomeProperties(boolean value)
beansDontRequireSomeProperties()
public BeanContextBuilder beansDontRequireSomeProperties()
When enabled, then a Java class must contain at least 1 property to be considered a bean.
Otherwise, the bean will be serialized as a string using the Object.toString()
method.
The @Bean
annotation can be used on a class to override this setting when
@Bean
annotation can be used on the class to force it to be recognized as a bean class
even if it has no properties.
public BeanContextBuilder bpi(Class<?> beanClass, String properties)
Specifies the set and order of names of properties associated with the bean class.
For example, ignoreUnknownBeanProperties()
has been called.
This value is entirely optional if you simply want to expose all the getters and public fields on a class as bean properties. However, it's useful if you want certain getters to be ignored or you want the properties to be serialized in a particular order. Note that on IBM JREs, the property order is the same as the order in the source code, whereas on Oracle JREs, the order is entirely random.
Setting applies to specified class and all subclasses.
This method is functionally equivalent to the following code:
builder.annotations(
Bean.bpi()
- On an annotation on the bean class itself.
BeanConfig.bpi()
- On a bean config annotation (see annotations(Annotation...)
).
beanClass
- The bean class.properties
- Comma-delimited list of property names.public BeanContextBuilder bpi(Map<String,Object> values)
Specifies the set and order of names of properties associated with bean classes.
For example, ignoreUnknownBeanProperties()
has been called.
This value is entirely optional if you simply want to expose all the getters and public fields on a class as bean properties. However, it's useful if you want certain getters to be ignored or you want the properties to be serialized in a particular order. Note that on IBM JREs, the property order is the same as the order in the source code, whereas on Oracle JREs, the order is entirely random.
Setting applies to specified class and all subclasses.
This method is functionally equivalent to the following code for each entry:
builder.annotations(
Bean.bpi()
- On an annotation on the bean class itself.
BeanConfig.bpi()
- On a bean config annotation (see annotations(Annotation...)
).
values
- The values to add to this builder.
public BeanContextBuilder bpi(String beanClassName, String properties)
Specifies the set and order of names of properties associated with the bean class.
For example, ignoreUnknownBeanProperties()
has been called.
This value is entirely optional if you simply want to expose all the getters and public fields on a class as bean properties. However, it's useful if you want certain getters to be ignored or you want the properties to be serialized in a particular order. Note that on IBM JREs, the property order is the same as the order in the source code, whereas on Oracle JREs, the order is entirely random.
Setting applies to specified class and all subclasses.
This method is functionally equivalent to the following code:
builder.annotations(
Bean.bpi()
- On an annotation on the bean class itself.
BeanConfig.bpi()
- On a bean config annotation (see annotations(Annotation...)
).
beanClassName
- The bean class name.
properties
- Comma-delimited list of property names.public BeanContextBuilder bpx(Class<?> beanClass, String properties)
Specifies to exclude the specified list of properties for the specified bean class.
Same as bpi(Class, String)
except you specify a list of bean property names that you want to exclude from
serialization.
Setting applies to specified class and all subclasses.
This method is functionally equivalent to the following code:
builder.annotations(
beanClass
- The bean class.properties
- Comma-delimited list of property names.public BeanContextBuilder bpx(Map<String,Object> values)
Specifies to exclude the specified list of properties for the specified bean classes.
Same as bpi(Map)
except you specify a list of bean property names that you want to exclude from
serialization.
Setting applies to specified class and all subclasses.
This method is functionally equivalent to the following code for each entry:
builder.annotations(
values
- The values to add to this builder.
public BeanContextBuilder bpx(String beanClassName, String properties)
Specifies to exclude the specified list of properties for the specified bean class.
Same as bpx(String, String)
except you specify a list of bean property names that you want to exclude from
serialization.
Setting applies to specified class and all subclasses.
This method is functionally equivalent to the following code:
builder.annotations(
beanClassName
- The bean class name.
properties
- Comma-delimited list of property names.public BeanContextBuilder bpro(Class<?> beanClass, String properties)
Specifies one or more properties on a bean that are read-only despite having valid getters.
Serializers will serialize such properties as usual, but parsers will silently ignore them.
Note that this is different from the
This method is functionally equivalent to the following code:
builder.annotations(
beanClass
- The bean class.properties
- Comma-delimited list of property names.public BeanContextBuilder bpro(Map<String,Object> values)
Specifies one or more properties on beans that are read-only despite having valid getters.
Serializers will serialize such properties as usual, but parsers will silently ignore them.
Note that this is different from the
This method is functionally equivalent to the following code for each entry:
builder.annotations(
values
- The values to add to this builder.
public BeanContextBuilder bpro(String beanClassName, String properties)
Specifies one or more properties on a bean that are read-only despite having valid getters.
Serializers will serialize such properties as usual, but parsers will silently ignore them.
Note that this is different from the
This method is functionally equivalent to the following code:
builder.annotations(
beanClassName
- The bean class name.
properties
- Comma-delimited list of property names.public BeanContextBuilder bpwo(Class<?> beanClass, String properties)
Specifies one or more properties on a bean that are write-only despite having valid setters.
Parsers will parse such properties as usual, but serializers will silently ignore them.
Note that this is different from the
This method is functionally equivalent to the following code:
builder.annotations(
beanClass
- The bean class.properties
- Comma-delimited list of property names.public BeanContextBuilder bpwo(Map<String,Object> values)
Specifies one or more properties on a bean that are write-only despite having valid setters.
Parsers will parse such properties as usual, but serializers will silently ignore them.
Note that this is different from the
This method is functionally equivalent to the following code for each entry:
builder.annotations(
values
- The values to add to this builder.
public BeanContextBuilder bpwo(String beanClassName, String properties)
Specifies one or more properties on a bean that are write-only despite having valid setters.
Parsers will parse such properties as usual, but serializers will silently ignore them.
Note that this is different from the
This method is functionally equivalent to the following code:
builder.annotations(
beanClassName
- The bean class name.
properties
- Comma-delimited list of property names.@Deprecated public BeanContextBuilder debug(boolean value)
debug()
public BeanContextBuilder dictionary(Object... values)
The list of classes that make up the bean dictionary in this bean context.
A dictionary is a name/class mapping used to find class types during parsing when they cannot be inferred
through reflection. The names are defined through the @Bean(typeName)
annotation defined
on the bean class. For example, if a class
This setting tells the parsers which classes to look for when resolving
Values can consist of any of the following types:
@Bean(typeName)
.
BeanDictionaryList
containing a collection of bean classes with type name annotations.
BeanDictionaryMap
containing a mapping of type names to classes without type name annotations.
Another option is to use the Bean.dictionary()
annotation on the POJO class itself:
A typical usage is to allow for HTML documents to be parsed back into HTML beans:
values
- The values to add to this property.public BeanContextBuilder dictionaryOn(Class<?> on, Class<?>... values)
This is identical to dictionary(Object...)
, but specifies a dictionary within the context of
a single class as opposed to globally.
This is functionally equivalent to the Bean.dictionary()
annotation.
on
- The class that the dictionary values apply to.values
- The new values for this property.public <T> BeanContextBuilder example(Class<T> pojoClass, T o)
Specifies an example of the specified class.
Examples are used in cases such as POJO examples in Swagger documents.
Setting applies to specified class and all subclasses.
POJO examples can also be defined on classes via the following:
@Example
.
@Example
with zero arguments or one BeanSession
argument.
BeanSession
argument.
pojoClass
- The POJO class.o
- An instance of the POJO class used for examples.public <T> BeanContextBuilder exampleJson(Class<T> pojoClass, String json)
Specifies an example in JSON of the specified class.
Examples are used in cases such as POJO examples in Swagger documents.
Setting applies to specified class and all subclasses.
POJO examples can also be defined on classes via the following:
@Example
.
@Example
with zero arguments or one BeanSession
argument.
BeanSession
argument.
T
- The POJO class type.pojoClass
- The POJO class.json
- The simple JSON representation of the example.@Deprecated public BeanContextBuilder excludeProperties(Class<?> beanClass, String properties)
bpx(Class, String)
@Deprecated public BeanContextBuilder excludeProperties(Map<String,String> values)
bpx(Map)
@Deprecated public BeanContextBuilder excludeProperties(String beanClassName, String value)
bpx(String, String)
@Deprecated public BeanContextBuilder fluentSetters(boolean value)
fluentSetters()
public BeanContextBuilder fluentSetters()
When enabled, fluent setters are detected on beans during parsing.
Fluent setters must have the following attributes:
@Beanp
annotation can also be used on methods to individually identify them as fluent setters.
@Bean.fluentSetters()
annotation can also be used on classes to specify to look for fluent setters.
public BeanContextBuilder fluentSetters(Class<?> on)
Identical to fluentSetters()
but enables it on a specific class only.
Bean.fluentSetters()
annotation.
on
- The class that this applies to.@Deprecated public BeanContextBuilder ignoreInvocationExceptionsOnGetters(boolean value)
ignoreInvocationExceptionsOnGetters()
public BeanContextBuilder ignoreInvocationExceptionsOnGetters()
When enabled, errors thrown when calling bean getter methods will silently be ignored.
Otherwise, a BeanRuntimeException
is thrown.
@Deprecated public BeanContextBuilder ignoreInvocationExceptionsOnSetters(boolean value)
ignoreInvocationExceptionsOnSetters()
public BeanContextBuilder ignoreInvocationExceptionsOnSetters()
When enabled, errors thrown when calling bean setter methods will silently be ignored.
Otherwise, a BeanRuntimeException
is thrown.
@Deprecated public BeanContextBuilder ignorePropertiesWithoutSetters(boolean value)
dontIgnorePropertiesWithoutSetters()
public BeanContextBuilder dontIgnorePropertiesWithoutSetters()
When enabled, trying to set a value on a bean property without a setter will silently be ignored.
Otherwise, a BeanRuntimeException
is thrown.
@BeanIgnore
annotation can also be used on getters and fields to ignore them.
@Deprecated public BeanContextBuilder ignoreTransientFields(boolean value)
dontIgnoreTransientFields()
public BeanContextBuilder dontIgnoreTransientFields()
When enabled, methods and fields marked as
@Beanp
annotation can also be used on transient fields to keep them from being ignored.
@Deprecated public BeanContextBuilder ignoreUnknownBeanProperties(boolean value)
ignoreUnknownBeanProperties()
public BeanContextBuilder ignoreUnknownBeanProperties()
When enabled, trying to set a value on a non-existent bean property will silently be ignored.
Otherwise, a BeanRuntimeException
is thrown.
@Deprecated public BeanContextBuilder ignoreUnknownNullBeanProperties(boolean value)
dontIgnoreUnknownNullBeanProperties()
public BeanContextBuilder dontIgnoreUnknownNullBeanProperties()
When enabled, trying to set a BeanRuntimeException
is thrown.
public BeanContextBuilder implClass(Class<?> interfaceClass, Class<?> implClass)
For interfaces and abstract classes this method can be used to specify an implementation class for the interface/abstract class so that instances of the implementation class are used when instantiated (e.g. during a parse).
interfaceClass
- The interface class.implClass
- The implementation class.public BeanContextBuilder implClasses(Map<Class<?>,Class<?>> values)
For interfaces and abstract classes this method can be used to specify an implementation class for the interface/abstract class so that instances of the implementation class are used when instantiated (e.g. during a parse).
values
- The new value for this property.@Deprecated public BeanContextBuilder includeProperties(Class<?> beanClass, String value)
bpi(Class, String)
@Deprecated public BeanContextBuilder includeProperties(Map<String,String> values)
bpi(Map)
@Deprecated public BeanContextBuilder includeProperties(String beanClassName, String value)
bpi(String, String)
public BeanContextBuilder interfaceClass(Class<?> on, Class<?> value)
When specified, only the list of properties defined on the interface class will be used during serialization. Additional properties on subclasses will be ignored.
This annotation can be used on the parent class so that it filters to all child classes, or can be set individually on the child classes.
@Bean(interfaceClass)
annotation is the equivalent annotation-based solution.
on
- The class that the interface class applies to.value
- The new value for this property.public BeanContextBuilder interfaces(Class<?>... value)
When specified, only the list of properties defined on the interface class will be used during serialization of implementation classes. Additional properties on subclasses will be ignored.
This annotation can be used on the parent class so that it filters to all child classes, or can be set individually on the child classes.
@Bean(interfaceClass)
annotation is the equivalent annotation-based solution.
value
- The new value for this property.public BeanContextBuilder notBeanClasses(Object... values)
List of classes that should not be treated as beans even if they appear to be bean-like.
Not-bean classes are converted to
Values can consist of any of the following types:
@BeanIgnore
annotation can also be used on classes to prevent them from being recognized as beans.
values
- The values to add to this property.
public BeanContextBuilder notBeanPackages(Object... values)
Used as a convenient way of defining the notBeanClasses(Object...)
property for entire packages.
Any classes within these packages will be serialized to strings using Object.toString()
.
Note that you can specify suffix patterns to include all subpackages.
Values can consist of any of the following types:
values
- The values to add to this property.
Package
objects.
@Deprecated public BeanContextBuilder pojoSwaps(Object... values)
swaps(Object...)
@Deprecated public BeanContextBuilder pojoSwapsReplace(Object... values)
set(String,Object)
@Deprecated public BeanContextBuilder pojoSwapsRemove(Object... values)
removeFrom(String,Object)
public BeanContextBuilder propertyNamer(Class<? extends PropertyNamer> value)
The class to use for calculating bean property names.
Predefined classes:
PropertyNamerDefault
- Default.
PropertyNamerDLC
- Dashed-lower-case names.
PropertyNamerULC
- Dashed-upper-case names.
value
- The new value for this setting.
PropertyNamerDefault
.public BeanContextBuilder propertyNamer(Class<?> on, Class<? extends PropertyNamer> value)
Same as propertyNamer(Class)
but allows you to specify a namer for a specific class.
on
- The class that the namer applies to.value
- The new value for this setting.
PropertyNamerDefault
.@Deprecated public BeanContextBuilder sortProperties(boolean value)
sortProperties()
public BeanContextBuilder sortProperties()
When enabled, all bean properties will be serialized and access in alphabetical order. Otherwise, the natural order of the bean properties is used which is dependent on the JVM vendor. On IBM JVMs, the bean properties are ordered based on their ordering in the Java file. On Oracle JVMs, the bean properties are not ordered (which follows the official JVM specs).
This property is disabled by default so that IBM JVM users don't have to use @Bean
annotations
to force bean properties to be in a particular order and can just alter the order of the fields/methods
in the Java file.
@Bean.sort()
annotation can also be used to sort properties on just a single class.
public BeanContextBuilder sortProperties(Class<?>... on)
Same as sortProperties()
but allows you to specify individual bean classes instead of globally.
on
- The bean classes to sort properties on.public BeanContextBuilder stopClass(Class<?> on, Class<?> value)
Identical in purpose to the stop class specified by Introspector.getBeanInfo(Class, Class)
.
Any properties in the stop class or in its base classes will be ignored during analysis.
For example, in the following class hierarchy, instances of
on
- The class on which the stop class is being applied.value
- The new value for this property.public BeanContextBuilder swaps(Object... values)
Swaps are used to "swap out" non-serializable classes with serializable equivalents during serialization, and "swap in" the non-serializable class during parsing.
An example of a swap would be a
Multiple swaps can be associated with a single class.
When multiple swaps are applicable to the same class, the media type pattern defined by
PojoSwap.forMediaTypes()
or @Swap(mediaTypes)
are used to come up with the best match.
Values can consist of any of the following types:
PojoSwap
.
PojoSwap
.
SurrogateSwap
.
values
- The values to add to this property.
PojoSwap
.
SurrogateSwap
.
public BeanContextBuilder typeName(Class<?> on, String value)
The name is used to identify the class type during parsing when it cannot be inferred through reflection.
For example, if a bean property is of type
It is also used to specify element names in XML.
Bean(typeName)
annotation.
on
- The class the type name is being defined on.value
- The new value for this property.public BeanContextBuilder typePropertyName(String value)
This specifies the name of the bean property used to store the dictionary name of a bean type so that the parser knows the data type to reconstruct.
value
- The new value for this property.
public BeanContextBuilder typePropertyName(Class<?> on, String value)
Same as typePropertyName(String)
except targets a specific bean class instead of globally.
on
- The class the type property name applies to.value
- The new value for this property.
@Deprecated public BeanContextBuilder useEnumNames(boolean value)
useEnumNames()
public BeanContextBuilder useEnumNames()
When enabled, enums are always serialized by name, not using Object.toString()
.
@Deprecated public BeanContextBuilder useInterfaceProxies(boolean value)
dontUseInterfaceProxies()
public BeanContextBuilder dontUseInterfaceProxies()
When enabled, interfaces will be instantiated as proxy classes through the use of an
InvocationHandler
if there is no other way of instantiating them.
Otherwise, throws a BeanRuntimeException
.
@Deprecated public BeanContextBuilder useJavaBeanIntrospector(boolean value)
useJavaBeanIntrospector()
public BeanContextBuilder useJavaBeanIntrospector()
Using the built-in Java bean introspector will not pick up fields or non-standard getters/setters.
Most @Bean
annotations will be ignored.
public BeanContextBuilder add(Map<String,Object> properties)
ContextBuilder
Identical in function to ContextBuilder.set(String, Object)
but allows you to specify multiple values at once.
add
in class ContextBuilder
properties
- The properties to set on this class.
public BeanContextBuilder addTo(String name, Object value)
ContextBuilder
SET properties are those properties with one of the following type parts:
For example, the BeanContext.BEAN_notBeanClasses
property which has the value
addTo
in class ContextBuilder
name
- The property name.value
- The new value to add to the SET property.
public BeanContextBuilder appendTo(String name, Object value)
ContextBuilder
LIST properties are those properties with one of the following type parts:
For example, the BeanContext.BEAN_swaps
property which has the value
appendTo
in class ContextBuilder
name
- The property name.value
- The new value to add to the LIST property.
public BeanContextBuilder apply(PropertyStore copyFrom)
ContextBuilder
apply
in class ContextBuilder
copyFrom
- The property store whose settings are being copied.public BeanContextBuilder applyAnnotations(Class<?>... fromClasses)
ContextBuilder
Any annotations found that themselves are annotated with PropertyStoreApply
will be resolved and
applied as properties to this builder. These annotations include:
BeanConfig
CsvConfig
HtmlConfig
HtmlDocConfig
JsoConfig
JsonConfig
JsonSchemaConfig
MsgPackConfig
OpenApiConfig
ParserConfig
PlainTextConfig
SerializerConfig
SoapXmlConfig
UonConfig
UrlEncodingConfig
XmlConfig
Annotations on classes are appended in the following order:
The default var resolver VarResolver.DEFAULT
is used to resolve any variables in annotation field values.
applyAnnotations
in class ContextBuilder
fromClasses
- The classes on which the annotations are defined.public BeanContextBuilder applyAnnotations(Method... fromMethods)
ContextBuilder
Any annotations found that themselves are annotated with PropertyStoreApply
will be resolved and
applied as properties to this builder. These annotations include:
BeanConfig
CsvConfig
HtmlConfig
HtmlDocConfig
JsoConfig
JsonConfig
JsonSchemaConfig
MsgPackConfig
OpenApiConfig
ParserConfig
PlainTextConfig
SerializerConfig
SoapXmlConfig
UonConfig
UrlEncodingConfig
XmlConfig
Annotations on methods are appended in the following order:
The default var resolver VarResolver.DEFAULT
is used to resolve any variables in annotation field values.
applyAnnotations
in class ContextBuilder
fromMethods
- The methods on which the annotations are defined.public BeanContextBuilder applyAnnotations(AnnotationList al, VarResolverSession r)
ContextBuilder
The AnnotationList
object is an ordered list of annotations and the classes/methods/packages they were found on.
applyAnnotations
in class ContextBuilder
al
- The list of all annotations annotated with PropertyStoreApply
.r
- The string resolver for resolving variables in annotation values.public BeanContextBuilder debug()
ContextBuilder
Enables the following additional information during serialization:
BeanTraverseContext.BEANTRAVERSE_detectRecursions
.
Enables the following additional information during parsing:
debug
in class ContextBuilder
public BeanContextBuilder locale(Locale value)
ContextBuilder
Specifies the default locale for serializer and parser sessions when not specified via SessionArgs.locale(Locale)
.
Typically used for POJO swaps that need to deal with locales such as swaps that convert PojoSwap.swap(BeanSession, Object)
and
PojoSwap.unswap(BeanSession, Object, ClassMeta, String)
methods.
locale
in class ContextBuilder
value
- The new value for this property.public BeanContextBuilder mediaType(MediaType value)
ContextBuilder
Specifies the default media type for serializer and parser sessions when not specified via SessionArgs.mediaType(MediaType)
.
Typically used for POJO swaps that need to serialize the same POJO classes differently depending on
the specific requested media type. For example, a swap could handle a request for media types
mediaType
in class ContextBuilder
value
- The new value for this property.public BeanContextBuilder prependTo(String name, Object value)
ContextBuilder
LIST properties are those properties with one of the following type parts:
For example, the BeanContext.BEAN_swaps
property which has the value
prependTo
in class ContextBuilder
name
- The property name.value
- The new value to add to the LIST property.
public BeanContextBuilder putAllTo(String name, Object value)
ContextBuilder
MAP properties are those properties with one of the following type parts:
For example, the BeanContext.BEAN_implClasses
property which has the value
putAllTo
in class ContextBuilder
name
- The property name.value
- Either a JSON Object string or a Map
whose valid value types depend on the property type:
public BeanContextBuilder putTo(String name, String key, Object value)
ContextBuilder
MAP properties are those properties with one of the following type parts:
For example, the BeanContext.BEAN_implClasses
property which has the value
putTo
in class ContextBuilder
name
- The property name.key
- The property value map key.value
- The property value map value.
public BeanContextBuilder removeFrom(String name, Object value)
ContextBuilder
removeFrom
in class ContextBuilder
name
- The property name.value
- The property value in the SET/LIST/MAP property.public BeanContextBuilder set(Map<String,Object> properties)
ContextBuilder
Identical in function to ContextBuilder.set(String, Object)
but allows you to specify multiple values at once.
set
in class ContextBuilder
properties
- The properties to set on this class.
public BeanContextBuilder set(String name, Object value)
ContextBuilder
Provides the ability to specify configuration property values in a generic fashion.
Property names must have the following format that identify their datatype...
...where the parts consist of the following...
For example,
Property values get 'normalized' when they get set.
For example, calling PropertyStore
class to be comparable
and useful in determining whether a cached instance of a context object can be returned.
As a general rule, builders don't typically have "unsetter" methods. For example, once you've set strict
mode on the
set
in class ContextBuilder
name
- The property name.value
- The property value.
public BeanContextBuilder timeZone(TimeZone value)
ContextBuilder
Specifies the default time zone for serializer and parser sessions when not specified via SessionArgs.timeZone(TimeZone)
.
Typically used for POJO swaps that need to deal with timezones such as swaps that convert PojoSwap.swap(BeanSession, Object)
and
PojoSwap.unswap(BeanSession, Object, ClassMeta, String)
methods.
timeZone
in class ContextBuilder
value
- The new value for this property.Copyright © 2016–2020 The Apache Software Foundation. All rights reserved.