juneau-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jamesbog...@apache.org
Subject juneau git commit: Serializer/ParserGroup classes should extend BeanContext.
Date Sun, 07 Jan 2018 04:05:47 GMT
Repository: juneau
Updated Branches:
  refs/heads/master 0606719ec -> 94fa434bf


Serializer/ParserGroup classes should extend BeanContext.

Project: http://git-wip-us.apache.org/repos/asf/juneau/repo
Commit: http://git-wip-us.apache.org/repos/asf/juneau/commit/94fa434b
Tree: http://git-wip-us.apache.org/repos/asf/juneau/tree/94fa434b
Diff: http://git-wip-us.apache.org/repos/asf/juneau/diff/94fa434b

Branch: refs/heads/master
Commit: 94fa434bfbb493b614110d5bb4c6c6dfbd3e7a7e
Parents: 0606719
Author: JamesBognar <jamesbognar@apache.org>
Authored: Sat Jan 6 23:05:44 2018 -0500
Committer: JamesBognar <jamesbognar@apache.org>
Committed: Sat Jan 6 23:05:44 2018 -0500

----------------------------------------------------------------------
 .../org/apache/juneau/parser/ParserGroup.java   |  18 +-
 .../juneau/parser/ParserGroupBuilder.java       | 789 +++++-------------
 .../juneau/serializer/SerializerGroup.java      |  18 +-
 .../serializer/SerializerGroupBuilder.java      | 827 +++++--------------
 4 files changed, 445 insertions(+), 1207 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/juneau/blob/94fa434b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroup.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroup.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroup.java
index 4042e0a..aa8229d 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroup.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroup.java
@@ -69,7 +69,7 @@ import org.apache.juneau.http.*;
  * 	AddressBook addressBook = p.parse(json, AddressBook.<jk>class</jk>);
  * </p>
  */
-public final class ParserGroup {
+public final class ParserGroup extends BeanContext {
 
 	// Maps Content-Type headers to matches.
 	private final ConcurrentHashMap<String,ParserMatch> cache = new ConcurrentHashMap<>();
@@ -78,7 +78,6 @@ public final class ParserGroup {
 	private final List<MediaType> mediaTypesList;
 	private final Parser[] mediaTypeParsers;
 	private final List<Parser> parsers;
-	private final PropertyStore propertyStore;
 
 	/**
 	 * Instantiates a new clean-slate {@link ParserGroupBuilder} object.
@@ -97,6 +96,7 @@ public final class ParserGroup {
 	 * 
 	 * @return A new {@link ParserGroupBuilder} initialized to this group.
 	 */
+	@Override /* Context */
 	public ParserGroupBuilder builder() {
 		return new ParserGroupBuilder(this);
 	}
@@ -113,7 +113,7 @@ public final class ParserGroup {
 	 * 	tried to match against media types.
 	 */
 	public ParserGroup(PropertyStore ps, Parser[] parsers) {
-		this.propertyStore = ps;
+		super(ps);
 		this.parsers = Collections.unmodifiableList(new ArrayList<>(Arrays.asList(parsers)));
 
 		List<MediaType> lmt = new ArrayList<>();
@@ -200,18 +200,6 @@ public final class ParserGroup {
 	}
 
 	/**
-	 * Returns a copy of the property store that was used to create the parsers in this group.
-	 *
-	 * <p>
-	 * This method returns a new factory each time so is somewhat expensive.
-	 *
-	 * @return A new copy of the property store passed in to the constructor.
-	 */
-	public PropertyStore getPropertyStore() {
-		return propertyStore;
-	}
-
-	/**
 	 * Returns the parsers in this group.
 	 *
 	 * @return An unmodifiable list of parsers in this group.

http://git-wip-us.apache.org/repos/asf/juneau/blob/94fa434b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroupBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroupBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroupBuilder.java
index f455811..30444d9 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroupBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserGroupBuilder.java
@@ -12,7 +12,6 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.parser;
 
-import static org.apache.juneau.BeanContext.*;
 import static org.apache.juneau.internal.CollectionUtils.*;
 import static org.apache.juneau.parser.Parser.*;
 
@@ -25,30 +24,15 @@ import org.apache.juneau.internal.*;
 /**
  * Builder class for creating instances of {@link ParserGroup}.
  */
-public class ParserGroupBuilder {
+public class ParserGroupBuilder extends BeanContextBuilder {
 
 	private final List<Object> parsers;
-	private final PropertyStoreBuilder propertyStore;
 
 	/**
 	 * Create an empty parser group builder.
 	 */
 	public ParserGroupBuilder() {
 		this.parsers = new ArrayList<>();
-		this.propertyStore = PropertyStore.create();
-	}
-
-	/**
-	 * Create an empty parser group using the specified property store for settings.
-	 *
-	 * <p>
-	 * Note:  Modifying the specified property store externally will also modify it here.
-	 *
-	 * @param propertyStore The property store containing all settings common to all parsers in this group.
-	 */
-	public ParserGroupBuilder(PropertyStoreBuilder propertyStore) {
-		this.parsers = new ArrayList<>();
-		this.propertyStore = propertyStore;
 	}
 
 	/**
@@ -57,9 +41,9 @@ public class ParserGroupBuilder {
 	 * @param copyFrom The parser group that we're copying settings and parsers from.
 	 */
 	public ParserGroupBuilder(ParserGroup copyFrom) {
+		super(copyFrom.getPropertyStore());
 		this.parsers = new ArrayList<>();
 		addReverse(parsers, copyFrom.getParsers());
-		this.propertyStore = copyFrom.getPropertyStore().builder();
 	}
 
 	/**
@@ -124,12 +108,13 @@ public class ParserGroupBuilder {
 	 *
 	 * @return A new {@link ParserGroup} object.
 	 */
+	@Override /* Context */
 	@SuppressWarnings("unchecked")
 	public ParserGroup build() {
 		List<Parser> l = new ArrayList<>();
 		for (Object p : parsers) {
 			Class<? extends Parser> c = null;
-			PropertyStore ps = propertyStore.build();
+			PropertyStore ps = getPropertyStore();
 			if (p instanceof Class) {
 				c = (Class<? extends Parser>)p;
 				l.add(ContextCache.INSTANCE.create(c, ps));
@@ -137,7 +122,7 @@ public class ParserGroupBuilder {
 				l.add((Parser)p);
 			}
 		}
-		return new ParserGroup(propertyStore.build(), ArrayUtils.toReverseArray(Parser.class, l));
+		return new ParserGroup(getPropertyStore(), ArrayUtils.toReverseArray(Parser.class, l));
 	}
 
 
@@ -146,101 +131,6 @@ public class ParserGroupBuilder {
 	//--------------------------------------------------------------------------------
 
 	/**
-	 * Sets a property on all parsers in this group.
-	 *
-	 * @param name The property name.
-	 * @param value The property value.
-	 * @return This object (for method chaining).
-	 * @see PropertyStoreBuilder#set(String, Object)
-	 */
-	public ParserGroupBuilder set(String name, Object value) {
-		propertyStore.set(name, value);
-		return this;
-	}
-
-	/**
-	 * Sets or appends to a property on all parsers in this group.
-	 * 
-	 * @param append
-	 * 	If <jk>true</jk>, the previous value is appended to.  Otherwise, the previous value is replaced. 
-	 * @param name The property name.
-	 * @param value The property value.
-	 * @return This object (for method chaining).
-	 * @see PropertyStoreBuilder#set(String, Object)
-	 */
-	public ParserGroupBuilder set(boolean append, String name, Object value) {
-		if (append)
-			propertyStore.addTo(name, value);
-		else
-			propertyStore.set(name, value);
-		return this;
-	}
-
-	/**
-	 * Sets a set of properties on all parsers in this group.
-	 *
-	 * @param properties The properties to set on this class.
-	 * @return This object (for method chaining).
-	 * @see PropertyStoreBuilder#set(java.util.Map)
-	 */
-	public ParserGroupBuilder set(ObjectMap properties) {
-		propertyStore.set(properties);
-		return this;
-	}
-
-	/**
-	 * Appends a set of properties on all parsers in this group.
-	 *
-	 * @param properties The properties to append on this class.
-	 * @return This object (for method chaining).
-	 * @see PropertyStoreBuilder#add(java.util.Map)
-	 */
-	public ParserGroupBuilder add(ObjectMap properties) {
-		propertyStore.add(properties);
-		return this;
-	}
-
-	/**
-	 * Adds a value to a SET/LIST/MAP property on all parsers in this group.
-	 *
-	 * @param name The property name.
-	 * @param value The new value to add to the SET property.
-	 * @return This object (for method chaining).
-	 * @throws ConfigException If property is not a SET property.
-	 */
-	public ParserGroupBuilder addTo(String name, Object value) {
-		propertyStore.addTo(name, value);
-		return this;
-	}
-
-	/**
-	 * Adds or overwrites a value to a MAP property on all parsers in this group.
-	 *
-	 * @param name The property name.
-	 * @param key The property value map key.
-	 * @param value The property value map value.
-	 * @return This object (for method chaining).
-	 * @throws ConfigException If property is not a MAP property.
-	 */
-	public ParserGroupBuilder addTo(String name, String key, Object value) {
-		propertyStore.addTo(name, key, value);
-		return this;
-	}
-
-	/**
-	 * Removes a value from a SET property on all parsers in this group.
-	 *
-	 * @param name The property name.
-	 * @param value The property value in the SET property.
-	 * @return This object (for method chaining).
-	 * @throws ConfigException If property is not a SET property.
-	 */
-	public ParserGroupBuilder removeFrom(String name, Object value) {
-		propertyStore.removeFrom(name, value);
-		return this;
-	}
-
-	/**
 	 * Sets the {@link Parser#PARSER_trimStrings} property on all parsers in this group.
 	 *
 	 * @param value The new value for this property.
@@ -295,582 +185,357 @@ public class ParserGroupBuilder {
 		return set(PARSER_listener, value);
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beansRequireDefaultConstructor} property on all parsers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beansRequireDefaultConstructor
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder beansRequireDefaultConstructor(boolean value) {
-		return set(BEAN_beansRequireDefaultConstructor, value);
+		super.beansRequireDefaultConstructor(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beansRequireSerializable} property on all parsers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beansRequireSerializable
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder beansRequireSerializable(boolean value) {
-		return set(BEAN_beansRequireSerializable, value);
+		super.beansRequireSerializable(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beansRequireSettersForGetters} property on all parsers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beansRequireSettersForGetters
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder beansRequireSettersForGetters(boolean value) {
-		return set(BEAN_beansRequireSettersForGetters, value);
+		super.beansRequireSettersForGetters(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beansRequireSomeProperties} property on all parsers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beansRequireSomeProperties
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder beansRequireSomeProperties(boolean value) {
-		return set(BEAN_beansRequireSomeProperties, value);
+		super.beansRequireSomeProperties(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beanMapPutReturnsOldValue} property on all parsers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beanMapPutReturnsOldValue
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder beanMapPutReturnsOldValue(boolean value) {
-		return set(BEAN_beanMapPutReturnsOldValue, value);
+		super.beanMapPutReturnsOldValue(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beanConstructorVisibility} property on all parsers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beanConstructorVisibility
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder beanConstructorVisibility(Visibility value) {
-		return set(BEAN_beanConstructorVisibility, value);
+		super.beanConstructorVisibility(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beanClassVisibility} property on all parsers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beanClassVisibility
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder beanClassVisibility(Visibility value) {
-		return set(BEAN_beanClassVisibility, value);
+		super.beanClassVisibility(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beanFieldVisibility} property on all parsers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beanFieldVisibility
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder beanFieldVisibility(Visibility value) {
-		return set(BEAN_beanFieldVisibility, value);
+		super.beanFieldVisibility(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_methodVisibility} property on all parsers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_methodVisibility
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder methodVisibility(Visibility value) {
-		return set(BEAN_methodVisibility, value);
+		super.methodVisibility(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_useJavaBeanIntrospector} property on all parsers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_useJavaBeanIntrospector
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder useJavaBeanIntrospector(boolean value) {
-		return set(BEAN_useJavaBeanIntrospector, value);
+		super.useJavaBeanIntrospector(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_useInterfaceProxies} property on all parsers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_useInterfaceProxies
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder useInterfaceProxies(boolean value) {
-		return set(BEAN_useInterfaceProxies, value);
+		super.useInterfaceProxies(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_ignoreUnknownBeanProperties} property on all parsers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_ignoreUnknownBeanProperties
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder ignoreUnknownBeanProperties(boolean value) {
-		return set(BEAN_ignoreUnknownBeanProperties, value);
+		super.ignoreUnknownBeanProperties(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_ignoreUnknownNullBeanProperties} property on all parsers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_ignoreUnknownNullBeanProperties
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder ignoreUnknownNullBeanProperties(boolean value) {
-		return set(BEAN_ignoreUnknownNullBeanProperties, value);
+		super.ignoreUnknownNullBeanProperties(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_ignorePropertiesWithoutSetters} property on all parsers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_ignorePropertiesWithoutSetters
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder ignorePropertiesWithoutSetters(boolean value) {
-		return set(BEAN_ignorePropertiesWithoutSetters, value);
+		super.ignorePropertiesWithoutSetters(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_ignoreInvocationExceptionsOnGetters} property on all parsers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_ignoreInvocationExceptionsOnGetters
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder ignoreInvocationExceptionsOnGetters(boolean value) {
-		return set(BEAN_ignoreInvocationExceptionsOnGetters, value);
+		super.ignoreInvocationExceptionsOnGetters(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_ignoreInvocationExceptionsOnSetters} property on all parsers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_ignoreInvocationExceptionsOnSetters
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder ignoreInvocationExceptionsOnSetters(boolean value) {
-		return set(BEAN_ignoreInvocationExceptionsOnSetters, value);
+		super.ignoreInvocationExceptionsOnSetters(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_sortProperties} property on all parsers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_sortProperties
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder sortProperties(boolean value) {
-		return set(BEAN_sortProperties, value);
-	}
-
-	/**
-	 * Sets the {@link BeanContext#BEAN_notBeanPackages_add} property on all parsers in this group.
-	 *
-	 * @param values The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_notBeanPackages_add
-	 */
-	public ParserGroupBuilder notBeanPackages(String...values) {
-		return set(BEAN_notBeanPackages_add, values);
-	}
-
-	/**
-	 * Sets the {@link BeanContext#BEAN_notBeanPackages_add} property on all parsers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_notBeanPackages_add
-	 */
-	public ParserGroupBuilder notBeanPackages(Collection<String> value) {
-		return set(BEAN_notBeanPackages_add, value);
+		super.sortProperties(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_notBeanPackages} property on all parsers in this group.
-	 *
-	 * @param values The values to remove from this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_notBeanPackages
-	 */
-	public ParserGroupBuilder setNotBeanPackages(String...values) {
-		return set(BEAN_notBeanPackages, values);
+	@Override /* BeanContextBuilder */
+	public ParserGroupBuilder notBeanPackages(Object...values) {
+		super.notBeanPackages(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_notBeanPackages} property on all parsers in this group.
-	 *
-	 * @param values The values to remove from this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_notBeanPackages
-	 */
-	public ParserGroupBuilder setNotBeanPackages(Collection<String> values) {
-		return set(BEAN_notBeanPackages, values);
+	@Override /* BeanContextBuilder */
+	public ParserGroupBuilder notBeanPackages(String...values) {
+		super.notBeanPackages(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_notBeanPackages_remove} property on all parsers in this group.
-	 *
-	 * @param values The values to remove from this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_notBeanPackages
-	 * @see BeanContext#BEAN_notBeanPackages_remove
-	 */
-	public ParserGroupBuilder removeNotBeanPackages(String...values) {
-		return set(BEAN_notBeanPackages_remove, values);
+	@Override /* BeanContextBuilder */
+	public ParserGroupBuilder notBeanPackages(boolean append, Object...values) {
+		super.notBeanPackages(append, values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_notBeanPackages_remove} property on all parsers in this group.
-	 *
-	 * @param values The values to remove from this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_notBeanPackages
-	 * @see BeanContext#BEAN_notBeanPackages_remove
-	 */
-	public ParserGroupBuilder removeNotBeanPackages(Collection<String> values) {
-		return set(BEAN_notBeanPackages_remove, values);
+	@Override /* BeanContextBuilder */
+	public ParserGroupBuilder notBeanPackagesRemove(Object...values) {
+		super.notBeanPackagesRemove(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_notBeanClasses_add} property on all parsers in this group.
-	 *
-	 * @param values The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_notBeanClasses_add
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder notBeanClasses(Object...values) {
-		return set(BEAN_notBeanClasses_add, values);
+		super.notBeanClasses(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_notBeanClasses_add} property on all parsers in this group.
-	 *
-	 * @param values The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_notBeanPackages_add
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder notBeanClasses(Class<?>...values) {
-		return set(BEAN_notBeanClasses_add, values);
-	}
-
-	/**
-	 * Sets the {@link BeanContext#BEAN_notBeanClasses} property on all parsers in this group.
-	 *
-	 * @param values The values to add to this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_notBeanClasses
-	 */
-	public ParserGroupBuilder setNotBeanClasses(Class<?>...values) {
-		return set(BEAN_notBeanClasses, values);
-	}
-
-	/**
-	 * Sets the {@link BeanContext#BEAN_notBeanClasses} property on all parsers in this group.
-	 *
-	 * @param values The values to add to this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_notBeanClasses
-	 */
-	public ParserGroupBuilder setNotBeanClasses(Collection<Class<?>> values) {
-		return set(BEAN_notBeanClasses, values);
+		super.notBeanClasses(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_notBeanClasses_remove} property on all parsers in this group.
-	 *
-	 * @param values The values to remove from this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_notBeanClasses_remove
-	 */
-	public ParserGroupBuilder removeNotBeanClasses(Class<?>...values) {
-		return set(BEAN_notBeanClasses_remove, values);
+	@Override /* BeanContextBuilder */
+	public ParserGroupBuilder notBeanClasses(boolean append, Object...values) {
+		super.notBeanClasses(append, values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_notBeanClasses_remove} property on all parsers in this group.
-	 *
-	 * @param values The values to remove from this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_notBeanClasses_remove
-	 */
-	public ParserGroupBuilder removeNotBeanClasses(Collection<Class<?>> values) {
-		return set(BEAN_notBeanClasses_remove, values);
+	@Override /* BeanContextBuilder */
+	public ParserGroupBuilder notBeanClassesRemove(Object...values) {
+		super.notBeanClassesRemove(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beanFilters_add} property on all parsers in this group.
-	 *
-	 * @param values The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beanFilters_add
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder beanFilters(Object...values) {
-		return set(BEAN_beanFilters_add, values);
+		super.beanFilters(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beanFilters_add} property on all parsers in this group.
-	 *
-	 * @param values The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beanFilters_add
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder beanFilters(Class<?>...values) {
-		return set(BEAN_beanFilters_add, values);
+		super.beanFilters(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beanFilters} property on all parsers in this group.
-	 * 
-	 * @param append
-	 * 	If <jk>true</jk>, the previous value is appended to.  Otherwise, the previous value is replaced. 
-	 * @param values The values to add to this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beanFilters
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder beanFilters(boolean append, Object...values) {
-		return set(append, BEAN_beanFilters, values);
+		super.beanFilters(append, values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beanFilters_remove} property on all parsers in this group.
-	 *
-	 * @param values The values to remove from this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beanFilters_remove
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder beanFiltersRemove(Object...values) {
-		return set(BEAN_beanFilters_remove, values);
+		super.beanFiltersRemove(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_pojoSwaps_add} property on all parsers in this group.
-	 *
-	 * @param values The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_pojoSwaps_add
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder pojoSwaps(Object...values) {
-		return set(BEAN_pojoSwaps_add, values);
+		super.pojoSwaps(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_pojoSwaps_add} property on all parsers in this group.
-	 *
-	 * @param values The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_pojoSwaps_add
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder pojoSwaps(Class<?>...values) {
-		return set(BEAN_pojoSwaps_add, values);
+		super.pojoSwaps(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_pojoSwaps} property on all parsers in this group.
-	 *
-	 * @param values The values to add to this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_pojoSwaps
-	 */
-	public ParserGroupBuilder setPojoSwaps(Class<?>...values) {
-		return set(BEAN_pojoSwaps, values);
+	@Override /* BeanContextBuilder */
+	public ParserGroupBuilder pojoSwaps(boolean append, Object...values) {
+		super.pojoSwaps(append, values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_pojoSwaps} property on all parsers in this group.
-	 *
-	 * @param values The values to add to this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_pojoSwaps
-	 */
-	public ParserGroupBuilder setPojoSwaps(Collection<Class<?>> values) {
-		return set(BEAN_pojoSwaps, values);
+	@Override /* BeanContextBuilder */
+	public ParserGroupBuilder pojoSwapsRemove(Object...values) {
+		super.pojoSwapsRemove(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_pojoSwaps_remove} property on all parsers in this group.
-	 *
-	 * @param values The values to remove from this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_pojoSwaps_remove
-	 */
-	public ParserGroupBuilder removePojoSwaps(Class<?>...values) {
-		return set(BEAN_pojoSwaps_remove, values);
+	@Override /* BeanContextBuilder */
+	public ParserGroupBuilder implClasses(Map<String,Class<?>> values) {
+		super.implClasses(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_pojoSwaps_remove} property on all parsers in this group.
-	 *
-	 * @param values The values to remove from this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_pojoSwaps_remove
-	 */
-	public ParserGroupBuilder removePojoSwaps(Collection<Class<?>> values) {
-		return set(BEAN_pojoSwaps_remove, values);
+	@Override /* BeanContextBuilder */
+	public <T> ParserGroupBuilder implClass(Class<T> interfaceClass, Class<? extends T> implClass) {
+		super.implClass(interfaceClass, implClass);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_implClasses} property on all parsers in this group.
-	 *
-	 * @param values The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_implClasses
-	 */
-	public ParserGroupBuilder implClasses(Map<String,Class<?>> values) {
-		return set(BEAN_implClasses, values);
+	@Override /* BeanContextBuilder */
+	public ParserGroupBuilder includeProperties(Map<String,String> values) {
+		super.includeProperties(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_implClasses} property on all parsers in this group.
-	 *
-	 * @param interfaceClass The interface class.
-	 * @param implClass The implementation class.
-	 * @param <T> The class type of the interface.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_implClasses
-	 */
-	public <T> ParserGroupBuilder implClass(Class<T> interfaceClass, Class<? extends T> implClass) {
-		return addTo(BEAN_implClasses, interfaceClass.getName(), implClass);
+	@Override /* BeanContextBuilder */
+	public ParserGroupBuilder includeProperties(String beanClassName, String properties) {
+		super.includeProperties(beanClassName, properties);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beanDictionary_add} property on all parsers in this group.
-	 *
-	 * @param values The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beanDictionary_add
-	 */
+	@Override /* BeanContextBuilder */
+	public ParserGroupBuilder includeProperties(Class<?> beanClass, String properties) {
+		super.includeProperties(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public ParserGroupBuilder excludeProperties(Map<String,String> values) {
+		super.excludeProperties(values);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public ParserGroupBuilder excludeProperties(String beanClassName, String properties) {
+		super.excludeProperties(beanClassName, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
+	public ParserGroupBuilder excludeProperties(Class<?> beanClass, String properties) {
+		super.excludeProperties(beanClass, properties);
+		return this;
+	}
+
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder beanDictionary(Object...values) {
-		return set(BEAN_beanDictionary_add, values);
+		super.beanDictionary(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beanDictionary_add} property on all parsers in this group.
-	 *
-	 * @param values The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beanDictionary_add
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder beanDictionary(Class<?>...values) {
-		return set(BEAN_beanDictionary_add, values);
+		super.beanDictionary(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beanDictionary} property on all parsers in this group.
-	 *
-	 * @param append
-	 * 	If <jk>true</jk>, the previous value is appended to.  Otherwise, the previous value is replaced. 
-	 * @param values The values to add to this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beanDictionary
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder beanDictionary(boolean append, Object...values) {
-		return set(append, BEAN_beanDictionary, values);
+		super.beanDictionary(append, values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beanDictionary_remove} property on all parsers in this group.
-	 *
-	 * @param values The values to remove from this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beanDictionary_remove
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder beanDictionaryRemove(Object...values) {
-		return set(BEAN_beanDictionary_remove, values);
+		super.beanDictionaryRemove(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beanTypePropertyName} property on all parsers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beanTypePropertyName
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder beanTypePropertyName(String value) {
-		return set(BEAN_beanTypePropertyName, value);
+		super.beanTypePropertyName(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_defaultParser} property on all parsers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_defaultParser
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder defaultParser(Class<?> value) {
-		return set(BEAN_defaultParser, value);
+		super.defaultParser(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_locale} property on all parsers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_locale
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder locale(Locale value) {
-		return set(BEAN_locale, value);
+		super.locale(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_timeZone} property on all parsers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_timeZone
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder timeZone(TimeZone value) {
-		return set(BEAN_timeZone, value);
+		super.timeZone(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_mediaType} property on all parsers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_mediaType
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder mediaType(MediaType value) {
-		return set(BEAN_mediaType, value);
+		super.mediaType(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_debug} property on all parsers in this group.
-	 *
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_debug
-	 */
+	@Override /* BeanContextBuilder */
 	public ParserGroupBuilder debug() {
-		return set(BEAN_debug, true);
+		super.debug();
+		return this;
 	}
 
-	/**
-	 * Copies all the values in the specified property store into this builder.
-	 * 
-	 * @param copyFrom The property store to copy the values from. 
-	 * @return This object (for method chaining).
-	 */
-	public ParserGroupBuilder apply(PropertyStore copyFrom) {
-		this.propertyStore.apply(copyFrom);
+	@Override /* ContextBuilder */
+	public ParserGroupBuilder set(String name, Object value) {
+		super.set(name, value);
 		return this;
 	}
+
+	@Override /* ContextBuilder */
+	public ParserGroupBuilder set(boolean append, String name, Object value) {
+		super.set(append, name, value);
+		return this;
+	}
+
+	@Override /* ContextBuilder */
+	public ParserGroupBuilder set(Map<String,Object> properties) {
+		super.set(properties);
+		return this;
+	}
+
+	@Override /* ContextBuilder */
+	public ParserGroupBuilder add(Map<String,Object> properties) {
+		super.add(properties);
+		return this;
+	}
+
+	@Override /* ContextBuilder */
+	public ParserGroupBuilder addTo(String name, Object value) {
+		super.addTo(name, value);
+		return this;
+	}
+
+	@Override /* ContextBuilder */
+	public ParserGroupBuilder addTo(String name, String key, Object value) {
+		super.addTo(name, key, value);
+		return this;
+	}
+
+	@Override /* ContextBuilder */
+	public ParserGroupBuilder removeFrom(String name, Object value) {
+		super.removeFrom(name, value);
+		return this;
+	}
+
+	@Override /* ContextBuilder */
+	public ParserGroupBuilder apply(PropertyStore copyFrom) {
+		super.apply(copyFrom);
+		return this;
+	}	
 }

http://git-wip-us.apache.org/repos/asf/juneau/blob/94fa434b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroup.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroup.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroup.java
index f1239e0..6d6f950 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroup.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroup.java
@@ -61,7 +61,7 @@ import org.apache.juneau.http.*;
  * 	String json = s.serialize(addressBook);
  * </p>
  */
-public final class SerializerGroup {
+public final class SerializerGroup extends BeanContext {
 
 	// Maps Accept headers to matching serializers.
 	private final ConcurrentHashMap<String,SerializerMatch> cache = new ConcurrentHashMap<>();
@@ -70,7 +70,6 @@ public final class SerializerGroup {
 	private final List<MediaType> mediaTypesList;
 	private final Serializer[] mediaTypeSerializers;
 	private final List<Serializer> serializers;
-	private final PropertyStore propertyStore;
 
 	/**
 	 * Instantiates a new clean-slate {@link SerializerGroupBuilder} object.
@@ -89,6 +88,7 @@ public final class SerializerGroup {
 	 * 
 	 * @return A new {@link SerializerGroupBuilder} initialized to this group.
 	 */
+	@Override /* Context */
 	public SerializerGroupBuilder builder() {
 		return new SerializerGroupBuilder(this);
 	}
@@ -105,7 +105,7 @@ public final class SerializerGroup {
 	 * 	to match against media types.
 	 */
 	public SerializerGroup(PropertyStore ps, Serializer[] serializers) {
-		this.propertyStore = ps;
+		super(ps);
 		this.serializers = Collections.unmodifiableList(new ArrayList<>(Arrays.asList(serializers)));
 
 		List<MediaType> lmt = new ArrayList<>();
@@ -246,18 +246,6 @@ public final class SerializerGroup {
 	}
 
 	/**
-	 * Returns a copy of the property store that was used to create the serializers in this group.
-	 *
-	 * <p>
-	 * This method returns a new factory each time so is somewhat expensive.
-	 *
-	 * @return A new copy of the property store passed in to the constructor.
-	 */
-	public PropertyStore getPropertyStore() {
-		return propertyStore;
-	}
-
-	/**
 	 * Returns a copy of the serializers in this group.
 	 *
 	 * @return An unmodifiable list of serializers in this group.

http://git-wip-us.apache.org/repos/asf/juneau/blob/94fa434b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroupBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroupBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroupBuilder.java
index bc122b0..acc5edc 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroupBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerGroupBuilder.java
@@ -12,7 +12,6 @@
 // ***************************************************************************************************************************
 package org.apache.juneau.serializer;
 
-import static org.apache.juneau.BeanContext.*;
 import static org.apache.juneau.internal.CollectionUtils.*;
 import static org.apache.juneau.serializer.Serializer.*;
 
@@ -25,30 +24,15 @@ import org.apache.juneau.internal.*;
 /**
  * Builder class for creating instances of {@link SerializerGroup}.
  */
-public class SerializerGroupBuilder {
+public class SerializerGroupBuilder extends BeanContextBuilder {
 
 	private final List<Object> serializers;
-	private final PropertyStoreBuilder propertyStore;
 
 	/**
 	 * Create an empty serializer group builder.
 	 */
 	public SerializerGroupBuilder() {
 		this.serializers = new ArrayList<>();
-		this.propertyStore = PropertyStore.create();
-	}
-
-	/**
-	 * Create an empty serializer group using the specified property store for settings.
-	 *
-	 * <p>
-	 * Note:  Modifying the specified property store externally will also modify it here.
-	 *
-	 * @param propertyStore The property store containing all settings common to all serializers in this group.
-	 */
-	public SerializerGroupBuilder(PropertyStoreBuilder propertyStore) {
-		this.serializers = new ArrayList<>();
-		this.propertyStore = propertyStore;
 	}
 
 	/**
@@ -57,9 +41,9 @@ public class SerializerGroupBuilder {
 	 * @param copyFrom The serializer group that we're copying settings and serializers from.
 	 */
 	public SerializerGroupBuilder(SerializerGroup copyFrom) {
+		super(copyFrom.getPropertyStore());
 		this.serializers = new ArrayList<>();
 		addReverse(serializers, copyFrom.getSerializers());
-		this.propertyStore = copyFrom.getPropertyStore().builder();
 	}
 
 	/**
@@ -124,12 +108,13 @@ public class SerializerGroupBuilder {
 	 *
 	 * @return A new {@link SerializerGroup} object.
 	 */
+	@Override /* ContextBuilder */
 	@SuppressWarnings("unchecked")
 	public SerializerGroup build() {
 		List<Serializer> l = new ArrayList<>();
 		for (Object s : serializers) {
 			Class<? extends Serializer> c = null;
-			PropertyStore ps = propertyStore.build();
+			PropertyStore ps = getPropertyStore();
 			if (s instanceof Class) {
 				c = (Class<? extends Serializer>)s;
 				l.add(ContextCache.INSTANCE.create(c, ps));
@@ -137,7 +122,7 @@ public class SerializerGroupBuilder {
 				l.add((Serializer)s);
 			}
 		}
-		return new SerializerGroup(propertyStore.build(), ArrayUtils.toReverseArray(Serializer.class, l));
+		return new SerializerGroup(getPropertyStore(), ArrayUtils.toReverseArray(Serializer.class, l));
 	}
 
 
@@ -146,101 +131,6 @@ public class SerializerGroupBuilder {
 	//--------------------------------------------------------------------------------
 
 	/**
-	 * Sets a property on all serializers in this group.
-	 *
-	 * @param name The property name.
-	 * @param value The property value.
-	 * @return This object (for method chaining).
-	 * @see PropertyStoreBuilder#set(String, Object)
-	 */
-	public SerializerGroupBuilder set(String name, Object value) {
-		propertyStore.set(name, value);
-		return this;
-	}
-
-	/**
-	 * Sets or appends to a property on all serializers in this group.
-	 * 
-	 * @param append
-	 * 	If <jk>true</jk>, the previous value is appended to.  Otherwise, the previous value is replaced. 
-	 * @param name The property name.
-	 * @param value The property value.
-	 * @return This object (for method chaining).
-	 * @see PropertyStoreBuilder#set(String, Object)
-	 */
-	public SerializerGroupBuilder set(boolean append, String name, Object value) {
-		if (append)
-			propertyStore.addTo(name, value);
-		else
-			propertyStore.set(name, value);
-		return this;
-	}
-
-	/**
-	 * Sets a set of properties on all serializers in this group.
-	 *
-	 * @param properties The properties to set on this class.
-	 * @return This object (for method chaining).
-	 * @see PropertyStoreBuilder#set(java.util.Map)
-	 */
-	public SerializerGroupBuilder set(ObjectMap properties) {
-		propertyStore.set(properties);
-		return this;
-	}
-
-	/**
-	 * Appends a set of properties on all serializers in this group.
-	 *
-	 * @param properties The properties to append on this class.
-	 * @return This object (for method chaining).
-	 * @see PropertyStoreBuilder#add(java.util.Map)
-	 */
-	public SerializerGroupBuilder add(ObjectMap properties) {
-		propertyStore.add(properties);
-		return this;
-	}
-
-	/**
-	 * Adds a value to a SET/LIST property on all serializers in this group.
-	 *
-	 * @param name The property name.
-	 * @param value The new value to add to the SET property.
-	 * @return This object (for method chaining).
-	 * @throws ConfigException If property is not a SET property.
-	 */
-	public SerializerGroupBuilder addTo(String name, Object value) {
-		propertyStore.addTo(name, value);
-		return this;
-	}
-
-	/**
-	 * Adds or overwrites a value to a SET/LIST/MAP property on all serializers in this group.
-	 *
-	 * @param name The property name.
-	 * @param key The property value map key.
-	 * @param value The property value map value.
-	 * @return This object (for method chaining).
-	 * @throws ConfigException If property is not a MAP property.
-	 */
-	public SerializerGroupBuilder addTo(String name, String key, Object value) {
-		propertyStore.addTo(name, key, value);
-		return this;
-	}
-
-	/**
-	 * Removes a value from a SET property on all serializers in this group.
-	 *
-	 * @param name The property name.
-	 * @param value The property value in the SET property.
-	 * @return This object (for method chaining).
-	 * @throws ConfigException If property is not a SET property.
-	 */
-	public SerializerGroupBuilder removeFrom(String name, Object value) {
-		propertyStore.removeFrom(name, value);
-		return this;
-	}
-
-	/**
 	 * Sets the {@link Serializer#SERIALIZER_maxDepth} property on all serializers in this group.
 	 *
 	 * @param value The new value for this property.
@@ -467,650 +357,357 @@ public class SerializerGroupBuilder {
 		return set(SERIALIZER_listener, value);
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beansRequireDefaultConstructor} property on all serializers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beansRequireDefaultConstructor
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder beansRequireDefaultConstructor(boolean value) {
-		return set(BEAN_beansRequireDefaultConstructor, value);
+		super.beansRequireDefaultConstructor(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beansRequireSerializable} property on all serializers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beansRequireSerializable
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder beansRequireSerializable(boolean value) {
-		return set(BEAN_beansRequireSerializable, value);
+		super.beansRequireSerializable(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beansRequireSettersForGetters} property on all serializers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beansRequireSettersForGetters
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder beansRequireSettersForGetters(boolean value) {
-		return set(BEAN_beansRequireSettersForGetters, value);
+		super.beansRequireSettersForGetters(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beansRequireSomeProperties} property on all serializers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beansRequireSomeProperties
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder beansRequireSomeProperties(boolean value) {
-		return set(BEAN_beansRequireSomeProperties, value);
+		super.beansRequireSomeProperties(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beanMapPutReturnsOldValue} property on all serializers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beanMapPutReturnsOldValue
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder beanMapPutReturnsOldValue(boolean value) {
-		return set(BEAN_beanMapPutReturnsOldValue, value);
+		super.beanMapPutReturnsOldValue(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beanConstructorVisibility} property on all serializers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beanConstructorVisibility
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder beanConstructorVisibility(Visibility value) {
-		return set(BEAN_beanConstructorVisibility, value);
+		super.beanConstructorVisibility(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beanClassVisibility} property on all serializers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beanClassVisibility
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder beanClassVisibility(Visibility value) {
-		return set(BEAN_beanClassVisibility, value);
+		super.beanClassVisibility(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beanFieldVisibility} property on all serializers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beanFieldVisibility
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder beanFieldVisibility(Visibility value) {
-		return set(BEAN_beanFieldVisibility, value);
+		super.beanFieldVisibility(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_methodVisibility} property on all serializers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_methodVisibility
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder methodVisibility(Visibility value) {
-		return set(BEAN_methodVisibility, value);
+		super.methodVisibility(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_useJavaBeanIntrospector} property on all serializers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_useJavaBeanIntrospector
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder useJavaBeanIntrospector(boolean value) {
-		return set(BEAN_useJavaBeanIntrospector, value);
+		super.useJavaBeanIntrospector(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_useInterfaceProxies} property on all serializers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_useInterfaceProxies
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder useInterfaceProxies(boolean value) {
-		return set(BEAN_useInterfaceProxies, value);
+		super.useInterfaceProxies(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_ignoreUnknownBeanProperties} property on all serializers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_ignoreUnknownBeanProperties
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder ignoreUnknownBeanProperties(boolean value) {
-		return set(BEAN_ignoreUnknownBeanProperties, value);
+		super.ignoreUnknownBeanProperties(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_ignoreUnknownNullBeanProperties} property on all serializers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_ignoreUnknownNullBeanProperties
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder ignoreUnknownNullBeanProperties(boolean value) {
-		return set(BEAN_ignoreUnknownNullBeanProperties, value);
+		super.ignoreUnknownNullBeanProperties(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_ignorePropertiesWithoutSetters} property on all serializers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_ignorePropertiesWithoutSetters
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder ignorePropertiesWithoutSetters(boolean value) {
-		return set(BEAN_ignorePropertiesWithoutSetters, value);
+		super.ignorePropertiesWithoutSetters(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_ignoreInvocationExceptionsOnGetters} property on all serializers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_ignoreInvocationExceptionsOnGetters
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder ignoreInvocationExceptionsOnGetters(boolean value) {
-		return set(BEAN_ignoreInvocationExceptionsOnGetters, value);
+		super.ignoreInvocationExceptionsOnGetters(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_ignoreInvocationExceptionsOnSetters} property on all serializers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_ignoreInvocationExceptionsOnSetters
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder ignoreInvocationExceptionsOnSetters(boolean value) {
-		return set(BEAN_ignoreInvocationExceptionsOnSetters, value);
+		super.ignoreInvocationExceptionsOnSetters(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_sortProperties} property on all serializers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_sortProperties
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder sortProperties(boolean value) {
-		return set(BEAN_sortProperties, value);
-	}
-
-	/**
-	 * Sets the {@link BeanContext#BEAN_notBeanPackages_add} property on all serializers in this group.
-	 *
-	 * @param values The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_notBeanPackages_add
-	 */
-	public SerializerGroupBuilder notBeanPackages(String...values) {
-		return set(BEAN_notBeanPackages_add, values);
-	}
-
-	/**
-	 * Sets the {@link BeanContext#BEAN_notBeanPackages_add} property on all serializers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_notBeanPackages_add
-	 */
-	public SerializerGroupBuilder notBeanPackages(Collection<String> value) {
-		return set(BEAN_notBeanPackages_add, value);
+		super.sortProperties(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_notBeanPackages} property on all serializers in this group.
-	 *
-	 * @param values The values to remove from this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_notBeanPackages
-	 */
-	public SerializerGroupBuilder setNotBeanPackages(String...values) {
-		return set(BEAN_notBeanPackages, values);
+	@Override /* BeanContextBuilder */
+	public SerializerGroupBuilder notBeanPackages(Object...values) {
+		super.notBeanPackages(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_notBeanPackages} property on all serializers in this group.
-	 *
-	 * @param values The values to remove from this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_notBeanPackages
-	 */
-	public SerializerGroupBuilder setNotBeanPackages(Collection<String> values) {
-		return set(BEAN_notBeanPackages, values);
+	@Override /* BeanContextBuilder */
+	public SerializerGroupBuilder notBeanPackages(String...values) {
+		super.notBeanPackages(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_notBeanPackages_remove} property on all serializers in this group.
-	 *
-	 * @param values The values to remove from this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_notBeanPackages_remove
-	 */
-	public SerializerGroupBuilder removeNotBeanPackages(String...values) {
-		return set(BEAN_notBeanPackages_remove, values);
+	@Override /* BeanContextBuilder */
+	public SerializerGroupBuilder notBeanPackages(boolean append, Object...values) {
+		super.notBeanPackages(append, values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_notBeanPackages_remove} property on all serializers in this group.
-	 *
-	 * @param values The values to remove from this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_notBeanPackages_remove
-	 */
-	public SerializerGroupBuilder removeNotBeanPackages(Collection<String> values) {
-		return set(BEAN_notBeanPackages_remove, values);
+	@Override /* BeanContextBuilder */
+	public SerializerGroupBuilder notBeanPackagesRemove(Object...values) {
+		super.notBeanPackagesRemove(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_notBeanClasses_add} property on all serializers in this group.
-	 *
-	 * @param values The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_notBeanClasses_add
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder notBeanClasses(Object...values) {
-		return set(BEAN_notBeanClasses_add, values);
+		super.notBeanClasses(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_notBeanClasses_add} property on all serializers in this group.
-	 *
-	 * @param values The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_notBeanPackages_add
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder notBeanClasses(Class<?>...values) {
-		return set(BEAN_notBeanClasses_add, values);
-	}
-
-	/**
-	 * Sets the {@link BeanContext#BEAN_notBeanClasses} property on all serializers in this group.
-	 *
-	 * @param values The values to add to this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_notBeanClasses
-	 */
-	public SerializerGroupBuilder setNotBeanClasses(Class<?>...values) {
-		return set(BEAN_notBeanClasses, values);
-	}
-
-	/**
-	 * Sets the {@link BeanContext#BEAN_notBeanClasses} property on all serializers in this group.
-	 *
-	 * @param values The values to add to this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_notBeanClasses
-	 */
-	public SerializerGroupBuilder setNotBeanClasses(Collection<Class<?>> values) {
-		return set(BEAN_notBeanClasses, values);
+		super.notBeanClasses(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_notBeanClasses_remove} property on all serializers in this group.
-	 *
-	 * @param values The values to remove from this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_notBeanClasses_remove
-	 */
-	public SerializerGroupBuilder removeNotBeanClasses(Class<?>...values) {
-		return set(BEAN_notBeanClasses_remove, values);
+	@Override /* BeanContextBuilder */
+	public SerializerGroupBuilder notBeanClasses(boolean append, Object...values) {
+		super.notBeanClasses(append, values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_notBeanClasses_remove} property on all serializers in this group.
-	 *
-	 * @param values The values to remove from this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_notBeanClasses_remove
-	 */
-	public SerializerGroupBuilder removeNotBeanClasses(Collection<Class<?>> values) {
-		return set(BEAN_notBeanClasses_remove, values);
+	@Override /* BeanContextBuilder */
+	public SerializerGroupBuilder notBeanClassesRemove(Object...values) {
+		super.notBeanClassesRemove(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beanFilters_add} property on all serializers in this group.
-	 *
-	 * @param values The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beanFilters_add
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder beanFilters(Object...values) {
-		return set(BEAN_beanFilters_add, values);
+		super.beanFilters(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beanFilters_add} property on all serializers in this group.
-	 *
-	 * @param values The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beanFilters_add
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder beanFilters(Class<?>...values) {
-		return set(BEAN_beanFilters_add, values);
+		super.beanFilters(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beanFilters} property on all serializers in this group.
-	 *
-	 * @param append
-	 * 	If <jk>true</jk>, the previous value is appended to.  Otherwise, the previous value is replaced. 
-	 * @param values The values to add to this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beanFilters
-	 */
-	public SerializerGroupBuilder beanFilters(boolean append, Class<?>...values) {
-		return set(append, BEAN_beanFilters, values);
+	@Override /* BeanContextBuilder */
+	public SerializerGroupBuilder beanFilters(boolean append, Object...values) {
+		super.beanFilters(append, values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beanFilters_remove} property on all serializers in this group.
-	 *
-	 * @param values The values to remove from this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beanFilters_remove
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder beanFiltersRemove(Object...values) {
-		return set(BEAN_beanFilters_remove, values);
+		super.beanFiltersRemove(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_pojoSwaps_add} property on all serializers in this group.
-	 *
-	 * @param values The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_pojoSwaps_add
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder pojoSwaps(Object...values) {
-		return set(BEAN_pojoSwaps_add, values);
+		super.pojoSwaps(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_pojoSwaps_add} property on all serializers in this group.
-	 *
-	 * @param values The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_pojoSwaps_add
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder pojoSwaps(Class<?>...values) {
-		return set(BEAN_pojoSwaps_add, values);
-	}
-
-	/**
-	 * Sets the {@link BeanContext#BEAN_pojoSwaps} property on all serializers in this group.
-	 *
-	 * @param values The values to add to this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_pojoSwaps
-	 */
-	public SerializerGroupBuilder setPojoSwaps(Class<?>...values) {
-		return set(BEAN_pojoSwaps, values);
-	}
-
-	/**
-	 * Sets the {@link BeanContext#BEAN_pojoSwaps} property on all serializers in this group.
-	 *
-	 * @param values The values to add to this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_pojoSwaps
-	 */
-	public SerializerGroupBuilder setPojoSwaps(Collection<Class<?>> values) {
-		return set(BEAN_pojoSwaps, values);
+		super.pojoSwaps(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_pojoSwaps_remove} property on all serializers in this group.
-	 *
-	 * @param values The values to remove from this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_pojoSwaps_remove
-	 */
-	public SerializerGroupBuilder removePojoSwaps(Class<?>...values) {
-		return set(BEAN_pojoSwaps_remove, values);
+	@Override /* BeanContextBuilder */
+	public SerializerGroupBuilder pojoSwaps(boolean append, Object...values) {
+		super.pojoSwaps(append, values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_pojoSwaps_remove} property on all serializers in this group.
-	 *
-	 * @param values The values to remove from this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_pojoSwaps_remove
-	 */
-	public SerializerGroupBuilder removePojoSwaps(Collection<Class<?>> values) {
-		return set(BEAN_pojoSwaps_remove, values);
+	@Override /* BeanContextBuilder */
+	public SerializerGroupBuilder pojoSwapsRemove(Object...values) {
+		super.pojoSwapsRemove(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_implClasses} property on all serializers in this group.
-	 *
-	 * @param values The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_implClasses
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder implClasses(Map<String,Class<?>> values) {
-		return set(BEAN_implClasses, values);
+		super.implClasses(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_implClasses} property on all serializers in this group.
-	 *
-	 * @param interfaceClass The interface class.
-	 * @param implClass The implementation class.
-	 * @param <T> The class type of the interface.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_implClasses
-	 */
+	@Override /* BeanContextBuilder */
 	public <T> SerializerGroupBuilder implClass(Class<T> interfaceClass, Class<? extends T> implClass) {
-		return addTo(BEAN_implClasses, interfaceClass.getName(), implClass);
+		super.implClass(interfaceClass, implClass);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_includeProperties} property on all serializers in this group.
-	 *
-	 * @param values The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_includeProperties
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder includeProperties(Map<String,String> values) {
-		return set(BEAN_includeProperties, values);
+		super.includeProperties(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_includeProperties} property on all serializers in this group.
-	 *
-	 * @param beanClassName The bean class name.  Can be a simple name, fully-qualified name, or <js>"*"</js>.
-	 * @param properties Comma-delimited list of property names.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_includeProperties
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder includeProperties(String beanClassName, String properties) {
-		return addTo(BEAN_includeProperties, beanClassName, properties);
+		super.includeProperties(beanClassName, properties);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_includeProperties} property on all serializers in this group.
-	 *
-	 * @param beanClass The bean class.
-	 * @param properties Comma-delimited list of property names.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_includeProperties
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder includeProperties(Class<?> beanClass, String properties) {
-		return addTo(BEAN_includeProperties, beanClass.getName(), properties);
+		super.includeProperties(beanClass, properties);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_excludeProperties} property on all serializers in this group.
-	 *
-	 * @param values The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_excludeProperties
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder excludeProperties(Map<String,String> values) {
-		return set(BEAN_excludeProperties, values);
+		super.excludeProperties(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_excludeProperties} property on all serializers in this group.
-	 *
-	 * @param beanClassName The bean class name.  Can be a simple name, fully-qualified name, or <js>"*"</js>.
-	 * @param properties Comma-delimited list of property names.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_excludeProperties
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder excludeProperties(String beanClassName, String properties) {
-		return addTo(BEAN_excludeProperties, beanClassName, properties);
+		super.excludeProperties(beanClassName, properties);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_excludeProperties} property on all serializers in this group.
-	 *
-	 * @param beanClass The bean class.
-	 * @param properties Comma-delimited list of property names.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_excludeProperties
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder excludeProperties(Class<?> beanClass, String properties) {
-		return addTo(BEAN_excludeProperties, beanClass.getName(), properties);
+		super.excludeProperties(beanClass, properties);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beanDictionary_add} property on all serializers in this group.
-	 *
-	 * @param values The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beanDictionary_add
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder beanDictionary(Object...values) {
-		return set(BEAN_beanDictionary_add, values);
+		super.beanDictionary(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beanDictionary_add} property on all serializers in this group.
-	 *
-	 * @param values The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beanDictionary_add
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder beanDictionary(Class<?>...values) {
-		return set(BEAN_beanDictionary_add, values);
+		super.beanDictionary(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beanDictionary} property on all serializers in this group.
-	 *
-	 * @param append
-	 * 	If <jk>true</jk>, the previous value is appended to.  Otherwise, the previous value is replaced. 
-	 * @param values The values to add to this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beanDictionary
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder beanDictionary(boolean append, Object...values) {
-		return set(append, BEAN_beanDictionary, values);
+		super.beanDictionary(append, values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beanDictionary_remove} property on all serializers in this group.
-	 *
-	 * @param values The values to remove from this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beanDictionary_remove
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder beanDictionaryRemove(Object...values) {
-		return set(BEAN_beanDictionary_remove, values);
+		super.beanDictionaryRemove(values);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_beanTypePropertyName} property on all serializers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_beanTypePropertyName
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder beanTypePropertyName(String value) {
-		return set(BEAN_beanTypePropertyName, value);
+		super.beanTypePropertyName(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_defaultParser} property on all serializers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_defaultParser
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder defaultParser(Class<?> value) {
-		return set(BEAN_defaultParser, value);
+		super.defaultParser(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_locale} property on all serializers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_locale
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder locale(Locale value) {
-		return set(BEAN_locale, value);
+		super.locale(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_timeZone} property on all serializers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_timeZone
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder timeZone(TimeZone value) {
-		return set(BEAN_timeZone, value);
+		super.timeZone(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_mediaType} property on all serializers in this group.
-	 *
-	 * @param value The new value for this property.
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_mediaType
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder mediaType(MediaType value) {
-		return set(BEAN_mediaType, value);
+		super.mediaType(value);
+		return this;
 	}
 
-	/**
-	 * Sets the {@link BeanContext#BEAN_debug} property to <jk>true</jk> on all serializers in this group.
-	 *
-	 * @return This object (for method chaining).
-	 * @see BeanContext#BEAN_debug
-	 */
+	@Override /* BeanContextBuilder */
 	public SerializerGroupBuilder debug() {
-		return set(BEAN_debug, true);
+		super.debug();
+		return this;
 	}
 
-	/**
-	 * Copies all the values in the specified property store into this builder.
-	 * 
-	 * @param copyFrom The property store to copy the values from. 
-	 * @return This object (for method chaining).
-	 */
-	public SerializerGroupBuilder apply(PropertyStore copyFrom) {
-		this.propertyStore.apply(copyFrom);
+	@Override /* ContextBuilder */
+	public SerializerGroupBuilder set(String name, Object value) {
+		super.set(name, value);
 		return this;
 	}
+
+	@Override /* ContextBuilder */
+	public SerializerGroupBuilder set(boolean append, String name, Object value) {
+		super.set(append, name, value);
+		return this;
+	}
+
+	@Override /* ContextBuilder */
+	public SerializerGroupBuilder set(Map<String,Object> properties) {
+		super.set(properties);
+		return this;
+	}
+
+	@Override /* ContextBuilder */
+	public SerializerGroupBuilder add(Map<String,Object> properties) {
+		super.add(properties);
+		return this;
+	}
+
+	@Override /* ContextBuilder */
+	public SerializerGroupBuilder addTo(String name, Object value) {
+		super.addTo(name, value);
+		return this;
+	}
+
+	@Override /* ContextBuilder */
+	public SerializerGroupBuilder addTo(String name, String key, Object value) {
+		super.addTo(name, key, value);
+		return this;
+	}
+
+	@Override /* ContextBuilder */
+	public SerializerGroupBuilder removeFrom(String name, Object value) {
+		super.removeFrom(name, value);
+		return this;
+	}
+
+	@Override /* ContextBuilder */
+	public SerializerGroupBuilder apply(PropertyStore copyFrom) {
+		super.apply(copyFrom);
+		return this;
+	}	
 }


Mime
View raw message