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 9638af8 Server API cleanup. 9638af8 is described below commit 9638af8477f269f3f74cf13f2922ace964ec79f6 Author: JamesBognar <jamesbog...@apache.org> AuthorDate: Sun Jul 8 21:33:24 2018 -0400 Server API cleanup. --- .../java/org/apache/juneau/uon/UonSerializer.java | 43 ++++++- .../apache/juneau/uon/UonSerializerSession.java | 65 ++++++---- .../juneau/urlencoding/UrlEncodingSerializer.java | 18 ++- .../urlencoding/UrlEncodingSerializerSession.java | 27 ++++- .../java/org/apache/juneau/xml/XmlSerializer.java | 95 +++++++++++++-- .../apache/juneau/xml/XmlSerializerSession.java | 132 +++++++++++---------- 6 files changed, 278 insertions(+), 102 deletions(-) diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java index d7ffe7f..f64b254 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializer.java @@ -303,11 +303,11 @@ public class UonSerializer extends WriterSerializer { // Instance //------------------------------------------------------------------------------------------------------------------- - final boolean + private final boolean encodeChars, addBeanTypes; - final ParamFormat + private final ParamFormat paramFormat; /** @@ -385,6 +385,45 @@ public class UonSerializer extends WriterSerializer { return new UonSerializerSession(this, null, args); } + //----------------------------------------------------------------------------------------------------------------- + // Properties + //----------------------------------------------------------------------------------------------------------------- + + /** + * Configuration property: Encode non-valid URI characters. + * + * @see #UON_encoding + * @return + * <jk>true</jk> if non-valid URI characters should be encoded with <js>"%xx"</js> constructs. + */ + protected final boolean isEncodeChars() { + return encodeChars; + } + + /** + * Configuration property: Add <js>"_type"</js> properties when needed. + * + * @see #UON_addBeanTypes + * @return + * <jk>true</jk> if <js>"_type"</js> properties will be added to beans if their type cannot be inferred + * through reflection. + */ + @Override + protected final boolean isAddBeanTypes() { + return addBeanTypes; + } + + /** + * Configuration property: Format to use for query/form-data/header values. + * + * @see #UON_paramFormat + * @return + * Specifies the format to use for URL GET parameter keys and values. + */ + protected final ParamFormat getParamFormat() { + return paramFormat; + } + @Override /* Context */ public ObjectMap asMap() { return super.asMap() diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializerSession.java index 30c191a..1674a70 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializerSession.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializerSession.java @@ -30,10 +30,8 @@ import org.apache.juneau.transform.*; */ public class UonSerializerSession extends WriterSerializerSession { - private final boolean - encodeChars, - addBeanTypes, - plainTextParams; + private final UonSerializer ctx; + private final boolean plainTextParams; /** * @param ctx @@ -48,32 +46,18 @@ public class UonSerializerSession extends WriterSerializerSession { */ public UonSerializerSession(UonSerializer ctx, Boolean encode, SerializerSessionArgs args) { super(ctx, args); - encodeChars = encode == null ? getProperty(UON_encoding, boolean.class, ctx.encodeChars) : encode; - addBeanTypes = getProperty(UON_addBeanTypes, boolean.class, ctx.addBeanTypes); - plainTextParams = getProperty(UON_paramFormat, ParamFormat.class, ctx.paramFormat) == ParamFormat.PLAINTEXT; + this.ctx = ctx; + plainTextParams = getProperty(UON_paramFormat, ParamFormat.class, ctx.getParamFormat()) == ParamFormat.PLAINTEXT; } @Override /* Session */ public ObjectMap asMap() { return super.asMap() .append("UonSerializerSession", new ObjectMap() - .append("addBeanTypes", addBeanTypes) - .append("encodeChars", encodeChars) - .append("plainTextParams", plainTextParams) ); } /** - * Returns the {@link UonSerializer#UON_addBeanTypes} setting value for this session. - * - * @return The {@link UonSerializer#UON_addBeanTypes} setting value for this session. - */ - @Override /* SerializerSession */ - public final boolean isAddBeanTypes() { - return addBeanTypes; - } - - /** * Converts the specified output target object to an {@link UonWriter}. * * @param out The output target object. @@ -84,7 +68,7 @@ public class UonSerializerSession extends WriterSerializerSession { Object output = out.getRawOutput(); if (output instanceof UonWriter) return (UonWriter)output; - UonWriter w = new UonWriter(this, out.getWriter(), isUseWhitespace(), getMaxIndent(), encodeChars, isTrimStrings(), plainTextParams, getUriResolver()); + UonWriter w = new UonWriter(this, out.getWriter(), isUseWhitespace(), getMaxIndent(), isEncodeChars(), isTrimStrings(), plainTextParams, getUriResolver()); out.setWriter(w); return w; } @@ -276,4 +260,43 @@ public class UonSerializerSession extends WriterSerializerSession { return out; } + + //----------------------------------------------------------------------------------------------------------------- + // Properties + //----------------------------------------------------------------------------------------------------------------- + + /** + * Configuration property: Encode non-valid URI characters. + * + * @see #UON_encoding + * @return + * <jk>true</jk> if non-valid URI characters should be encoded with <js>"%xx"</js> constructs. + */ + protected final boolean isEncodeChars() { + return ctx.isEncodeChars(); + } + + /** + * Configuration property: Add <js>"_type"</js> properties when needed. + * + * @see #UON_addBeanTypes + * @return + * <jk>true</jk> if <js>"_type"</js> properties will be added to beans if their type cannot be inferred + * through reflection. + */ + @Override + protected final boolean isAddBeanTypes() { + return ctx.isAddBeanTypes(); + } + + /** + * Configuration property: Format to use for query/form-data/header values. + * + * @see #UON_paramFormat + * @return + * Specifies the format to use for URL GET parameter keys and values. + */ + protected final ParamFormat getParamFormat() { + return ctx.getParamFormat(); + } } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java index 2d8f896..c18bcb7 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java @@ -246,7 +246,7 @@ public class UrlEncodingSerializer extends UonSerializer { // Instance //------------------------------------------------------------------------------------------------------------------- - final boolean + private final boolean expandedParams; /** @@ -328,6 +328,22 @@ public class UrlEncodingSerializer extends UonSerializer { return new UrlEncodingSerializerSession(this, null, args); } + //----------------------------------------------------------------------------------------------------------------- + // Properties + //----------------------------------------------------------------------------------------------------------------- + + /** + * Configuration property: Serialize bean property collections/arrays as separate key/value pairs. + * + * @see #URLENC_expandedParams + * @return + * <jk>false</jk> if serializing the array <code>[1,2,3]</code> results in <code>?key=$a(1,2,3)</code>. + * <br><jk>true</jk> if serializing the same array results in <code>?key=1&key=2&key=3</code>. + */ + protected final boolean isExpandedParams() { + return expandedParams; + } + @Override /* Context */ public ObjectMap asMap() { return super.asMap() diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerSession.java index 98e8427..1578b6a 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerSession.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerSession.java @@ -34,7 +34,7 @@ import org.apache.juneau.uon.*; @SuppressWarnings({ "rawtypes", "unchecked" }) public class UrlEncodingSerializerSession extends UonSerializerSession { - private final boolean expandedParams; + private final UrlEncodingSerializer ctx; /** * Constructor. @@ -51,14 +51,13 @@ public class UrlEncodingSerializerSession extends UonSerializerSession { */ protected UrlEncodingSerializerSession(UrlEncodingSerializer ctx, Boolean encode, SerializerSessionArgs args) { super(ctx, encode, args); - expandedParams = getProperty(URLENC_expandedParams, boolean.class, ctx.expandedParams); + this.ctx = ctx; } @Override /* Session */ public ObjectMap asMap() { return super.asMap() .append("UrlEncodingSerializerSession", new ObjectMap() - .append("expandedParams", expandedParams) ); } @@ -68,7 +67,7 @@ public class UrlEncodingSerializerSession extends UonSerializerSession { private boolean shouldUseExpandedParams(BeanPropertyMeta pMeta) { ClassMeta<?> cm = pMeta.getClassMeta().getSerializedClassMeta(this); if (cm.isCollectionOrArray()) { - if (expandedParams) + if (isExpandedParams()) return true; if (pMeta.getBeanMeta().getClassMeta().getExtendedMeta(UrlEncodingClassMeta.class).isExpandedParams()) return true; @@ -80,11 +79,11 @@ public class UrlEncodingSerializerSession extends UonSerializerSession { * Returns <jk>true</jk> if the specified value should be represented as an expanded parameter list. */ private boolean shouldUseExpandedParams(Object value) { - if (value == null || ! expandedParams) + if (value == null || ! isExpandedParams()) return false; ClassMeta<?> cm = getClassMetaForObject(value).getSerializedClassMeta(this); if (cm.isCollectionOrArray()) { - if (expandedParams) + if (isExpandedParams()) return true; } return false; @@ -265,4 +264,20 @@ public class UrlEncodingSerializerSession extends UonSerializerSession { } return out; } + + //----------------------------------------------------------------------------------------------------------------- + // Properties + //----------------------------------------------------------------------------------------------------------------- + + /** + * Configuration property: Serialize bean property collections/arrays as separate key/value pairs. + * + * @see #URLENC_expandedParams + * @return + * <jk>false</jk> if serializing the array <code>[1,2,3]</code> results in <code>?key=$a(1,2,3)</code>. + * <br><jk>true</jk> if serializing the same array results in <code>?key=1&key=2&key=3</code>. + */ + protected final boolean isExpandedParams() { + return ctx.isExpandedParams(); + } } diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java index 392f2a3..975fa9a 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlSerializer.java @@ -450,18 +450,15 @@ public class XmlSerializer extends WriterSerializer { // Instance //------------------------------------------------------------------------------------------------------------------- - final boolean + private final boolean autoDetectNamespaces, enableNamespaces, addNamespaceUrlsToRoot, addBeanTypes; - - final Namespace defaultNamespace; - - final Namespace + private final Namespace defaultNamespace; + private final Namespace xsNamespace; - - final Namespace[] namespaces; + private final Namespace[] namespaces; private volatile XmlSchemaSerializer schemaSerializer; @@ -549,6 +546,90 @@ public class XmlSerializer extends WriterSerializer { return new XmlSerializerSession(this, args); } + //----------------------------------------------------------------------------------------------------------------- + // Properties + //----------------------------------------------------------------------------------------------------------------- + + /** + * Configuration property: Auto-detect namespace usage. + * + * @see #XML_autoDetectNamespaces + * @return + * <jk>true</jk> if namespace usage is detected before serialization. + */ + protected final boolean isAutoDetectNamespaces() { + return autoDetectNamespaces; + } + + /** + * Configuration property: Enable support for XML namespaces. + * + * @see #XML_enableNamespaces + * @return + * <jk>false</jk> if XML output will not contain any namespaces regardless of any other settings. + */ + protected final boolean isEnableNamespaces() { + return enableNamespaces; + } + + /** + * Configuration property: Add namespace URLs to the root element. + * + * @see #XML_addNamespaceUrisToRoot + * @return + * <jk>true</jk> if {@code xmlns:x} attributes are added to the root element for the default and all mapped namespaces. + */ + protected final boolean isAddNamespaceUrlsToRoot() { + return addNamespaceUrlsToRoot; + } + + /** + * Configuration property: Add <js>"_type"</js> properties when needed. + * + * @see #XML_addBeanTypes + * @return + * <jk>true</jk> if<js>"_type"</js> properties will be added to beans if their type cannot be inferred + * through reflection. + */ + @Override + protected final boolean isAddBeanTypes() { + return addBeanTypes; + } + + /** + * Configuration property: Default namespace. + * + * @see #XML_defaultNamespace + * @return + * The default namespace URI for this document. + */ + protected final Namespace getDefaultNamespace() { + return defaultNamespace; + } + + /** + * Configuration property: XMLSchema namespace. + * + * @see #XML_xsNamespace + * @return + * The namespace for the <code>XMLSchema</code> namespace, used by the schema generated by the + * {@link XmlSchemaSerializer} class. + */ + protected final Namespace getXsNamespace() { + return xsNamespace; + } + + /** + * Configuration property: Default namespaces. + * + * @see #XML_namespaces + * @return + * The default list of namespaces associated with this serializer. + */ + protected final Namespace[] getNamespaces() { + return namespaces; + } + @Override /* Context */ public ObjectMap asMap() { return super.asMap() 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 ea105eb..7d6f8af 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 @@ -26,6 +26,7 @@ import org.apache.juneau.internal.*; import org.apache.juneau.serializer.*; import org.apache.juneau.transform.*; import org.apache.juneau.xml.annotation.*; +import org.apache.juneau.xmlschema.*; /** * Session object that lives for the duration of a single use of {@link XmlSerializer}. @@ -37,17 +38,9 @@ import org.apache.juneau.xml.annotation.*; @SuppressWarnings({"unchecked","rawtypes"}) public class XmlSerializerSession extends WriterSerializerSession { - private final boolean - autoDetectNamespaces, - enableNamespaces, - addNamespaceUrlsToRoot, - addBeanTypes; - + private final XmlSerializer ctx; private Namespace defaultNamespace; - private final Namespace - xsNamespace; - private Namespace[] namespaces = new Namespace[0]; /** @@ -64,13 +57,9 @@ public class XmlSerializerSession extends WriterSerializerSession { */ protected XmlSerializerSession(XmlSerializer ctx, SerializerSessionArgs args) { super(ctx, args); - enableNamespaces = getProperty(XML_enableNamespaces, boolean.class, ctx.enableNamespaces); - autoDetectNamespaces = getProperty(XML_autoDetectNamespaces, boolean.class, ctx.autoDetectNamespaces); - addNamespaceUrlsToRoot = getProperty(XML_addNamespaceUrisToRoot, boolean.class, ctx.addNamespaceUrlsToRoot); - addBeanTypes = getProperty(XML_addBeanTypes, boolean.class, ctx.addBeanTypes); - namespaces = getInstanceArrayProperty(XML_namespaces, Namespace.class, ctx.namespaces); - defaultNamespace = findDefaultNamespace(getInstanceProperty(XML_defaultNamespace, Namespace.class, ctx.defaultNamespace)); - xsNamespace = getInstanceProperty(XML_xsNamespace, Namespace.class, ctx.xsNamespace); + this.ctx = ctx; + namespaces = getInstanceArrayProperty(XML_namespaces, Namespace.class, ctx.getNamespaces()); + defaultNamespace = findDefaultNamespace(getInstanceProperty(XML_defaultNamespace, Namespace.class, ctx.getDefaultNamespace())); } private Namespace findDefaultNamespace(Namespace n) { @@ -79,12 +68,12 @@ public class XmlSerializerSession extends WriterSerializerSession { if (n.name != null && n.uri != null) return n; if (n.uri == null) { - for (Namespace n2 : namespaces) + for (Namespace n2 : getNamespaces()) if (n2.name.equals(n.name)) return n2; } if (n.name == null) { - for (Namespace n2 : namespaces) + for (Namespace n2 : getNamespaces()) if (n2.uri.equals(n.uri)) return n2; } @@ -95,13 +84,6 @@ public class XmlSerializerSession extends WriterSerializerSession { public ObjectMap asMap() { return super.asMap() .append("XmlSerializerSession", new ObjectMap() - .append("addBeanTypes", addBeanTypes) - .append("addNamespaceUrlsToRoot", addNamespaceUrlsToRoot) - .append("autoDetectNamespaces", autoDetectNamespaces) - .append("defaultNamespace", defaultNamespace) - .append("enableNamespaces", enableNamespaces) - .append("namespaces", namespaces) - .append("xsNamespace", xsNamespace) ); } @@ -125,16 +107,6 @@ public class XmlSerializerSession extends WriterSerializerSession { } /** - * Returns the {@link XmlSerializer#XML_addBeanTypes} setting value for this session. - * - * @return The {@link XmlSerializer#XML_addBeanTypes} setting value for this session. - */ - @Override /* SerializerSession */ - protected boolean isAddBeanTypes() { - return addBeanTypes; - } - - /** * Returns <jk>true</jk> if we're serializing HTML. * * <p> @@ -158,16 +130,16 @@ public class XmlSerializerSession extends WriterSerializerSession { Object output = out.getRawOutput(); if (output instanceof XmlWriter) return (XmlWriter)output; - XmlWriter w = new XmlWriter(out.getWriter(), isUseWhitespace(), getMaxIndent(), isTrimStrings(), getQuoteChar(), getUriResolver(), enableNamespaces, defaultNamespace); + XmlWriter w = new XmlWriter(out.getWriter(), isUseWhitespace(), getMaxIndent(), isTrimStrings(), getQuoteChar(), getUriResolver(), isEnableNamespaces(), defaultNamespace); out.setWriter(w); return w; } @Override /* Serializer */ protected void doSerialize(SerializerPipe out, Object o) throws Exception { - if (enableNamespaces && autoDetectNamespaces) + if (isEnableNamespaces() && isAutoDetectNamespaces()) findNsfMappings(o); - serializeAnything(getXmlWriter(out), o, getExpectedRootType(o), null, null, enableNamespaces && addNamespaceUrlsToRoot, XmlFormat.DEFAULT, false, false, null); + serializeAnything(getXmlWriter(out), o, getExpectedRootType(o), null, null, isEnableNamespaces() && isAddNamespaceUrlsToRoot(), XmlFormat.DEFAULT, false, false, null); } /** @@ -380,7 +352,7 @@ public class XmlSerializerSession extends WriterSerializerSession { isExpectedType = true; } - if (enableNamespaces) { + if (isEnableNamespaces()) { if (elementNamespace == null) elementNamespace = cXml(sType).getNamespace(); if (elementNamespace == null) @@ -404,7 +376,7 @@ public class XmlSerializerSession extends WriterSerializerSession { boolean encodeEn = elementName != null; String ns = (elementNamespace == null ? null : elementNamespace.name); String dns = null, elementNs = null; - if (enableNamespaces) { + if (isEnableNamespaces()) { dns = elementName == null && defaultNamespace != null ? defaultNamespace.name : null; elementNs = elementName == null ? dns : ns; if (elementName == null) @@ -577,7 +549,7 @@ public class XmlSerializerSession extends WriterSerializerSession { continue; XmlBeanPropertyMeta bpXml = bpXml(pMeta); - Namespace ns = (enableNamespaces && bpXml.getNamespace() != elementNs ? bpXml.getNamespace() : null); + Namespace ns = (isEnableNamespaces() && bpXml.getNamespace() != elementNs ? bpXml.getNamespace() : null); if (pMeta.isUri() ) { out.attrUri(ns, key, value); @@ -754,57 +726,87 @@ public class XmlSerializerSession extends WriterSerializerSession { CR_ELEMENTS // Elements...use normal whitespace rules. } + //----------------------------------------------------------------------------------------------------------------- + // Properties + //----------------------------------------------------------------------------------------------------------------- + /** - * Bean property getter: <property>defaultNamespace</property>. + * Configuration property: Auto-detect namespace usage. * - * @return The value of the <property>defaultNamespace</property> property on this bean, or <jk>null</jk> if it is not set. + * @see #XML_autoDetectNamespaces + * @return + * <jk>true</jk> if namespace usage is detected before serialization. */ - protected Namespace getDefaultNamespace() { - return defaultNamespace; + protected final boolean isAutoDetectNamespaces() { + return ctx.isAutoDetectNamespaces(); } /** - * Bean property getter: <property>namespaces</property>. + * Configuration property: Enable support for XML namespaces. * - * @return The value of the <property>namespaces</property> property on this bean, or <jk>null</jk> if it is not set. + * @see #XML_enableNamespaces + * @return + * <jk>false</jk> if XML output will not contain any namespaces regardless of any other settings. */ - protected Namespace[] getNamespaces() { - return namespaces; + protected final boolean isEnableNamespaces() { + return ctx.isEnableNamespaces(); } /** - * Bean property getter: <property>autoDetectNamespaces</property>. + * Configuration property: Add namespace URLs to the root element. * - * @return The value of the <property>autoDetectNamespaces</property> property on this bean, or <jk>null</jk> if it is not set. + * @see #XML_addNamespaceUrisToRoot + * @return + * <jk>true</jk> if {@code xmlns:x} attributes are added to the root element for the default and all mapped namespaces. */ - protected boolean isAutoDetectNamespaces() { - return autoDetectNamespaces; + protected final boolean isAddNamespaceUrlsToRoot() { + return ctx.isAddNamespaceUrlsToRoot(); } /** - * Bean property getter: <property>enableNamespaces</property>. + * Configuration property: Add <js>"_type"</js> properties when needed. * - * @return The value of the <property>enableNamespaces</property> property on this bean, or <jk>null</jk> if it is not set. + * @see #XML_addBeanTypes + * @return + * <jk>true</jk> if<js>"_type"</js> properties will be added to beans if their type cannot be inferred + * through reflection. */ - protected boolean isEnableNamespaces() { - return enableNamespaces; + @Override + protected boolean isAddBeanTypes() { + return ctx.isAddBeanTypes(); } /** - * Bean property getter: <property>addNamespaceUrlsToRoot</property>. + * Configuration property: Default namespace. * - * @return The value of the <property>addNamespaceUrlsToRoot</property> property on this bean, or <jk>null</jk> if it is not set. + * @see #XML_defaultNamespace + * @return + * The default namespace URI for this document. */ - protected boolean isAddNamespaceUrlsToRoot() { - return addNamespaceUrlsToRoot; + protected final Namespace getDefaultNamespace() { + return defaultNamespace; } /** - * Bean property getter: <property>xsNamespace</property>. + * Configuration property: XMLSchema namespace. * - * @return The value of the <property>xsNamespace</property> property on this bean, or <jk>null</jk> if it is not set. + * @see #XML_xsNamespace + * @return + * The namespace for the <code>XMLSchema</code> namespace, used by the schema generated by the + * {@link XmlSchemaSerializer} class. */ - protected Namespace getXsNamespace() { - return xsNamespace; + protected final Namespace getXsNamespace() { + return ctx.getXsNamespace(); + } + + /** + * Configuration property: Default namespaces. + * + * @see #XML_namespaces + * @return + * The default list of namespaces associated with this serializer. + */ + protected final Namespace[] getNamespaces() { + return namespaces; } }