You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2018/07/08 15:51:57 UTC
[juneau] branch master updated: Make BeanContext instance fields
private.
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 <ja...@apache.org>
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;
}