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 3b1f46d  Make BeanContext instance fields private.
3b1f46d is described below

commit 3b1f46de3272882f018a9de5b20ac67f2c8d6206
Author: JamesBognar <[email protected]>
AuthorDate: Sun Jul 8 11:51:43 2018 -0400

    Make BeanContext instance fields private.
---
 .../main/java/org/apache/juneau/BeanContext.java   | 384 ++++++++++++++++++---
 .../src/main/java/org/apache/juneau/BeanMap.java   |   4 +-
 .../src/main/java/org/apache/juneau/BeanMeta.java  |  22 +-
 .../java/org/apache/juneau/BeanPropertyMeta.java   |  12 +-
 .../main/java/org/apache/juneau/BeanRegistry.java  |   2 +-
 .../main/java/org/apache/juneau/BeanSession.java   |  20 +-
 .../src/main/java/org/apache/juneau/ClassMeta.java |   8 +-
 .../java/org/apache/juneau/rest/RestContext.java   |   3 +-
 8 files changed, 378 insertions(+), 77 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 9deee21..682230e 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
@@ -464,7 +464,6 @@ public class BeanContext extends Context {
         * </ul>
         *
         * <h5 class='section'>Description:</h5>
-        *
         * <p>
         * If <jk>true</jk>, then the {@link BeanMap#put(String,Object) 
BeanMap.put()} method will return old property
         * values.
@@ -1263,6 +1262,10 @@ public class BeanContext extends Context {
         *              </ul>
         * </ul>
         *
+        * <h5 class='section'>Description:</h5>
+        * <p>
+        * Specifies the default locale for serializer and parser sessions.
+        *
         * <h5 class='section'>Example:</h5>
         * <p class='bcode'>
         *      <jc>// Create a serializer that uses the specified locale if 
it's not passed in through session args.</jc>
@@ -1304,7 +1307,7 @@ public class BeanContext extends Context {
         *
         * <h5 class='section'>Description:</h5>
         * <p>
-        * Specifies a default media type value for serializer and parser 
sessions.
+        * Specifies the default media type value for serializer and parser 
sessions.
         *
         * <h5 class='section'>Example:</h5>
         * <p class='bcode'>
@@ -1680,7 +1683,7 @@ public class BeanContext extends Context {
        public static final String BEAN_sortProperties = PREFIX + 
"sortProperties.b";
 
        /**
-        * Configuration property:  TimeZone.
+        * Configuration property:  Time zone.
         *
         * <h5 class='section'>Property:</h5>
         * <ul>
@@ -1695,6 +1698,10 @@ public class BeanContext extends Context {
         *              </ul>
         * </ul>
         *
+        * <h5 class='section'>Description:</h5>
+        * <p>
+        * Specifies the default timezone for serializer and parser sessions.
+        *
         * <h5 class='section'>Example:</h5>
         * <p class='bcode'>
         *      <jc>// Create a serializer that uses GMT if the timezone is not 
specified in the session args.</jc>
@@ -1892,7 +1899,7 @@ public class BeanContext extends Context {
        /** Default config.  All default settings except sort bean properties. 
*/
        public static final BeanContext DEFAULT_SORTED = 
BeanContext.create().sortProperties().build();
 
-       final boolean
+       private final boolean
                beansRequireDefaultConstructor,
                beansRequireSerializable,
                beansRequireSettersForGetters,
@@ -1910,33 +1917,33 @@ public class BeanContext extends Context {
                fluentSetters,
                debug;
 
-       final Visibility
+       private final Visibility
                beanConstructorVisibility,
                beanClassVisibility,
                beanMethodVisibility,
                beanFieldVisibility;
 
-       final Class<?>[] notBeanClasses, beanDictionaryClasses;
-       final String[] notBeanPackageNames, notBeanPackagePrefixes;
-       final BeanFilter[] beanFilters;
-       final PojoSwap<?,?>[] pojoSwaps;
-       final Map<String,?> examples;
-       final BeanRegistry beanRegistry;
-       final Map<String,Class<?>> implClasses;
-       final Locale locale;
-       final TimeZone timeZone;
-       final MediaType mediaType;
-       final Map<String,String[]> includeProperties, excludeProperties;
-       final PropertyNamer propertyNamer;
+       private final Class<?>[] notBeanClasses;
+       private final List<Class<?>> beanDictionaryClasses;
+       private final String[] notBeanPackageNames, notBeanPackagePrefixes;
+       private final BeanFilter[] beanFilters;
+       private final PojoSwap<?,?>[] pojoSwaps;
+       private final Map<String,?> examples;
+       private final BeanRegistry beanRegistry;
+       private final Map<String,Class<?>> implClasses;
+       private final Locale locale;
+       private final TimeZone timeZone;
+       private final MediaType mediaType;
+       private final Map<String,String[]> includeProperties, excludeProperties;
+       private final PropertyNamer propertyNamer;
+       private final String beanTypePropertyName;
+       private final int beanHashCode;
 
        final Map<Class,ClassMeta> cmCache;
-       final ClassMeta<Object> cmObject;  // Reusable ClassMeta that 
represents general Objects.
-       final ClassMeta<String> cmString;  // Reusable ClassMeta that 
represents general Strings.
-       final ClassMeta<Class> cmClass;  // Reusable ClassMeta that represents 
general Classes.
+       private final ClassMeta<Object> cmObject;  // Reusable ClassMeta that 
represents general Objects.
+       private final ClassMeta<String> cmString;  // Reusable ClassMeta that 
represents general Strings.
+       private final ClassMeta<Class> cmClass;  // Reusable ClassMeta that 
represents general Classes.
 
-       final String beanTypePropertyName;
-
-       final int beanHashCode;
 
        /**
         * Constructor.
@@ -2045,7 +2052,7 @@ public class BeanContext extends Context {
                cmObject = cmCache.get(Object.class);
                cmClass = cmCache.get(Class.class);
 
-               beanDictionaryClasses = 
getClassArrayProperty(BEAN_beanDictionary);
+               beanDictionaryClasses = 
unmodifiableList(Arrays.asList(getClassArrayProperty(BEAN_beanDictionary)));
                beanRegistry = new BeanRegistry(this, null);
        }
 
@@ -2624,24 +2631,6 @@ public class BeanContext extends Context {
        }
 
        /**
-        * Returns the type property name as defined by {@link 
#BEAN_beanTypePropertyName}.
-        *
-        * @return The type property name.  Never <jk>null</jk>.
-        */
-       protected final String getBeanTypePropertyName() {
-               return beanTypePropertyName;
-       }
-
-       /**
-        * Returns the bean registry defined in this bean context defined by 
{@link #BEAN_beanDictionary}.
-        *
-        * @return The bean registry defined in this bean context.  Never 
<jk>null</jk>.
-        */
-       protected final BeanRegistry getBeanRegistry() {
-               return beanRegistry;
-       }
-
-       /**
         * Gets the no-arg constructor for the specified class.
         *
         * @param <T> The class to check.
@@ -2843,6 +2832,317 @@ public class BeanContext extends Context {
                return cmClass;
        }
 
+       /**
+        * Returns the lookup table for resolving bean types by name.
+        *
+        * @return The lookup table for resolving bean types by name.
+        */
+       public final BeanRegistry getBeanRegistry() {
+               return beanRegistry;
+       }
+
+       
//-----------------------------------------------------------------------------------------------------------------
+       // Properties
+       
//-----------------------------------------------------------------------------------------------------------------
+
+       /**
+        * Configuration property:  Beans require no-arg constructors.
+        *
+        * @see #BEAN_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.
+        */
+       public final boolean isBeansRequireDefaultConstructor() {
+               return beansRequireDefaultConstructor;
+       }
+
+       /**
+        * Configuration property:  Beans require Serializable interface.
+        *
+        * @see #BEAN_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.
+        */
+       public final boolean isBeansRequireSerializable() {
+               return beansRequireSerializable;
+       }
+
+       /**
+        * Configuration property:  Beans require setters for getters.
+        *
+        * @see #BEAN_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.
+        */
+       public final boolean isBeansRequireSettersForGetters() {
+               return beansRequireSettersForGetters;
+       }
+
+       /**
+        * Configuration property:  Beans require at least one property.
+        *
+        * @see #BEAN_beansRequireSomeProperties
+        * @return
+        *      <jk>true</jk> if a Java class must 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.
+        */
+       public final boolean isBeansRequireSomeProperties() {
+               return beansRequireSomeProperties;
+       }
+
+       /**
+        * Configuration property:  BeanMap.put() returns old property value.
+        *
+        * @see #BEAN_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>.
+        */
+       public final boolean isBeanMapPutReturnsOldValue() {
+               return beanMapPutReturnsOldValue;
+       }
+
+       /**
+        * Configuration property:  Use interface proxies.
+        *
+        * @see #BEAN_useInterfaceProxies
+        * @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.
+        */
+       public final boolean isUseInterfaceProxies() {
+               return useInterfaceProxies;
+       }
+
+       /**
+        * Configuration property:  Ignore unknown properties.
+        *
+        * @see #BEAN_ignoreUnknownBeanProperties
+        * @return
+        *      <jk>true</jk> if trying to set a value on a non-existent bean 
property is silently ignored.
+        */
+       public final boolean isIgnoreUnknownBeanProperties() {
+               return ignoreUnknownBeanProperties;
+       }
+
+       /**
+        * Configuration property:  Ignore unknown properties with null values.
+        *
+        * @see #BEAN_ignoreUnknownNullBeanProperties
+        * @return
+        *      <jk>true</jk> if trying to set a <jk>null</jk> value on a 
non-existent bean property is silently ignored.
+        */
+       public final boolean isIgnoreUnknownNullBeanProperties() {
+               return ignoreUnknownNullBeanProperties;
+       }
+
+       /**
+        * Configuration property:  Ignore properties without setters.
+        *
+        * <br>Otherwise, a {@code RuntimeException} is thrown.
+        *
+        * @see #BEAN_ignorePropertiesWithoutSetters
+        * @return
+        *      <jk>true</jk> if trying to set a value on a bean property 
without a setter is silently ignored.
+        */
+       public final boolean isIgnorePropertiesWithoutSetters() {
+               return ignorePropertiesWithoutSetters;
+       }
+
+       /**
+        * Configuration property:  Ignore invocation errors on getters.
+        *
+        * @see #BEAN_ignoreInvocationExceptionsOnGetters
+        * @return
+        *      <jk>true</jk> if errors thrown when calling bean getter methods 
are silently ignored.
+        */
+       public final boolean isIgnoreInvocationExceptionsOnGetters() {
+               return ignoreInvocationExceptionsOnGetters;
+       }
+
+       /**
+        * Configuration property:  Ignore invocation errors on setters.
+        *
+        * @see #BEAN_ignoreInvocationExceptionsOnSetters
+        * @return
+        *      <jk>true</jk> if errors thrown when calling bean setter methods 
are silently ignored.
+        */
+       public final boolean isIgnoreInvocationExceptionsOnSetters() {
+               return ignoreInvocationExceptionsOnSetters;
+       }
+
+       /**
+        * Configuration property:  Use Java Introspector.
+        *
+        * @see #BEAN_useJavaBeanIntrospector
+        * @return
+        *      <jk>true</jk> if the built-in Java bean introspector should be 
used for bean introspection.
+        */
+       public final boolean isUseJavaBeanIntrospector() {
+               return useJavaBeanIntrospector;
+       }
+
+       /**
+        * Configuration property:  Use enum names.
+        *
+        * @see #BEAN_useEnumNames
+        * @return
+        *      <jk>true</jk> if enums are always serialized by name, not using 
{@link Object#toString()}.
+        */
+       public final boolean isUseEnumNames() {
+               return useEnumNames;
+       }
+
+       /**
+        * Configuration property:  Sort bean properties.
+        *
+        * @see #BEAN_sortProperties
+        * @return
+        *      <jk>true</jk> if all bean properties will be serialized and 
access in alphabetical order.
+        */
+       public final boolean isSortProperties() {
+               return sortProperties;
+       }
+
+       /**
+        * Configuration property:  Find fluent setters.
+        *
+        * <h5 class='section'>Description:</h5>
+        * <p>
+        *
+        * @see #BEAN_fluentSetters
+        * @return
+        *      <jk>true</jk> if fluent setters are detected on beans.
+        */
+       public final boolean isFluentSetters() {
+               return fluentSetters;
+       }
+
+       /**
+        * Configuration property:  Debug mode.
+        *
+        * @see #BEAN_debug
+        * @return
+        *      <jk>true</jk> if debug mode is enabled.
+        */
+       public boolean isDebug() {
+               return debug;
+       }
+
+       /**
+        * Configuration property:  Minimum bean constructor visibility.
+        *
+        * @see #BEAN_beanConstructorVisibility
+        * @return
+        *      Only look for constructors with this specified minimum 
visibility.
+        */
+       public final Visibility getBeanConstructorVisibility() {
+               return beanConstructorVisibility;
+       }
+
+       /**
+        * Configuration property:  Minimum bean class visibility.
+        *
+        * @see #BEAN_beanClassVisibility
+        * @return
+        *      Classes are not considered beans unless they meet the minimum 
visibility requirements.
+        */
+       public final Visibility getBeanClassVisibility() {
+               return beanClassVisibility;
+       }
+
+       /**
+        * Configuration property:  Minimum bean method visibility.
+        *
+        * @see #BEAN_beanMethodVisibility
+        * @return
+        *      Only look for bean methods with this specified minimum 
visibility.
+        */
+       public final Visibility getBeanMethodVisibility() {
+               return beanMethodVisibility;
+       }
+
+       /**
+        * Configuration property:  Minimum bean field visibility.
+        *
+        *
+        * @see #BEAN_beanFieldVisibility
+        * @return
+        *      Only look for bean fields with this specified minimum 
visibility.
+        */
+       public final Visibility getBeanFieldVisibility() {
+               return beanFieldVisibility;
+       }
+
+       /**
+        * Configuration property:  Bean dictionary.
+        *
+        * @see #BEAN_beanDictionary
+        * @return
+        *      The list of classes that make up the bean dictionary in this 
bean context.
+        */
+       public final List<Class<?>> getBeanDictionaryClasses() {
+               return beanDictionaryClasses;
+       }
+
+       /**
+        * Configuration property:  Locale.
+        *
+        * @see #BEAN_locale
+        * @return
+        *      The default locale for serializer and parser sessions.
+        */
+       public final Locale getLocale() {
+               return locale;
+       }
+
+       /**
+        * Configuration property:  Time zone.
+        *
+        * @see #BEAN_timeZone
+        * @return
+        *      The default timezone for serializer and parser sessions.
+        */
+       public final TimeZone getTimeZone() {
+               return timeZone;
+       }
+
+       /**
+        * Configuration property:  Media type.
+        *
+        * @see #BEAN_mediaType
+        * @return
+        *      The default media type value for serializer and parser sessions.
+        */
+       public final MediaType getMediaType() {
+               return mediaType;
+       }
+
+       /**
+        * Configuration property:  Bean property namer.
+        *
+        * @see #BEAN_propertyNamer
+        * @return
+        *      The interface used to calculate bean property names.
+        */
+       public final PropertyNamer getPropertyNamer() {
+               return propertyNamer;
+       }
+
+       /**
+        * Configuration property:  Bean type property name.
+        *
+        * @see #BEAN_beanTypePropertyName
+        * @return
+        * The name of the bean property used to store the dictionary name of a 
bean type so that the parser knows the data type to reconstruct.
+        */
+       public final String getBeanTypePropertyName() {
+               return beanTypePropertyName;
+       }
+
        @Override /* Context */
        public ObjectMap asMap() {
                return super.asMap()
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMap.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMap.java
index 23abe78..93cff4a 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMap.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMap.java
@@ -220,7 +220,7 @@ public class BeanMap<T> extends AbstractMap<String,Object> 
implements Delegate<T
        public Object put(String property, Object value) {
                BeanPropertyMeta p = meta.properties.get(property);
                if (p == null) {
-                       if (meta.ctx.ignoreUnknownBeanProperties)
+                       if (meta.ctx.isIgnoreUnknownBeanProperties())
                                return null;
 
                        if (property.equals(beanTypePropertyName))
@@ -248,7 +248,7 @@ public class BeanMap<T> extends AbstractMap<String,Object> 
implements Delegate<T
        public void add(String property, Object value) {
                BeanPropertyMeta p = meta.properties.get(property);
                if (p == null) {
-                       if (meta.ctx.ignoreUnknownBeanProperties)
+                       if (meta.ctx.isIgnoreUnknownBeanProperties())
                                return;
                        throw new BeanRuntimeException(meta.c, "Bean property 
''{0}'' not found.", property);
                }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java
index 907c6a8..5cefbb3 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanMeta.java
@@ -168,10 +168,10 @@ public class BeanMeta<T> {
 
                        try {
                                Visibility
-                                       conVis = ctx.beanConstructorVisibility,
-                                       cVis = ctx.beanClassVisibility,
-                                       mVis = ctx.beanMethodVisibility,
-                                       fVis = ctx.beanFieldVisibility;
+                                       conVis = 
ctx.getBeanConstructorVisibility(),
+                                       cVis = ctx.getBeanClassVisibility(),
+                                       mVis = ctx.getBeanMethodVisibility(),
+                                       fVis = ctx.getBeanFieldVisibility();
 
                                List<Class<?>> bdClasses = new ArrayList<>();
                                if (beanFilter != null && 
beanFilter.getBeanDictionary() != null)
@@ -189,7 +189,7 @@ public class BeanMeta<T> {
                                if (typePropertyName == null)
                                        typePropertyName = 
ctx.getBeanTypePropertyName();
 
-                               fluentSetters = (ctx.fluentSetters || 
(beanFilter != null && beanFilter.isFluentSetters()));
+                               fluentSetters = (ctx.isFluentSetters() || 
(beanFilter != null && beanFilter.isFluentSetters()));
 
                                // If @Bean.interfaceClass is specified on the 
parent class, then we want
                                // to use the properties defined on that class, 
not the subclass.
@@ -212,7 +212,7 @@ public class BeanMeta<T> {
                                        return "Class is annotated with 
@BeanIgnore";
 
                                // Make sure it's serializable.
-                               if (beanFilter == null && 
ctx.beansRequireSerializable && ! isParentClass(Serializable.class, c))
+                               if (beanFilter == null && 
ctx.isBeansRequireSerializable() && ! isParentClass(Serializable.class, c))
                                        return "Class is not serializable";
 
                                // Look for @BeanConstructor constructor.
@@ -235,7 +235,7 @@ public class BeanMeta<T> {
                                if (constructor == null)
                                        constructor = 
(Constructor<T>)findNoArgConstructor(c, conVis);
 
-                               if (constructor == null && beanFilter == null 
&& ctx.beansRequireDefaultConstructor)
+                               if (constructor == null && beanFilter == null 
&& ctx.isBeansRequireDefaultConstructor())
                                        return "Class does not have the 
required no-arg constructor";
 
                                setAccessible(constructor, false);
@@ -265,14 +265,14 @@ public class BeanMeta<T> {
                                        
fixedBeanProps.addAll(Arrays.asList(includeProperties));
 
                                if (propertyNamer == null)
-                                       propertyNamer = ctx.propertyNamer;
+                                       propertyNamer = ctx.getPropertyNamer();
 
                                // First populate the properties with those 
specified in the bean annotation to
                                // ensure that ordering first.
                                for (String name : fixedBeanProps)
                                        normalProps.put(name, 
BeanPropertyMeta.builder(beanMeta, name));
 
-                               if (ctx.useJavaBeanIntrospector) {
+                               if (ctx.isUseJavaBeanIntrospector()) {
                                        BeanInfo bi = null;
                                        if (! c2.isInterface())
                                                bi = 
Introspector.getBeanInfo(c2, stopClass);
@@ -378,10 +378,10 @@ public class BeanMeta<T> {
                                }
 
                                // Make sure at least one property was found.
-                               if (beanFilter == null && 
ctx.beansRequireSomeProperties && normalProps.size() == 0)
+                               if (beanFilter == null && 
ctx.isBeansRequireSomeProperties() && normalProps.size() == 0)
                                        return "No properties detected on bean 
class";
 
-                               sortProperties = (ctx.sortProperties || 
(beanFilter != null && beanFilter.isSortProperties())) && 
fixedBeanProps.isEmpty();
+                               sortProperties = (ctx.isSortProperties() || 
(beanFilter != null && beanFilter.isSortProperties())) && 
fixedBeanProps.isEmpty();
 
                                properties = sortProperties ? new 
TreeMap<String,BeanPropertyMeta>() : new 
LinkedHashMap<String,BeanPropertyMeta>();
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
index 03140b9..b6c7770 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanPropertyMeta.java
@@ -167,7 +167,7 @@ public final class BeanPropertyMeta {
                        if (field == null && getter == null && setter == null)
                                return false;
 
-                       if (field == null && setter == null && 
f.beansRequireSettersForGetters && ! isConstructorArg)
+                       if (field == null && setter == null && 
f.isBeansRequireSettersForGetters() && ! isConstructorArg)
                                return false;
 
                        canRead |= (field != null || getter != null);
@@ -523,7 +523,7 @@ public final class BeanPropertyMeta {
                        return toSerializedForm(m.getBeanSession(), getRaw(m, 
pName));
 
                } catch (Throwable e) {
-                       if (beanContext.ignoreInvocationExceptionsOnGetters) {
+                       if 
(beanContext.isIgnoreInvocationExceptionsOnGetters()) {
                                if (rawTypeMeta.isPrimitive())
                                        return 
rawTypeMeta.getPrimitiveDefault();
                                return null;
@@ -549,7 +549,7 @@ public final class BeanPropertyMeta {
                        return invokeGetter(bean, pName);
 
                } catch (Throwable e) {
-                       if (beanContext.ignoreInvocationExceptionsOnGetters) {
+                       if 
(beanContext.isIgnoreInvocationExceptionsOnGetters()) {
                                if (rawTypeMeta.isPrimitive())
                                        return 
rawTypeMeta.getPrimitiveDefault();
                                return null;
@@ -623,7 +623,7 @@ public final class BeanPropertyMeta {
                        boolean isCollection = rawTypeMeta.isCollection();
 
                        if ((! isDyna) && field == null && setter == null && ! 
(isMap || isCollection)) {
-                               if ((value == null && 
beanContext.ignoreUnknownNullBeanProperties) || 
beanContext.ignorePropertiesWithoutSetters)
+                               if ((value == null && 
beanContext.isIgnoreUnknownNullBeanProperties()) || 
beanContext.isIgnorePropertiesWithoutSetters())
                                        return null;
                                throw new BeanRuntimeException(beanMeta.c, 
"Setter or public field not defined on property ''{0}''", name);
                        }
@@ -632,7 +632,7 @@ public final class BeanPropertyMeta {
 
                        try {
 
-                               Object r = 
beanContext.beanMapPutReturnsOldValue || isMap || isCollection ? get(m, pName) 
: null;
+                               Object r = 
beanContext.isBeanMapPutReturnsOldValue() || isMap || isCollection ? get(m, 
pName) : null;
                                Class<?> propertyClass = 
rawTypeMeta.getInnerClass();
 
                                if (value == null && (isMap || isCollection)) {
@@ -765,7 +765,7 @@ public final class BeanPropertyMeta {
                                throw e;
                        } catch (Exception e) {
                                e.printStackTrace();
-                               if 
(beanContext.ignoreInvocationExceptionsOnSetters) {
+                               if 
(beanContext.isIgnoreInvocationExceptionsOnSetters()) {
                                                if (rawTypeMeta.isPrimitive())
                                                        return 
rawTypeMeta.getPrimitiveDefault();
                                        return null;
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanRegistry.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanRegistry.java
index fb85a53..ce8fca4 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanRegistry.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanRegistry.java
@@ -50,7 +50,7 @@ public class BeanRegistry {
                this.beanContext = beanContext;
                this.map = new ConcurrentHashMap<>();
                this.reverseMap = new ConcurrentHashMap<>();
-               for (Class<?> c : beanContext.beanDictionaryClasses)
+               for (Class<?> c : beanContext.getBeanDictionaryClasses())
                        addClass(c);
                if (parent != null)
                        for (Map.Entry<String,ClassMeta<?>> e : 
parent.map.entrySet())
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 ed3f8f3..7ce14ea 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
@@ -58,10 +58,10 @@ public class BeanSession extends Session {
        protected BeanSession(BeanContext ctx, BeanSessionArgs args) {
                super(args);
                this.ctx = ctx;
-               locale = getProperty(BEAN_locale, Locale.class, args.locale, 
ctx.locale, Locale.getDefault());
-               timeZone = getProperty(BEAN_timeZone, TimeZone.class, 
args.timeZone, ctx.timeZone);
-               debug = getProperty(BEAN_debug, boolean.class, ctx.debug);
-               mediaType = getProperty(BEAN_mediaType, MediaType.class, 
args.mediaType, ctx.mediaType);
+               locale = getProperty(BEAN_locale, Locale.class, args.locale, 
ctx.getLocale(), Locale.getDefault());
+               timeZone = getProperty(BEAN_timeZone, TimeZone.class, 
args.timeZone, ctx.getTimeZone());
+               debug = getProperty(BEAN_debug, boolean.class, ctx.isDebug());
+               mediaType = getProperty(BEAN_mediaType, MediaType.class, 
args.mediaType, ctx.getMediaType());
        }
 
        @Override /* Session */
@@ -129,7 +129,7 @@ public class BeanSession extends Session {
         * @return The value of the 
<property>ignoreUnknownBeanProperties</property> property on this bean.
         */
        public final boolean isIgnoreUnknownBeanProperties() {
-               return ctx.ignoreUnknownBeanProperties;
+               return ctx.isIgnoreUnknownBeanProperties();
        }
 
        /**
@@ -1079,7 +1079,7 @@ public class BeanSession extends Session {
         */
        public final String getBeanTypePropertyName(ClassMeta cm) {
                String s = cm == null ? null : cm.getBeanTypePropertyName();
-               return s == null ? ctx.beanTypePropertyName : s;
+               return s == null ? ctx.getBeanTypePropertyName() : s;
        }
 
        /**
@@ -1088,7 +1088,7 @@ public class BeanSession extends Session {
         * @return The bean registry defined in this bean context.  Never 
<jk>null</jk>.
         */
        public final BeanRegistry getBeanRegistry() {
-               return ctx.beanRegistry;
+               return ctx.getBeanRegistry();
        }
 
        /**
@@ -1196,7 +1196,7 @@ public class BeanSession extends Session {
         * @return The {@link ClassMeta} object associated with the 
<code>Object</code> class.
         */
        public final ClassMeta<Object> object() {
-               return ctx.cmObject;
+               return ctx.object();
        }
 
        /**
@@ -1212,7 +1212,7 @@ public class BeanSession extends Session {
         * @return The {@link ClassMeta} object associated with the 
<code>String</code> class.
         */
        public final ClassMeta<String> string() {
-               return ctx.cmString;
+               return ctx.string();
        }
 
        /**
@@ -1228,7 +1228,7 @@ public class BeanSession extends Session {
         * @return The {@link ClassMeta} object associated with the 
<code>String</code> class.
         */
        public final ClassMeta<Class> _class() {
-               return ctx.cmClass;
+               return ctx._class();
        }
 
        /**
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
index c5cf4a9..61eae25 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ClassMeta.java
@@ -635,7 +635,7 @@ public final class ClassMeta<T> implements Type {
                                this.pojoSwaps.addAll(Arrays.asList(pojoSwaps));
 
                        if (beanContext != null)
-                               this.builderSwap = 
BuilderSwap.findSwapFromPojoClass(c, beanContext.beanConstructorVisibility, 
beanContext.beanMethodVisibility);
+                               this.builderSwap = 
BuilderSwap.findSwapFromPojoClass(c, 
beanContext.getBeanConstructorVisibility(), 
beanContext.getBeanMethodVisibility());
 
                        findPojoSwaps(this.pojoSwaps);
 
@@ -698,7 +698,7 @@ public final class ClassMeta<T> implements Type {
                        if (beanMeta != null)
                                dictionaryName = beanMeta.getDictionaryName();
 
-                       if (beanMeta != null && beanContext != null && 
beanContext.useInterfaceProxies && innerClass.isInterface())
+                       if (beanMeta != null && beanContext != null && 
beanContext.isUseInterfaceProxies() && innerClass.isInterface())
                                invocationHandler = new 
BeanProxyInvocationHandler<T>(beanMeta);
 
                        Bean b = c.getAnnotation(Bean.class);
@@ -1781,7 +1781,7 @@ public final class ClassMeta<T> implements Type {
        public String toString(Object t) {
                if (t == null)
                        return null;
-               if (isEnum() && beanContext.useEnumNames)
+               if (isEnum() && beanContext.isUseEnumNames())
                        return ((Enum<?>)t).name();
                return t.toString();
        }
@@ -1813,7 +1813,7 @@ public final class ClassMeta<T> implements Type {
        @SuppressWarnings({ "unchecked", "rawtypes" })
        public T newInstanceFromString(Object outer, String arg) throws 
IllegalArgumentException, IllegalAccessException, InvocationTargetException, 
InstantiationException {
 
-               if (isEnum() && beanContext.useEnumNames)
+               if (isEnum() && beanContext.isUseEnumNames())
                        return (T)Enum.valueOf((Class<? extends 
Enum>)this.innerClass, arg);
 
                Method m = fromStringMethod;
diff --git 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
index dd36625..488e190 100644
--- 
a/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
+++ 
b/juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/RestContext.java
@@ -2903,7 +2903,7 @@ public final class RestContext extends BeanContext {
                        allowedMethodParams = Collections.unmodifiableSet(new 
LinkedHashSet<>(Arrays.asList(StringUtils.split(getStringProperty(REST_allowedMethodParams,
 "HEAD,OPTIONS")))));
                        renderResponseStackTraces = 
getBooleanProperty(REST_renderResponseStackTraces, false);
                        useStackTraceHashes = 
getBooleanProperty(REST_useStackTraceHashes, true);
-                       debug = getBooleanProperty(REST_debug, false);
+                       debug = getBooleanProperty(REST_debug, super.isDebug());
                        defaultCharset = getStringProperty(REST_defaultCharset, 
"utf-8");
                        maxInput = getLongProperty(REST_maxInput, 100_000_000l);
                        clientVersionHeader = 
getStringProperty(REST_clientVersionHeader, "X-Client-Version");
@@ -3939,6 +3939,7 @@ public final class RestContext extends BeanContext {
         *
         * @return <jk>true</jk> if setting is enabled.
         */
+       @Override
        public boolean isDebug() {
                return debug;
        }

Reply via email to