juneau-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jamesbog...@apache.org
Subject [juneau] branch master updated: Support serialized POJOs inside HTML5 beans.
Date Sun, 18 Mar 2018 16:23:25 GMT
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 0db2085  Support serialized POJOs inside HTML5 beans.
0db2085 is described below

commit 0db2085a83c234fae050c0c8ecfd2778fa546bca
Author: JamesBognar <jamesbognar@apache.org>
AuthorDate: Sun Mar 18 12:23:00 2018 -0400

    Support serialized POJOs inside HTML5 beans.
---
 .../apache/juneau/html/HtmlSerializerSession.java  | 66 ++++++++++------------
 .../apache/juneau/xml/XmlSerializerSession.java    |  3 +-
 2 files changed, 31 insertions(+), 38 deletions(-)

diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
index fea125a..a64efc8 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerSession.java
@@ -13,7 +13,7 @@
 package org.apache.juneau.html;
 
 import static org.apache.juneau.html.HtmlSerializer.*;
-import static org.apache.juneau.html.HtmlSerializerSession.ContentResult.*;
+import static org.apache.juneau.xml.XmlSerializerSession.ContentResult.*;
 import static org.apache.juneau.internal.StringUtils.*;
 
 import java.io.*;
@@ -206,10 +206,10 @@ public class HtmlSerializerSession extends XmlSerializerSession {
 	 * @throws IOException If a problem occurred trying to send output to the writer.
 	 */
 	private XmlWriter doSerialize(Object o, XmlWriter w) throws Exception {
-		serializeAnything(w, o, getExpectedRootType(o), null, getInitialDepth()-1, null, true);
+		serializeAnything(w, o, getExpectedRootType(o), null, null, getInitialDepth()-1, true);
 		return w;
 	}
-
+	
 	/**
 	 * Serialize the specified object to the specified writer.
 	 * 
@@ -219,15 +219,15 @@ public class HtmlSerializerSession extends XmlSerializerSession {
 	 * @param name
 	 * 	The attribute name of this object if this object was a field in a JSON object (i.e.
key of a
 	 * 	{@link java.util.Map.Entry} or property name of a bean).
-	 * @param xIndent The current indentation value.
 	 * @param pMeta The bean property being serialized, or <jk>null</jk> if we're
not serializing a bean property.
+	 * @param xIndent The current indentation value.
 	 * @param isRoot <jk>true</jk> if this is the root element of the document.
 	 * @return The type of content encountered.  Either simple (no whitespace) or normal (elements
with whitespace).
 	 * @throws Exception If a problem occurred trying to convert the output.
 	 */
 	@SuppressWarnings({ "rawtypes", "unchecked" })
 	protected ContentResult serializeAnything(XmlWriter out, Object o,
-			ClassMeta<?> eType, String name, int xIndent, BeanPropertyMeta pMeta, boolean isRoot)
throws Exception {
+			ClassMeta<?> eType, String name, BeanPropertyMeta pMeta, int xIndent, boolean isRoot)
throws Exception {
 
 		ClassMeta<?> aType = null;       // The actual type
 		ClassMeta<?> wType = null;     // The wrapped type (delegate)
@@ -246,12 +246,12 @@ public class HtmlSerializerSession extends XmlSerializerSession {
 
 		indent += xIndent;
 
-		ContentResult cr = CR_NORMAL;
+		ContentResult cr = CR_ELEMENTS;
 
 		// Determine the type.
 		if (o == null || (aType.isChar() && ((Character)o).charValue() == 0)) {
 			out.tag("null");
-			cr = ContentResult.CR_SIMPLE;
+			cr = ContentResult.CR_MIXED;
 
 		} else {
 
@@ -283,7 +283,7 @@ public class HtmlSerializerSession extends XmlSerializerSession {
 				pop();
 				indent -= xIndent;
 				IOUtils.pipe(o, out);
-				return ContentResult.CR_SIMPLE;
+				return ContentResult.CR_MIXED;
 			}
 
 			HtmlClassMeta html = sType.getExtendedMeta(HtmlClassMeta.class);
@@ -297,7 +297,7 @@ public class HtmlSerializerSession extends XmlSerializerSession {
 					indent -= xIndent;
 					pop();
 					out.nl(indent);
-					return serializeAnything(out, o2, null, typeName, xIndent, null, false);
+					return serializeAnything(out, o2, null, typeName, null, xIndent, false);
 				}
 			}
 
@@ -310,25 +310,25 @@ public class HtmlSerializerSession extends XmlSerializerSession {
 
 			} else if (html.isAsPlainText() || (pMeta != null && pMeta.getExtendedMeta(HtmlBeanPropertyMeta.class).isAsPlainText()))
{
 				out.write(o == null ? "null" : o.toString());
-				cr = CR_SIMPLE;
+				cr = CR_MIXED;
 
 			} else if (o == null || (sType.isChar() && ((Character)o).charValue() == 0)) {
 				out.tag("null");
-				cr = CR_SIMPLE;
+				cr = CR_MIXED;
 
 			} else if (sType.isNumber()) {
 				if (eType.isNumber() && ! isRoot)
 					out.append(o);
 				else
 					out.sTag("number").append(o).eTag("number");
-				cr = CR_SIMPLE;
+				cr = CR_MIXED;
 
 			} else if (sType.isBoolean()) {
 				if (eType.isBoolean() && ! isRoot)
 					out.append(o);
 				else
 					out.sTag("boolean").append(o).eTag("boolean");
-				cr = CR_SIMPLE;
+				cr = CR_MIXED;
 
 			} else if (sType.isMap() || (wType != null && wType.isMap())) {
 				out.nlIf(! isRoot, xIndent+1);
@@ -345,7 +345,7 @@ public class HtmlSerializerSession extends XmlSerializerSession {
 					Object urlProp = m.get(h.hrefProperty());
 					Object nameProp = m.get(h.nameProperty());
 					out.oTag("a").attrUri("href", urlProp).append('>').text(nameProp).eTag("a");
-					cr = CR_SIMPLE;
+					cr = CR_MIXED;
 				} else {
 					out.nlIf(! isRoot, xIndent+2);
 					serializeBeanMap(out, m, eType, pMeta);
@@ -360,14 +360,14 @@ public class HtmlSerializerSession extends XmlSerializerSession {
 				out.oTag("a").attrUri("href", o).append('>');
 				out.text(label);
 				out.eTag("a");
-				cr = CR_SIMPLE;
+				cr = CR_MIXED;
 
 			} else {
 				if (isRoot)
 					out.sTag("string").text(toString(o)).eTag("string");
 				else
 					out.text(toString(o));
-				cr = CR_SIMPLE;
+				cr = CR_MIXED;
 			}
 		}
 		pop();
@@ -375,14 +375,6 @@ public class HtmlSerializerSession extends XmlSerializerSession {
 		return cr;
 	}
 
-	/**
-	 * Identifies what the contents were of a serialized bean.
-	 */
-	static enum ContentResult {
-		CR_SIMPLE,    // Simple content.  Shouldn't use whitespace.
-		CR_NORMAL     // Normal content.  Use whitespace.
-	}
-
 	@SuppressWarnings({ "rawtypes" })
 	private void serializeMap(XmlWriter out, Map m, ClassMeta<?> sType,
 			ClassMeta<?> eKeyType, ClassMeta<?> eValueType, String typeName, BeanPropertyMeta
ppMeta) throws Exception {
@@ -428,15 +420,15 @@ public class HtmlSerializerSession extends XmlSerializerSession {
 			out.cTag();
 			if (link != null)
 				out.oTag(i+3, "a").attrUri("href", link.replace("{#}", asString(value))).cTag();
-			ContentResult cr = serializeAnything(out, key, keyType, null, 2, null, false);
+			ContentResult cr = serializeAnything(out, key, keyType, null, null, 2, false);
 			if (link != null)
 				out.eTag("a");
-			if (cr == CR_NORMAL)
+			if (cr == CR_ELEMENTS)
 				out.i(i+2);
 			out.eTag("td").nl(i+2);
 			out.sTag(i+2, "td");
-			cr = serializeAnything(out, value, valueType, (key == null ? "_x0000_" : toString(key)),
2, null, false);
-			if (cr == CR_NORMAL)
+			cr = serializeAnything(out, value, valueType, (key == null ? "_x0000_" : toString(key)),
null, 2, false);
+			if (cr == CR_ELEMENTS)
 				out.ie(i+2);
 			out.eTag("td").nl(i+2);
 			out.ie(i+1).eTag("tr").nl(i+1);
@@ -496,8 +488,8 @@ public class HtmlSerializerSession extends XmlSerializerSession {
 			try {
 				if (link != null)
 					out.oTag(i+3, "a").attrUri("href", link).cTag();
-				ContentResult cr = serializeAnything(out, value, cMeta, key, 2, pMeta, false);
-				if (cr == CR_NORMAL)
+				ContentResult cr = serializeAnything(out, value, cMeta, key, pMeta, 2, false);
+				if (cr == CR_ELEMENTS)
 					out.i(i+2);
 				if (link != null)
 					out.eTag("a");
@@ -578,7 +570,7 @@ public class HtmlSerializerSession extends XmlSerializerSession {
 
 				if (cm == null) {
 					out.i(i+2);
-					serializeAnything(out, o, null, null, 1, null, false);
+					serializeAnything(out, o, null, null, null, 1, false);
 					out.nl(0);
 
 				} else if (cm.isMap() && ! (cm.isBeanMap())) {
@@ -586,8 +578,8 @@ public class HtmlSerializerSession extends XmlSerializerSession {
 
 					for (Object k : th) {
 						out.sTag(i+2, "td");
-						ContentResult cr = serializeAnything(out, m2.get(k), eType.getElementType(), toString(k),
2, null, false);
-						if (cr == CR_NORMAL)
+						ContentResult cr = serializeAnything(out, m2.get(k), eType.getElementType(), toString(k),
null, 2, false);
+						if (cr == CR_ELEMENTS)
 							out.i(i+2);
 						out.eTag("td").nl(i+2);
 					}
@@ -620,8 +612,8 @@ public class HtmlSerializerSession extends XmlSerializerSession {
 							out.cTag();
 							if (link != null)
 								out.oTag("a").attrUri("href", link).cTag();
-							ContentResult cr = serializeAnything(out, value, pMeta.getClassMeta(), p.getKey().toString(),
2, pMeta, false);
-							if (cr == CR_NORMAL)
+							ContentResult cr = serializeAnything(out, value, pMeta.getClassMeta(), p.getKey().toString(),
pMeta, 2, false);
+							if (cr == CR_ELEMENTS)
 								out.i(i+2);
 							if (link != null)
 								out.eTag("a");
@@ -647,10 +639,10 @@ public class HtmlSerializerSession extends XmlSerializerSession {
 				out.cTag();
 				if (link != null)
 					out.oTag(i+2, "a").attrUri("href", link.replace("{#}", asString(o))).cTag();
-				ContentResult cr = serializeAnything(out, o, eType.getElementType(), name, 1, null, false);
+				ContentResult cr = serializeAnything(out, o, eType.getElementType(), name, null, 1, false);
 				if (link != null)
 					out.eTag("a");
-				if (cr == CR_NORMAL)
+				if (cr == CR_ELEMENTS)
 					out.ie(i+1);
 				out.eTag("li").nl(i+1);
 			}
diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java
index 516f03c..6a17dd3 100644
--- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java
+++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java
@@ -736,7 +736,8 @@ public class XmlSerializerSession extends WriterSerializerSession {
 	/**
 	 * Identifies what the contents were of a serialized bean.
 	 */
-	static enum ContentResult {
+	@SuppressWarnings("javadoc")
+	public static enum ContentResult {
 		CR_VOID,      // No content...append "/>" to the start tag.
 		CR_EMPTY,     // No content...append "/>" to the start tag if XML, "/></end>"
if HTML.
 		CR_MIXED,     // Mixed content...don't add whitespace.

-- 
To stop receiving notification emails like this one, please contact
jamesbognar@apache.org.

Mime
View raw message