This is an automated email from the ASF dual-hosted git repository. jamesbognar pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/juneau.git
The following commit(s) were added to refs/heads/master by this push: new a4ea172 Context API refactoring. a4ea172 is described below commit a4ea172cd8b12daafb42d61add3caad2a86512de Author: JamesBognar <james.bog...@salesforce.com> AuthorDate: Sat Sep 25 16:47:27 2021 -0400 Context API refactoring. --- .../main/java/org/apache/juneau/BeanContext.java | 519 ++------------------- .../java/org/apache/juneau/BeanContextBuilder.java | 360 +++++++++++--- .../org/apache/juneau/BeanContextableBuilder.java | 36 +- .../java/org/apache/juneau/BeanFilterBuilder.java | 6 +- .../main/java/org/apache/juneau/BeanSession.java | 30 +- .../java/org/apache/juneau/annotation/Bean.java | 20 +- .../org/apache/juneau/annotation/BeanConfig.java | 114 ++--- .../juneau/annotation/BeanConfigAnnotation.java | 32 +- .../java/org/apache/juneau/annotation/Beanp.java | 2 +- .../org/apache/juneau/parser/ParserListener.java | 2 +- .../org/apache/juneau/parser/ParserSession.java | 2 +- .../main/java/org/apache/juneau/utils/HashKey.java | 44 +- 12 files changed, 454 insertions(+), 713 deletions(-) diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java index b7a250e..5fb65f2 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java @@ -76,7 +76,7 @@ import org.apache.juneau.transform.*; * handled. These are denoted as the static <jsf>BEAN_*</jsf> fields on this class. * * <p class='w800'> - * Some settings (e.g. {@link #BEAN_beansRequireDefaultConstructor}) are used to differentiate between bean + * Some settings (e.g. {@link BeanContextBuilder#beansRequireDefaultConstructor()}) are used to differentiate between bean * and non-bean classes. * Attempting to create a bean map around one of these objects will throw a {@link BeanRuntimeException}. * The purpose for this behavior is so that the serializers can identify these non-bean classes and convert them to @@ -87,7 +87,7 @@ import org.apache.juneau.transform.*; * detected on beans. * * <p class='w800'> - * Some settings (e.g. {@link #BEAN_beanMapPutReturnsOldValue}) change the runtime behavior of bean maps. + * Some settings (e.g. {@link BeanContextBuilder#beanMapPutReturnsOldValue()}) change the runtime behavior of bean maps. * * <p class='w800'> * Settings are specified using the {@link BeanContextBuilder#set(String, Object)} method and related convenience @@ -156,145 +156,6 @@ public class BeanContext extends Context { static final String PREFIX = "BeanContext"; /** - * Configuration property: Beans don't require at least one property. - * - * <p> - * When enabled, then a Java class doesn't need to contain at least 1 property to be considered a bean. - * Otherwise, the bean will be serialized as a string using the {@link Object#toString()} method. - * - * <h5 class='section'>Property:</h5> - * <ul class='spaced-list'> - * <li><b>ID:</b> {@link org.apache.juneau.BeanContext#BEAN_disableBeansRequireSomeProperties BEAN_disableBeansRequireSomeProperties} - * <li><b>Name:</b> <js>"BeanContext.disableBeansRequireSomeProperties.b"</js> - * <li><b>Data type:</b> <jk>boolean</jk> - * <li><b>System property:</b> <c>BeanContext.disableBeansRequireSomeProperties</c> - * <li><b>Environment variable:</b> <c>BEANCONTEXT_DIABLEBEANSREQUIRESOMEPROPERTIES</c> - * <li><b>Default:</b> <jk>false</jk> - * <li><b>Session property:</b> <jk>true</jk> - * <li><b>Annotations:</b> - * <ul> - * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#disableBeansRequireSomeProperties()} - * </ul> - * <li><b>Methods:</b> - * <ul> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#disableBeansRequireSomeProperties()} - * </ul> - * </ul> - */ - public static final String BEAN_disableBeansRequireSomeProperties = PREFIX + ".disableBeansRequireSomeProperties.b"; - - /** - * Configuration property: BeanMap.put() returns old property value. - * - * <p> - * When enabled, then the {@link BeanMap#put(String,Object) BeanMap.put()} method will return old property - * values. Otherwise, it returns <jk>null</jk>. - * - * <h5 class='section'>Property:</h5> - * <ul class='spaced-list'> - * <li><b>ID:</b> {@link org.apache.juneau.BeanContext#BEAN_beanMapPutReturnsOldValue BEAN_beanMapPutReturnsOldValue} - * <li><b>Name:</b> <js>"BeanContext.beanMapPutReturnsOldValue.b"</js> - * <li><b>Data type:</b> <jk>boolean</jk> - * <li><b>System property:</b> <c>BeanContext.beanMapPutReturnsOldValue</c> - * <li><b>Environment variable:</b> <c>BEANCONTEXT_BEANMAPPUTRETURNSOLDVALUE</c> - * <li><b>Default:</b> <jk>false</jk> - * <li><b>Session property:</b> <jk>false</jk> - * <li><b>Annotations:</b> - * <ul> - * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#beanMapPutReturnsOldValue()} - * </ul> - * <li><b>Methods:</b> - * <ul> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beanMapPutReturnsOldValue()} - * </ul> - * </ul> - */ - public static final String BEAN_beanMapPutReturnsOldValue = PREFIX + ".beanMapPutReturnsOldValue.b"; - - /** - * Configuration property: Beans require no-arg constructors. - * - * <p> - * 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 {@link Object#toString()} method. - * - * <h5 class='section'>Property:</h5> - * <ul class='spaced-list'> - * <li><b>ID:</b> {@link org.apache.juneau.BeanContext#BEAN_beansRequireDefaultConstructor BEAN_beansRequireDefaultConstructor} - * <li><b>Name:</b> <js>"BeanContext.beansRequireDefaultConstructor.b"</js> - * <li><b>Data type:</b> <jk>boolean</jk> - * <li><b>System property:</b> <c>BeanContext.beansRequireDefaultConstructor</c> - * <li><b>Environment variable:</b> <c>BEANCONTEXT_BEANSREQUIREDEFAULTCONSTRUCTOR</c> - * <li><b>Default:</b> <jk>false</jk> - * <li><b>Session property:</b> <jk>false</jk> - * <li><b>Annotations:</b> - * <ul> - * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#beansRequireDefaultConstructor()} - * </ul> - * <li><b>Methods:</b> - * <ul> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beansRequireDefaultConstructor()} - * </ul> - * </ul> - */ - public static final String BEAN_beansRequireDefaultConstructor = PREFIX + ".beansRequireDefaultConstructor.b"; - - /** - * Configuration property: Beans require Serializable interface. - * - * <p> - * When enabled, a Java class must implement the {@link Serializable} interface to be considered a bean. - * Otherwise, the bean will be serialized as a string using the {@link Object#toString()} method. - * - * <h5 class='section'>Property:</h5> - * <ul class='spaced-list'> - * <li><b>ID:</b> {@link org.apache.juneau.BeanContext#BEAN_beansRequireSerializable BEAN_beansRequireSerializable} - * <li><b>Name:</b> <js>"BeanContext.beansRequireSerializable.b"</js> - * <li><b>Data type:</b> <jk>boolean</jk> - * <li><b>System property:</b> <c>BeanContext.beansRequireSerializable</c> - * <li><b>Environment variable:</b> <c>BEANCONTEXT_BEANSREQUIRESERIALIZABLE</c> - * <li><b>Default:</b> <jk>false</jk> - * <li><b>Session property:</b> <jk>false</jk> - * <li><b>Annotations:</b> - * <ul> - * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#beansRequireSerializable()} - * </ul> - * <li><b>Methods:</b> - * <ul> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beansRequireSerializable()} - * </ul> - * </ul> - */ - public static final String BEAN_beansRequireSerializable = PREFIX + ".beansRequireSerializable.b"; - - /** - * Configuration property: Beans require setters for getters. - * - * <p> - * When enabled, ignore read-only properties (properties with getters but not setters). - * - * <h5 class='section'>Property:</h5> - * <ul class='spaced-list'> - * <li><b>ID:</b> {@link org.apache.juneau.BeanContext#BEAN_beansRequireSettersForGetters BEAN_beansRequireSettersForGetters} - * <li><b>Name:</b> <js>"BeanContext.beansRequireSettersForGetters.b"</js> - * <li><b>Data type:</b> <jk>boolean</jk> - * <li><b>System property:</b> <c>BeanContext.beansRequireSettersForGetters</c> - * <li><b>Environment variable:</b> <c>BEANCONTEXT_BEANSREQUIRESETTERSFORGETTERS</c> - * <li><b>Default:</b> <jk>false</jk> - * <li><b>Session property:</b> <jk>false</jk> - * <li><b>Annotations:</b> - * <ul> - * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#beansRequireSettersForGetters()} - * </ul> - * <li><b>Methods:</b> - * <ul> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beansRequireSettersForGetters()} - * </ul> - * </ul> - */ - public static final String BEAN_beansRequireSettersForGetters = PREFIX + ".beansRequireSettersForGetters.b"; - - /** * Configuration property: Bean type property name. * * <p> @@ -324,230 +185,6 @@ public class BeanContext extends Context { public static final String BEAN_typePropertyName = PREFIX + ".typePropertyName.s"; /** - * Configuration property: Don't ignore transient fields. - * - * <p> - * When enabled, methods and fields marked as <jk>transient</jk> will not be ignored as bean properties. - * - * <h5 class='section'>Property:</h5> - * <ul class='spaced-list'> - * <li><b>ID:</b> {@link org.apache.juneau.BeanContext#BEAN_disableIgnoreTransientFields BEAN_disableIgnoreTransientFields} - * <li><b>Name:</b> <js>"BeanContext.disableIgnoreTransientFields.b"</js> - * <li><b>Data type:</b> <jk>boolean</jk> - * <li><b>System property:</b> <c>BeanContext.disableIgnoreTransientFields</c> - * <li><b>Environment variable:</b> <c>BEANCONTEXT_DISABLEIGNORETRANSIENTFIELDS</c> - * <li><b>Default:</b> <jk>false</jk> - * <li><b>Session property:</b> <jk>false</jk> - * <li><b>Annotations:</b> - * <ul> - * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#disableIgnoreTransientFields()} - * </ul> - * <li><b>Methods:</b> - * <ul> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#disableIgnoreTransientFields()} - * </ul> - * </ul> - */ - public static final String BEAN_disableIgnoreTransientFields = PREFIX + ".disableIgnoreTransientFields.b"; - - /** - * Configuration property: Don't ignore unknown properties with null values. - * - * <p> - * When enabled, trying to set a <jk>null</jk> value on a non-existent bean property will throw a {@link BeanRuntimeException}. - * Otherwise it will be silently ignored. - * - * <h5 class='section'>Property:</h5> - * <ul class='spaced-list'> - * <li><b>ID:</b> {@link org.apache.juneau.BeanContext#BEAN_disableIgnoreUnknownNullBeanProperties BEAN_disableIgnoreUnknownNullBeanProperties} - * <li><b>Name:</b> <js>"BeanContext.disableIgnoreUnknownNullBeanProperties.b"</js> - * <li><b>Data type:</b> <jk>boolean</jk> - * <li><b>System property:</b> <c>BeanContext.disableIgnoreUnknownNullBeanProperties</c> - * <li><b>Environment variable:</b> <c>BEANCONTEXT_DISABLEIGNOREUNKNOWNNULLBEANPROPERTIES</c> - * <li><b>Default:</b> <jk>false</jk> - * <li><b>Session property:</b> <jk>false</jk> - * <li><b>Annotations:</b> - * <ul> - * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#disableIgnoreUnknownNullBeanProperties()} - * </ul> - * <li><b>Methods:</b> - * <ul> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#disableIgnoreUnknownNullBeanProperties()} - * </ul> - * </ul> - */ - public static final String BEAN_disableIgnoreUnknownNullBeanProperties = PREFIX + ".disableIgnoreUnknownNullBeanProperties.b"; - - /** - * Configuration property: Don't silently ignore missing setters. - * - * <p> - * When enabled, trying to set a value on a bean property without a setter will throw a {@link BeanRuntimeException}. - * Otherwise, it will be silently ignored. - * - * <h5 class='section'>Property:</h5> - * <ul class='spaced-list'> - * <li><b>ID:</b> {@link org.apache.juneau.BeanContext#BEAN_disableIgnoreMissingSetters BEAN_disableIgnoreMissingSetters} - * <li><b>Name:</b> <js>"BeanContext.disableIgnoreMissingSetters.b"</js> - * <li><b>Data type:</b> <jk>boolean</jk> - * <li><b>System property:</b> <c>BeanContext.disableIgnoreMissingSetters</c> - * <li><b>Environment variable:</b> <c>BEANCONTEXT_DISABLEIGNOREMISSINGSETTERS</c> - * <li><b>Default:</b> <jk>false</jk> - * <li><b>Session property:</b> <jk>false</jk> - * <li><b>Annotations:</b> - * <ul> - * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#disableIgnoreMissingSetters()} - * </ul> - * <li><b>Methods:</b> - * <ul> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#disableIgnoreMissingSetters()} - * </ul> - * </ul> - */ - public static final String BEAN_disableIgnoreMissingSetters = PREFIX + ".disableIgnoreMissingSetters.b"; - - /** - * Configuration property: Don't use interface proxies. - * - * <p> - * When <jk>false</jk>, interfaces will be instantiated as proxy classes through the use of an - * {@link InvocationHandler} if there is no other way of instantiating them. - * Otherwise, throws a {@link BeanRuntimeException}. - * - * <h5 class='section'>Property:</h5> - * <ul class='spaced-list'> - * <li><b>ID:</b> {@link org.apache.juneau.BeanContext#BEAN_disableInterfaceProxies BEAN_disableInterfaceProxies} - * <li><b>Name:</b> <js>"BeanContext.disableInterfaceProxies.b"</js> - * <li><b>Data type:</b> <jk>boolean</jk> - * <li><b>System property:</b> <c>BeanContext.disableInterfaceProxies</c> - * <li><b>Environment variable:</b> <c>BEANCONTEXT_DISABLEINTERFACEPROXIES</c> - * <li><b>Default:</b> <jk>false</jk> - * <li><b>Session property:</b> <jk>false</jk> - * <li><b>Annotations:</b> - * <ul> - * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#disableInterfaceProxies()} - * </ul> - * <li><b>Methods:</b> - * <ul> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#disableInterfaceProxies()} - * </ul> - * </ul> - */ - public static final String BEAN_disableInterfaceProxies = PREFIX + ".disableInterfaceProxies.b"; - - /** - * Configuration property: Find fluent setters. - * - * <p> - * When enabled, fluent setters are detected on beans during parsing. - * - * <h5 class='section'>Property:</h5> - * <ul class='spaced-list'> - * <li><b>ID:</b> {@link org.apache.juneau.BeanContext#BEAN_findFluentSetters BEAN_findFluentSetters} - * <li><b>Name:</b> <js>"BeanContext.findFluentSetters.b"</js> - * <li><b>Data type:</b> <jk>boolean</jk> - * <li><b>System property:</b> <c>BeanContext.findFluentSetters</c> - * <li><b>Environment variable:</b> <c>BEANCONTEXT_FINDFLUENTSETTERS</c> - * <li><b>Default:</b> <jk>false</jk> - * <li><b>Session property:</b> <jk>false</jk> - * <li><b>Annotations:</b> - * <ul> - * <li class='ja'>{@link org.apache.juneau.annotation.Bean#findFluentSetters()} - * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#findFluentSetters()} - * </ul> - * <li><b>Methods:</b> - * <ul> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#findFluentSetters()} - * </ul> - * </ul> - */ - public static final String BEAN_findFluentSetters = PREFIX + ".findFluentSetters.b"; - - /** - * Configuration property: Ignore invocation errors on getters. - * - * <p> - * When enabled, errors thrown when calling bean getter methods will silently be ignored. - * Otherwise, a {@code BeanRuntimeException} is thrown. - * - * <h5 class='section'>Property:</h5> - * <ul class='spaced-list'> - * <li><b>ID:</b> {@link org.apache.juneau.BeanContext#BEAN_ignoreInvocationExceptionsOnGetters BEAN_ignoreInvocationExceptionsOnGetters} - * <li><b>Name:</b> <js>"BeanContext.ignoreInvocationExceptionsOnGetters.b"</js> - * <li><b>Data type:</b> <jk>boolean</jk> - * <li><b>System property:</b> <c>BeanContext.ignoreInvocationExceptionsOnGetters</c> - * <li><b>Environment variable:</b> <c>BEANCONTEXT_IGNOREINVOCATIONEXCEPTIONONGETTERS</c> - * <li><b>Default:</b> <jk>false</jk> - * <li><b>Session property:</b> <jk>false</jk> - * <li><b>Annotations:</b> - * <ul> - * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#ignoreInvocationExceptionsOnGetters()} - * </ul> - * <li><b>Methods:</b> - * <ul> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#ignoreInvocationExceptionsOnGetters()} - * </ul> - * </ul> - */ - public static final String BEAN_ignoreInvocationExceptionsOnGetters = PREFIX + ".ignoreInvocationExceptionsOnGetters.b"; - - /** - * Configuration property: Ignore invocation errors on setters. - * - * <p> - * When enabled, errors thrown when calling bean setter methods will silently be ignored. - * Otherwise, a {@code BeanRuntimeException} is thrown. - * - * <h5 class='section'>Property:</h5> - * <ul class='spaced-list'> - * <li><b>ID:</b> {@link org.apache.juneau.BeanContext#BEAN_ignoreInvocationExceptionsOnSetters BEAN_ignoreInvocationExceptionsOnSetters} - * <li><b>Name:</b> <js>"BeanContext.ignoreInvocationExceptionsOnSetters.b"</js> - * <li><b>Data type:</b> <jk>boolean</jk> - * <li><b>System property:</b> <c>BeanContext.ignoreInvocationExceptionsOnSetters</c> - * <li><b>Environment variable:</b> <c>BEANCONTEXT_IGNOREINVOCATIONEXCEPTIONSONSETTERS</c> - * <li><b>Default:</b> <jk>false</jk> - * <li><b>Session property:</b> <jk>false</jk> - * <li><b>Annotations:</b> - * <ul> - * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#ignoreInvocationExceptionsOnSetters()} - * </ul> - * <li><b>Methods:</b> - * <ul> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#ignoreInvocationExceptionsOnSetters()} - * </ul> - * </ul> - */ - public static final String BEAN_ignoreInvocationExceptionsOnSetters = PREFIX + ".ignoreInvocationExceptionsOnSetters.b"; - - /** - * Configuration property: Ignore unknown properties. - * - * <p> - * When enabled, trying to set a value on a non-existent bean property will silently be ignored. - * Otherwise, a {@code BeanRuntimeException} is thrown. - * - * <h5 class='section'>Property:</h5> - * <ul class='spaced-list'> - * <li><b>ID:</b> {@link org.apache.juneau.BeanContext#BEAN_ignoreUnknownBeanProperties BEAN_ignoreUnknownBeanProperties} - * <li><b>Name:</b> <js>"BeanContext.ignoreUnknownBeanProperties.b"</js> - * <li><b>Data type:</b> <jk>boolean</jk> - * <li><b>System property:</b> <c>BeanContext.ignoreUnknownBeanProperties</c> - * <li><b>Environment variable:</b> <c>BEANCONTEXT_IGNOREUNKNOWNBEANPROPERTIES</c> - * <li><b>Default:</b> <jk>false</jk> - * <li><b>Session property:</b> <jk>false</jk> - * <li><b>Annotations:</b> - * <ul> - * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#ignoreUnknownBeanProperties()} - * </ul> - * <li><b>Methods:</b> - * <ul> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#ignoreUnknownBeanProperties()} - * </ul> - * </ul> - */ - public static final String BEAN_ignoreUnknownBeanProperties = PREFIX + ".ignoreUnknownBeanProperties.b"; - - /** * Configuration property: Locale. * * <p> @@ -704,37 +341,6 @@ public class BeanContext extends Context { public static final String BEAN_propertyNamer = PREFIX + ".propertyNamer.c"; /** - * Configuration property: Sort bean properties. - * - * <p> - * 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). - * - * <h5 class='section'>Property:</h5> - * <ul class='spaced-list'> - * <li><b>ID:</b> {@link org.apache.juneau.BeanContext#BEAN_sortProperties BEAN_sortProperties} - * <li><b>Name:</b> <js>"BeanContext.sortProperties.b"</js> - * <li><b>Data type:</b> <jk>boolean</jk> - * <li><b>System property:</b> <c>BeanContext.sortProperties</c> - * <li><b>Environment variable:</b> <c>BEANCONTEXT_SORTPROPERTIES</c> - * <li><b>Default:</b> <jk>false</jk> - * <li><b>Session property:</b> <jk>false</jk> - * <li><b>Annotations:</b> - * <ul> - * <li class='ja'>{@link org.apache.juneau.annotation.Bean#sort()} - * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#sortProperties()} - * </ul> - * <li><b>Methods:</b> - * <ul> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#sortProperties()} - * </ul> - * </ul> - */ - public static final String BEAN_sortProperties = PREFIX + ".sortProperties.b"; - - /** * Configuration property: Java object swaps. * * <p> @@ -792,59 +398,6 @@ public class BeanContext extends Context { */ public static final String BEAN_timeZone = PREFIX + ".timeZone.s"; - /** - * Configuration property: Use enum names. - * - * <p> - * When enabled, enums are always serialized by name, not using {@link Object#toString()}.. - * - * <ul class='spaced-list'> - * <li><b>ID:</b> {@link org.apache.juneau.BeanContext#BEAN_useEnumNames BEAN_useEnumNames} - * <li><b>Name:</b> <js>"BeanContext.useEnumNames.b"</js> - * <li><b>Data type:</b> <jk>boolean</jk> - * <li><b>System property:</b> <c>BeanContext.useEnumNames</c> - * <li><b>Environment variable:</b> <c>BEANCONTEXT_USEENUMNAMES</c> - * <li><b>Default:</b> <jk>false</jk> - * <li><b>Session property:</b> <jk>false</jk> - * <li><b>Annotations:</b> - * <ul> - * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#useEnumNames()} - * </ul> - * <li><b>Methods:</b> - * <ul> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#useEnumNames()} - * </ul> - * </ul> - */ - public static final String BEAN_useEnumNames = PREFIX + ".useEnumNames.b"; - - /** - * Configuration property: Use Java Introspector. - * - * <p> - * Using the built-in Java bean introspector will not pick up fields or non-standard getters/setters. - * <br>Most {@link Bean @Bean} annotations will be ignored.. - * - * <ul class='spaced-list'> - * <li><b>ID:</b> {@link org.apache.juneau.BeanContext#BEAN_useJavaBeanIntrospector BEAN_useJavaBeanIntrospector} - * <li><b>Name:</b> <js>"BeanContext.useJavaBeanIntrospector.b"</js> - * <li><b>Data type:</b> <jk>boolean</jk> - * <li><b>System property:</b> <c>BeanContext.useJavaBeanIntrospector</c> - * <li><b>Environment variable:</b> <c>BEANCONTEXT_USEJAVABEANINTROSPECTOR</c> - * <li><b>Default:</b> <jk>false</jk> - * <li><b>Session property:</b> <jk>false</jk> - * <li><b>Annotations:</b> - * <ul> - * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#useJavaBeanIntrospector()} - * </ul> - * <li><b>Methods:</b> - * <ul> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#useJavaBeanIntrospector()} - * </ul> - * </ul> - */ - public static final String BEAN_useJavaBeanIntrospector = PREFIX + ".useJavaBeanIntrospector.b"; - /* * The default package pattern exclusion list. * Any beans in packages in this list will not be considered beans. @@ -884,7 +437,7 @@ public class BeanContext extends Context { /** Default reusable unmodifiable session. Can be used to avoid overhead of creating a session (for creating BeanMaps for example).*/ public static final BeanSession DEFAULT_SESSION = new BeanSession(DEFAULT, DEFAULT.createDefaultBeanSessionArgs().unmodifiable()); - private final boolean + final boolean beansRequireDefaultConstructor, beansRequireSerializable, beansRequireSettersForGetters, @@ -941,22 +494,22 @@ public class BeanContext extends Context { cp = cp.subset(new String[]{"Context","BeanContext"}); - beansRequireDefaultConstructor = cp.getBoolean(BEAN_beansRequireDefaultConstructor).orElse(false); - beansRequireSerializable = cp.getBoolean(BEAN_beansRequireSerializable).orElse(false); - beansRequireSettersForGetters = cp.getBoolean(BEAN_beansRequireSettersForGetters).orElse(false); - beansRequireSomeProperties = ! cp.getBoolean(BEAN_disableBeansRequireSomeProperties).orElse(false); - beanMapPutReturnsOldValue = cp.getBoolean(BEAN_beanMapPutReturnsOldValue).orElse(false); - useEnumNames = cp.getBoolean(BEAN_useEnumNames).orElse(false); - useInterfaceProxies = ! cp.getBoolean(BEAN_disableInterfaceProxies).orElse(false); - ignoreUnknownBeanProperties = cp.getBoolean(BEAN_ignoreUnknownBeanProperties).orElse(false); - ignoreUnknownNullBeanProperties = ! cp.getBoolean(BEAN_disableIgnoreUnknownNullBeanProperties).orElse(false); - ignoreMissingSetters = ! cp.getBoolean(BEAN_disableIgnoreMissingSetters).orElse(false); - ignoreTransientFields = ! cp.getBoolean(BEAN_disableIgnoreTransientFields).orElse(false); - ignoreInvocationExceptionsOnGetters = cp.getBoolean(BEAN_ignoreInvocationExceptionsOnGetters).orElse(false); - ignoreInvocationExceptionsOnSetters = cp.getBoolean(BEAN_ignoreInvocationExceptionsOnSetters).orElse(false); - useJavaBeanIntrospector = cp.getBoolean(BEAN_useJavaBeanIntrospector).orElse(false); - sortProperties = cp.getBoolean(BEAN_sortProperties).orElse(false); - findFluentSetters = cp.getBoolean(BEAN_findFluentSetters).orElse(false); + beansRequireDefaultConstructor = builder.beansRequireDefaultConstructor; + beansRequireSerializable = builder.beansRequireSerializable; + beansRequireSettersForGetters = builder.beansRequireSettersForGetters; + beansRequireSomeProperties = ! builder.disableBeansRequireSomeProperties; + beanMapPutReturnsOldValue = builder.beanMapPutReturnsOldValue; + useEnumNames = builder.useEnumNames; + useInterfaceProxies = ! builder.disableInterfaceProxies; + ignoreUnknownBeanProperties = builder.ignoreUnknownBeanProperties; + ignoreUnknownNullBeanProperties = ! builder.disableIgnoreUnknownNullBeanProperties; + ignoreMissingSetters = ! builder.disableIgnoreMissingSetters; + ignoreTransientFields = ! builder.disableIgnoreTransientFields; + ignoreInvocationExceptionsOnGetters = builder.ignoreInvocationExceptionsOnGetters; + ignoreInvocationExceptionsOnSetters = builder.ignoreInvocationExceptionsOnSetters; + useJavaBeanIntrospector = builder.useJavaBeanIntrospector; + sortProperties = builder.sortProperties; + findFluentSetters = builder.findFluentSetters; typePropertyName = cp.getString(BEAN_typePropertyName).orElse("_type"); beanConstructorVisibility = builder.beanConstructorVisibility; @@ -1655,7 +1208,7 @@ public class BeanContext extends Context { /** * BeanMap.put() returns old property value. * - * @see #BEAN_beanMapPutReturnsOldValue + * @see BeanContextBuilder#beanMapPutReturnsOldValue() * @return * <jk>true</jk> if the {@link BeanMap#put(String,Object) BeanMap.put()} method will return old property values. * <br>Otherwise, it returns <jk>null</jk>. @@ -1678,7 +1231,7 @@ public class BeanContext extends Context { /** * Beans require no-arg constructors. * - * @see #BEAN_beansRequireDefaultConstructor + * @see BeanContextBuilder#beansRequireDefaultConstructor() * @return * <jk>true</jk> if a Java class must implement a default no-arg constructor to be considered a bean. * <br>Otherwise, the bean will be serialized as a string using the {@link Object#toString()} method. @@ -1690,7 +1243,7 @@ public class BeanContext extends Context { /** * Beans require Serializable interface. * - * @see #BEAN_beansRequireSerializable + * @see BeanContextBuilder#beansRequireSerializable() * @return * <jk>true</jk> if a Java class must implement the {@link Serializable} interface to be considered a bean. * <br>Otherwise, the bean will be serialized as a string using the {@link Object#toString()} method. @@ -1702,7 +1255,7 @@ public class BeanContext extends Context { /** * Beans require setters for getters. * - * @see #BEAN_beansRequireSettersForGetters + * @see BeanContextBuilder#beansRequireSettersForGetters() * @return * <jk>true</jk> if only getters that have equivalent setters will be considered as properties on a bean. * <br>Otherwise, they are ignored. @@ -1714,7 +1267,7 @@ public class BeanContext extends Context { /** * Beans require at least one property. * - * @see #BEAN_disableBeansRequireSomeProperties + * @see BeanContextBuilder#disableBeansRequireSomeProperties() * @return * <jk>true</jk> if a Java class doesn't need to contain at least 1 property to be considered a bean. * <br>Otherwise, the bean is serialized as a string using the {@link Object#toString()} method. @@ -1740,7 +1293,7 @@ public class BeanContext extends Context { * <h5 class='section'>Description:</h5> * <p> * - * @see #BEAN_findFluentSetters + * @see BeanContextBuilder#findFluentSetters() * @return * <jk>true</jk> if fluent setters are detected on beans. */ @@ -1751,7 +1304,7 @@ public class BeanContext extends Context { /** * Ignore invocation errors on getters. * - * @see #BEAN_ignoreInvocationExceptionsOnGetters + * @see BeanContextBuilder#ignoreInvocationExceptionsOnGetters() * @return * <jk>true</jk> if errors thrown when calling bean getter methods are silently ignored. */ @@ -1762,7 +1315,7 @@ public class BeanContext extends Context { /** * Ignore invocation errors on setters. * - * @see #BEAN_ignoreInvocationExceptionsOnSetters + * @see BeanContextBuilder#ignoreInvocationExceptionsOnSetters() * @return * <jk>true</jk> if errors thrown when calling bean setter methods are silently ignored. */ @@ -1773,7 +1326,7 @@ public class BeanContext extends Context { /** * Silently ignore missing setters. * - * @see #BEAN_disableIgnoreMissingSetters + * @see BeanContextBuilder#disableIgnoreMissingSetters() * @return * <jk>true</jk> if trying to set a value on a bean property without a setter should throw a {@link BeanRuntimeException}. */ @@ -1782,9 +1335,9 @@ public class BeanContext extends Context { } /** - * Iignore transient fields. + * Ignore transient fields. * - * @see #BEAN_disableIgnoreTransientFields + * @see BeanContextBuilder#disableIgnoreTransientFields() * @return * <jk>true</jk> if fields and methods marked as transient should not be ignored. */ @@ -1795,7 +1348,7 @@ public class BeanContext extends Context { /** * Ignore unknown properties. * - * @see #BEAN_ignoreUnknownBeanProperties + * @see BeanContextBuilder#ignoreUnknownBeanProperties() * @return * <jk>true</jk> if trying to set a value on a non-existent bean property is silently ignored. * <br>Otherwise, a {@code RuntimeException} is thrown. @@ -1807,7 +1360,7 @@ public class BeanContext extends Context { /** * Ignore unknown properties with null values. * - * @see #BEAN_disableIgnoreUnknownNullBeanProperties + * @see BeanContextBuilder#disableIgnoreUnknownNullBeanProperties() * @return * <jk>true</jk> if trying to set a <jk>null</jk> value on a non-existent bean property should throw a {@link BeanRuntimeException}. */ @@ -1873,7 +1426,7 @@ public class BeanContext extends Context { /** * Sort bean properties. * - * @see #BEAN_sortProperties + * @see BeanContextBuilder#sortProperties() * @return * <jk>true</jk> if all bean properties will be serialized and access in alphabetical order. */ @@ -1884,7 +1437,7 @@ public class BeanContext extends Context { /** * Use enum names. * - * @see #BEAN_useEnumNames + * @see BeanContextBuilder#useEnumNames() * @return * <jk>true</jk> if enums are always serialized by name, not using {@link Object#toString()}. */ @@ -1895,7 +1448,7 @@ public class BeanContext extends Context { /** * Use interface proxies. * - * @see #BEAN_disableInterfaceProxies + * @see BeanContextBuilder#disableInterfaceProxies() * @return * <jk>true</jk> if interfaces will be instantiated as proxy classes through the use of an * {@link InvocationHandler} if there is no other way of instantiating them. @@ -1907,7 +1460,7 @@ public class BeanContext extends Context { /** * Use Java Introspector. * - * @see #BEAN_useJavaBeanIntrospector + * @see BeanContextBuilder#useJavaBeanIntrospector() * @return * <jk>true</jk> if the built-in Java bean introspector should be used for bean introspection. */ diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java index 3cb6a17..a673681 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextBuilder.java @@ -67,6 +67,10 @@ public class BeanContextBuilder extends ContextBuilder { Visibility beanClassVisibility, beanConstructorVisibility, beanMethodVisibility, beanFieldVisibility; List<Class<?>> beanDictionary; + boolean disableBeansRequireSomeProperties, beanMapPutReturnsOldValue, beansRequireDefaultConstructor, beansRequireSerializable, + beansRequireSettersForGetters, disableIgnoreTransientFields, disableIgnoreUnknownNullBeanProperties, disableIgnoreMissingSetters, + disableInterfaceProxies, findFluentSetters, ignoreInvocationExceptionsOnGetters, ignoreInvocationExceptionsOnSetters, + ignoreUnknownBeanProperties, sortProperties, useEnumNames, useJavaBeanIntrospector; /** * Constructor. @@ -75,11 +79,27 @@ public class BeanContextBuilder extends ContextBuilder { */ protected BeanContextBuilder() { super(); - beanClassVisibility = env("RestContext.beanClassVisibility", PUBLIC); - beanConstructorVisibility = env("RestContext.beanConstructorVisibility", PUBLIC); - beanMethodVisibility = env("RestContext.beanMethodVisibility", PUBLIC); - beanFieldVisibility = env("RestContext.beanFieldVisibility", PUBLIC); + beanClassVisibility = env("BeanContext.beanClassVisibility", PUBLIC); + beanConstructorVisibility = env("BeanContext.beanConstructorVisibility", PUBLIC); + beanMethodVisibility = env("BeanContext.beanMethodVisibility", PUBLIC); + beanFieldVisibility = env("BeanContext.beanFieldVisibility", PUBLIC); beanDictionary = null; + disableBeansRequireSomeProperties = env("BeanContext.disableBeansRequireSomeProperties", false); + beanMapPutReturnsOldValue = env("BeanContext.beanMapPutReturnsOldValue", false); + beansRequireDefaultConstructor = env("BeanContext.beansRequireDefaultConstructor", false); + beansRequireSerializable = env("BeanContext.beansRequireSerializable", false); + beansRequireSettersForGetters = env("BeanContext.beansRequireSettersForGetters", false); + disableIgnoreTransientFields = env("BeanContext.disableIgnoreTransientFields", false); + disableIgnoreUnknownNullBeanProperties = env("BeanContext.disableIgnoreUnknownNullBeanProperties", false); + disableIgnoreMissingSetters = env("BeanContext.disableIgnoreMissingSetters", false); + disableInterfaceProxies = env("BeanContext.disableInterfaceProxies", false); + findFluentSetters = env("BeanContext.findFluentSetters", false); + ignoreInvocationExceptionsOnGetters = env("BeanContext.ignoreInvocationExceptionsOnGetters", false); + ignoreInvocationExceptionsOnSetters = env("BeanContext.ignoreInvocationExceptionsOnSetters", false); + ignoreUnknownBeanProperties = env("BeanContext.ignoreUnknownBeanProperties", false); + sortProperties = env("BeanContext.sortProperties", false); + useEnumNames = env("BeanContext.useEnumNames", false); + useJavaBeanIntrospector = env("BeanContext.useJavaBeanIntrospector", false); } /** @@ -94,6 +114,22 @@ public class BeanContextBuilder extends ContextBuilder { beanMethodVisibility = copyFrom.beanMethodVisibility; beanFieldVisibility = copyFrom.beanFieldVisibility; beanDictionary = copyFrom.beanDictionary.isEmpty() ? null : new ArrayList<>(copyFrom.beanDictionary); + disableBeansRequireSomeProperties = ! copyFrom.beansRequireSomeProperties; + beanMapPutReturnsOldValue = copyFrom.beanMapPutReturnsOldValue; + beansRequireDefaultConstructor = copyFrom.beansRequireDefaultConstructor; + beansRequireSerializable = copyFrom.beansRequireSerializable; + beansRequireSettersForGetters = copyFrom.beansRequireSettersForGetters; + disableIgnoreTransientFields = ! copyFrom.ignoreTransientFields; + disableIgnoreUnknownNullBeanProperties = ! copyFrom.ignoreUnknownNullBeanProperties; + disableIgnoreMissingSetters = ! copyFrom.ignoreMissingSetters; + disableInterfaceProxies = ! copyFrom.useInterfaceProxies; + findFluentSetters = copyFrom.findFluentSetters; + ignoreInvocationExceptionsOnGetters = copyFrom.ignoreInvocationExceptionsOnGetters; + ignoreInvocationExceptionsOnSetters = copyFrom.ignoreInvocationExceptionsOnSetters; + ignoreUnknownBeanProperties = copyFrom.ignoreUnknownBeanProperties; + sortProperties = copyFrom.sortProperties; + useEnumNames = copyFrom.useEnumNames; + useJavaBeanIntrospector = copyFrom.useJavaBeanIntrospector; } /** @@ -108,6 +144,22 @@ public class BeanContextBuilder extends ContextBuilder { beanMethodVisibility = copyFrom.beanMethodVisibility; beanFieldVisibility = copyFrom.beanFieldVisibility; beanDictionary = copyFrom.beanDictionary == null ? null : new ArrayList<>(copyFrom.beanDictionary); + disableBeansRequireSomeProperties = copyFrom.disableBeansRequireSomeProperties; + beanMapPutReturnsOldValue = copyFrom.beanMapPutReturnsOldValue; + beansRequireDefaultConstructor = copyFrom.beansRequireDefaultConstructor; + beansRequireSerializable = copyFrom.beansRequireSerializable; + beansRequireSettersForGetters = copyFrom.beansRequireSettersForGetters; + disableIgnoreTransientFields = copyFrom.disableIgnoreTransientFields; + disableIgnoreUnknownNullBeanProperties = copyFrom.disableIgnoreUnknownNullBeanProperties; + disableIgnoreMissingSetters = copyFrom.disableIgnoreMissingSetters; + disableInterfaceProxies = copyFrom.disableInterfaceProxies; + findFluentSetters = copyFrom.findFluentSetters; + ignoreInvocationExceptionsOnGetters = copyFrom.ignoreInvocationExceptionsOnGetters; + ignoreInvocationExceptionsOnSetters = copyFrom.ignoreInvocationExceptionsOnSetters; + ignoreUnknownBeanProperties = copyFrom.ignoreUnknownBeanProperties; + sortProperties = copyFrom.sortProperties; + useEnumNames = copyFrom.useEnumNames; + useJavaBeanIntrospector = copyFrom.useJavaBeanIntrospector; } @Override /* ContextBuilder */ @@ -119,17 +171,32 @@ public class BeanContextBuilder extends ContextBuilder { public BeanContext build() { ContextProperties cp = getContextProperties(); cp = cp.subset(new String[]{"Context","BeanContext"}); - HashKey key = HashKey - .create() - .add( - cp, - beanClassVisibility, - beanConstructorVisibility, - beanMethodVisibility, - beanFieldVisibility, - beanDictionary + HashKey key = HashKey.of( + cp, + beanClassVisibility, + beanConstructorVisibility, + beanMethodVisibility, + beanFieldVisibility, + beanDictionary, + integer( + disableBeansRequireSomeProperties, + beanMapPutReturnsOldValue, + beansRequireDefaultConstructor, + beansRequireSerializable, + beansRequireSettersForGetters, + disableIgnoreTransientFields, + disableIgnoreUnknownNullBeanProperties, + disableIgnoreMissingSetters, + disableInterfaceProxies, + findFluentSetters, + ignoreInvocationExceptionsOnGetters, + ignoreInvocationExceptionsOnSetters, + ignoreUnknownBeanProperties, + sortProperties, + useEnumNames, + useJavaBeanIntrospector ) - .build(); + ); BeanContext bc = CACHE.get(key); if (bc == null) { bc = new BeanContext(this); @@ -138,6 +205,13 @@ public class BeanContextBuilder extends ContextBuilder { return bc; } + private int integer(boolean...values) { + int n = 0; + for (boolean b : values) + n = (n << 1) | (b ? 1 : 0); + return n; + } + //----------------------------------------------------------------------------------------------------------------- // Properties //----------------------------------------------------------------------------------------------------------------- @@ -375,14 +449,25 @@ public class BeanContextBuilder extends ContextBuilder { * * <ul class='seealso'> * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#beanMapPutReturnsOldValue()} - * <li class='jf'>{@link BeanContext#BEAN_beanMapPutReturnsOldValue} * </ul> * * @return This object (for method chaining). */ @FluentSetter public BeanContextBuilder beanMapPutReturnsOldValue() { - return set(BEAN_beanMapPutReturnsOldValue); + return beanMapPutReturnsOldValue(true); + } + + /** + * Same as {@link #beanMapPutReturnsOldValue()} but allows you to explicitly specify the value. + * + * @param value The value for this setting. + * @return This object. + */ + @FluentSetter + public BeanContextBuilder beanMapPutReturnsOldValue(boolean value) { + beanMapPutReturnsOldValue = value; + return this; } /** @@ -476,14 +561,25 @@ public class BeanContextBuilder extends ContextBuilder { * * <ul class='seealso'> * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#beansRequireDefaultConstructor()} - * <li class='jf'>{@link BeanContext#BEAN_beansRequireDefaultConstructor} * </ul> * * @return This object (for method chaining). */ @FluentSetter public BeanContextBuilder beansRequireDefaultConstructor() { - return set(BEAN_beansRequireDefaultConstructor); + return beansRequireDefaultConstructor(true); + } + + /** + * Same as {@link #beansRequireDefaultConstructor()} but allows you to explicitly specify the value. + * + * @param value The value for this setting. + * @return This object. + */ + @FluentSetter + public BeanContextBuilder beansRequireDefaultConstructor(boolean value) { + beansRequireDefaultConstructor = value; + return this; } /** @@ -524,14 +620,25 @@ public class BeanContextBuilder extends ContextBuilder { * * <ul class='seealso'> * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#beansRequireSerializable()} - * <li class='jf'>{@link BeanContext#BEAN_beansRequireSerializable} * </ul> * * @return This object (for method chaining). */ @FluentSetter public BeanContextBuilder beansRequireSerializable() { - return set(BEAN_beansRequireSerializable); + return beansRequireSerializable(true); + } + + /** + * Same as {@link #beansRequireSerializable()} but allows you to explicitly specify the value. + * + * @param value The value for this setting. + * @return This object. + */ + @FluentSetter + public BeanContextBuilder beansRequireSerializable(boolean value) { + beansRequireSerializable = value; + return this; } /** @@ -568,16 +675,23 @@ public class BeanContextBuilder extends ContextBuilder { * <li>The {@link BeanIgnore @BeanIgnore} annotation can also be used on getters to ignore them as bean properties. * </ul> * - * <ul class='seealso'> - * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#beansRequireSettersForGetters()} - * <li class='jf'>{@link BeanContext#BEAN_beansRequireSettersForGetters} - * </ul> - * * @return This object (for method chaining). */ @FluentSetter public BeanContextBuilder beansRequireSettersForGetters() { - return set(BEAN_beansRequireSettersForGetters); + return beansRequireSettersForGetters(true); + } + + /** + * Same as {@link #beansRequireSettersForGetters()} but allows you to explicitly specify the value. + * + * @param value The value for this setting. + * @return This object. + */ + @FluentSetter + public BeanContextBuilder beansRequireSettersForGetters(boolean value) { + beansRequireSettersForGetters = value; + return this; } /** @@ -613,14 +727,25 @@ public class BeanContextBuilder extends ContextBuilder { * * <ul class='seealso'> * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#disableBeansRequireSomeProperties()} - * <li class='jf'>{@link BeanContext#BEAN_disableBeansRequireSomeProperties} * </ul> * * @return This object (for method chaining). */ @FluentSetter public BeanContextBuilder disableBeansRequireSomeProperties() { - return set(BEAN_disableBeansRequireSomeProperties); + return disableBeansRequireSomeProperties(true); + } + + /** + * Same as {@link #disableBeansRequireSomeProperties()} but allows you to explicitly specify the value. + * + * @param value The value for this setting. + * @return This object. + */ + @FluentSetter + public BeanContextBuilder disableBeansRequireSomeProperties(boolean value) { + disableBeansRequireSomeProperties = value; + return this; } /** @@ -1614,14 +1739,25 @@ public class BeanContextBuilder extends ContextBuilder { * <ul class='seealso'> * <li class='ja'>{@link org.apache.juneau.annotation.Bean#findFluentSetters()} * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#findFluentSetters()} - * <li class='jf'>{@link BeanContext#BEAN_findFluentSetters} * </ul> * * @return This object (for method chaining). */ @FluentSetter public BeanContextBuilder findFluentSetters() { - return set(BEAN_findFluentSetters); + return findFluentSetters(true); + } + + /** + * Same as {@link #findFluentSetters()} but allows you to explicitly specify the value. + * + * @param value The value for this setting. + * @return This object. + */ + @FluentSetter + public BeanContextBuilder findFluentSetters(boolean value) { + findFluentSetters = value; + return this; } /** @@ -1653,7 +1789,7 @@ public class BeanContextBuilder extends ContextBuilder { * * <ul class='seealso'> * <li class='ja'>{@link Bean#findFluentSetters()} - * <li class='jf'>{@link BeanContext#BEAN_findFluentSetters} + * <li class='jm'>{@link #findFluentSetters()} * </ul> * * @param on The class that this applies to. @@ -1692,14 +1828,25 @@ public class BeanContextBuilder extends ContextBuilder { * * <ul class='seealso'> * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#ignoreInvocationExceptionsOnGetters()} - * <li class='jf'>{@link BeanContext#BEAN_ignoreInvocationExceptionsOnGetters} * </ul> * * @return This object (for method chaining). */ @FluentSetter public BeanContextBuilder ignoreInvocationExceptionsOnGetters() { - return set(BEAN_ignoreInvocationExceptionsOnGetters); + return ignoreInvocationExceptionsOnGetters(true); + } + + /** + * Same as {@link #ignoreInvocationExceptionsOnGetters()} but allows you to explicitly specify the value. + * + * @param value The value for this setting. + * @return This object. + */ + @FluentSetter + public BeanContextBuilder ignoreInvocationExceptionsOnGetters(boolean value) { + ignoreInvocationExceptionsOnGetters = value; + return this; } /** @@ -1730,14 +1877,25 @@ public class BeanContextBuilder extends ContextBuilder { * * <ul class='seealso'> * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#ignoreInvocationExceptionsOnSetters()} - * <li class='jf'>{@link BeanContext#BEAN_ignoreInvocationExceptionsOnSetters} * </ul> * * @return This object (for method chaining). */ @FluentSetter public BeanContextBuilder ignoreInvocationExceptionsOnSetters() { - return set(BEAN_ignoreInvocationExceptionsOnSetters); + return ignoreInvocationExceptionsOnSetters(true); + } + + /** + * Same as {@link #ignoreInvocationExceptionsOnSetters()} but allows you to explicitly specify the value. + * + * @param value The value for this setting. + * @return This object. + */ + @FluentSetter + public BeanContextBuilder ignoreInvocationExceptionsOnSetters(boolean value) { + ignoreInvocationExceptionsOnSetters = value; + return this; } /** @@ -1772,14 +1930,25 @@ public class BeanContextBuilder extends ContextBuilder { * * <ul class='seealso'> * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#disableIgnoreMissingSetters()} - * <li class='jf'>{@link BeanContext#BEAN_disableIgnoreMissingSetters} * </ul> * * @return This object (for method chaining). */ @FluentSetter public BeanContextBuilder disableIgnoreMissingSetters() { - return set(BEAN_disableIgnoreMissingSetters); + return disableIgnoreMissingSetters(true); + } + + /** + * Same as {@link #disableIgnoreMissingSetters()} but allows you to explicitly specify the value. + * + * @param value The value for this setting. + * @return This object. + */ + @FluentSetter + public BeanContextBuilder disableIgnoreMissingSetters(boolean value) { + disableIgnoreMissingSetters = value; + return this; } /** @@ -1811,14 +1980,25 @@ public class BeanContextBuilder extends ContextBuilder { * * <ul class='seealso'> * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#disableIgnoreTransientFields()} - * <li class='jf'>{@link BeanContext#BEAN_disableIgnoreTransientFields} * </ul> * * @return This object (for method chaining). */ @FluentSetter public BeanContextBuilder disableIgnoreTransientFields() { - return set(BEAN_disableIgnoreTransientFields); + return disableIgnoreTransientFields(true); + } + + /** + * Same as {@link #disableIgnoreTransientFields()} but allows you to explicitly specify the value. + * + * @param value The value for this setting. + * @return This object. + */ + @FluentSetter + public BeanContextBuilder disableIgnoreTransientFields(boolean value) { + disableIgnoreTransientFields = value; + return this; } /** @@ -1847,14 +2027,25 @@ public class BeanContextBuilder extends ContextBuilder { * * <ul class='seealso'> * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#ignoreUnknownBeanProperties()} - * <li class='jf'>{@link BeanContext#BEAN_ignoreUnknownBeanProperties} * </ul> * * @return This object (for method chaining). */ @FluentSetter public BeanContextBuilder ignoreUnknownBeanProperties() { - return set(BEAN_ignoreUnknownBeanProperties); + return ignoreUnknownBeanProperties(true); + } + + /** + * Same as {@link #ignoreUnknownBeanProperties()} but allows you to explicitly specify the value. + * + * @param value The value for this setting. + * @return This object. + */ + @FluentSetter + public BeanContextBuilder ignoreUnknownBeanProperties(boolean value) { + ignoreUnknownBeanProperties = value; + return this; } /** @@ -1883,14 +2074,25 @@ public class BeanContextBuilder extends ContextBuilder { * * <ul class='seealso'> * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#disableIgnoreUnknownNullBeanProperties()} - * <li class='jf'>{@link BeanContext#BEAN_disableIgnoreUnknownNullBeanProperties} * </ul> * * @return This object (for method chaining). */ @FluentSetter public BeanContextBuilder disableIgnoreUnknownNullBeanProperties() { - return set(BEAN_disableIgnoreUnknownNullBeanProperties); + return disableIgnoreUnknownNullBeanProperties(true); + } + + /** + * Same as {@link #disableIgnoreUnknownNullBeanProperties()} but allows you to explicitly specify the value. + * + * @param value The value for this setting. + * @return This object. + */ + @FluentSetter + public BeanContextBuilder disableIgnoreUnknownNullBeanProperties(boolean value) { + disableIgnoreUnknownNullBeanProperties = value; + return this; } /** @@ -2428,15 +2630,24 @@ public class BeanContextBuilder extends ContextBuilder { * <li>The {@link Bean#sort() @Bean.sort()} annotation can also be used to sort properties on just a single class. * </ul> * - * <ul class='seealso'> - * <li class='jf'>{@link BeanContext#BEAN_sortProperties} - * </ul> - * * @return This object (for method chaining). */ @FluentSetter public BeanContextBuilder sortProperties() { - return set(BEAN_sortProperties); + sortProperties = true; + return sortProperties(true); + } + + /** + * Same as {@link #sortProperties()} but allows you to explicitly specify the value. + * + * @param value The value for this setting. + * @return This object. + */ + @FluentSetter + public BeanContextBuilder sortProperties(boolean value) { + sortProperties = value; + return this; } /** @@ -2466,7 +2677,7 @@ public class BeanContextBuilder extends ContextBuilder { * * <ul class='seealso'> * <li class='ja'>{@link Bean#sort() Bean(sort)} - * <li class='jf'>{@link BeanContext#BEAN_sortProperties} + * <li class='jm'>{@link #sortProperties()} * </ul> * * @param on The bean classes to sort properties on. @@ -2847,15 +3058,23 @@ public class BeanContextBuilder extends ContextBuilder { * } * </p> * - * <ul class='seealso'> - * <li class='jf'>{@link BeanContext#BEAN_useEnumNames} - * </ul> - * * @return This object (for method chaining). */ @FluentSetter public BeanContextBuilder useEnumNames() { - return set(BEAN_useEnumNames); + return useEnumNames(true); + } + + /** + * Same as {@link #useEnumNames()} but allows you to explicitly specify the value. + * + * @param value The value for this setting. + * @return This object. + */ + @FluentSetter + public BeanContextBuilder useEnumNames(boolean value) { + useEnumNames = value; + return this; } /** @@ -2868,14 +3087,25 @@ public class BeanContextBuilder extends ContextBuilder { * * <ul class='seealso'> * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#disableInterfaceProxies()} - * <li class='jf'>{@link BeanContext#BEAN_disableInterfaceProxies} * </ul> * * @return This object (for method chaining). */ @FluentSetter public BeanContextBuilder disableInterfaceProxies() { - return set(BEAN_disableInterfaceProxies); + return disableInterfaceProxies(true); + } + + /** + * Same as {@link #disableInterfaceProxies()} but allows you to explicitly specify the value. + * + * @param value The value for this setting. + * @return This object. + */ + @FluentSetter + public BeanContextBuilder disableInterfaceProxies(boolean value) { + disableInterfaceProxies = value; + return this; } /** @@ -2894,15 +3124,23 @@ public class BeanContextBuilder extends ContextBuilder { * .build(); * </p> * - * <ul class='seealso'> - * <li class='jf'>{@link BeanContext#BEAN_useJavaBeanIntrospector} - * </ul> - * * @return This object (for method chaining). */ @FluentSetter public BeanContextBuilder useJavaBeanIntrospector() { - return set(BEAN_useJavaBeanIntrospector); + return useJavaBeanIntrospector(true); + } + + /** + * Same as {@link #useJavaBeanIntrospector()} but allows you to explicitly specify the value. + * + * @param value The value for this setting. + * @return This object. + */ + @FluentSetter + public BeanContextBuilder useJavaBeanIntrospector(boolean value) { + useJavaBeanIntrospector = value; + return this; } // <FluentSetters> diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextableBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextableBuilder.java index 154cf55..e6c2842 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextableBuilder.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContextableBuilder.java @@ -369,7 +369,7 @@ public abstract class BeanContextableBuilder extends ContextBuilder { * * <ul class='seealso'> * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#beanMapPutReturnsOldValue()} - * <li class='jf'>{@link BeanContext#BEAN_beanMapPutReturnsOldValue} + * <li class='jm'>{@link BeanContextBuilder#beanMapPutReturnsOldValue()} * </ul> * * @return This object (for method chaining). @@ -471,7 +471,7 @@ public abstract class BeanContextableBuilder extends ContextBuilder { * * <ul class='seealso'> * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#beansRequireDefaultConstructor()} - * <li class='jf'>{@link BeanContext#BEAN_beansRequireDefaultConstructor} + * <li class='jm'>{@link BeanContextBuilder#beansRequireDefaultConstructor()} * </ul> * * @return This object (for method chaining). @@ -520,7 +520,7 @@ public abstract class BeanContextableBuilder extends ContextBuilder { * * <ul class='seealso'> * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#beansRequireSerializable()} - * <li class='jf'>{@link BeanContext#BEAN_beansRequireSerializable} + * <li class='jm'>{@link BeanContextBuilder#beansRequireSerializable()} * </ul> * * @return This object (for method chaining). @@ -567,7 +567,7 @@ public abstract class BeanContextableBuilder extends ContextBuilder { * * <ul class='seealso'> * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#beansRequireSettersForGetters()} - * <li class='jf'>{@link BeanContext#BEAN_beansRequireSettersForGetters} + * <li class='jm'>{@link BeanContextBuilder#beansRequireSettersForGetters()} * </ul> * * @return This object (for method chaining). @@ -611,7 +611,7 @@ public abstract class BeanContextableBuilder extends ContextBuilder { * * <ul class='seealso'> * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#disableBeansRequireSomeProperties()} - * <li class='jf'>{@link BeanContext#BEAN_disableBeansRequireSomeProperties} + * <li class='jm'>{@link BeanContextBuilder#disableBeansRequireSomeProperties()} * </ul> * * @return This object (for method chaining). @@ -1597,7 +1597,7 @@ public abstract class BeanContextableBuilder extends ContextBuilder { * <ul class='seealso'> * <li class='ja'>{@link org.apache.juneau.annotation.Bean#findFluentSetters()} * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#findFluentSetters()} - * <li class='jf'>{@link BeanContext#BEAN_findFluentSetters} + * <li class='jm'>{@link BeanContextBuilder#findFluentSetters()} * </ul> * * @return This object (for method chaining). @@ -1637,7 +1637,7 @@ public abstract class BeanContextableBuilder extends ContextBuilder { * * <ul class='seealso'> * <li class='ja'>{@link Bean#findFluentSetters()} - * <li class='jf'>{@link BeanContext#BEAN_findFluentSetters} + * <li class='jm'>{@link BeanContextBuilder#findFluentSetters()} * </ul> * * @param on The class that this applies to. @@ -1677,7 +1677,7 @@ public abstract class BeanContextableBuilder extends ContextBuilder { * * <ul class='seealso'> * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#ignoreInvocationExceptionsOnGetters()} - * <li class='jf'>{@link BeanContext#BEAN_ignoreInvocationExceptionsOnGetters} + * <li class='jm'>{@link BeanContextBuilder#ignoreInvocationExceptionsOnGetters()} * </ul> * * @return This object (for method chaining). @@ -1716,7 +1716,7 @@ public abstract class BeanContextableBuilder extends ContextBuilder { * * <ul class='seealso'> * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#ignoreInvocationExceptionsOnSetters()} - * <li class='jf'>{@link BeanContext#BEAN_ignoreInvocationExceptionsOnSetters} + * <li class='jm'>{@link BeanContextBuilder#ignoreInvocationExceptionsOnSetters()} * </ul> * * @return This object (for method chaining). @@ -1759,7 +1759,7 @@ public abstract class BeanContextableBuilder extends ContextBuilder { * * <ul class='seealso'> * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#disableIgnoreMissingSetters()} - * <li class='jf'>{@link BeanContext#BEAN_disableIgnoreMissingSetters} + * <li class='jm'>{@link BeanContextBuilder#disableIgnoreMissingSetters()} * </ul> * * @return This object (for method chaining). @@ -1799,7 +1799,7 @@ public abstract class BeanContextableBuilder extends ContextBuilder { * * <ul class='seealso'> * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#disableIgnoreTransientFields()} - * <li class='jf'>{@link BeanContext#BEAN_disableIgnoreTransientFields} + * <li class='jm'>{@link BeanContextBuilder#disableIgnoreTransientFields()} * </ul> * * @return This object (for method chaining). @@ -1836,7 +1836,7 @@ public abstract class BeanContextableBuilder extends ContextBuilder { * * <ul class='seealso'> * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#ignoreUnknownBeanProperties()} - * <li class='jf'>{@link BeanContext#BEAN_ignoreUnknownBeanProperties} + * <li class='jm'>{@link BeanContextBuilder#ignoreUnknownBeanProperties()} * </ul> * * @return This object (for method chaining). @@ -1873,7 +1873,7 @@ public abstract class BeanContextableBuilder extends ContextBuilder { * * <ul class='seealso'> * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#disableIgnoreUnknownNullBeanProperties()} - * <li class='jf'>{@link BeanContext#BEAN_disableIgnoreUnknownNullBeanProperties} + * <li class='jm'>{@link BeanContextBuilder#disableIgnoreUnknownNullBeanProperties()} * </ul> * * @return This object (for method chaining). @@ -2414,7 +2414,7 @@ public abstract class BeanContextableBuilder extends ContextBuilder { * </ul> * * <ul class='seealso'> - * <li class='jf'>{@link BeanContext#BEAN_sortProperties} + * <li class='jm'>{@link BeanContextBuilder#sortProperties()} * </ul> * * @return This object (for method chaining). @@ -2452,7 +2452,7 @@ public abstract class BeanContextableBuilder extends ContextBuilder { * * <ul class='seealso'> * <li class='ja'>{@link Bean#sort() Bean(sort)} - * <li class='jf'>{@link BeanContext#BEAN_sortProperties} + * <li class='jm'>{@link BeanContextBuilder#sortProperties()} * </ul> * * @param on The bean classes to sort properties on. @@ -2839,7 +2839,7 @@ public abstract class BeanContextableBuilder extends ContextBuilder { * </p> * * <ul class='seealso'> - * <li class='jf'>{@link BeanContext#BEAN_useEnumNames} + * <li class='jm'>{@link BeanContextBuilder#useEnumNames()} * </ul> * * @return This object (for method chaining). @@ -2860,7 +2860,7 @@ public abstract class BeanContextableBuilder extends ContextBuilder { * * <ul class='seealso'> * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#disableInterfaceProxies()} - * <li class='jf'>{@link BeanContext#BEAN_disableInterfaceProxies} + * <li class='jm'>{@link BeanContextBuilder#disableInterfaceProxies()} * </ul> * * @return This object (for method chaining). @@ -2888,7 +2888,7 @@ public abstract class BeanContextableBuilder extends ContextBuilder { * </p> * * <ul class='seealso'> - * <li class='jf'>{@link BeanContext#BEAN_useJavaBeanIntrospector} + * <li class='jmf'>{@link BeanContextBuilder#useJavaBeanIntrospector()} * </ul> * * @return This object (for method chaining). diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanFilterBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanFilterBuilder.java index 36e5e6f..ff9c198 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanFilterBuilder.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanFilterBuilder.java @@ -294,7 +294,7 @@ public class BeanFilterBuilder { * * <ul class='seealso'> * <li class='ja'>{@link Bean#sort()} - * <li class='jf'>{@link BeanContext#BEAN_sortProperties} + * <li class='jf'>{@link BeanContextBuilder#sortProperties()} * </ul> * * @param value @@ -315,7 +315,7 @@ public class BeanFilterBuilder { * * <ul class='seealso'> * <li class='ja'>{@link Bean#sort()} - * <li class='jf'>{@link BeanContext#BEAN_sortProperties} + * <li class='jf'>{@link BeanContextBuilder#sortProperties()} * </ul> * * @return This object (for method chaining). @@ -352,7 +352,7 @@ public class BeanFilterBuilder { * * <ul class='seealso'> * <li class='ja'>{@link Bean#findFluentSetters()} - * <li class='jf'>{@link BeanContext#BEAN_findFluentSetters} + * <li class='jm'>{@link BeanContextBuilder#findFluentSetters()} * </ul> * * @return This object (for method chaining). diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java index e29386f..a25f948 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanSession.java @@ -1294,7 +1294,7 @@ public class BeanSession extends Session { /** * Configuration property: BeanMap.put() returns old property value. * - * @see BeanContext#BEAN_beanMapPutReturnsOldValue + * @see BeanContextBuilder#beanMapPutReturnsOldValue() * @return * <jk>true</jk> if the {@link BeanMap#put(String,Object) BeanMap.put()} method will return old property values. * <br>Otherwise, it returns <jk>null</jk>. @@ -1317,7 +1317,7 @@ public class BeanSession extends Session { /** * Configuration property: Beans require no-arg constructors. * - * @see BeanContext#BEAN_beansRequireDefaultConstructor + * @see BeanContextBuilder#beansRequireDefaultConstructor() * @return * <jk>true</jk> if a Java class must implement a default no-arg constructor to be considered a bean. * <br>Otherwise, the bean will be serialized as a string using the {@link Object#toString()} method. @@ -1329,7 +1329,7 @@ public class BeanSession extends Session { /** * Configuration property: Beans require Serializable interface. * - * @see BeanContext#BEAN_beansRequireSerializable + * @see BeanContextBuilder#beansRequireSerializable() * @return * <jk>true</jk> if a Java class must implement the {@link Serializable} interface to be considered a bean. * <br>Otherwise, the bean will be serialized as a string using the {@link Object#toString()} method. @@ -1341,7 +1341,7 @@ public class BeanSession extends Session { /** * Configuration property: Beans require setters for getters. * - * @see BeanContext#BEAN_beansRequireSettersForGetters + * @see BeanContextBuilder#beansRequireSettersForGetters() * @return * <jk>true</jk> if only getters that have equivalent setters will be considered as properties on a bean. * <br>Otherwise, they are ignored. @@ -1353,7 +1353,7 @@ public class BeanSession extends Session { /** * Configuration property: Beans require at least one property. * - * @see BeanContext#BEAN_disableBeansRequireSomeProperties + * @see BeanContextBuilder#disableBeansRequireSomeProperties() * @return * <jk>true</jk> if a Java class doesn't need to contain at least 1 property to be considered a bean. * <br>Otherwise, the bean is serialized as a string using the {@link Object#toString()} method. @@ -1379,7 +1379,7 @@ public class BeanSession extends Session { * <h5 class='section'>Description:</h5> * <p> * - * @see BeanContext#BEAN_findFluentSetters + * @see BeanContextBuilder#findFluentSetters() * @return * <jk>true</jk> if fluent setters are detected on beans. */ @@ -1390,7 +1390,7 @@ public class BeanSession extends Session { /** * Configuration property: Ignore invocation errors on getters. * - * @see BeanContext#BEAN_ignoreInvocationExceptionsOnGetters + * @see BeanContextBuilder#ignoreInvocationExceptionsOnGetters() * @return * <jk>true</jk> if errors thrown when calling bean getter methods are silently ignored. */ @@ -1401,7 +1401,7 @@ public class BeanSession extends Session { /** * Configuration property: Ignore invocation errors on setters. * - * @see BeanContext#BEAN_ignoreInvocationExceptionsOnSetters + * @see BeanContextBuilder#ignoreInvocationExceptionsOnSetters() * @return * <jk>true</jk> if errors thrown when calling bean setter methods are silently ignored. */ @@ -1412,7 +1412,7 @@ public class BeanSession extends Session { /** * Configuration property: Silently ignore missing setters. * - * @see BeanContext#BEAN_disableIgnoreMissingSetters + * @see BeanContextBuilder#disableIgnoreMissingSetters() * @return * <jk>true</jk> if trying to set a value on a bean property without a setter should throw a {@link BeanRuntimeException}. */ @@ -1423,7 +1423,7 @@ public class BeanSession extends Session { /** * Configuration property: Ignore unknown properties. * - * @see BeanContext#BEAN_ignoreUnknownBeanProperties + * @see BeanContextBuilder#ignoreUnknownBeanProperties() * @return * <jk>true</jk> if trying to set a value on a non-existent bean property is silently ignored. * <br>Otherwise, a {@code RuntimeException} is thrown. @@ -1435,7 +1435,7 @@ public class BeanSession extends Session { /** * Configuration property: Ignore unknown properties with null values. * - * @see BeanContext#BEAN_disableIgnoreUnknownNullBeanProperties + * @see BeanContextBuilder#disableIgnoreUnknownNullBeanProperties() * @return * <jk>true</jk> if trying to set a <jk>null</jk> value on a non-existent bean property should not throw a {@link BeanRuntimeException}. */ @@ -1490,7 +1490,7 @@ public class BeanSession extends Session { /** * Configuration property: Sort bean properties. * - * @see BeanContext#BEAN_sortProperties + * @see BeanContextBuilder#sortProperties() * @return * <jk>true</jk> if all bean properties will be serialized and access in alphabetical order. */ @@ -1548,7 +1548,7 @@ public class BeanSession extends Session { /** * Configuration property: Use enum names. * - * @see BeanContext#BEAN_useEnumNames + * @see BeanContextBuilder#useEnumNames() * @return * <jk>true</jk> if enums are always serialized by name, not using {@link Object#toString()}. */ @@ -1559,7 +1559,7 @@ public class BeanSession extends Session { /** * Configuration property: Use interface proxies. * - * @see BeanContext#BEAN_disableInterfaceProxies + * @see BeanContextBuilder#disableInterfaceProxies() * @return * <jk>true</jk> if interfaces will be instantiated as proxy classes through the use of an * {@link InvocationHandler} if there is no other way of instantiating them. @@ -1571,7 +1571,7 @@ public class BeanSession extends Session { /** * Configuration property: Use Java Introspector. * - * @see BeanContext#BEAN_useJavaBeanIntrospector + * @see BeanContextBuilder#useJavaBeanIntrospector() * @return * <jk>true</jk> if the built-in Java bean introspector should be used for bean introspection. */ diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Bean.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Bean.java index 1241cbf..7a0309a 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Bean.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Bean.java @@ -52,10 +52,10 @@ public @interface Bean { * The list of classes that make up the bean dictionary for all properties in this class and all subclasses. * * <ul class='seealso'> - * <li class='ja'>{@link org.apache.juneau.annotation.Beanp#dictionary()} - * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#dictionary()} - * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#dictionary_replace()} - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beanDictionary(Class...)} + * <li class='ja'>{@link Beanp#dictionary()} + * <li class='ja'>{@link BeanConfig#dictionary()} + * <li class='ja'>{@link BeanConfig#dictionary_replace()} + * <li class='jm'>{@link BeanContextBuilder#beanDictionary(Class...)} * </ul> */ Class<?>[] dictionary() default {}; @@ -149,9 +149,8 @@ public @interface Bean { * </ul> * * <ul class='seealso'> - * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#findFluentSetters()} - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#findFluentSetters()} - * <li class='jf'>{@link BeanContext#BEAN_findFluentSetters} + * <li class='ja'>{@link BeanConfig#findFluentSetters()} + * <li class='jm'>{@link BeanContextBuilder#findFluentSetters()} * </ul> */ boolean findFluentSetters() default false; @@ -373,7 +372,7 @@ public @interface Bean { * </p> * * <ul class='seealso'> - * <li class='jf'>{@link BeanContext#BEAN_sortProperties} + * <li class='jm'>{@link BeanContextBuilder#sortProperties()} * </ul> */ boolean sort() default false; @@ -446,9 +445,8 @@ public @interface Bean { * </p> * * <ul class='seealso'> - * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#typePropertyName()} - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#typePropertyName(String)} - * <li class='jf'>{@link BeanContext#BEAN_typePropertyName} + * <li class='ja'>{@link BeanConfig#typePropertyName()} + * <li class='jm'>{@link BeanContextBuilder#typePropertyName(String)} * </ul> */ String typePropertyName() default ""; diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfig.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfig.java index 841b0e8..914589f 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfig.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfig.java @@ -76,7 +76,7 @@ public @interface BeanConfig { * </ul> * * <ul class='seealso'> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beanClassVisibility(Visibility)} + * <li class='jm'>{@link BeanContextBuilder#beanClassVisibility(Visibility)} * </ul> */ String beanClassVisibility() default ""; @@ -106,7 +106,7 @@ public @interface BeanConfig { * </ul> * * <ul class='seealso'> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beanConstructorVisibility(Visibility)} + * <li class='jm'>{@link BeanContextBuilder#beanConstructorVisibility(Visibility)} * </ul> */ String beanConstructorVisibility() default ""; @@ -136,7 +136,7 @@ public @interface BeanConfig { * </ul> * * <ul class='seealso'> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beanFieldVisibility(Visibility)} + * <li class='jm'>{@link BeanContextBuilder#beanFieldVisibility(Visibility)} * </ul> */ String beanFieldVisibility() default ""; @@ -161,8 +161,7 @@ public @interface BeanConfig { * </ul> * * <ul class='seealso'> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beanMapPutReturnsOldValue()} - * <li class='jf'>{@link BeanContext#BEAN_beanMapPutReturnsOldValue} + * <li class='jm'>{@link BeanContextBuilder#beanMapPutReturnsOldValue()} * </ul> */ String beanMapPutReturnsOldValue() default ""; @@ -192,7 +191,7 @@ public @interface BeanConfig { * </ul> * * <ul class='seealso'> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beanMethodVisibility(Visibility)} + * <li class='jm'>{@link BeanContextBuilder#beanMethodVisibility(Visibility)} * </ul> */ String beanMethodVisibility() default ""; @@ -218,8 +217,7 @@ public @interface BeanConfig { * </ul> * * <ul class='seealso'> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beansRequireDefaultConstructor()} - * <li class='jf'>{@link BeanContext#BEAN_beansRequireDefaultConstructor} + * <li class='jm'>{@link BeanContextBuilder#beansRequireDefaultConstructor()} * </ul> */ String beansRequireDefaultConstructor() default ""; @@ -245,8 +243,7 @@ public @interface BeanConfig { * </ul> * * <ul class='seealso'> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beansRequireSerializable()} - * <li class='jf'>{@link BeanContext#BEAN_beansRequireSerializable} + * <li class='jm'>{@link BeanContextBuilder#beansRequireSerializable()} * </ul> */ String beansRequireSerializable() default ""; @@ -270,8 +267,7 @@ public @interface BeanConfig { * </ul> * * <ul class='seealso'> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beansRequireSettersForGetters()} - * <li class='jf'>{@link BeanContext#BEAN_beansRequireSettersForGetters} + * <li class='jm'>{@link BeanContextBuilder#beansRequireSettersForGetters()} * </ul> */ String beansRequireSettersForGetters() default ""; @@ -295,8 +291,7 @@ public @interface BeanConfig { * </ul> * * <ul class='seealso'> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#disableBeansRequireSomeProperties()} - * <li class='jf'>{@link BeanContext#BEAN_disableBeansRequireSomeProperties} + * <li class='jm'>{@link BeanContextBuilder#disableBeansRequireSomeProperties()} * </ul> */ String disableBeansRequireSomeProperties() default ""; @@ -316,9 +311,8 @@ public @interface BeanConfig { * </ul> * <ul class='seealso'> - * <li class='ja'>{@link org.apache.juneau.annotation.Bean#typePropertyName()} - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#typePropertyName(String)} - * <li class='jf'>{@link BeanContext#BEAN_typePropertyName} + * <li class='ja'>{@link Bean#typePropertyName()} + * <li class='jm'>{@link BeanContextBuilder#typePropertyName(String)} * </ul> */ String typePropertyName() default ""; @@ -356,8 +350,8 @@ public @interface BeanConfig { * </ul> * * <ul class='seealso'> - * <li class='jm'>{@link org.apache.juneau.ContextBuilder#debug()} - * <li class='jm'>{@link org.apache.juneau.SessionArgs#debug(Boolean)} + * <li class='jm'>{@link ContextBuilder#debug()} + * <li class='jm'>{@link SessionArgs#debug(Boolean)} * <li class='jf'>{@link Context#CONTEXT_debug} * </ul> */ @@ -380,10 +374,10 @@ public @interface BeanConfig { * This setting tells the parsers which classes to look for when resolving <js>"_type"</js> attributes. * * <ul class='seealso'> - * <li class='ja'>{@link org.apache.juneau.annotation.Bean#dictionary()} - * <li class='ja'>{@link org.apache.juneau.annotation.Beanp#dictionary()} - * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#dictionary_replace()} - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beanDictionary(Class...)} + * <li class='ja'>{@link Bean#dictionary()} + * <li class='ja'>{@link Beanp#dictionary()} + * <li class='ja'>{@link BeanConfig#dictionary_replace()} + * <li class='jm'>{@link BeanContextBuilder#beanDictionary(Class...)} * <li class='link'>{@doc BeanDictionaries} * </ul> */ @@ -396,10 +390,10 @@ public @interface BeanConfig { * Same as {@link #dictionary()} but replaces any existing value. * * <ul class='seealso'> - * <li class='ja'>{@link org.apache.juneau.annotation.Bean#dictionary()} - * <li class='ja'>{@link org.apache.juneau.annotation.Beanp#dictionary()} - * <li class='ja'>{@link org.apache.juneau.annotation.BeanConfig#dictionary()} - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#beanDictionary(Class...)} + * <li class='ja'>{@link Bean#dictionary()} + * <li class='ja'>{@link Beanp#dictionary()} + * <li class='ja'>{@link BeanConfig#dictionary()} + * <li class='jm'>{@link BeanContextBuilder#beanDictionary(Class...)} * </ul> */ Class<?>[] dictionary_replace() default {}; @@ -431,9 +425,8 @@ public @interface BeanConfig { * </ul> * * <ul class='seealso'> - * <li class='ja'>{@link org.apache.juneau.annotation.Bean#findFluentSetters()} - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#findFluentSetters()} - * <li class='jf'>{@link BeanContext#BEAN_findFluentSetters} + * <li class='ja'>{@link Bean#findFluentSetters()} + * <li class='jm'>{@link BeanContextBuilder#findFluentSetters()} * </ul> */ String findFluentSetters() default ""; @@ -457,8 +450,7 @@ public @interface BeanConfig { * </ul> * * <ul class='seealso'> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#ignoreInvocationExceptionsOnGetters()} - * <li class='jf'>{@link BeanContext#BEAN_ignoreInvocationExceptionsOnGetters} + * <li class='jm'>{@link BeanContextBuilder#ignoreInvocationExceptionsOnGetters()} * </ul> */ String ignoreInvocationExceptionsOnGetters() default ""; @@ -482,8 +474,7 @@ public @interface BeanConfig { * </ul> * * <ul class='seealso'> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#ignoreInvocationExceptionsOnSetters()} - * <li class='jf'>{@link BeanContext#BEAN_ignoreInvocationExceptionsOnSetters} + * <li class='jm'>{@link BeanContextBuilder#ignoreInvocationExceptionsOnSetters()} * </ul> */ String ignoreInvocationExceptionsOnSetters() default ""; @@ -507,8 +498,7 @@ public @interface BeanConfig { * </ul> * * <ul class='seealso'> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#disableIgnoreMissingSetters()} - * <li class='jf'>{@link BeanContext#BEAN_disableIgnoreMissingSetters} + * <li class='jm'>{@link BeanContextBuilder#disableIgnoreMissingSetters()} * </ul> */ String disableIgnoreMissingSetters() default ""; @@ -531,8 +521,7 @@ public @interface BeanConfig { * </ul> * * <ul class='seealso'> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#disableIgnoreTransientFields()} - * <li class='jf'>{@link BeanContext#BEAN_disableIgnoreTransientFields} + * <li class='jm'>{@link BeanContextBuilder#disableIgnoreTransientFields()} * </ul> */ String disableIgnoreTransientFields() default ""; @@ -556,8 +545,7 @@ public @interface BeanConfig { * </ul> * * <ul class='seealso'> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#ignoreUnknownBeanProperties()} - * <li class='jf'>{@link BeanContext#BEAN_ignoreUnknownBeanProperties} + * <li class='jm'>{@link BeanContextBuilder#ignoreUnknownBeanProperties()} * </ul> */ String ignoreUnknownBeanProperties() default ""; @@ -581,8 +569,7 @@ public @interface BeanConfig { * </ul> * * <ul class='seealso'> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#disableIgnoreUnknownNullBeanProperties()} - * <li class='jf'>{@link BeanContext#BEAN_disableIgnoreUnknownNullBeanProperties} + * <li class='jm'>{@link BeanContextBuilder#disableIgnoreUnknownNullBeanProperties()} * </ul> */ String disableIgnoreUnknownNullBeanProperties() default ""; @@ -635,9 +622,8 @@ public @interface BeanConfig { * </ul> * * <ul class='seealso'> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#locale(Locale)} - * <li class='jm'>{@link org.apache.juneau.BeanSessionArgs#locale(Locale)} - * <li class='jf'>{@link BeanContext#BEAN_locale} + * <li class='jm'>{@link BeanSessionArgs#locale(Locale)} + * <li class='jm'>{@link BeanContextBuilder#locale(Locale)} * </ul> */ String locale() default ""; @@ -654,9 +640,8 @@ public @interface BeanConfig { * </ul> * * <ul class='seealso'> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#mediaType(MediaType)} - * <li class='jm'>{@link org.apache.juneau.BeanSessionArgs#mediaType(MediaType)} - * <li class='jf'>{@link BeanContext#BEAN_mediaType} + * <li class='jm'>{@link BeanSessionArgs#mediaType(MediaType)} + * <li class='jm'>{@link BeanContextBuilder#mediaType(MediaType)} * </ul> */ String mediaType() default ""; @@ -674,10 +659,9 @@ public @interface BeanConfig { * </ul> * * <ul class='seealso'> - * <li class='ja'>{@link org.apache.juneau.annotation.BeanIgnore} - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#notBeanClasses(Object...)} - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#notBeanClasses_replace(Object...)} - * <li class='jf'>{@link BeanContext#BEAN_notBeanClasses} + * <li class='ja'>{@link BeanIgnore} + * <li class='jm'>{@link BeanContextBuilder#notBeanClasses(Object...)} + * <li class='jm'>{@link BeanContextBuilder#notBeanClasses_replace(Object...)} * </ul> */ Class<?>[] notBeanClasses() default {}; @@ -689,7 +673,7 @@ public @interface BeanConfig { * Same as {@link #notBeanClasses()} but replaces any existing value. * * <ul class='seealso'> - * <li class='jf'>{@link BeanContext#BEAN_notBeanClasses} + * <li class='jm'>{@link BeanContextBuilder#notBeanClasses(Object...)} * </ul> */ Class<?>[] notBeanClasses_replace() default {}; @@ -724,7 +708,7 @@ public @interface BeanConfig { * </ul> * * <ul class='seealso'> - * <li class='jf'>{@link BeanContext#BEAN_notBeanPackages} + * <li class='jm'>{@link BeanContextBuilder#notBeanPackages(Object...)} * </ul> */ String[] notBeanPackages() default {}; @@ -736,7 +720,7 @@ public @interface BeanConfig { * Same as {@link #notBeanPackages()} but replaces any existing value. * * <ul class='seealso'> - * <li class='jf'>{@link BeanContext#BEAN_notBeanPackages} + * <li class='jm'>{@link BeanContextBuilder#notBeanPackages(Object...)} * </ul> */ String[] notBeanPackages_replace() default {}; @@ -756,7 +740,7 @@ public @interface BeanConfig { * </ul> * * <ul class='seealso'> - * <li class='jf'>{@link BeanContext#BEAN_propertyNamer} + * <li class='jm'>{@link BeanContextBuilder#propertyNamer(Class)} * </ul> */ Class<? extends PropertyNamer> propertyNamer() default PropertyNamer.Null.class; @@ -787,7 +771,7 @@ public @interface BeanConfig { * </ul> * * <ul class='seealso'> - * <li class='jf'>{@link BeanContext#BEAN_sortProperties} + * <li class='jm'>{@link BeanContextBuilder#sortProperties()} * </ul> */ String sortProperties() default ""; @@ -808,7 +792,7 @@ public @interface BeanConfig { * {@link PojoSwap#forMediaTypes()} or {@link Swap#mediaTypes() @Swap(mediaTypes)} are used to come up with the best match. * * <ul class='seealso'> - * <li class='jf'>{@link BeanContext#BEAN_swaps} + * <li class='jm'>{@link BeanContextBuilder#swaps} * <li class='link'>{@doc PojoSwaps} * <li class='link'>{@doc PerMediaTypePojoSwaps} * <li class='link'>{@doc OneWayPojoSwaps} @@ -826,7 +810,7 @@ public @interface BeanConfig { * Same as {@link #swaps()} but replaces any existing value. * * <ul class='seealso'> - * <li class='jf'>{@link BeanContext#BEAN_swaps} + * <li class='jm'>{@link BeanContextBuilder#swaps(Object...)} * </ul> */ Class<?>[] swaps_replace() default {}; @@ -843,9 +827,8 @@ public @interface BeanConfig { * </ul> * * <ul class='seealso'> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#timeZone(TimeZone)} - * <li class='jm'>{@link org.apache.juneau.BeanSessionArgs#timeZone(TimeZone)} - * <li class='jf'>{@link BeanContext#BEAN_timeZone} + * <li class='jm'>{@link BeanSessionArgs#timeZone(TimeZone)} + * <li class='jm'>{@link BeanContextBuilder#timeZone(TimeZone)} * </ul> */ String timeZone() default ""; @@ -868,7 +851,7 @@ public @interface BeanConfig { * </ul> * * <ul class='seealso'> - * <li class='jf'>{@link BeanContext#BEAN_useEnumNames} + * <li class='jm'>{@link BeanContextBuilder#useEnumNames()} * </ul> */ String useEnumNames() default ""; @@ -893,8 +876,7 @@ public @interface BeanConfig { * </ul> * * <ul class='seealso'> - * <li class='jm'>{@link org.apache.juneau.BeanContextBuilder#disableInterfaceProxies()} - * <li class='jf'>{@link BeanContext#BEAN_disableInterfaceProxies} + * <li class='jm'>{@link BeanContextBuilder#disableInterfaceProxies()} * </ul> */ String disableInterfaceProxies() default ""; @@ -918,7 +900,7 @@ public @interface BeanConfig { * </ul> * * <ul class='seealso'> - * <li class='jf'>{@link BeanContext#BEAN_useJavaBeanIntrospector} + * <li class='jm'>{@link BeanContextBuilder#useJavaBeanIntrospector()} * </ul> */ String useJavaBeanIntrospector() default ""; diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfigAnnotation.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfigAnnotation.java index 80ba3db..b88c358 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfigAnnotation.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/BeanConfigAnnotation.java @@ -51,20 +51,20 @@ public class BeanConfigAnnotation { visibility(a.beanMethodVisibility(), "beanMethodVisibility").ifPresent(x -> b.beanMethodVisibility(x)); classes(a.dictionary()).ifPresent(x -> b.beanDictionary(x)); classes(a.dictionary_replace()).ifPresent(x -> { b.beanDictionary().clear(); b.beanDictionary(x);}); - bool(a.beanMapPutReturnsOldValue()).ifPresent(x -> b.set(BEAN_beanMapPutReturnsOldValue, x)); - bool(a.beansRequireDefaultConstructor()).ifPresent(x -> b.set(BEAN_beansRequireDefaultConstructor, x)); - bool(a.beansRequireSerializable()).ifPresent(x -> b.set(BEAN_beansRequireSerializable, x)); - bool(a.beansRequireSettersForGetters()).ifPresent(x -> b.set(BEAN_beansRequireSettersForGetters, x)); - bool(a.disableBeansRequireSomeProperties()).ifPresent(x -> b.set(BEAN_disableBeansRequireSomeProperties, x)); + bool(a.beanMapPutReturnsOldValue()).ifPresent(x -> b.beanMapPutReturnsOldValue(x)); + bool(a.beansRequireDefaultConstructor()).ifPresent(x -> b.beansRequireDefaultConstructor(x)); + bool(a.beansRequireSerializable()).ifPresent(x -> b.beansRequireSerializable(x)); + bool(a.beansRequireSettersForGetters()).ifPresent(x -> b.beansRequireSettersForGetters(x)); + bool(a.disableBeansRequireSomeProperties()).ifPresent(x -> b.disableBeansRequireSomeProperties(x)); string(a.typePropertyName()).ifPresent(x -> b.set(BEAN_typePropertyName, x)); bool(a.debug()).ifPresent(x -> b.set(CONTEXT_debug, x)); - bool(a.findFluentSetters()).ifPresent(x -> b.set(BEAN_findFluentSetters, x)); - bool(a.ignoreInvocationExceptionsOnGetters()).ifPresent(x -> b.set(BEAN_ignoreInvocationExceptionsOnGetters, x)); - bool(a.ignoreInvocationExceptionsOnSetters()).ifPresent(x -> b.set(BEAN_ignoreInvocationExceptionsOnSetters, x)); - bool(a.disableIgnoreMissingSetters()).ifPresent(x -> b.set(BEAN_disableIgnoreMissingSetters, x)); - bool(a.disableIgnoreTransientFields()).ifPresent(x -> b.set(BEAN_disableIgnoreTransientFields, x)); - bool(a.ignoreUnknownBeanProperties()).ifPresent(x -> b.set(BEAN_ignoreUnknownBeanProperties, x)); - bool(a.disableIgnoreUnknownNullBeanProperties()).ifPresent(x -> b.set(BEAN_disableIgnoreUnknownNullBeanProperties, x)); + bool(a.findFluentSetters()).ifPresent(x -> b.findFluentSetters(x)); + bool(a.ignoreInvocationExceptionsOnGetters()).ifPresent(x -> b.ignoreInvocationExceptionsOnGetters(x)); + bool(a.ignoreInvocationExceptionsOnSetters()).ifPresent(x -> b.ignoreInvocationExceptionsOnSetters(x)); + bool(a.disableIgnoreMissingSetters()).ifPresent(x -> b.disableIgnoreMissingSetters(x)); + bool(a.disableIgnoreTransientFields()).ifPresent(x -> b.disableIgnoreTransientFields(x)); + bool(a.ignoreUnknownBeanProperties()).ifPresent(x -> b.ignoreUnknownBeanProperties(x)); + bool(a.disableIgnoreUnknownNullBeanProperties()).ifPresent(x -> b.disableIgnoreUnknownNullBeanProperties(x)); asList(a.interfaces()).stream().map(x -> BeanAnnotation.create(x).interfaceClass(x).build()).forEach(x -> b.annotations(x)); string(a.locale()).map(Locale::forLanguageTag).ifPresent(x -> b.set(BEAN_locale, x)); string(a.mediaType()).map(MediaType::of).ifPresent(x -> b.set(BEAN_mediaType, x)); @@ -73,13 +73,13 @@ public class BeanConfigAnnotation { b.addTo(BEAN_notBeanPackages, stringList(a.notBeanPackages())); b.setIfNotEmpty(BEAN_notBeanPackages, stringList(a.notBeanPackages_replace())); type(a.propertyNamer()).ifPresent(x -> b.set(BEAN_propertyNamer, x)); - bool(a.sortProperties()).ifPresent(x -> b.set(BEAN_sortProperties, x)); + bool(a.sortProperties()).ifPresent(x -> b.sortProperties(x)); b.prependTo(BEAN_swaps, a.swaps()); b.setIfNotEmpty(BEAN_swaps, a.swaps_replace()); string(a.timeZone()).map(TimeZone::getTimeZone).ifPresent(x -> b.set(BEAN_timeZone, x)); - bool(a.useEnumNames()).ifPresent(x -> b.set(BEAN_useEnumNames, x)); - bool(a.disableInterfaceProxies()).ifPresent(x -> b.set(BEAN_disableInterfaceProxies, x)); - bool(a.useJavaBeanIntrospector()).ifPresent(x -> b.set(BEAN_useJavaBeanIntrospector, x)); + bool(a.useEnumNames()).ifPresent(x -> b.useEnumNames(x)); + bool(a.disableInterfaceProxies()).ifPresent(x -> b.disableInterfaceProxies(x)); + bool(a.useJavaBeanIntrospector()).ifPresent(x -> b.useJavaBeanIntrospector(x)); } } } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Beanp.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Beanp.java index 9ccd524..e871e51 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Beanp.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/annotation/Beanp.java @@ -201,7 +201,7 @@ public @interface Beanp { * * <div class='info'> * Note that if you're not interested in these additional properties, you can also use the - * {@link BeanContext#BEAN_ignoreUnknownBeanProperties} setting to ignore values that don't fit into existing + * {@link BeanContextBuilder#ignoreUnknownBeanProperties()} setting to ignore values that don't fit into existing * properties. * </div> * <div class='info'> diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserListener.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserListener.java index a04f1d2..becc0db 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserListener.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserListener.java @@ -30,7 +30,7 @@ public class ParserListener { * Gets called when an unknown bean property is detected in a document. * * <p> - * This method only gets called if {@link BeanContext#BEAN_ignoreUnknownBeanProperties} setting is <jk>true</jk>. + * This method only gets called if {@link BeanContextBuilder#ignoreUnknownBeanProperties()} setting is <jk>true</jk>. * Otherwise, the parser will throw a {@link ParseException}. * * @param <T> The class type of the bean. diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java index 25ffcc0..6867bc3 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserSession.java @@ -312,7 +312,7 @@ public abstract class ParserSession extends BeanSession { * @param beanMap The bean that doesn't have the expected property. * @param value The parsed value. * @throws ParseException - * Automatically thrown if {@link BeanContext#BEAN_ignoreUnknownBeanProperties} setting on this parser is + * Automatically thrown if {@link BeanContextBuilder#ignoreUnknownBeanProperties()} setting on this parser is * <jk>false</jk> * @param <T> The class type of the bean map that doesn't have the expected property. */ diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/HashKey.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/HashKey.java index f43d367..49e678b 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/HashKey.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/HashKey.java @@ -26,41 +26,11 @@ public class HashKey { /** * Static creator. * - * @return A new builder. + * @param array The contents of the key. + * @return A new bean. */ - public static Builder create() { - return new Builder(); - } - - //----------------------------------------------------------------------------------------------------------------- - // Builder - //----------------------------------------------------------------------------------------------------------------- - - /** - * The builder class for this object. - */ - public static class Builder { - List<Object> list = new ArrayList<>(); - - /** - * Adds a list of objects to this builder. - * - * @param values The values to add to this list. - * @return This object. - */ - public Builder add(Object...values) { - Collections.addAll(list, values); - return this; - } - - /** - * Creates the key. - * - * @return The key. - */ - public HashKey build() { - return new HashKey(this); - } + public static HashKey of(Object...array) { + return new HashKey(array); } //----------------------------------------------------------------------------------------------------------------- @@ -70,9 +40,9 @@ public class HashKey { private final int hashCode; private final Object[] array; - HashKey(Builder builder) { - hashCode = builder.list.hashCode(); - array = builder.list.toArray(new Object[builder.list.size()]); + HashKey(Object[] array) { + this.array = array; + this.hashCode = Arrays.hashCode(array); } @Override