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 2017/12/23 16:50:48 UTC
[07/21] juneau git commit: JUNEAU-76 Improvements to Context/Builder
APIs
http://git-wip-us.apache.org/repos/asf/juneau/blob/227719b2/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java
index 3c2c380..1969ada 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/Serializer.java
@@ -28,7 +28,7 @@ import org.apache.juneau.http.*;
* <p>
* The purpose of this class is:
* <ul>
- * <li>Maintain a read-only configuration state of a serializer (i.e. {@link SerializerContext}).
+ * <li>Maintain a read-only configuration state of a serializer.
* <li>Create session objects used for serializing POJOs (i.e. {@link SerializerSession}).
* <li>Provide convenience methods for serializing POJOs without having to construct session objects.
* </ul>
@@ -37,7 +37,7 @@ import org.apache.juneau.http.*;
* Subclasses should extend directly from {@link OutputStreamSerializer} or {@link WriterSerializer} depending on
* whether it's a stream or character based serializer.
*/
-public abstract class Serializer extends CoreObject {
+public abstract class Serializer extends BeanContext {
//-------------------------------------------------------------------------------------------------------------------
// Configurable properties
@@ -49,7 +49,7 @@ public abstract class Serializer extends CoreObject {
* <b>Configuration property:</b> Max serialization depth.
*
* <ul>
- * <li><b>Name:</b> <js>"Serializer.maxDepth"</js>
+ * <li><b>Name:</b> <js>"Serializer.maxDepth.i"</js>
* <li><b>Data type:</b> <code>Integer</code>
* <li><b>Default:</b> <code>100</code>
* <li><b>Session-overridable:</b> <jk>true</jk>
@@ -60,13 +60,13 @@ public abstract class Serializer extends CoreObject {
* If this depth is exceeded, an exception is thrown.
* This prevents stack overflows from occurring when trying to serialize models with recursive references.
*/
- public static final String SERIALIZER_maxDepth = PREFIX + "maxDepth";
+ public static final String SERIALIZER_maxDepth = PREFIX + "maxDepth.i";
/**
* <b>Configuration property:</b> Initial depth.
*
* <ul>
- * <li><b>Name:</b> <js>"Serializer.initialDepth"</js>
+ * <li><b>Name:</b> <js>"Serializer.initialDepth.i"</js>
* <li><b>Data type:</b> <code>Integer</code>
* <li><b>Default:</b> <code>0</code>
* <li><b>Session-overridable:</b> <jk>true</jk>
@@ -76,13 +76,13 @@ public abstract class Serializer extends CoreObject {
* The initial indentation level at the root.
* Useful when constructing document fragments that need to be indented at a certain level.
*/
- public static final String SERIALIZER_initialDepth = PREFIX + "initialDepth";
+ public static final String SERIALIZER_initialDepth = PREFIX + "initialDepth.i";
/**
* <b>Configuration property:</b> Automatically detect POJO recursions.
*
* <ul>
- * <li><b>Name:</b> <js>"Serializer.detectRecursions"</js>
+ * <li><b>Name:</b> <js>"Serializer.detectRecursions.b"</js>
* <li><b>Data type:</b> <code>Boolean</code>
* <li><b>Default:</b> <jk>false</jk>
* <li><b>Session-overridable:</b> <jk>true</jk>
@@ -107,13 +107,13 @@ public abstract class Serializer extends CoreObject {
* <li>Checking for recursion can cause a small performance penalty.
* </ul>
*/
- public static final String SERIALIZER_detectRecursions = PREFIX + "detectRecursions";
+ public static final String SERIALIZER_detectRecursions = PREFIX + "detectRecursions.b";
/**
* <b>Configuration property:</b> Ignore recursion errors.
*
* <ul>
- * <li><b>Name:</b> <js>"Serializer.ignoreRecursions"</js>
+ * <li><b>Name:</b> <js>"Serializer.ignoreRecursions.b"</js>
* <li><b>Data type:</b> <code>Boolean</code>
* <li><b>Default:</b> <jk>false</jk>
* <li><b>Session-overridable:</b> <jk>true</jk>
@@ -127,13 +127,13 @@ public abstract class Serializer extends CoreObject {
* If <jk>true</jk>, when we encounter the same object when serializing a tree, we set the value to <jk>null</jk>.
* Otherwise, an exception is thrown.
*/
- public static final String SERIALIZER_ignoreRecursions = PREFIX + "ignoreRecursions";
+ public static final String SERIALIZER_ignoreRecursions = PREFIX + "ignoreRecursions.b";
/**
* <b>Configuration property:</b> Use whitespace.
*
* <ul>
- * <li><b>Name:</b> <js>"Serializer.useWhitespace"</js>
+ * <li><b>Name:</b> <js>"Serializer.useWhitespace.b"</js>
* <li><b>Data type:</b> <code>Boolean</code>
* <li><b>Default:</b> <jk>false</jk>
* <li><b>Session-overridable:</b> <jk>true</jk>
@@ -145,13 +145,13 @@ public abstract class Serializer extends CoreObject {
* <p>
* This setting does not apply to the MessagePack serializer.
*/
- public static final String SERIALIZER_useWhitespace = PREFIX + "useWhitespace";
+ public static final String SERIALIZER_useWhitespace = PREFIX + "useWhitespace.b";
/**
* <b>Configuration property:</b> Maximum indentation.
*
* <ul>
- * <li><b>Name:</b> <js>"Serializer.maxIndent"</js>
+ * <li><b>Name:</b> <js>"Serializer.maxIndent.i"</js>
* <li><b>Data type:</b> <code>Integer</code>
* <li><b>Default:</b> <code>100</code>
* <li><b>Session-overridable:</b> <jk>true</jk>
@@ -163,13 +163,13 @@ public abstract class Serializer extends CoreObject {
* <p>
* This setting does not apply to the MessagePack or RDF serializers.
*/
- public static final String SERIALIZER_maxIndent = PREFIX + "maxIndent";
+ public static final String SERIALIZER_maxIndent = PREFIX + "maxIndent.i";
/**
* <b>Configuration property:</b> Add <js>"_type"</js> properties when needed.
*
* <ul>
- * <li><b>Name:</b> <js>"Serializer.addBeanTypeProperties"</js>
+ * <li><b>Name:</b> <js>"Serializer.addBeanTypeProperties.b"</js>
* <li><b>Data type:</b> <code>Boolean</code>
* <li><b>Default:</b> <jk>true</jk>
* <li><b>Session-overridable:</b> <jk>true</jk>
@@ -182,13 +182,13 @@ public abstract class Serializer extends CoreObject {
* For example, when serializing a {@code Map<String,Object>} field, where the bean class cannot be determined from
* the value type.
*/
- public static final String SERIALIZER_addBeanTypeProperties = PREFIX + "addBeanTypeProperties";
+ public static final String SERIALIZER_addBeanTypeProperties = PREFIX + "addBeanTypeProperties.b";
/**
* <b>Configuration property:</b> Quote character.
*
* <ul>
- * <li><b>Name:</b> <js>"Serializer.quoteChar"</js>
+ * <li><b>Name:</b> <js>"Serializer.quoteChar.s"</js>
* <li><b>Data type:</b> <code>Character</code>
* <li><b>Default:</b> <js>'"'</js>
* <li><b>Session-overridable:</b> <jk>true</jk>
@@ -200,13 +200,13 @@ public abstract class Serializer extends CoreObject {
* <p>
* This setting does not apply to the MessagePack or RDF serializers.
*/
- public static final String SERIALIZER_quoteChar = PREFIX + "quoteChar";
+ public static final String SERIALIZER_quoteChar = PREFIX + "quoteChar.s";
/**
* <b>Configuration property:</b> Trim null bean property values.
*
* <ul>
- * <li><b>Name:</b> <js>"Serializer.trimNullProperties"</js>
+ * <li><b>Name:</b> <js>"Serializer.trimNullProperties.b"</js>
* <li><b>Data type:</b> <code>Boolean</code>
* <li><b>Default:</b> <jk>true</jk>
* <li><b>Session-overridable:</b> <jk>true</jk>
@@ -222,13 +222,13 @@ public abstract class Serializer extends CoreObject {
* Map entries with <jk>null</jk> values will be lost.
* </ul>
*/
- public static final String SERIALIZER_trimNullProperties = PREFIX + "trimNullProperties";
+ public static final String SERIALIZER_trimNullProperties = PREFIX + "trimNullProperties.b";
/**
* <b>Configuration property:</b> Trim empty lists and arrays.
*
* <ul>
- * <li><b>Name:</b> <js>"Serializer.trimEmptyLists"</js>
+ * <li><b>Name:</b> <js>"Serializer.trimEmptyLists.b"</js>
* <li><b>Data type:</b> <code>Boolean</code>
* <li><b>Default:</b> <jk>false</jk>
* <li><b>Session-overridable:</b> <jk>true</jk>
@@ -246,13 +246,13 @@ public abstract class Serializer extends CoreObject {
* Bean properties with empty list values will not be set.
* </ul>
*/
- public static final String SERIALIZER_trimEmptyCollections = PREFIX + "trimEmptyLists";
+ public static final String SERIALIZER_trimEmptyCollections = PREFIX + "trimEmptyLists.b";
/**
* <b>Configuration property:</b> Trim empty maps.
*
* <ul>
- * <li><b>Name:</b> <js>"Serializer.trimEmptyMaps"</js>
+ * <li><b>Name:</b> <js>"Serializer.trimEmptyMaps.b"</js>
* <li><b>Data type:</b> <code>Boolean</code>
* <li><b>Default:</b> <jk>false</jk>
* <li><b>Session-overridable:</b> <jk>true</jk>
@@ -268,13 +268,13 @@ public abstract class Serializer extends CoreObject {
* Bean properties with empty map values will not be set.
* </ul>
*/
- public static final String SERIALIZER_trimEmptyMaps = PREFIX + "trimEmptyMaps";
+ public static final String SERIALIZER_trimEmptyMaps = PREFIX + "trimEmptyMaps.b";
/**
* <b>Configuration property:</b> Trim strings.
*
* <ul>
- * <li><b>Name:</b> <js>"Serializer.trimStrings"</js>
+ * <li><b>Name:</b> <js>"Serializer.trimStrings.b"</js>
* <li><b>Data type:</b> <code>Boolean</code>
* <li><b>Default:</b> <jk>false</jk>
* <li><b>Session-overridable:</b> <jk>true</jk>
@@ -283,15 +283,15 @@ public abstract class Serializer extends CoreObject {
* <p>
* If <jk>true</jk>, string values will be trimmed of whitespace using {@link String#trim()} before being serialized.
*/
- public static final String SERIALIZER_trimStrings = PREFIX + "trimStrings";
+ public static final String SERIALIZER_trimStrings = PREFIX + "trimStrings.b";
/**
* <b>Configuration property:</b> URI context bean.
*
* <ul>
- * <li><b>Name:</b> <js>"Serializer.uriContext"</js>
- * <li><b>Data type:</b> {@link UriContext}
- * <li><b>Default:</b> {@link UriContext#DEFAULT}
+ * <li><b>Name:</b> <js>"Serializer.uriContext.s"</js>
+ * <li><b>Data type:</b> JSON {@link String}
+ * <li><b>Default:</b> <js>"{}"</js>
* <li><b>Session-overridable:</b> <jk>true</jk>
* </ul>
*
@@ -303,13 +303,13 @@ public abstract class Serializer extends CoreObject {
* <js>"{authority:'http://localhost:10000',contextRoot:'/myContext',servletPath:'/myServlet',pathInfo:'/foo'}"</js>
* </p>
*/
- public static final String SERIALIZER_uriContext = PREFIX + "uriContext";
+ public static final String SERIALIZER_uriContext = PREFIX + "uriContext.s";
/**
* <b>Configuration property:</b> URI resolution.
*
* <ul>
- * <li><b>Name:</b> <js>"Serializer.uriResolution"</js>
+ * <li><b>Name:</b> <js>"Serializer.uriResolution.s"</js>
* <li><b>Data type:</b> {@link UriResolution}
* <li><b>Default:</b> {@link UriResolution#NONE}
* <li><b>Session-overridable:</b> <jk>true</jk>
@@ -334,13 +334,13 @@ public abstract class Serializer extends CoreObject {
* - Don't do any URL resolution.
* </ul>
*/
- public static final String SERIALIZER_uriResolution = PREFIX + "uriResolution";
+ public static final String SERIALIZER_uriResolution = PREFIX + "uriResolution.s";
/**
* <b>Configuration property:</b> URI relativity.
*
* <ul>
- * <li><b>Name:</b> <js>"Serializer.uriRelativity"</js>
+ * <li><b>Name:</b> <js>"Serializer.uriRelativity.s"</js>
* <li><b>Data type:</b> {@link UriRelativity}
* <li><b>Default:</b> {@link UriRelativity#RESOURCE}
* <li><b>Session-overridable:</b> <jk>true</jk>
@@ -363,13 +363,13 @@ public abstract class Serializer extends CoreObject {
* - Relative URIs should be considered relative to the request URI.
* </ul>
*/
- public static final String SERIALIZER_uriRelativity = PREFIX + "uriRelativity";
+ public static final String SERIALIZER_uriRelativity = PREFIX + "uriRelativity.s";
/**
* <b>Configuration property:</b> Sort arrays and collections alphabetically.
*
* <ul>
- * <li><b>Name:</b> <js>"Serializer.sortCollections"</js>
+ * <li><b>Name:</b> <js>"Serializer.sortCollections.b"</js>
* <li><b>Data type:</b> <code>Boolean</code>
* <li><b>Default:</b> <jk>false</jk>
* <li><b>Session-overridable:</b> <jk>true</jk>
@@ -378,13 +378,13 @@ public abstract class Serializer extends CoreObject {
* <p>
* Note that this introduces a performance penalty.
*/
- public static final String SERIALIZER_sortCollections = PREFIX + "sortCollections";
+ public static final String SERIALIZER_sortCollections = PREFIX + "sortCollections.b";
/**
* <b>Configuration property:</b> Sort maps alphabetically.
*
* <ul>
- * <li><b>Name:</b> <js>"Serializer.sortMaps"</js>
+ * <li><b>Name:</b> <js>"Serializer.sortMaps.b"</js>
* <li><b>Data type:</b> <code>Boolean</code>
* <li><b>Default:</b> <jk>false</jk>
* <li><b>Session-overridable:</b> <jk>true</jk>
@@ -393,13 +393,13 @@ public abstract class Serializer extends CoreObject {
* <p>
* Note that this introduces a performance penalty.
*/
- public static final String SERIALIZER_sortMaps = PREFIX + "sortMaps";
+ public static final String SERIALIZER_sortMaps = PREFIX + "sortMaps.b";
/**
* <b>Configuration property:</b> Abridged output.
*
* <ul>
- * <li><b>Name:</b> <js>"Serializer.abridged"</js>
+ * <li><b>Name:</b> <js>"Serializer.abridged.b"</js>
* <li><b>Data type:</b> <code>Boolean</code>
* <li><b>Default:</b> <jk>false</jk>
* <li><b>Session-overridable:</b> <jk>true</jk>
@@ -413,13 +413,13 @@ public abstract class Serializer extends CoreObject {
* For example, when serializing a POJO with a {@link Bean#typeName()} value, a <js>"_type"</js> will be added when
* this setting is disabled, but not added when it is enabled.
*/
- public static final String SERIALIZER_abridged = PREFIX + "abridged";
+ public static final String SERIALIZER_abridged = PREFIX + "abridged.b";
/**
* <b>Configuration property:</b> Serializer listener.
*
* <ul>
- * <li><b>Name:</b> <js>"Serializer.listener"</js>
+ * <li><b>Name:</b> <js>"Serializer.listener.c"</js>
* <li><b>Data type:</b> <code>Class<? extends SerializerListener></code>
* <li><b>Default:</b> <jk>null</jk>
* <li><b>Session-overridable:</b> <jk>true</jk>
@@ -428,19 +428,65 @@ public abstract class Serializer extends CoreObject {
* <p>
* Class used to listen for errors and warnings that occur during serialization.
*/
- public static final String SERIALIZER_listener = PREFIX + "listener";
+ public static final String SERIALIZER_listener = PREFIX + "listener.c";
+ static final Serializer DEFAULT = new Serializer(PropertyStore2.create().build(), "") {
+ @Override
+ public SerializerSession createSession(SerializerSessionArgs args) {
+ throw new NoSuchMethodError();
+ }
+ };
+
//-------------------------------------------------------------------------------------------------------------------
// Instance
//-------------------------------------------------------------------------------------------------------------------
+ final int maxDepth, initialDepth, maxIndent;
+ final boolean
+ detectRecursions,
+ ignoreRecursions,
+ useWhitespace,
+ addBeanTypeProperties,
+ trimNulls,
+ trimEmptyCollections,
+ trimEmptyMaps,
+ trimStrings,
+ sortCollections,
+ sortMaps,
+ abridged;
+ final char quoteChar;
+ final UriContext uriContext;
+ final UriResolution uriResolution;
+ final UriRelativity uriRelativity;
+ final Class<? extends SerializerListener> listener;
+
private final MediaType[] accept;
private final MediaType produces;
// Hidden constructors to force subclass from OuputStreamSerializer or WriterSerializer.
- Serializer(PropertyStore propertyStore, String produces, String...accept) {
- super(propertyStore);
+ Serializer(PropertyStore2 ps, String produces, String...accept) {
+ super(ps);
+
+ maxDepth = getProperty(SERIALIZER_maxDepth, Integer.class, 100);
+ initialDepth = getProperty(SERIALIZER_initialDepth, Integer.class, 0);
+ detectRecursions = getProperty(SERIALIZER_detectRecursions, boolean.class, false);
+ ignoreRecursions = getProperty(SERIALIZER_ignoreRecursions, boolean.class, false);
+ useWhitespace = getProperty(SERIALIZER_useWhitespace, boolean.class, false);
+ maxIndent = getProperty(SERIALIZER_maxIndent, Integer.class, 100);
+ addBeanTypeProperties = getProperty(SERIALIZER_addBeanTypeProperties, boolean.class, true);
+ trimNulls = getProperty(SERIALIZER_trimNullProperties, boolean.class, true);
+ trimEmptyCollections = getProperty(SERIALIZER_trimEmptyCollections, boolean.class, false);
+ trimEmptyMaps = getProperty(SERIALIZER_trimEmptyMaps, boolean.class, false);
+ trimStrings = getProperty(SERIALIZER_trimStrings, boolean.class, false);
+ sortCollections = getProperty(SERIALIZER_sortCollections, boolean.class, false);
+ sortMaps = getProperty(SERIALIZER_sortMaps, boolean.class, false);
+ abridged = getProperty(SERIALIZER_abridged, boolean.class, false);
+ quoteChar = getProperty(SERIALIZER_quoteChar, String.class, "\"").charAt(0);
+ uriContext = getProperty(SERIALIZER_uriContext, UriContext.class, UriContext.DEFAULT);
+ uriResolution = getProperty(SERIALIZER_uriResolution, UriResolution.class, UriResolution.NONE);
+ uriRelativity = getProperty(SERIALIZER_uriRelativity, UriRelativity.class, UriRelativity.RESOURCE);
+ listener = getClassProperty(SERIALIZER_listener, SerializerListener.class, null);
this.produces = MediaType.forString(produces);
if (accept.length == 0) {
@@ -453,9 +499,9 @@ public abstract class Serializer extends CoreObject {
}
}
- @Override /* CoreObject */
+ @Override /* Context */
public SerializerBuilder builder() {
- return new SerializerBuilder(propertyStore);
+ return null;
}
//--------------------------------------------------------------------------------
@@ -467,7 +513,9 @@ public abstract class Serializer extends CoreObject {
*
* @return <jk>true</jk> if this serializer subclasses from {@link WriterSerializer}.
*/
- public abstract boolean isWriterSerializer();
+ public boolean isWriterSerializer() {
+ return true;
+ }
/**
* Create the session object used for actual serialization of objects.
@@ -487,23 +535,12 @@ public abstract class Serializer extends CoreObject {
// Convenience methods
//--------------------------------------------------------------------------------
- /**
- * Shortcut for calling <code>createSession(<jk>null</jk>)</code>.
- *
- * @return
- * The new session object.
- */
+ @Override /* Context */
public final SerializerSession createSession() {
return createSession(createDefaultSessionArgs());
}
- /**
- * Creates the session arguments object that gets passed to the {@link #createSession(SerializerSessionArgs)} method.
- *
- * @return
- * A new default session arguments object.
- * <p>The arguments can be modified before passing to the {@link #createSession(SerializerSessionArgs)}.
- */
+ @Override /* Context */
public final SerializerSessionArgs createDefaultSessionArgs() {
return new SerializerSessionArgs(ObjectMap.EMPTY_MAP, null, null, null, getResponseContentType(), null);
}
@@ -582,4 +619,30 @@ public abstract class Serializer extends CoreObject {
public final MediaType getResponseContentType() {
return produces;
}
+
+ @Override /* Context */
+ public ObjectMap asMap() {
+ return super.asMap()
+ .append("Serializer", new ObjectMap()
+ .append("maxDepth", maxDepth)
+ .append("initialDepth", initialDepth)
+ .append("detectRecursions", detectRecursions)
+ .append("ignoreRecursions", ignoreRecursions)
+ .append("useWhitespace", useWhitespace)
+ .append("maxIndent", maxIndent)
+ .append("addBeanTypeProperties", addBeanTypeProperties)
+ .append("trimNulls", trimNulls)
+ .append("trimEmptyCollections", trimEmptyCollections)
+ .append("trimEmptyMaps", trimEmptyMaps)
+ .append("trimStrings", trimStrings)
+ .append("sortCollections", sortCollections)
+ .append("sortMaps", sortMaps)
+ .append("parserKnowsRootTypes", abridged)
+ .append("quoteChar", quoteChar)
+ .append("uriContext", uriContext)
+ .append("uriResolution", uriResolution)
+ .append("uriRelativity", uriRelativity)
+ .append("listener", listener)
+ );
+ }
}
http://git-wip-us.apache.org/repos/asf/juneau/blob/227719b2/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerBuilder.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerBuilder.java
index c46b813..a0cbde0 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerBuilder.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerBuilder.java
@@ -23,7 +23,7 @@ import org.apache.juneau.http.*;
/**
* Builder class for building instances of serializers.
*/
-public class SerializerBuilder extends CoreObjectBuilder {
+public class SerializerBuilder extends BeanContextBuilder {
/**
* Constructor, default settings.
@@ -35,15 +35,10 @@ public class SerializerBuilder extends CoreObjectBuilder {
/**
* Constructor.
*
- * @param propertyStore The initial configuration settings for this builder.
+ * @param ps The initial configuration settings for this builder.
*/
- public SerializerBuilder(PropertyStore propertyStore) {
- super(propertyStore);
- }
-
- @Override /* CoreObjectBuilder */
- public Serializer build() {
- return null;
+ public SerializerBuilder(PropertyStore2 ps) {
+ super(ps);
}
@@ -54,13 +49,6 @@ public class SerializerBuilder extends CoreObjectBuilder {
/**
* <b>Configuration property:</b> Max serialization depth.
*
- * <ul>
- * <li><b>Name:</b> <js>"Serializer.maxDepth"</js>
- * <li><b>Data type:</b> <code>Integer</code>
- * <li><b>Default:</b> <code>100</code>
- * <li><b>Session-overridable:</b> <jk>true</jk>
- * </ul>
- *
* <p>
* Abort serialization if specified depth is reached in the POJO tree.
* If this depth is exceeded, an exception is thrown.
@@ -76,19 +64,12 @@ public class SerializerBuilder extends CoreObjectBuilder {
* @see Serializer#SERIALIZER_maxDepth
*/
public SerializerBuilder maxDepth(int value) {
- return property(SERIALIZER_maxDepth, value);
+ return set(SERIALIZER_maxDepth, value);
}
/**
* <b>Configuration property:</b> Initial depth.
*
- * <ul>
- * <li><b>Name:</b> <js>"Serializer.initialDepth"</js>
- * <li><b>Data type:</b> <code>Integer</code>
- * <li><b>Default:</b> <code>0</code>
- * <li><b>Session-overridable:</b> <jk>true</jk>
- * </ul>
- *
* <p>
* The initial indentation level at the root.
* Useful when constructing document fragments that need to be indented at a certain level.
@@ -103,19 +84,12 @@ public class SerializerBuilder extends CoreObjectBuilder {
* @see Serializer#SERIALIZER_initialDepth
*/
public SerializerBuilder initialDepth(int value) {
- return property(SERIALIZER_initialDepth, value);
+ return set(SERIALIZER_initialDepth, value);
}
/**
* <b>Configuration property:</b> Automatically detect POJO recursions.
*
- * <ul>
- * <li><b>Name:</b> <js>"Serializer.detectRecursions"</js>
- * <li><b>Data type:</b> <code>Boolean</code>
- * <li><b>Default:</b> <jk>false</jk>
- * <li><b>Session-overridable:</b> <jk>true</jk>
- * </ul>
- *
* <p>
* Specifies that recursions should be checked for during serialization.
*
@@ -142,19 +116,12 @@ public class SerializerBuilder extends CoreObjectBuilder {
* @see Serializer#SERIALIZER_detectRecursions
*/
public SerializerBuilder detectRecursions(boolean value) {
- return property(SERIALIZER_detectRecursions, value);
+ return set(SERIALIZER_detectRecursions, value);
}
/**
* <b>Configuration property:</b> Ignore recursion errors.
*
- * <ul>
- * <li><b>Name:</b> <js>"Serializer.ignoreRecursions"</js>
- * <li><b>Data type:</b> <code>Boolean</code>
- * <li><b>Default:</b> <jk>false</jk>
- * <li><b>Session-overridable:</b> <jk>true</jk>
- * </ul>
- *
* <p>
* Used in conjunction with {@link Serializer#SERIALIZER_detectRecursions}.
* Setting is ignored if <jsf>SERIALIZER_detectRecursions</jsf> is <jk>false</jk>.
@@ -174,19 +141,12 @@ public class SerializerBuilder extends CoreObjectBuilder {
* @see Serializer#SERIALIZER_ignoreRecursions
*/
public SerializerBuilder ignoreRecursions(boolean value) {
- return property(SERIALIZER_ignoreRecursions, value);
+ return set(SERIALIZER_ignoreRecursions, value);
}
/**
* <b>Configuration property:</b> Use whitespace.
*
- * <ul>
- * <li><b>Name:</b> <js>"Serializer.useWhitepace"</js>
- * <li><b>Data type:</b> <code>Boolean</code>
- * <li><b>Default:</b> <jk>false</jk>
- * <li><b>Session-overridable:</b> <jk>true</jk>
- * </ul>
- *
* <p>
* If <jk>true</jk>, newlines and indentation and spaces are added to the output to improve readability.
*
@@ -200,7 +160,7 @@ public class SerializerBuilder extends CoreObjectBuilder {
* @see Serializer#SERIALIZER_useWhitespace
*/
public SerializerBuilder useWhitespace(boolean value) {
- return property(SERIALIZER_useWhitespace, value);
+ return set(SERIALIZER_useWhitespace, value);
}
/**
@@ -215,13 +175,6 @@ public class SerializerBuilder extends CoreObjectBuilder {
/**
* <b>Configuration property:</b> Maximum indentation.
*
- * <ul>
- * <li><b>Name:</b> <js>"Serializer.maxIndent"</js>
- * <li><b>Data type:</b> <code>Integer</code>
- * <li><b>Default:</b> <code>100</code>
- * <li><b>Session-overridable:</b> <jk>true</jk>
- * </ul>
- *
* <p>
* Specifies the maximum indentation level in the serialized document.
*
@@ -235,19 +188,12 @@ public class SerializerBuilder extends CoreObjectBuilder {
* @see Serializer#SERIALIZER_maxIndent
*/
public SerializerBuilder maxIndent(int value) {
- return property(SERIALIZER_maxIndent, value);
+ return set(SERIALIZER_maxIndent, value);
}
/**
* <b>Configuration property:</b> Add <js>"_type"</js> properties when needed.
*
- * <ul>
- * <li><b>Name:</b> <js>"Serializer.addBeanTypeProperties"</js>
- * <li><b>Data type:</b> <code>Boolean</code>
- * <li><b>Default:</b> <jk>false</jk>
- * <li><b>Session-overridable:</b> <jk>true</jk>
- * </ul>
- *
* <p>
* If <jk>true</jk>, then <js>"_type"</js> properties will be added to beans if their type cannot be inferred
* through reflection.
@@ -266,19 +212,12 @@ public class SerializerBuilder extends CoreObjectBuilder {
* @see Serializer#SERIALIZER_addBeanTypeProperties
*/
public SerializerBuilder addBeanTypeProperties(boolean value) {
- return property(SERIALIZER_addBeanTypeProperties, value);
+ return set(SERIALIZER_addBeanTypeProperties, value);
}
/**
* <b>Configuration property:</b> Quote character.
*
- * <ul>
- * <li><b>Name:</b> <js>"Serializer.quoteChar"</js>
- * <li><b>Data type:</b> <code>Character</code>
- * <li><b>Default:</b> <js>'"'</js>
- * <li><b>Session-overridable:</b> <jk>true</jk>
- * </ul>
- *
* <p>
* This is the character used for quoting attributes and values.
*
@@ -292,7 +231,7 @@ public class SerializerBuilder extends CoreObjectBuilder {
* @see Serializer#SERIALIZER_quoteChar
*/
public SerializerBuilder quoteChar(char value) {
- return property(SERIALIZER_quoteChar, value);
+ return set(SERIALIZER_quoteChar, value);
}
/**
@@ -307,13 +246,6 @@ public class SerializerBuilder extends CoreObjectBuilder {
/**
* <b>Configuration property:</b> Trim null bean property values.
*
- * <ul>
- * <li><b>Name:</b> <js>"Serializer.trimNullProperties"</js>
- * <li><b>Data type:</b> <code>Boolean</code>
- * <li><b>Default:</b> <jk>true</jk>
- * <li><b>Session-overridable:</b> <jk>true</jk>
- * </ul>
- *
* <p>
* If <jk>true</jk>, null bean values will not be serialized to the output.
*
@@ -331,19 +263,12 @@ public class SerializerBuilder extends CoreObjectBuilder {
* @see Serializer#SERIALIZER_trimNullProperties
*/
public SerializerBuilder trimNullProperties(boolean value) {
- return property(SERIALIZER_trimNullProperties, value);
+ return set(SERIALIZER_trimNullProperties, value);
}
/**
* <b>Configuration property:</b> Trim empty lists and arrays.
*
- * <ul>
- * <li><b>Name:</b> <js>"Serializer.trimEmptyLists"</js>
- * <li><b>Data type:</b> <code>Boolean</code>
- * <li><b>Default:</b> <jk>false</jk>
- * <li><b>Session-overridable:</b> <jk>true</jk>
- * </ul>
- *
* <p>
* If <jk>true</jk>, empty list values will not be serialized to the output.
*
@@ -362,19 +287,12 @@ public class SerializerBuilder extends CoreObjectBuilder {
* @see Serializer#SERIALIZER_trimEmptyCollections
*/
public SerializerBuilder trimEmptyCollections(boolean value) {
- return property(SERIALIZER_trimEmptyCollections, value);
+ return set(SERIALIZER_trimEmptyCollections, value);
}
/**
* <b>Configuration property:</b> Trim empty maps.
*
- * <ul>
- * <li><b>Name:</b> <js>"Serializer.trimEmptyMaps"</js>
- * <li><b>Data type:</b> <code>Boolean</code>
- * <li><b>Default:</b> <jk>false</jk>
- * <li><b>Session-overridable:</b> <jk>true</jk>
- * </ul>
- *
* <p>
* If <jk>true</jk>, empty map values will not be serialized to the output.
*
@@ -392,19 +310,12 @@ public class SerializerBuilder extends CoreObjectBuilder {
* @see Serializer#SERIALIZER_trimEmptyMaps
*/
public SerializerBuilder trimEmptyMaps(boolean value) {
- return property(SERIALIZER_trimEmptyMaps, value);
+ return set(SERIALIZER_trimEmptyMaps, value);
}
/**
* <b>Configuration property:</b> Trim strings.
*
- * <ul>
- * <li><b>Name:</b> <js>"Serializer.trimStrings"</js>
- * <li><b>Data type:</b> <code>Boolean</code>
- * <li><b>Default:</b> <jk>false</jk>
- * <li><b>Session-overridable:</b> <jk>true</jk>
- * </ul>
- *
* <p>
* If <jk>true</jk>, string values will be trimmed of whitespace using {@link String#trim()} before being serialized.
*
@@ -418,19 +329,12 @@ public class SerializerBuilder extends CoreObjectBuilder {
* @see Serializer#SERIALIZER_trimStrings
*/
public SerializerBuilder trimStrings(boolean value) {
- return property(SERIALIZER_trimStrings, value);
+ return set(SERIALIZER_trimStrings, value);
}
/**
* <b>Configuration property:</b> URI context bean.
*
- * <ul>
- * <li><b>Name:</b> <js>"Serializer.uriContext"</js>
- * <li><b>Data type:</b> {@link UriContext}
- * <li><b>Default:</b> {@link UriContext#DEFAULT}
- * <li><b>Session-overridable:</b> <jk>true</jk>
- * </ul>
- *
* <p>
* Bean used for resolution of URIs to absolute or root-relative form.
*
@@ -449,19 +353,12 @@ public class SerializerBuilder extends CoreObjectBuilder {
* @see Serializer#SERIALIZER_uriContext
*/
public SerializerBuilder uriContext(UriContext value) {
- return property(SERIALIZER_uriContext, value);
+ return set(SERIALIZER_uriContext, value);
}
/**
* <b>Configuration property:</b> URI resolution.
*
- * <ul>
- * <li><b>Name:</b> <js>"Serializer.uriResolution"</js>
- * <li><b>Data type:</b> {@link UriResolution}
- * <li><b>Default:</b> {@link UriResolution#ROOT_RELATIVE}
- * <li><b>Session-overridable:</b> <jk>true</jk>
- * </ul>
- *
* <p>
* Defines the resolution level for URIs when serializing any of the following:
* <ul>
@@ -491,19 +388,12 @@ public class SerializerBuilder extends CoreObjectBuilder {
* @see Serializer#SERIALIZER_uriResolution
*/
public SerializerBuilder uriResolution(UriResolution value) {
- return property(SERIALIZER_uriResolution, value);
+ return set(SERIALIZER_uriResolution, value);
}
/**
* <b>Configuration property:</b> URI relativity.
*
- * <ul>
- * <li><b>Name:</b> <js>"Serializer.uriRelativity"</js>
- * <li><b>Data type:</b> {@link UriRelativity}
- * <li><b>Default:</b> {@link UriRelativity#RESOURCE}
- * <li><b>Session-overridable:</b> <jk>true</jk>
- * </ul>
- *
* <p>
* Defines what relative URIs are relative to when serializing any of the following:
* <ul>
@@ -531,19 +421,12 @@ public class SerializerBuilder extends CoreObjectBuilder {
* @see Serializer#SERIALIZER_uriRelativity
*/
public SerializerBuilder uriRelativity(UriRelativity value) {
- return property(SERIALIZER_uriRelativity, value);
+ return set(SERIALIZER_uriRelativity, value);
}
/**
* <b>Configuration property:</b> Sort arrays and collections alphabetically.
*
- * <ul>
- * <li><b>Name:</b> <js>"Serializer.sortCollections"</js>
- * <li><b>Data type:</b> <code>Boolean</code>
- * <li><b>Default:</b> <jk>false</jk>
- * <li><b>Session-overridable:</b> <jk>true</jk>
- * </ul>
- *
* <h5 class='section'>Notes:</h5>
* <ul>
* <li>This is equivalent to calling <code>property(<jsf>SERIALIZER_sortCollections</jsf>, value)</code>.
@@ -555,19 +438,12 @@ public class SerializerBuilder extends CoreObjectBuilder {
* @see Serializer#SERIALIZER_sortCollections
*/
public SerializerBuilder sortCollections(boolean value) {
- return property(SERIALIZER_sortCollections, value);
+ return set(SERIALIZER_sortCollections, value);
}
/**
* <b>Configuration property:</b> Sort maps alphabetically.
*
- * <ul>
- * <li><b>Name:</b> <js>"Serializer.sortMaps"</js>
- * <li><b>Data type:</b> <code>Boolean</code>
- * <li><b>Default:</b> <jk>false</jk>
- * <li><b>Session-overridable:</b> <jk>true</jk>
- * </ul>
- *
* <h5 class='section'>Notes:</h5>
* <ul>
* <li>This is equivalent to calling <code>property(<jsf>SERIALIZER_sortMaps</jsf>, value)</code>.
@@ -579,19 +455,12 @@ public class SerializerBuilder extends CoreObjectBuilder {
* @see Serializer#SERIALIZER_sortMaps
*/
public SerializerBuilder sortMaps(boolean value) {
- return property(SERIALIZER_sortMaps, value);
+ return set(SERIALIZER_sortMaps, value);
}
/**
* <b>Configuration property:</b> Abridged output.
*
- * <ul>
- * <li><b>Name:</b> <js>"Serializer.parserKnowsRootTypes"</js>
- * <li><b>Data type:</b> <code>Boolean</code>
- * <li><b>Default:</b> <jk>false</jk>
- * <li><b>Session-overridable:</b> <jk>true</jk>
- * </ul>
- *
* <p>
* When enabled, it is assumed that the parser knows the exact Java POJO type being parsed, and therefore top-level
* type information that might normally be included to determine the data type will not be serialized.
@@ -605,19 +474,12 @@ public class SerializerBuilder extends CoreObjectBuilder {
* @see Serializer#SERIALIZER_sortMaps
*/
public SerializerBuilder abridged(boolean value) {
- return property(SERIALIZER_abridged, value);
+ return set(SERIALIZER_abridged, value);
}
/**
* <b>Configuration property:</b> Serializer listener.
*
- * <ul>
- * <li><b>Name:</b> <js>"Serializer.listener"</js>
- * <li><b>Data type:</b> <code>Class<? extends SerializerListener></code>
- * <li><b>Default:</b> <jk>null</jk>
- * <li><b>Session-overridable:</b> <jk>true</jk>
- * </ul>
- *
* <p>
* Class used to listen for errors and warnings that occur during serialization.
*
@@ -625,420 +487,419 @@ public class SerializerBuilder extends CoreObjectBuilder {
* @return This object (for method chaining).
*/
public SerializerBuilder listener(Class<? extends SerializerListener> value) {
- return property(SERIALIZER_listener, value);
+ return set(SERIALIZER_listener, value);
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder beansRequireDefaultConstructor(boolean value) {
super.beansRequireDefaultConstructor(value);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder beansRequireSerializable(boolean value) {
super.beansRequireSerializable(value);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder beansRequireSettersForGetters(boolean value) {
super.beansRequireSettersForGetters(value);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder beansRequireSomeProperties(boolean value) {
super.beansRequireSomeProperties(value);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder beanMapPutReturnsOldValue(boolean value) {
super.beanMapPutReturnsOldValue(value);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder beanConstructorVisibility(Visibility value) {
super.beanConstructorVisibility(value);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder beanClassVisibility(Visibility value) {
super.beanClassVisibility(value);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder beanFieldVisibility(Visibility value) {
super.beanFieldVisibility(value);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder methodVisibility(Visibility value) {
super.methodVisibility(value);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder useJavaBeanIntrospector(boolean value) {
super.useJavaBeanIntrospector(value);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder useInterfaceProxies(boolean value) {
super.useInterfaceProxies(value);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder ignoreUnknownBeanProperties(boolean value) {
super.ignoreUnknownBeanProperties(value);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder ignoreUnknownNullBeanProperties(boolean value) {
super.ignoreUnknownNullBeanProperties(value);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder ignorePropertiesWithoutSetters(boolean value) {
super.ignorePropertiesWithoutSetters(value);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder ignoreInvocationExceptionsOnGetters(boolean value) {
super.ignoreInvocationExceptionsOnGetters(value);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder ignoreInvocationExceptionsOnSetters(boolean value) {
super.ignoreInvocationExceptionsOnSetters(value);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder sortProperties(boolean value) {
super.sortProperties(value);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder notBeanPackages(String...values) {
super.notBeanPackages(values);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder notBeanPackages(Collection<String> values) {
super.notBeanPackages(values);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder setNotBeanPackages(String...values) {
super.setNotBeanPackages(values);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder setNotBeanPackages(Collection<String> values) {
super.setNotBeanPackages(values);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder removeNotBeanPackages(String...values) {
super.removeNotBeanPackages(values);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder removeNotBeanPackages(Collection<String> values) {
super.removeNotBeanPackages(values);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder notBeanClasses(Class<?>...values) {
super.notBeanClasses(values);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder notBeanClasses(Collection<Class<?>> values) {
super.notBeanClasses(values);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder setNotBeanClasses(Class<?>...values) {
super.setNotBeanClasses(values);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder setNotBeanClasses(Collection<Class<?>> values) {
super.setNotBeanClasses(values);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder removeNotBeanClasses(Class<?>...values) {
super.removeNotBeanClasses(values);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder removeNotBeanClasses(Collection<Class<?>> values) {
super.removeNotBeanClasses(values);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder beanFilters(Class<?>...values) {
super.beanFilters(values);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder beanFilters(Collection<Class<?>> values) {
super.beanFilters(values);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder setBeanFilters(Class<?>...values) {
super.setBeanFilters(values);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder setBeanFilters(Collection<Class<?>> values) {
super.setBeanFilters(values);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder removeBeanFilters(Class<?>...values) {
super.removeBeanFilters(values);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder removeBeanFilters(Collection<Class<?>> values) {
super.removeBeanFilters(values);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder pojoSwaps(Class<?>...values) {
super.pojoSwaps(values);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder pojoSwaps(Collection<Class<?>> values) {
super.pojoSwaps(values);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder setPojoSwaps(Class<?>...values) {
super.setPojoSwaps(values);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder setPojoSwaps(Collection<Class<?>> values) {
super.setPojoSwaps(values);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder removePojoSwaps(Class<?>...values) {
super.removePojoSwaps(values);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder removePojoSwaps(Collection<Class<?>> values) {
super.removePojoSwaps(values);
return this;
}
- @Override /* CoreObjectBuilder */
- public SerializerBuilder implClasses(Map<Class<?>,Class<?>> values) {
+ @Override /* ContextBuilder */
+ public SerializerBuilder implClasses(Map<String,Class<?>> values) {
super.implClasses(values);
return this;
}
- @Override /* CoreObjectBuilder */
- public <T> CoreObjectBuilder implClass(Class<T> interfaceClass, Class<? extends T> implClass) {
+ @Override /* ContextBuilder */
+ public <T> SerializerBuilder implClass(Class<T> interfaceClass, Class<? extends T> implClass) {
super.implClass(interfaceClass, implClass);
return this;
}
- @Override /* CoreObjectBuilder */
- public CoreObjectBuilder includeProperties(Map<String,String> values) {
+ @Override /* ContextBuilder */
+ public SerializerBuilder includeProperties(Map<String,String> values) {
super.includeProperties(values);
return this;
}
- @Override /* CoreObjectBuilder */
- public CoreObjectBuilder includeProperties(String beanClassName, String properties) {
+ @Override /* ContextBuilder */
+ public SerializerBuilder includeProperties(String beanClassName, String properties) {
super.includeProperties(beanClassName, properties);
return this;
}
- @Override /* CoreObjectBuilder */
- public CoreObjectBuilder includeProperties(Class<?> beanClass, String properties) {
+ @Override /* ContextBuilder */
+ public SerializerBuilder includeProperties(Class<?> beanClass, String properties) {
super.includeProperties(beanClass, properties);
return this;
}
- @Override /* CoreObjectBuilder */
- public CoreObjectBuilder excludeProperties(Map<String,String> values) {
+ @Override /* ContextBuilder */
+ public SerializerBuilder excludeProperties(Map<String,String> values) {
super.excludeProperties(values);
return this;
}
- @Override /* CoreObjectBuilder */
- public CoreObjectBuilder excludeProperties(String beanClassName, String properties) {
+ @Override /* ContextBuilder */
+ public SerializerBuilder excludeProperties(String beanClassName, String properties) {
super.excludeProperties(beanClassName, properties);
return this;
}
- @Override /* CoreObjectBuilder */
- public CoreObjectBuilder excludeProperties(Class<?> beanClass, String properties) {
+ @Override /* ContextBuilder */
+ public SerializerBuilder excludeProperties(Class<?> beanClass, String properties) {
super.excludeProperties(beanClass, properties);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder beanDictionary(Class<?>...values) {
super.beanDictionary(values);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder beanDictionary(Collection<Class<?>> values) {
super.beanDictionary(values);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder setBeanDictionary(Class<?>...values) {
super.setBeanDictionary(values);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder setBeanDictionary(Collection<Class<?>> values) {
super.setBeanDictionary(values);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder removeFromBeanDictionary(Class<?>...values) {
super.removeFromBeanDictionary(values);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder removeFromBeanDictionary(Collection<Class<?>> values) {
super.removeFromBeanDictionary(values);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder beanTypePropertyName(String value) {
super.beanTypePropertyName(value);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder defaultParser(Class<?> value) {
super.defaultParser(value);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder locale(Locale value) {
super.locale(value);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder timeZone(TimeZone value) {
super.timeZone(value);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder mediaType(MediaType value) {
super.mediaType(value);
return this;
}
- @Override /* CoreObjectBuilder */
+ @Override /* ContextBuilder */
public SerializerBuilder debug() {
super.debug();
return this;
}
- @Override /* CoreObjectBuilder */
- public SerializerBuilder property(String name, Object value) {
- super.property(name, value);
- return this;
- }
-
- @Override /* CoreObjectBuilder */
- public SerializerBuilder properties(Map<String,Object> properties) {
- super.properties(properties);
+ @Override /* ContextBuilder */
+ public SerializerBuilder set(String name, Object value) {
+ super.set(name, value);
return this;
}
- @Override /* CoreObjectBuilder */
- public SerializerBuilder addToProperty(String name, Object value) {
- super.addToProperty(name, value);
+ @Override /* ContextBuilder */
+ public SerializerBuilder set(Map<String,Object> properties) {
+ super.set(properties);
return this;
}
- @Override /* CoreObjectBuilder */
- public SerializerBuilder putToProperty(String name, Object key, Object value) {
- super.putToProperty(name, key, value);
+ @Override /* ContextBuilder */
+ public SerializerBuilder add(Map<String,Object> properties) {
+ super.add(properties);
return this;
}
- @Override /* CoreObjectBuilder */
- public SerializerBuilder putToProperty(String name, Object value) {
- super.putToProperty(name, value);
+ @Override /* ContextBuilder */
+ public SerializerBuilder addTo(String name, Object value) {
+ super.addTo(name, value);
return this;
}
- @Override /* CoreObjectBuilder */
- public SerializerBuilder removeFromProperty(String name, Object value) {
- super.removeFromProperty(name, value);
+ @Override /* ContextBuilder */
+ public SerializerBuilder addTo(String name, String key, Object value) {
+ super.addTo(name, key, value);
return this;
}
- @Override /* CoreObjectBuilder */
- public SerializerBuilder classLoader(ClassLoader classLoader) {
- super.classLoader(classLoader);
+ @Override /* ContextBuilder */
+ public SerializerBuilder removeFrom(String name, Object value) {
+ super.removeFrom(name, value);
return this;
}
- @Override /* CoreObjectBuilder */
- public SerializerBuilder apply(PropertyStore copyFrom) {
+ @Override /* ContextBuilder */
+ public SerializerBuilder apply(PropertyStore2 copyFrom) {
super.apply(copyFrom);
return this;
}
+
+ @Override /* Context */
+ public Serializer build() {
+ return null;
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/juneau/blob/227719b2/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerContext.java
----------------------------------------------------------------------
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerContext.java
deleted file mode 100644
index 8d31f4f..0000000
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerContext.java
+++ /dev/null
@@ -1,102 +0,0 @@
-// ***************************************************************************************************************************
-// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file *
-// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file *
-// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance *
-// * with the License. You may obtain a copy of the License at *
-// * *
-// * http://www.apache.org/licenses/LICENSE-2.0 *
-// * *
-// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an *
-// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the *
-// * specific language governing permissions and limitations under the License. *
-// ***************************************************************************************************************************
-package org.apache.juneau.serializer;
-
-import static org.apache.juneau.serializer.Serializer.*;
-
-import org.apache.juneau.*;
-
-/**
- * Contains a snapshot-in-time read-only copy of the settings on the {@link Serializer} class.
- */
-public class SerializerContext extends BeanContext {
-
- /**
- * Default context with all default values.
- */
- static final SerializerContext DEFAULT = new SerializerContext(PropertyStore.create());
-
-
- final int maxDepth, initialDepth, maxIndent;
- final boolean
- detectRecursions,
- ignoreRecursions,
- useWhitespace,
- addBeanTypeProperties,
- trimNulls,
- trimEmptyCollections,
- trimEmptyMaps,
- trimStrings,
- sortCollections,
- sortMaps,
- abridged;
- final char quoteChar;
- final UriContext uriContext;
- final UriResolution uriResolution;
- final UriRelativity uriRelativity;
- final Class<? extends SerializerListener> listener;
-
- /**
- * Constructor.
- *
- * @param ps The property store that created this context.
- */
- public SerializerContext(PropertyStore ps) {
- super(ps);
- maxDepth = ps.getProperty(SERIALIZER_maxDepth, int.class, 100);
- initialDepth = ps.getProperty(SERIALIZER_initialDepth, int.class, 0);
- detectRecursions = ps.getProperty(SERIALIZER_detectRecursions, boolean.class, false);
- ignoreRecursions = ps.getProperty(SERIALIZER_ignoreRecursions, boolean.class, false);
- useWhitespace = ps.getProperty(SERIALIZER_useWhitespace, boolean.class, false);
- maxIndent = ps.getProperty(SERIALIZER_maxIndent, int.class, 100);
- addBeanTypeProperties = ps.getProperty(SERIALIZER_addBeanTypeProperties, boolean.class, true);
- trimNulls = ps.getProperty(SERIALIZER_trimNullProperties, boolean.class, true);
- trimEmptyCollections = ps.getProperty(SERIALIZER_trimEmptyCollections, boolean.class, false);
- trimEmptyMaps = ps.getProperty(SERIALIZER_trimEmptyMaps, boolean.class, false);
- trimStrings = ps.getProperty(SERIALIZER_trimStrings, boolean.class, false);
- sortCollections = ps.getProperty(SERIALIZER_sortCollections, boolean.class, false);
- sortMaps = ps.getProperty(SERIALIZER_sortMaps, boolean.class, false);
- abridged = ps.getProperty(SERIALIZER_abridged, boolean.class, false);
- quoteChar = ps.getProperty(SERIALIZER_quoteChar, String.class, "\"").charAt(0);
- uriContext = ps.getProperty(SERIALIZER_uriContext, UriContext.class, UriContext.DEFAULT);
- uriResolution = ps.getProperty(SERIALIZER_uriResolution, UriResolution.class, UriResolution.NONE);
- uriRelativity = ps.getProperty(SERIALIZER_uriRelativity, UriRelativity.class, UriRelativity.RESOURCE);
- listener = ps.getProperty(SERIALIZER_listener, Class.class, null);
- }
-
- @Override /* Context */
- public ObjectMap asMap() {
- return super.asMap()
- .append("SerializerContext", new ObjectMap()
- .append("maxDepth", maxDepth)
- .append("initialDepth", initialDepth)
- .append("detectRecursions", detectRecursions)
- .append("ignoreRecursions", ignoreRecursions)
- .append("useWhitespace", useWhitespace)
- .append("maxIndent", maxIndent)
- .append("addBeanTypeProperties", addBeanTypeProperties)
- .append("trimNulls", trimNulls)
- .append("trimEmptyCollections", trimEmptyCollections)
- .append("trimEmptyMaps", trimEmptyMaps)
- .append("trimStrings", trimStrings)
- .append("sortCollections", sortCollections)
- .append("sortMaps", sortMaps)
- .append("parserKnowsRootTypes", abridged)
- .append("quoteChar", quoteChar)
- .append("uriContext", uriContext)
- .append("uriResolution", uriResolution)
- .append("uriRelativity", uriRelativity)
- .append("listener", listener)
- );
- }
-}
http://git-wip-us.apache.org/repos/asf/juneau/blob/227719b2/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 9b49e8f..da475d9 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
@@ -70,8 +70,7 @@ public final class SerializerGroup {
private final List<MediaType> mediaTypesList;
private final Serializer[] mediaTypeSerializers;
private final List<Serializer> serializers;
- private final PropertyStore propertyStore;
- private final BeanContext beanContext;
+ private final PropertyStore2 propertyStore;
/**
* Instantiates a new clean-slate {@link SerializerGroupBuilder} object.
@@ -97,7 +96,7 @@ public final class SerializerGroup {
/**
* Constructor.
*
- * @param propertyStore
+ * @param ps
* The modifiable properties that were used to initialize the serializers.
* A snapshot of these will be made so that we can clone and modify this group.
* @param serializers
@@ -105,9 +104,8 @@ public final class SerializerGroup {
* The order is important because they will be tried in reverse order (e.g.newer first) in which they will be tried
* to match against media types.
*/
- public SerializerGroup(PropertyStore propertyStore, Serializer[] serializers) {
- this.propertyStore = propertyStore.copy();
- this.beanContext = propertyStore.getBeanContext();
+ public SerializerGroup(PropertyStore2 ps, Serializer[] serializers) {
+ this.propertyStore = ps;
this.serializers = Collections.unmodifiableList(new ArrayList<>(Arrays.asList(serializers)));
List<MediaType> lmt = new ArrayList<>();
@@ -255,8 +253,8 @@ public final class SerializerGroup {
*
* @return A new copy of the property store passed in to the constructor.
*/
- public PropertyStore createPropertyStore() {
- return propertyStore.copy();
+ public PropertyStore2 getPropertyStore() {
+ return propertyStore;
}
/**
@@ -267,13 +265,4 @@ public final class SerializerGroup {
public List<Serializer> getSerializers() {
return serializers;
}
-
- /**
- * Returns a bean context with the same properties as this group.
- *
- * @return The bean context.
- */
- public BeanContext getBeanContext() {
- return beanContext;
- }
}