This is an automated email from the ASF dual-hosted git repository.

jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git


The following commit(s) were added to refs/heads/master by this push:
     new 5dac962  Serializer API cleanup.
5dac962 is described below

commit 5dac962223056ce1dd95390c4e840f6e7865235b
Author: JamesBognar <jamesbog...@apache.org>
AuthorDate: Sun Jul 8 20:16:33 2018 -0400

    Serializer API cleanup.
---
 .../apache/juneau/msgpack/MsgPackSerializer.java   | 11 +++++-
 .../juneau/msgpack/MsgPackSerializerSession.java   | 27 ++++++-------
 .../juneau/serializer/OutputStreamSerializer.java  | 17 +++++++-
 .../serializer/OutputStreamSerializerSession.java  | 22 +++++++++--
 .../org/apache/juneau/serializer/Serializer.java   |  2 +-
 .../apache/juneau/serializer/WriterSerializer.java | 43 ++++++++++++++++++--
 .../juneau/serializer/WriterSerializerSession.java | 46 +++++++++++-----------
 .../xmlschema/XmlSchemaSerializerSession.java      | 15 -------
 .../juneau/examples/rest/RootContentTest.java      | 10 ++---
 9 files changed, 125 insertions(+), 68 deletions(-)

diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
index 36d9a67..4407d3a 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializer.java
@@ -110,7 +110,7 @@ public class MsgPackSerializer extends 
OutputStreamSerializer {
        // Instance
        
//-------------------------------------------------------------------------------------------------------------------
 
-       final boolean
+       private final boolean
                addBeanTypes;
 
        /**
@@ -149,6 +149,15 @@ public class MsgPackSerializer extends 
OutputStreamSerializer {
                return new MsgPackSerializerSession(this, args);
        }
 
+       
//-----------------------------------------------------------------------------------------------------------------
+       // Properties
+       
//-----------------------------------------------------------------------------------------------------------------
+
+       @Override
+       protected final boolean isAddBeanTypes() {
+               return addBeanTypes;
+       }
+
        @Override /* Context */
        public ObjectMap asMap() {
                return super.asMap()
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerSession.java
index 7196421..15bc2d8 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerSession.java
@@ -12,8 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.msgpack;
 
-import static org.apache.juneau.msgpack.MsgPackSerializer.*;
-
 import java.util.*;
 
 import org.apache.juneau.*;
@@ -30,8 +28,7 @@ import org.apache.juneau.transform.*;
  */
 public final class MsgPackSerializerSession extends 
OutputStreamSerializerSession {
 
-       private final boolean
-               addBeanTypes;
+       private final MsgPackSerializer ctx;
 
        /**
         * Create a new session using properties specified in the context.
@@ -47,27 +44,16 @@ public final class MsgPackSerializerSession extends 
OutputStreamSerializerSessio
         */
        protected MsgPackSerializerSession(MsgPackSerializer ctx, 
SerializerSessionArgs args) {
                super(ctx, args);
-               addBeanTypes = getProperty(MSGPACK_addBeanTypes, boolean.class, 
ctx.addBeanTypes);
+               this.ctx = ctx;
        }
 
        @Override /* Session */
        public ObjectMap asMap() {
                return super.asMap()
                        .append("MsgPackSerializerSession", new ObjectMap()
-                               .append("addBeanTypes", addBeanTypes)
                        );
        }
 
-       /**
-        * Returns the {@link MsgPackSerializer#MSGPACK_addBeanTypes} setting 
value for this session.
-        *
-        * @return The {@link MsgPackSerializer#MSGPACK_addBeanTypes} setting 
value for this session.
-        */
-       @Override /* SerializerSession */
-       protected final boolean isAddBeanTypes() {
-               return addBeanTypes;
-       }
-
        @Override /* SerializerSession */
        protected void doSerialize(SerializerPipe out, Object o) throws 
Exception {
                serializeAnything(getMsgPackOutputStream(out), o, 
getExpectedRootType(o), "root", null);
@@ -234,4 +220,13 @@ public final class MsgPackSerializerSession extends 
OutputStreamSerializerSessio
                for (Object o : l)
                        serializeAnything(out, o, elementType, "<iterator>", 
null);
        }
+
+       
//-----------------------------------------------------------------------------------------------------------------
+       // Properties
+       
//-----------------------------------------------------------------------------------------------------------------
+
+       @Override
+       protected final boolean isAddBeanTypes() {
+               return ctx.isAddBeanTypes();
+       }
 }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializer.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializer.java
index 21fda75..683f5d5 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializer.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializer.java
@@ -80,7 +80,7 @@ public abstract class OutputStreamSerializer extends 
Serializer {
        // Instance
        
//-------------------------------------------------------------------------------------------------------------------
 
-       final BinaryFormat binaryFormat;
+       private final BinaryFormat binaryFormat;
 
        /**
         * Constructor.
@@ -145,6 +145,21 @@ public abstract class OutputStreamSerializer extends 
Serializer {
                return createSession(createDefaultSessionArgs()).serialize(o);
        }
 
+       
//-----------------------------------------------------------------------------------------------------------------
+       // Properties
+       
//-----------------------------------------------------------------------------------------------------------------
+
+       /**
+        * Configuration property:  Binary output format.
+        *
+        * @see #OSSERIALIZER_binaryFormat
+        * @return
+        *      The format to use for the {@link #serializeToString(Object)} 
method on stream-based serializers when converting byte arrays to strings.
+        */
+       protected final BinaryFormat getBinaryFormat() {
+               return binaryFormat;
+       }
+
        @Override /* Context */
        public ObjectMap asMap() {
                return super.asMap()
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializerSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializerSession.java
index 8e77697..18e95e6 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializerSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/OutputStreamSerializerSession.java
@@ -32,7 +32,7 @@ import org.apache.juneau.internal.*;
  */
 public abstract class OutputStreamSerializerSession extends SerializerSession {
 
-       private final BinaryFormat binaryFormat;
+       private final OutputStreamSerializer ctx;
 
        /**
         * Create a new session using properties specified in the context.
@@ -48,8 +48,7 @@ public abstract class OutputStreamSerializerSession extends 
SerializerSession {
         */
        protected OutputStreamSerializerSession(OutputStreamSerializer ctx, 
SerializerSessionArgs args) {
                super(ctx, args);
-
-               binaryFormat = getProperty(OSSERIALIZER_binaryFormat, 
BinaryFormat.class, ctx.binaryFormat);
+               this.ctx = ctx;
        }
 
        /**
@@ -84,11 +83,26 @@ public abstract class OutputStreamSerializerSession extends 
SerializerSession {
        @Override /* SerializerSession */
        public final String serializeToString(Object o) throws 
SerializeException {
                byte[] b = serialize(o);
-               switch(binaryFormat) {
+               switch(getBinaryFormat()) {
                        case SPACED_HEX:  return StringUtils.toSpacedHex(b);
                        case HEX:  return StringUtils.toHex(b);
                        case BASE64:  return StringUtils.base64Encode(b);
                        default: return null;
                }
        }
+
+       
//-----------------------------------------------------------------------------------------------------------------
+       // Properties
+       
//-----------------------------------------------------------------------------------------------------------------
+
+       /**
+        * Configuration property:  Binary output format.
+        *
+        * @see #OSSERIALIZER_binaryFormat
+        * @return
+        *      The format to use for the {@link #serializeToString(Object)} 
method on stream-based serializers when converting byte arrays to strings.
+        */
+       protected final BinaryFormat getBinaryFormat() {
+               return ctx.getBinaryFormat();
+       }
 }
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 9396588..9891917 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
@@ -1137,7 +1137,7 @@ public abstract class Serializer extends BeanContext {
         *      <jk>true</jk> if <js>"_type"</js> properties added to beans if 
their type cannot be inferred
         *      through reflection.
         */
-       protected final boolean isAddBeanTypes() {
+       protected boolean isAddBeanTypes() {
                return addBeanTypes;
        }
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializer.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializer.java
index 3a6d688..b7b4786 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializer.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializer.java
@@ -157,9 +157,9 @@ public abstract class WriterSerializer extends Serializer {
        // Instance
        
//-------------------------------------------------------------------------------------------------------------------
 
-       final int maxIndent;
-       final boolean useWhitespace;
-       final char quoteChar;
+       private final int maxIndent;
+       private final boolean useWhitespace;
+       private final char quoteChar;
 
        /**
         * Constructor.
@@ -264,6 +264,43 @@ public abstract class WriterSerializer extends Serializer {
                return this;
        }
 
+       
//-----------------------------------------------------------------------------------------------------------------
+       // Properties
+       
//-----------------------------------------------------------------------------------------------------------------
+
+       /**
+        * Configuration property:  Maximum indentation.
+        *
+        * @see #WSERIALIZER_maxIndent
+        * @return
+        *      The maximum indentation level in the serialized document.
+        */
+       protected final int getMaxIndent() {
+               return maxIndent;
+       }
+
+       /**
+        * Configuration property:  Use whitespace.
+        *
+        * @see #WSERIALIZER_useWhitespace
+        * @return
+        *      <jk>true</jk> if whitespace is added to the output to improve 
readability.
+        */
+       protected final boolean isUseWhitespace() {
+               return useWhitespace;
+       }
+
+       /**
+        * Configuration property:  Quote character.
+        *
+        * @see #WSERIALIZER_quoteChar
+        * @return
+        *      The character used for quoting attributes and values.
+        */
+       protected final char getQuoteChar() {
+               return quoteChar;
+       }
+
        @Override /* Context */
        public ObjectMap asMap() {
                return super.asMap()
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializerSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializerSession.java
index 9ce6850..f66dbc7 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializerSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/WriterSerializerSession.java
@@ -36,9 +36,7 @@ import org.apache.juneau.*;
  */
 public abstract class WriterSerializerSession extends SerializerSession {
 
-       private final int maxIndent;
-       private final boolean useWhitespace;
-       private final char quoteChar;
+       private final WriterSerializer ctx;
 
        /**
         * Create a new session using properties specified in the context.
@@ -54,10 +52,7 @@ public abstract class WriterSerializerSession extends 
SerializerSession {
         */
        protected WriterSerializerSession(WriterSerializer ctx, 
SerializerSessionArgs args) {
                super(ctx, args);
-
-               useWhitespace = getProperty(WSERIALIZER_useWhitespace, 
boolean.class, ctx.useWhitespace);
-               maxIndent = getProperty(WSERIALIZER_maxIndent, int.class, 
ctx.maxIndent);
-               quoteChar = getProperty(WSERIALIZER_quoteChar, String.class, 
""+ctx.quoteChar).charAt(0);
+               this.ctx = ctx;
        }
 
        /**
@@ -94,40 +89,47 @@ public abstract class WriterSerializerSession extends 
SerializerSession {
                return serialize(o);
        }
 
+       
//-----------------------------------------------------------------------------------------------------------------
+       // Properties
+       
//-----------------------------------------------------------------------------------------------------------------
+
        /**
-        * Returns the {@link WriterSerializer#WSERIALIZER_useWhitespace} 
setting value for this session.
+        * Configuration property:  Maximum indentation.
         *
-        * @return The {@link WriterSerializer#WSERIALIZER_useWhitespace} 
setting value for this session.
+        * @see #WSERIALIZER_maxIndent
+        * @return
+        *      The maximum indentation level in the serialized document.
         */
-       protected boolean isUseWhitespace() {
-               return useWhitespace;
+       public final int getMaxIndent() {
+               return ctx.getMaxIndent();
        }
 
        /**
-        * Returns the {@link WriterSerializer#WSERIALIZER_maxIndent} setting 
value for this session.
+        * Configuration property:  Use whitespace.
         *
-        * @return The {@link WriterSerializer#WSERIALIZER_maxIndent} setting 
value for this session.
+        * @see #WSERIALIZER_useWhitespace
+        * @return
+        *      <jk>true</jk> if whitespace is added to the output to improve 
readability.
         */
-       protected int getMaxIndent() {
-               return maxIndent;
+       public final boolean isUseWhitespace() {
+               return ctx.isUseWhitespace();
        }
 
        /**
-        * Returns the {@link WriterSerializer#WSERIALIZER_quoteChar} setting 
value for this session.
+        * Configuration property:  Quote character.
         *
-        * @return The {@link WriterSerializer#WSERIALIZER_quoteChar} setting 
value for this session.
+        * @see #WSERIALIZER_quoteChar
+        * @return
+        *      The character used for quoting attributes and values.
         */
-       protected char getQuoteChar() {
-               return quoteChar;
+       public final char getQuoteChar() {
+               return ctx.getQuoteChar();
        }
 
        @Override /* Session */
        public ObjectMap asMap() {
                return super.asMap()
                        .append("WriterSerializerSession", new ObjectMap()
-                               .append("maxIndent", maxIndent)
-                               .append("useWhitespace", useWhitespace)
-                               .append("quoteChar", quoteChar)
                        );
        }
 }
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xmlschema/XmlSchemaSerializerSession.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xmlschema/XmlSchemaSerializerSession.java
index e1a6657..45f8a96 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xmlschema/XmlSchemaSerializerSession.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xmlschema/XmlSchemaSerializerSession.java
@@ -226,25 +226,10 @@ public class XmlSchemaSerializerSession extends 
XmlSerializerSession {
        }
 
        @Override /* SerializerSession */
-       protected boolean isUseWhitespace() {
-               return super.isUseWhitespace();
-       }
-
-       @Override /* SerializerSession */
-       protected int getMaxIndent() {
-               return super.getMaxIndent();
-       }
-
-       @Override /* SerializerSession */
        protected boolean isTrimStrings() {
                return super.isTrimStrings();
        }
 
-       @Override /* SerializerSession */
-       protected char getQuoteChar() {
-               return super.getQuoteChar();
-       }
-
        /* An encapsulation of a single schema. */
        private final class Schema {
                private StringWriter sw = new StringWriter();
diff --git 
a/juneau-examples/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/RootContentTest.java
 
b/juneau-examples/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/RootContentTest.java
index 8d5f69e..0125f47 100644
--- 
a/juneau-examples/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/RootContentTest.java
+++ 
b/juneau-examples/juneau-examples-rest/src/test/java/org/apache/juneau/examples/rest/RootContentTest.java
@@ -55,15 +55,15 @@ public class RootContentTest extends ContentComboTestBase {
                        {       /* 4 */
                                new ComboInput("HTML-nav-popup-contentType", 
"/", MediaType.HTML,
                                        "<div class='popup-content'>",
-                                       "<a 
href='/?plainText=true&Accept=application%2Fjson'>application/json</a>"
+                                       
"/?plainText=true&Accept=application%2Fjson"
                                )
                        },
                        {       /* 5 */
                                new ComboInput("HTML-nav-popup-styles", "/", 
MediaType.HTML,
-                                       "<a 
href='/?stylesheet=htdocs%2Fthemes%2Fdevops.css'>devops</a>",
-                                       "<a 
href='/?stylesheet=htdocs%2Fthemes%2Flight.css'>light</a>",
-                                       "<a 
href='/?stylesheet=htdocs%2Fthemes%2Foriginal.css'>original</a>",
-                                       "<a 
href='/?stylesheet=htdocs%2Fthemes%2Fdark.css'>dark</a>"
+                                       
"/?stylesheet=htdocs%2Fthemes%2Fdevops.css",
+                                       
"/?stylesheet=htdocs%2Fthemes%2Flight.css",
+                                       
"/?stylesheet=htdocs%2Fthemes%2Foriginal.css",
+                                       
"/?stylesheet=htdocs%2Fthemes%2Fdark.css"
                                )
                        },
                        {       /* 6 */

Reply via email to