http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core/src/main/java/org/apache/juneau/xml/XmlSchemaSerializerBuilder.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/xml/XmlSchemaSerializerBuilder.java b/juneau-core/src/main/java/org/apache/juneau/xml/XmlSchemaSerializerBuilder.java new file mode 100644 index 0000000..6cdf163 --- /dev/null +++ b/juneau-core/src/main/java/org/apache/juneau/xml/XmlSchemaSerializerBuilder.java @@ -0,0 +1,570 @@ +// *************************************************************************************************************************** +// * 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.xml; + +import java.util.*; + +import org.apache.juneau.*; + +/** + * Builder class for building instances of XML Schema serializers. + */ +public class XmlSchemaSerializerBuilder extends XmlSerializerBuilder { + + /** + * Constructor, default settings. + */ + public XmlSchemaSerializerBuilder() { + super(); + } + + /** + * Constructor. + * @param propertyStore The initial configuration settings for this builder. + */ + public XmlSchemaSerializerBuilder(PropertyStore propertyStore) { + super(propertyStore); + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializer build() { + return new XmlSchemaSerializer(propertyStore); + } + + + //-------------------------------------------------------------------------------- + // Properties + //-------------------------------------------------------------------------------- + + @Override /* XmlSerializerBuilder */ + public XmlSchemaSerializerBuilder enableNamespaces(boolean value) { + super.enableNamespaces(value); + return this; + } + + @Override /* XmlSerializerBuilder */ + public XmlSchemaSerializerBuilder ns() { + super.ns(); + return this; + } + + @Override /* XmlSerializerBuilder */ + public XmlSchemaSerializerBuilder autoDetectNamespaces(boolean value) { + super.autoDetectNamespaces(value); + return this; + } + + @Override /* XmlSerializerBuilder */ + public XmlSchemaSerializerBuilder addNamespaceUrisToRoot(boolean value) { + super.addNamespaceUrisToRoot(value); + return this; + } + + @Override /* XmlSerializerBuilder */ + public XmlSchemaSerializerBuilder defaultNamespace(String value) { + super.defaultNamespace(value); + return this; + } + + @Override /* XmlSerializerBuilder */ + public XmlSchemaSerializerBuilder xsNamespace(Namespace value) { + super.xsNamespace(value); + return this; + } + + @Override /* XmlSerializerBuilder */ + public XmlSchemaSerializerBuilder namespaces(Namespace...values) { + super.namespaces(values); + return this; + } + + @Override /* SerializerBuilder */ + public XmlSchemaSerializerBuilder maxDepth(int value) { + super.maxDepth(value); + return this; + } + + @Override /* SerializerBuilder */ + public XmlSchemaSerializerBuilder initialDepth(int value) { + super.initialDepth(value); + return this; + } + + @Override /* SerializerBuilder */ + public XmlSchemaSerializerBuilder detectRecursions(boolean value) { + super.detectRecursions(value); + return this; + } + + @Override /* SerializerBuilder */ + public XmlSchemaSerializerBuilder ignoreRecursions(boolean value) { + super.ignoreRecursions(value); + return this; + } + + @Override /* SerializerBuilder */ + public XmlSchemaSerializerBuilder useWhitespace(boolean value) { + super.useWhitespace(value); + return this; + } + + @Override /* SerializerBuilder */ + public XmlSchemaSerializerBuilder ws() { + super.ws(); + return this; + } + + @Override /* SerializerBuilder */ + public XmlSchemaSerializerBuilder addBeanTypeProperties(boolean value) { + super.addBeanTypeProperties(value); + return this; + } + + @Override /* SerializerBuilder */ + public XmlSchemaSerializerBuilder quoteChar(char value) { + super.quoteChar(value); + return this; + } + + @Override /* SerializerBuilder */ + public XmlSchemaSerializerBuilder sq() { + super.sq(); + return this; + } + + @Override /* SerializerBuilder */ + public XmlSchemaSerializerBuilder trimNullProperties(boolean value) { + super.trimNullProperties(value); + return this; + } + + @Override /* SerializerBuilder */ + public XmlSchemaSerializerBuilder trimEmptyCollections(boolean value) { + super.trimEmptyCollections(value); + return this; + } + + @Override /* SerializerBuilder */ + public XmlSchemaSerializerBuilder trimEmptyMaps(boolean value) { + super.trimEmptyMaps(value); + return this; + } + + @Override /* SerializerBuilder */ + public XmlSchemaSerializerBuilder trimStrings(boolean value) { + super.trimStrings(value); + return this; + } + + @Override /* SerializerBuilder */ + public XmlSchemaSerializerBuilder relativeUriBase(String value) { + super.relativeUriBase(value); + return this; + } + + @Override /* SerializerBuilder */ + public XmlSchemaSerializerBuilder absolutePathUriBase(String value) { + super.absolutePathUriBase(value); + return this; + } + + @Override /* SerializerBuilder */ + public XmlSchemaSerializerBuilder sortCollections(boolean value) { + super.sortCollections(value); + return this; + } + + @Override /* SerializerBuilder */ + public XmlSchemaSerializerBuilder sortMaps(boolean value) { + super.sortMaps(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder beansRequireDefaultConstructor(boolean value) { + super.beansRequireDefaultConstructor(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder beansRequireSerializable(boolean value) { + super.beansRequireSerializable(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder beansRequireSettersForGetters(boolean value) { + super.beansRequireSettersForGetters(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder beansRequireSomeProperties(boolean value) { + super.beansRequireSomeProperties(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder beanMapPutReturnsOldValue(boolean value) { + super.beanMapPutReturnsOldValue(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder beanConstructorVisibility(Visibility value) { + super.beanConstructorVisibility(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder beanClassVisibility(Visibility value) { + super.beanClassVisibility(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder beanFieldVisibility(Visibility value) { + super.beanFieldVisibility(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder methodVisibility(Visibility value) { + super.methodVisibility(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder useJavaBeanIntrospector(boolean value) { + super.useJavaBeanIntrospector(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder useInterfaceProxies(boolean value) { + super.useInterfaceProxies(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder ignoreUnknownBeanProperties(boolean value) { + super.ignoreUnknownBeanProperties(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder ignoreUnknownNullBeanProperties(boolean value) { + super.ignoreUnknownNullBeanProperties(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder ignorePropertiesWithoutSetters(boolean value) { + super.ignorePropertiesWithoutSetters(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder ignoreInvocationExceptionsOnGetters(boolean value) { + super.ignoreInvocationExceptionsOnGetters(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder ignoreInvocationExceptionsOnSetters(boolean value) { + super.ignoreInvocationExceptionsOnSetters(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder sortProperties(boolean value) { + super.sortProperties(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder notBeanPackages(String...values) { + super.notBeanPackages(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder notBeanPackages(Collection<String> values) { + super.notBeanPackages(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder setNotBeanPackages(String...values) { + super.setNotBeanPackages(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder setNotBeanPackages(Collection<String> values) { + super.setNotBeanPackages(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder removeNotBeanPackages(String...values) { + super.removeNotBeanPackages(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder removeNotBeanPackages(Collection<String> values) { + super.removeNotBeanPackages(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder notBeanClasses(Class<?>...values) { + super.notBeanClasses(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder notBeanClasses(Collection<Class<?>> values) { + super.notBeanClasses(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder setNotBeanClasses(Class<?>...values) { + super.setNotBeanClasses(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder setNotBeanClasses(Collection<Class<?>> values) { + super.setNotBeanClasses(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder removeNotBeanClasses(Class<?>...values) { + super.removeNotBeanClasses(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder removeNotBeanClasses(Collection<Class<?>> values) { + super.removeNotBeanClasses(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder beanFilters(Class<?>...values) { + super.beanFilters(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder beanFilters(Collection<Class<?>> values) { + super.beanFilters(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder setBeanFilters(Class<?>...values) { + super.setBeanFilters(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder setBeanFilters(Collection<Class<?>> values) { + super.setBeanFilters(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder removeBeanFilters(Class<?>...values) { + super.removeBeanFilters(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder removeBeanFilters(Collection<Class<?>> values) { + super.removeBeanFilters(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder pojoSwaps(Class<?>...values) { + super.pojoSwaps(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder pojoSwaps(Collection<Class<?>> values) { + super.pojoSwaps(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder setPojoSwaps(Class<?>...values) { + super.setPojoSwaps(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder setPojoSwaps(Collection<Class<?>> values) { + super.setPojoSwaps(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder removePojoSwaps(Class<?>...values) { + super.removePojoSwaps(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder removePojoSwaps(Collection<Class<?>> values) { + super.removePojoSwaps(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder implClasses(Map<Class<?>,Class<?>> values) { + super.implClasses(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public <T> XmlSchemaSerializerBuilder implClass(Class<T> interfaceClass, Class<? extends T> implClass) { + super.implClass(interfaceClass, implClass); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder beanDictionary(Class<?>...values) { + super.beanDictionary(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder beanDictionary(Collection<Class<?>> values) { + super.beanDictionary(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder setBeanDictionary(Class<?>...values) { + super.setBeanDictionary(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder setBeanDictionary(Collection<Class<?>> values) { + super.setBeanDictionary(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder removeFromBeanDictionary(Class<?>...values) { + super.removeFromBeanDictionary(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder removeFromBeanDictionary(Collection<Class<?>> values) { + super.removeFromBeanDictionary(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder beanTypePropertyName(String value) { + super.beanTypePropertyName(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder defaultParser(Class<?> value) { + super.defaultParser(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder locale(Locale value) { + super.locale(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder timeZone(TimeZone value) { + super.timeZone(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder mediaType(MediaType value) { + super.mediaType(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder debug(boolean value) { + super.debug(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder property(String name, Object value) { + super.property(name, value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder properties(Map<String,Object> properties) { + super.properties(properties); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder addToProperty(String name, Object value) { + super.addToProperty(name, value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder putToProperty(String name, Object key, Object value) { + super.putToProperty(name, key, value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder putToProperty(String name, Object value) { + super.putToProperty(name, value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder removeFromProperty(String name, Object value) { + super.removeFromProperty(name, value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder classLoader(ClassLoader classLoader) { + super.classLoader(classLoader); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSchemaSerializerBuilder apply(PropertyStore copyFrom) { + super.apply(copyFrom); + return this; + } +} \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializer.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializer.java b/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializer.java index 3091056..da39582 100644 --- a/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializer.java +++ b/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializer.java @@ -12,10 +12,11 @@ // *************************************************************************************************************************** package org.apache.juneau.xml; -import static org.apache.juneau.xml.XmlSerializerContext.*; -import static org.apache.juneau.xml.annotation.XmlFormat.*; +import static org.apache.juneau.serializer.SerializerContext.*; import static org.apache.juneau.xml.XmlSerializer.ContentResult.*; import static org.apache.juneau.xml.XmlSerializer.JsonType.*; +import static org.apache.juneau.xml.XmlSerializerContext.*; +import static org.apache.juneau.xml.annotation.XmlFormat.*; import java.lang.reflect.*; import java.util.*; @@ -125,64 +126,128 @@ import org.apache.juneau.xml.annotation.*; public class XmlSerializer extends WriterSerializer { /** Default serializer without namespaces. */ - public static final XmlSerializer DEFAULT = new XmlSerializer().lock(); + public static final XmlSerializer DEFAULT = new XmlSerializer(PropertyStore.create()); /** Default serializer without namespaces, with single quotes. */ - public static final XmlSerializer DEFAULT_SQ = new XmlSerializer.Sq().lock(); + public static final XmlSerializer DEFAULT_SQ = new Sq(PropertyStore.create()); /** Default serializer without namespaces, with single quotes, whitespace added. */ - public static final XmlSerializer DEFAULT_SQ_READABLE = new XmlSerializer.SqReadable().lock(); + public static final XmlSerializer DEFAULT_SQ_READABLE = new SqReadable(PropertyStore.create()); /** Default serializer, all default settings. */ - public static final XmlSerializer DEFAULT_NS = new XmlSerializer.Ns().lock(); + public static final XmlSerializer DEFAULT_NS = new Ns(PropertyStore.create()); /** Default serializer, single quotes. */ - public static final XmlSerializer DEFAULT_NS_SQ = new XmlSerializer.NsSq().lock(); + public static final XmlSerializer DEFAULT_NS_SQ = new NsSq(PropertyStore.create()); /** Default serializer, single quotes, whitespace added. */ - public static final XmlSerializer DEFAULT_NS_SQ_READABLE = new XmlSerializer.NsSqReadable().lock(); + public static final XmlSerializer DEFAULT_NS_SQ_READABLE = new NsSqReadable(PropertyStore.create()); + /** Default serializer, single quotes. */ public static class Sq extends XmlSerializer { - /** Constructor */ - public Sq() { - setQuoteChar('\''); + + /** + * Constructor. + * @param propertyStore The property store containing all the settings for this object. + */ + public Sq(PropertyStore propertyStore) { + super(propertyStore); + } + + @Override /* CoreObject */ + protected ObjectMap getOverrideProperties() { + return super.getOverrideProperties().append(SERIALIZER_quoteChar, '\''); } } /** Default serializer, single quotes, whitespace added. */ - public static class SqReadable extends Sq { - /** Constructor */ - public SqReadable() { - setUseWhitespace(true); + public static class SqReadable extends XmlSerializer { + + /** + * Constructor. + * @param propertyStore The property store containing all the settings for this object. + */ + public SqReadable(PropertyStore propertyStore) { + super(propertyStore); + } + + @Override /* CoreObject */ + protected ObjectMap getOverrideProperties() { + return super.getOverrideProperties().append(SERIALIZER_quoteChar, '\'').append(SERIALIZER_useWhitespace, true); } } /** Default serializer without namespaces. */ @Produces(value="text/xml+simple",contentType="text/xml") public static class Ns extends XmlSerializer { - /** Constructor */ - public Ns() { - setEnableNamespaces(true); + + /** + * Constructor. + * @param propertyStore The property store containing all the settings for this object. + */ + public Ns(PropertyStore propertyStore) { + super(propertyStore); + } + + @Override /* CoreObject */ + protected ObjectMap getOverrideProperties() { + return super.getOverrideProperties().append(XML_enableNamespaces, true); } } /** Default serializer without namespaces, single quotes. */ - public static class NsSq extends Ns { - /** Constructor */ - public NsSq() { - setQuoteChar('\''); + public static class NsSq extends XmlSerializer { + + /** + * Constructor. + * @param propertyStore The property store containing all the settings for this object. + */ + public NsSq(PropertyStore propertyStore) { + super(propertyStore); + } + + @Override /* CoreObject */ + protected ObjectMap getOverrideProperties() { + return super.getOverrideProperties().append(XML_enableNamespaces, true).append(SERIALIZER_quoteChar, '\''); } } /** Default serializer without namespaces, single quotes, with whitespace. */ - public static class NsSqReadable extends NsSq { - /** Constructor */ - public NsSqReadable() { - setUseWhitespace(true); + public static class NsSqReadable extends XmlSerializer { + + /** + * Constructor. + * @param propertyStore The property store containing all the settings for this object. + */ + public NsSqReadable(PropertyStore propertyStore) { + super(propertyStore); + } + + @Override /* CoreObject */ + protected ObjectMap getOverrideProperties() { + return super.getOverrideProperties().append(XML_enableNamespaces, true).append(SERIALIZER_quoteChar, '\'').append(SERIALIZER_useWhitespace, true); } } + + private final XmlSerializerContext ctx; + private volatile XmlSchemaSerializer schemaSerializer; + + /** + * Constructor. + * @param propertyStore The property store containing all the settings for this object. + */ + public XmlSerializer(PropertyStore propertyStore) { + super(propertyStore); + this.ctx = createContext(XmlSerializerContext.class); + } + + @Override /* CoreObject */ + public XmlSerializerBuilder builder() { + return new XmlSerializerBuilder(propertyStore); + } + /** * Recursively searches for the XML namespaces on the specified POJO and adds them to the serializer context object. * @@ -717,8 +782,9 @@ public class XmlSerializer extends WriterSerializer { * @return The schema serializer. */ public XmlSerializer getSchemaSerializer() { - XmlSchemaSerializer s = new XmlSchemaSerializer(getContextFactory()); - return s; + if (schemaSerializer == null) + schemaSerializer = new XmlSchemaSerializer(propertyStore, getOverrideProperties()); + return schemaSerializer; } static enum JsonType { @@ -767,677 +833,6 @@ public class XmlSerializer extends WriterSerializer { @Override /* Serializer */ public XmlSerializerSession createSession(Object output, ObjectMap op, Method javaMethod, Locale locale, TimeZone timeZone, MediaType mediaType) { - return new XmlSerializerSession(getContext(XmlSerializerContext.class), op, output, javaMethod, locale, timeZone, mediaType); - } - - - //-------------------------------------------------------------------------------- - // Properties - //-------------------------------------------------------------------------------- - - /** - * <b>Configuration property:</b> Enable support for XML namespaces. - * <p> - * <ul> - * <li><b>Name:</b> <js>"XmlSerializer.enableNamespaces"</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 not enabled, XML output will not contain any namespaces regardless of any other settings. - * <p> - * <h5 class='section'>Notes:</h5> - * <ul> - * <li>This is equivalent to calling <code>setProperty(<jsf>XML_enableNamespaces</jsf>, value)</code>. - * <li>This introduces a slight performance penalty. - * </ul> - * - * @param value The new value for this property. - * @return This object (for method chaining). - * @throws LockedException If {@link #lock()} was called on this class. - * @see XmlSerializerContext#XML_enableNamespaces - */ - public XmlSerializer setEnableNamespaces(boolean value) throws LockedException { - return setProperty(XML_enableNamespaces, value); - } - - /** - * <b>Configuration property:</b> Auto-detect namespace usage. - * <p> - * <ul> - * <li><b>Name:</b> <js>"XmlSerializer.autoDetectNamespaces"</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> - * Detect namespace usage before serialization. - * <p> - * Used in conjunction with {@link XmlSerializerContext#XML_addNamespaceUrisToRoot} to reduce - * the list of namespace URLs appended to the root element to only those - * that will be used in the resulting document. - * <p> - * If enabled, then the data structure will first be crawled looking for - * namespaces that will be encountered before the root element is - * serialized. - * <p> - * This setting is ignored if {@link XmlSerializerContext#XML_enableNamespaces} is not enabled. - * <p> - * <h5 class='section'>Notes:</h5> - * <ul> - * <li>Auto-detection of namespaces can be costly performance-wise. - * In high-performance environments, it's recommended that namespace detection be - * disabled, and that namespaces be manually defined through the {@link XmlSerializerContext#XML_namespaces} property. - * </ul> - * <p> - * <h5 class='section'>Notes:</h5> - * <ul> - * <li>This is equivalent to calling <code>setProperty(<jsf>XML_autoDetectNamespaces</jsf>, value)</code>. - * <li>This introduces a slight performance penalty. - * </ul> - * - * @param value The new value for this property. - * @return This object (for method chaining). - * @throws LockedException If {@link #lock()} was called on this class. - * @see XmlSerializerContext#XML_autoDetectNamespaces - */ - public XmlSerializer setAutoDetectNamespaces(boolean value) throws LockedException { - return setProperty(XML_autoDetectNamespaces, value); - } - - /** - * <b>Configuration property:</b> Add namespace URLs to the root element. - * <p> - * <ul> - * <li><b>Name:</b> <js>"XmlSerializer.addNamespaceUrisToRoot"</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> - * Use this setting to add {@code xmlns:x} attributes to the root - * element for the default and all mapped namespaces. - * <p> - * This setting is ignored if {@link XmlSerializerContext#XML_enableNamespaces} is not enabled. - * <p> - * <h5 class='section'>Notes:</h5> - * <ul> - * <li>This is equivalent to calling <code>setProperty(<jsf>XML_addNamespaceUrisToRoot</jsf>, value)</code>. - * <li>This introduces a slight performance penalty. - * </ul> - * - * @param value The new value for this property. - * @return This object (for method chaining). - * @throws LockedException If {@link #lock()} was called on this class. - * @see XmlSerializerContext#XML_addNamespaceUrisToRoot - */ - public XmlSerializer setAddNamespaceUrisToRoot(boolean value) throws LockedException { - return setProperty(XML_addNamespaceUrisToRoot, value); - } - - /** - * <b>Configuration property:</b> Default namespace. - * <p> - * <ul> - * <li><b>Name:</b> <js>"XmlSerializer.defaultNamespace"</js> - * <li><b>Data type:</b> <code>String</code> - * <li><b>Default:</b> <js>"{juneau:'http://www.apache.org/2013/Juneau'}"</js> - * <li><b>Session-overridable:</b> <jk>true</jk> - * </ul> - * <p> - * Specifies the default namespace URI for this document. - * <p> - * <h5 class='section'>Notes:</h5> - * <ul> - * <li>This is equivalent to calling <code>setProperty(<jsf>XML_defaultNamespace</jsf>, value)</code>. - * <li>This introduces a slight performance penalty. - * </ul> - * - * @param value The new value for this property. - * @return This object (for method chaining). - * @throws LockedException If {@link #lock()} was called on this class. - * @see XmlSerializerContext#XML_defaultNamespace - */ - public XmlSerializer setDefaultNamespace(String value) throws LockedException { - return setProperty(XML_defaultNamespace, value); - } - - /** - * <b>Configuration property:</b> XMLSchema namespace. - * <p> - * <ul> - * <li><b>Name:</b> <js>"XmlSerializer.xsNamespace"</js> - * <li><b>Data type:</b> {@link Namespace} - * <li><b>Default:</b> <code>{name:<js>'xs'</js>,uri:<js>'http://www.w3.org/2001/XMLSchema'</js>}</code> - * <li><b>Session-overridable:</b> <jk>true</jk> - * </ul> - * <p> - * Specifies the namespace for the <code>XMLSchema</code> namespace, used by the schema generated - * by the {@link XmlSchemaSerializer} class. - * <p> - * <h5 class='section'>Notes:</h5> - * <ul> - * <li>This is equivalent to calling <code>setProperty(<jsf>XML_xsNamespace</jsf>, value)</code>. - * <li>This introduces a slight performance penalty. - * </ul> - * - * @param value The new value for this property. - * @return This object (for method chaining). - * @throws LockedException If {@link #lock()} was called on this class. - * @see XmlSerializerContext#XML_xsNamespace - */ - public XmlSerializer setXsNamespace(Namespace value) throws LockedException { - return setProperty(XML_xsNamespace, value); - } - - /** - * <b>Configuration property:</b> Default namespaces. - * <p> - * <ul> - * <li><b>Name:</b> <js>"XmlSerializer.namespaces"</js> - * <li><b>Data type:</b> <code>Set<{@link Namespace}></code> - * <li><b>Default:</b> empty set - * <li><b>Session-overridable:</b> <jk>true</jk> - * </ul> - * <p> - * The default list of namespaces associated with this serializer. - * <p> - * <h5 class='section'>Notes:</h5> - * <ul> - * <li>This is equivalent to calling <code>setProperty(<jsf>XML_namespaces</jsf>, values)</code>. - * <li>This introduces a slight performance penalty. - * </ul> - * - * @param values The new value for this property. - * @return This object (for method chaining). - * @throws LockedException If {@link #lock()} was called on this class. - * @see XmlSerializerContext#XML_namespaces - */ - public XmlSerializer setNamespaces(Namespace...values) throws LockedException { - return setProperty(XML_namespaces, values); - } - - @Override /* Serializer */ - public XmlSerializer setMaxDepth(int value) throws LockedException { - super.setMaxDepth(value); - return this; - } - - @Override /* Serializer */ - public XmlSerializer setInitialDepth(int value) throws LockedException { - super.setInitialDepth(value); - return this; - } - - @Override /* Serializer */ - public XmlSerializer setDetectRecursions(boolean value) throws LockedException { - super.setDetectRecursions(value); - return this; - } - - @Override /* Serializer */ - public XmlSerializer setIgnoreRecursions(boolean value) throws LockedException { - super.setIgnoreRecursions(value); - return this; - } - - @Override /* Serializer */ - public XmlSerializer setUseWhitespace(boolean value) throws LockedException { - super.setUseWhitespace(value); - return this; - } - - @Override /* Serializer */ - public XmlSerializer setAddBeanTypeProperties(boolean value) throws LockedException { - super.setAddBeanTypeProperties(value); - return this; - } - - @Override /* Serializer */ - public XmlSerializer setQuoteChar(char value) throws LockedException { - super.setQuoteChar(value); - return this; - } - - @Override /* Serializer */ - public XmlSerializer setTrimNullProperties(boolean value) throws LockedException { - super.setTrimNullProperties(value); - return this; - } - - @Override /* Serializer */ - public XmlSerializer setTrimEmptyCollections(boolean value) throws LockedException { - super.setTrimEmptyCollections(value); - return this; - } - - @Override /* Serializer */ - public XmlSerializer setTrimEmptyMaps(boolean value) throws LockedException { - super.setTrimEmptyMaps(value); - return this; - } - - @Override /* Serializer */ - public XmlSerializer setTrimStrings(boolean value) throws LockedException { - super.setTrimStrings(value); - return this; - } - - @Override /* Serializer */ - public XmlSerializer setRelativeUriBase(String value) throws LockedException { - super.setRelativeUriBase(value); - return this; - } - - @Override /* Serializer */ - public XmlSerializer setAbsolutePathUriBase(String value) throws LockedException { - super.setAbsolutePathUriBase(value); - return this; - } - - @Override /* Serializer */ - public XmlSerializer setSortCollections(boolean value) throws LockedException { - super.setSortCollections(value); - return this; - } - - @Override /* Serializer */ - public XmlSerializer setSortMaps(boolean value) throws LockedException { - super.setSortMaps(value); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setBeansRequireDefaultConstructor(boolean value) throws LockedException { - super.setBeansRequireDefaultConstructor(value); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setBeansRequireSerializable(boolean value) throws LockedException { - super.setBeansRequireSerializable(value); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setBeansRequireSettersForGetters(boolean value) throws LockedException { - super.setBeansRequireSettersForGetters(value); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setBeansRequireSomeProperties(boolean value) throws LockedException { - super.setBeansRequireSomeProperties(value); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setBeanMapPutReturnsOldValue(boolean value) throws LockedException { - super.setBeanMapPutReturnsOldValue(value); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setBeanConstructorVisibility(Visibility value) throws LockedException { - super.setBeanConstructorVisibility(value); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setBeanClassVisibility(Visibility value) throws LockedException { - super.setBeanClassVisibility(value); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setBeanFieldVisibility(Visibility value) throws LockedException { - super.setBeanFieldVisibility(value); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setMethodVisibility(Visibility value) throws LockedException { - super.setMethodVisibility(value); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setUseJavaBeanIntrospector(boolean value) throws LockedException { - super.setUseJavaBeanIntrospector(value); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setUseInterfaceProxies(boolean value) throws LockedException { - super.setUseInterfaceProxies(value); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setIgnoreUnknownBeanProperties(boolean value) throws LockedException { - super.setIgnoreUnknownBeanProperties(value); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setIgnoreUnknownNullBeanProperties(boolean value) throws LockedException { - super.setIgnoreUnknownNullBeanProperties(value); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setIgnorePropertiesWithoutSetters(boolean value) throws LockedException { - super.setIgnorePropertiesWithoutSetters(value); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setIgnoreInvocationExceptionsOnGetters(boolean value) throws LockedException { - super.setIgnoreInvocationExceptionsOnGetters(value); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setIgnoreInvocationExceptionsOnSetters(boolean value) throws LockedException { - super.setIgnoreInvocationExceptionsOnSetters(value); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setSortProperties(boolean value) throws LockedException { - super.setSortProperties(value); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setNotBeanPackages(String...values) throws LockedException { - super.setNotBeanPackages(values); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setNotBeanPackages(Collection<String> values) throws LockedException { - super.setNotBeanPackages(values); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer addNotBeanPackages(String...values) throws LockedException { - super.addNotBeanPackages(values); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer addNotBeanPackages(Collection<String> values) throws LockedException { - super.addNotBeanPackages(values); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer removeNotBeanPackages(String...values) throws LockedException { - super.removeNotBeanPackages(values); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer removeNotBeanPackages(Collection<String> values) throws LockedException { - super.removeNotBeanPackages(values); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setNotBeanClasses(Class<?>...values) throws LockedException { - super.setNotBeanClasses(values); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setNotBeanClasses(Collection<Class<?>> values) throws LockedException { - super.setNotBeanClasses(values); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer addNotBeanClasses(Class<?>...values) throws LockedException { - super.addNotBeanClasses(values); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer addNotBeanClasses(Collection<Class<?>> values) throws LockedException { - super.addNotBeanClasses(values); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer removeNotBeanClasses(Class<?>...values) throws LockedException { - super.removeNotBeanClasses(values); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer removeNotBeanClasses(Collection<Class<?>> values) throws LockedException { - super.removeNotBeanClasses(values); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setBeanFilters(Class<?>...values) throws LockedException { - super.setBeanFilters(values); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setBeanFilters(Collection<Class<?>> values) throws LockedException { - super.setBeanFilters(values); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer addBeanFilters(Class<?>...values) throws LockedException { - super.addBeanFilters(values); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer addBeanFilters(Collection<Class<?>> values) throws LockedException { - super.addBeanFilters(values); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer removeBeanFilters(Class<?>...values) throws LockedException { - super.removeBeanFilters(values); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer removeBeanFilters(Collection<Class<?>> values) throws LockedException { - super.removeBeanFilters(values); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setPojoSwaps(Class<?>...values) throws LockedException { - super.setPojoSwaps(values); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setPojoSwaps(Collection<Class<?>> values) throws LockedException { - super.setPojoSwaps(values); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer addPojoSwaps(Class<?>...values) throws LockedException { - super.addPojoSwaps(values); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer addPojoSwaps(Collection<Class<?>> values) throws LockedException { - super.addPojoSwaps(values); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer removePojoSwaps(Class<?>...values) throws LockedException { - super.removePojoSwaps(values); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer removePojoSwaps(Collection<Class<?>> values) throws LockedException { - super.removePojoSwaps(values); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setImplClasses(Map<Class<?>,Class<?>> values) throws LockedException { - super.setImplClasses(values); - return this; - } - - @Override /* CoreApi */ - public <T> CoreApi addImplClass(Class<T> interfaceClass, Class<? extends T> implClass) throws LockedException { - super.addImplClass(interfaceClass, implClass); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setBeanDictionary(Class<?>...values) throws LockedException { - super.setBeanDictionary(values); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setBeanDictionary(Collection<Class<?>> values) throws LockedException { - super.setBeanDictionary(values); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer addToBeanDictionary(Class<?>...values) throws LockedException { - super.addToBeanDictionary(values); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer addToBeanDictionary(Collection<Class<?>> values) throws LockedException { - super.addToBeanDictionary(values); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer removeFromBeanDictionary(Class<?>...values) throws LockedException { - super.removeFromBeanDictionary(values); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer removeFromBeanDictionary(Collection<Class<?>> values) throws LockedException { - super.removeFromBeanDictionary(values); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setBeanTypePropertyName(String value) throws LockedException { - super.setBeanTypePropertyName(value); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setDefaultParser(Class<?> value) throws LockedException { - super.setDefaultParser(value); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setLocale(Locale value) throws LockedException { - super.setLocale(value); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setTimeZone(TimeZone value) throws LockedException { - super.setTimeZone(value); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setMediaType(MediaType value) throws LockedException { - super.setMediaType(value); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setDebug(boolean value) throws LockedException { - super.setDebug(value); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setProperty(String name, Object value) throws LockedException { - super.setProperty(name, value); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer setProperties(ObjectMap properties) throws LockedException { - super.setProperties(properties); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer addToProperty(String name, Object value) throws LockedException { - super.addToProperty(name, value); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer putToProperty(String name, Object key, Object value) throws LockedException { - super.putToProperty(name, key, value); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer putToProperty(String name, Object value) throws LockedException { - super.putToProperty(name, value); - return this; - } - - @Override /* CoreApi */ - public XmlSerializer removeFromProperty(String name, Object value) throws LockedException { - super.removeFromProperty(name, value); - return this; - } - - - //-------------------------------------------------------------------------------- - // Overridden methods - //-------------------------------------------------------------------------------- - - @Override /* CoreApi */ - public XmlSerializer setClassLoader(ClassLoader classLoader) throws LockedException { - super.setClassLoader(classLoader); - return this; - } - - @Override /* Lockable */ - public XmlSerializer lock() { - super.lock(); - return this; - } - - @Override /* Lockable */ - public XmlSerializer clone() { - try { - XmlSerializer c = (XmlSerializer)super.clone(); - return c; - } catch (CloneNotSupportedException e) { - throw new RuntimeException(e); // Shouldn't happen. - } + return new XmlSerializerSession(ctx, op, output, javaMethod, locale, timeZone, mediaType); } } http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializerBuilder.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializerBuilder.java b/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializerBuilder.java new file mode 100644 index 0000000..d9f9a53 --- /dev/null +++ b/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializerBuilder.java @@ -0,0 +1,717 @@ +// *************************************************************************************************************************** +// * 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.xml; + +import static org.apache.juneau.xml.XmlSerializerContext.*; + +import java.util.*; + +import org.apache.juneau.*; +import org.apache.juneau.serializer.*; + +/** + * Builder class for building instances of XML serializers. + */ +public class XmlSerializerBuilder extends SerializerBuilder { + + /** + * Constructor, default settings. + */ + public XmlSerializerBuilder() { + super(); + } + + /** + * Constructor. + * @param propertyStore The initial configuration settings for this builder. + */ + public XmlSerializerBuilder(PropertyStore propertyStore) { + super(propertyStore); + } + + @Override /* CoreObjectBuilder */ + public XmlSerializer build() { + return new XmlSerializer(propertyStore); + } + + + //-------------------------------------------------------------------------------- + // Properties + //-------------------------------------------------------------------------------- + + /** + * <b>Configuration property:</b> Enable support for XML namespaces. + * <p> + * <ul> + * <li><b>Name:</b> <js>"XmlSerializer.enableNamespaces"</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 not enabled, XML output will not contain any namespaces regardless of any other settings. + * <p> + * <h5 class='section'>Notes:</h5> + * <ul> + * <li>This is equivalent to calling <code>property(<jsf>XML_enableNamespaces</jsf>, value)</code>. + * <li>This introduces a slight performance penalty. + * </ul> + * + * @param value The new value for this property. + * @return This object (for method chaining). + * @see XmlSerializerContext#XML_enableNamespaces + */ + public XmlSerializerBuilder enableNamespaces(boolean value) { + return property(XML_enableNamespaces, value); + } + + /** + * Shortcut for calling <code>setEnableNamespaces(<jk>true</jk>)</code>. + * + * @return This object (for method chaining). + */ + public XmlSerializerBuilder ns() { + return enableNamespaces(true); + } + + /** + * <b>Configuration property:</b> Auto-detect namespace usage. + * <p> + * <ul> + * <li><b>Name:</b> <js>"XmlSerializer.autoDetectNamespaces"</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> + * Detect namespace usage before serialization. + * <p> + * Used in conjunction with {@link XmlSerializerContext#XML_addNamespaceUrisToRoot} to reduce + * the list of namespace URLs appended to the root element to only those + * that will be used in the resulting document. + * <p> + * If enabled, then the data structure will first be crawled looking for + * namespaces that will be encountered before the root element is + * serialized. + * <p> + * This setting is ignored if {@link XmlSerializerContext#XML_enableNamespaces} is not enabled. + * <p> + * <h5 class='section'>Notes:</h5> + * <ul> + * <li>Auto-detection of namespaces can be costly performance-wise. + * In high-performance environments, it's recommended that namespace detection be + * disabled, and that namespaces be manually defined through the {@link XmlSerializerContext#XML_namespaces} property. + * </ul> + * <p> + * <h5 class='section'>Notes:</h5> + * <ul> + * <li>This is equivalent to calling <code>property(<jsf>XML_autoDetectNamespaces</jsf>, value)</code>. + * <li>This introduces a slight performance penalty. + * </ul> + * + * @param value The new value for this property. + * @return This object (for method chaining). + * @see XmlSerializerContext#XML_autoDetectNamespaces + */ + public XmlSerializerBuilder autoDetectNamespaces(boolean value) { + return property(XML_autoDetectNamespaces, value); + } + + /** + * <b>Configuration property:</b> Add namespace URLs to the root element. + * <p> + * <ul> + * <li><b>Name:</b> <js>"XmlSerializer.addNamespaceUrisToRoot"</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> + * Use this setting to add {@code xmlns:x} attributes to the root + * element for the default and all mapped namespaces. + * <p> + * This setting is ignored if {@link XmlSerializerContext#XML_enableNamespaces} is not enabled. + * <p> + * <h5 class='section'>Notes:</h5> + * <ul> + * <li>This is equivalent to calling <code>property(<jsf>XML_addNamespaceUrisToRoot</jsf>, value)</code>. + * <li>This introduces a slight performance penalty. + * </ul> + * + * @param value The new value for this property. + * @return This object (for method chaining). + * @see XmlSerializerContext#XML_addNamespaceUrisToRoot + */ + public XmlSerializerBuilder addNamespaceUrisToRoot(boolean value) { + return property(XML_addNamespaceUrisToRoot, value); + } + + /** + * <b>Configuration property:</b> Default namespace. + * <p> + * <ul> + * <li><b>Name:</b> <js>"XmlSerializer.defaultNamespace"</js> + * <li><b>Data type:</b> <code>String</code> + * <li><b>Default:</b> <js>"{juneau:'http://www.apache.org/2013/Juneau'}"</js> + * <li><b>Session-overridable:</b> <jk>true</jk> + * </ul> + * <p> + * Specifies the default namespace URI for this document. + * <p> + * <h5 class='section'>Notes:</h5> + * <ul> + * <li>This is equivalent to calling <code>property(<jsf>XML_defaultNamespace</jsf>, value)</code>. + * <li>This introduces a slight performance penalty. + * </ul> + * + * @param value The new value for this property. + * @return This object (for method chaining). + * @see XmlSerializerContext#XML_defaultNamespace + */ + public XmlSerializerBuilder defaultNamespace(String value) { + return property(XML_defaultNamespace, value); + } + + /** + * <b>Configuration property:</b> XMLSchema namespace. + * <p> + * <ul> + * <li><b>Name:</b> <js>"XmlSerializer.xsNamespace"</js> + * <li><b>Data type:</b> {@link Namespace} + * <li><b>Default:</b> <code>{name:<js>'xs'</js>,uri:<js>'http://www.w3.org/2001/XMLSchema'</js>}</code> + * <li><b>Session-overridable:</b> <jk>true</jk> + * </ul> + * <p> + * Specifies the namespace for the <code>XMLSchema</code> namespace, used by the schema generated + * by the {@link XmlSchemaSerializer} class. + * <p> + * <h5 class='section'>Notes:</h5> + * <ul> + * <li>This is equivalent to calling <code>property(<jsf>XML_xsNamespace</jsf>, value)</code>. + * <li>This introduces a slight performance penalty. + * </ul> + * + * @param value The new value for this property. + * @return This object (for method chaining). + * @see XmlSerializerContext#XML_xsNamespace + */ + public XmlSerializerBuilder xsNamespace(Namespace value) { + return property(XML_xsNamespace, value); + } + + /** + * <b>Configuration property:</b> Default namespaces. + * <p> + * <ul> + * <li><b>Name:</b> <js>"XmlSerializer.namespaces"</js> + * <li><b>Data type:</b> <code>Set<{@link Namespace}></code> + * <li><b>Default:</b> empty set + * <li><b>Session-overridable:</b> <jk>true</jk> + * </ul> + * <p> + * The default list of namespaces associated with this serializer. + * <p> + * <h5 class='section'>Notes:</h5> + * <ul> + * <li>This is equivalent to calling <code>property(<jsf>XML_namespaces</jsf>, values)</code>. + * <li>This introduces a slight performance penalty. + * </ul> + * + * @param values The new value for this property. + * @return This object (for method chaining). + * @see XmlSerializerContext#XML_namespaces + */ + public XmlSerializerBuilder namespaces(Namespace...values) { + return property(XML_namespaces, values); + } + + @Override /* SerializerBuilder */ + public XmlSerializerBuilder maxDepth(int value) { + super.maxDepth(value); + return this; + } + + @Override /* SerializerBuilder */ + public XmlSerializerBuilder initialDepth(int value) { + super.initialDepth(value); + return this; + } + + @Override /* SerializerBuilder */ + public XmlSerializerBuilder detectRecursions(boolean value) { + super.detectRecursions(value); + return this; + } + + @Override /* SerializerBuilder */ + public XmlSerializerBuilder ignoreRecursions(boolean value) { + super.ignoreRecursions(value); + return this; + } + + @Override /* SerializerBuilder */ + public XmlSerializerBuilder useWhitespace(boolean value) { + super.useWhitespace(value); + return this; + } + + @Override /* SerializerBuilder */ + public XmlSerializerBuilder ws() { + super.ws(); + return this; + } + + @Override /* SerializerBuilder */ + public XmlSerializerBuilder addBeanTypeProperties(boolean value) { + super.addBeanTypeProperties(value); + return this; + } + + @Override /* SerializerBuilder */ + public XmlSerializerBuilder quoteChar(char value) { + super.quoteChar(value); + return this; + } + + @Override /* SerializerBuilder */ + public XmlSerializerBuilder sq() { + super.sq(); + return this; + } + + @Override /* SerializerBuilder */ + public XmlSerializerBuilder trimNullProperties(boolean value) { + super.trimNullProperties(value); + return this; + } + + @Override /* SerializerBuilder */ + public XmlSerializerBuilder trimEmptyCollections(boolean value) { + super.trimEmptyCollections(value); + return this; + } + + @Override /* SerializerBuilder */ + public XmlSerializerBuilder trimEmptyMaps(boolean value) { + super.trimEmptyMaps(value); + return this; + } + + @Override /* SerializerBuilder */ + public XmlSerializerBuilder trimStrings(boolean value) { + super.trimStrings(value); + return this; + } + + @Override /* SerializerBuilder */ + public XmlSerializerBuilder relativeUriBase(String value) { + super.relativeUriBase(value); + return this; + } + + @Override /* SerializerBuilder */ + public XmlSerializerBuilder absolutePathUriBase(String value) { + super.absolutePathUriBase(value); + return this; + } + + @Override /* SerializerBuilder */ + public XmlSerializerBuilder sortCollections(boolean value) { + super.sortCollections(value); + return this; + } + + @Override /* SerializerBuilder */ + public XmlSerializerBuilder sortMaps(boolean value) { + super.sortMaps(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder beansRequireDefaultConstructor(boolean value) { + super.beansRequireDefaultConstructor(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder beansRequireSerializable(boolean value) { + super.beansRequireSerializable(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder beansRequireSettersForGetters(boolean value) { + super.beansRequireSettersForGetters(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder beansRequireSomeProperties(boolean value) { + super.beansRequireSomeProperties(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder beanMapPutReturnsOldValue(boolean value) { + super.beanMapPutReturnsOldValue(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder beanConstructorVisibility(Visibility value) { + super.beanConstructorVisibility(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder beanClassVisibility(Visibility value) { + super.beanClassVisibility(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder beanFieldVisibility(Visibility value) { + super.beanFieldVisibility(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder methodVisibility(Visibility value) { + super.methodVisibility(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder useJavaBeanIntrospector(boolean value) { + super.useJavaBeanIntrospector(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder useInterfaceProxies(boolean value) { + super.useInterfaceProxies(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder ignoreUnknownBeanProperties(boolean value) { + super.ignoreUnknownBeanProperties(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder ignoreUnknownNullBeanProperties(boolean value) { + super.ignoreUnknownNullBeanProperties(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder ignorePropertiesWithoutSetters(boolean value) { + super.ignorePropertiesWithoutSetters(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder ignoreInvocationExceptionsOnGetters(boolean value) { + super.ignoreInvocationExceptionsOnGetters(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder ignoreInvocationExceptionsOnSetters(boolean value) { + super.ignoreInvocationExceptionsOnSetters(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder sortProperties(boolean value) { + super.sortProperties(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder notBeanPackages(String...values) { + super.notBeanPackages(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder notBeanPackages(Collection<String> values) { + super.notBeanPackages(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder setNotBeanPackages(String...values) { + super.setNotBeanPackages(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder setNotBeanPackages(Collection<String> values) { + super.setNotBeanPackages(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder removeNotBeanPackages(String...values) { + super.removeNotBeanPackages(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder removeNotBeanPackages(Collection<String> values) { + super.removeNotBeanPackages(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder notBeanClasses(Class<?>...values) { + super.notBeanClasses(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder notBeanClasses(Collection<Class<?>> values) { + super.notBeanClasses(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder setNotBeanClasses(Class<?>...values) { + super.setNotBeanClasses(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder setNotBeanClasses(Collection<Class<?>> values) { + super.setNotBeanClasses(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder removeNotBeanClasses(Class<?>...values) { + super.removeNotBeanClasses(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder removeNotBeanClasses(Collection<Class<?>> values) { + super.removeNotBeanClasses(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder beanFilters(Class<?>...values) { + super.beanFilters(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder beanFilters(Collection<Class<?>> values) { + super.beanFilters(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder setBeanFilters(Class<?>...values) { + super.setBeanFilters(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder setBeanFilters(Collection<Class<?>> values) { + super.setBeanFilters(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder removeBeanFilters(Class<?>...values) { + super.removeBeanFilters(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder removeBeanFilters(Collection<Class<?>> values) { + super.removeBeanFilters(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder pojoSwaps(Class<?>...values) { + super.pojoSwaps(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder pojoSwaps(Collection<Class<?>> values) { + super.pojoSwaps(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder setPojoSwaps(Class<?>...values) { + super.setPojoSwaps(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder setPojoSwaps(Collection<Class<?>> values) { + super.setPojoSwaps(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder removePojoSwaps(Class<?>...values) { + super.removePojoSwaps(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder removePojoSwaps(Collection<Class<?>> values) { + super.removePojoSwaps(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder implClasses(Map<Class<?>,Class<?>> values) { + super.implClasses(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public <T> XmlSerializerBuilder implClass(Class<T> interfaceClass, Class<? extends T> implClass) { + super.implClass(interfaceClass, implClass); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder beanDictionary(Class<?>...values) { + super.beanDictionary(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder beanDictionary(Collection<Class<?>> values) { + super.beanDictionary(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder setBeanDictionary(Class<?>...values) { + super.setBeanDictionary(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder setBeanDictionary(Collection<Class<?>> values) { + super.setBeanDictionary(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder removeFromBeanDictionary(Class<?>...values) { + super.removeFromBeanDictionary(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder removeFromBeanDictionary(Collection<Class<?>> values) { + super.removeFromBeanDictionary(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder beanTypePropertyName(String value) { + super.beanTypePropertyName(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder defaultParser(Class<?> value) { + super.defaultParser(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder locale(Locale value) { + super.locale(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder timeZone(TimeZone value) { + super.timeZone(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder mediaType(MediaType value) { + super.mediaType(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder debug(boolean value) { + super.debug(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder property(String name, Object value) { + super.property(name, value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder properties(Map<String,Object> properties) { + super.properties(properties); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder addToProperty(String name, Object value) { + super.addToProperty(name, value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder putToProperty(String name, Object key, Object value) { + super.putToProperty(name, key, value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder putToProperty(String name, Object value) { + super.putToProperty(name, value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder removeFromProperty(String name, Object value) { + super.removeFromProperty(name, value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder classLoader(ClassLoader classLoader) { + super.classLoader(classLoader); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlSerializerBuilder apply(PropertyStore copyFrom) { + super.apply(copyFrom); + return this; + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializerContext.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializerContext.java b/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializerContext.java index cac3b8a..a431fc6 100644 --- a/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializerContext.java +++ b/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializerContext.java @@ -18,10 +18,10 @@ import org.apache.juneau.serializer.*; /** * Configurable properties on the {@link XmlSerializer} class. * <p> - * Context properties are set by calling {@link ContextFactory#setProperty(String, Object)} on the context factory - * returned {@link CoreApi#getContextFactory()}. + * Context properties are set by calling {@link PropertyStore#setProperty(String, Object)} on the property store + * passed into the constructor. * <p> - * See {@link ContextFactory} for more information about context properties. + * See {@link PropertyStore} for more information about context properties. * * <h5 class='section'>Inherited configurable properties:</h5> * <ul class='javahierarchy'> @@ -174,19 +174,19 @@ public class XmlSerializerContext extends SerializerContext { /** * Constructor. * <p> - * Typically only called from {@link ContextFactory#getContext(Class)}. + * Typically only called from {@link PropertyStore#getContext(Class)}. * - * @param cf The factory that created this context. + * @param ps The property store that created this context. */ - public XmlSerializerContext(ContextFactory cf) { - super(cf); - autoDetectNamespaces = cf.getProperty(XML_autoDetectNamespaces, boolean.class, true); - enableNamespaces = cf.getProperty(XML_enableNamespaces, boolean.class, false); - addNamespaceUrlsToRoot = cf.getProperty(XML_addNamespaceUrisToRoot, boolean.class, false); - defaultNamespace = cf.getProperty(XML_defaultNamespace, String.class, "{juneau:'http://www.apache.org/2013/Juneau'}"); - xsNamespace = cf.getProperty(XML_xsNamespace, Namespace.class, new Namespace("xs", "http://www.w3.org/2001/XMLSchema")); - namespaces = cf.getProperty(XML_namespaces, Namespace[].class, new Namespace[0]); - addBeanTypeProperties = cf.getProperty(XML_addBeanTypeProperties, boolean.class, cf.getProperty(SERIALIZER_addBeanTypeProperties, boolean.class, true)); + public XmlSerializerContext(PropertyStore ps) { + super(ps); + autoDetectNamespaces = ps.getProperty(XML_autoDetectNamespaces, boolean.class, true); + enableNamespaces = ps.getProperty(XML_enableNamespaces, boolean.class, false); + addNamespaceUrlsToRoot = ps.getProperty(XML_addNamespaceUrisToRoot, boolean.class, false); + defaultNamespace = ps.getProperty(XML_defaultNamespace, String.class, "{juneau:'http://www.apache.org/2013/Juneau'}"); + xsNamespace = ps.getProperty(XML_xsNamespace, Namespace.class, new Namespace("xs", "http://www.w3.org/2001/XMLSchema")); + namespaces = ps.getProperty(XML_namespaces, Namespace[].class, new Namespace[0]); + addBeanTypeProperties = ps.getProperty(XML_addBeanTypeProperties, boolean.class, ps.getProperty(SERIALIZER_addBeanTypeProperties, boolean.class, true)); } @Override /* Context */ http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java b/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java index 36c8a03..824b01e 100644 --- a/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java +++ b/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializerSession.java @@ -53,7 +53,7 @@ public class XmlSerializerSession extends SerializerSession { * @param output The output object. See {@link JsonSerializerSession#getWriter()} for valid class types. * @param op The override properties. * These override any context properties defined in the context. - * @param javaMethod The java method that called this parser, usually the method in a REST servlet. + * @param javaMethod The java method that called this serializer, usually the method in a REST servlet. * @param locale The session locale. * If <jk>null</jk>, then the locale defined on the context is used. * @param timeZone The session timezone. http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core/src/main/java/org/apache/juneau/xml/package.html ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/xml/package.html b/juneau-core/src/main/java/org/apache/juneau/xml/package.html index 5b91afe..4d9d595 100644 --- a/juneau-core/src/main/java/org/apache/juneau/xml/package.html +++ b/juneau-core/src/main/java/org/apache/juneau/xml/package.html @@ -237,10 +237,11 @@ </p> <p class='bcode'> <jc>// Create a new serializer with readable output, no namespaces yet.</jc> - XmlSerializer s = <jk>new</jk> XmlSerializer() - .setUseIndentation(<jk>true</jk>) - .setQuoteChar(<js>'\''</js>) - .setEnableNamespaces(<jk>false</jk>); + XmlSerializer s = <jk>new</jk> XmlSerializerBuilder() + .ws() <jc>// or .useWhitespace(true)</jc> + .sq() <jc>// or .quoteChar('\'')</jc> + .ns() <jc>// or .enableNamespaces(false)</jc> + .build(); <jc>// Create our bean.</jc> Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>); @@ -253,8 +254,10 @@ </p> <p class='bcode'> <jc>// Create a new serializer with readable output, no namespaces yet, but use cloning method.</jc> - XmlSerializer s = XmlSerializer.<jsf>DEFAULT_SQ_READABLE</jsf>.clone() - .setEnableNamespaces(<jk>false</jk>); + XmlSerializer s = XmlSerializer.<jsf>DEFAULT_SQ_READABLE</jsf> + .builder() + .ns() + .build(); </p> <p> The code above produces the following output: @@ -1983,10 +1986,7 @@ <p class='bcode'> <jc>// Create a new serializer with readable output, this time with namespaces enabled.</jc> <jc>// Note that this is identical to XmlSerializer.DEFAULT_NS_SQ_READABLE.</jc> - XmlSerializer s = <jk>new</jk> XmlSerializer() - .setEnableNamespaces(<jk>true</jk>) - .setUseIndentation(<jk>true</jk>) - .setQuoteChar(<js>'\''</js>); + XmlSerializer s = <jk>new</jk> XmlSerializerBuilder().ns().ws().sq().build(); <jc>// Create our bean.</jc> Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>); @@ -2072,11 +2072,12 @@ all the elements do not need to be prefixed: <p class='bcode'> <jc>// Create a new serializer with readable output, this time with namespaces enabled.</jc> - XmlSerializer s = <jk>new</jk> XmlSerializer() - .setUseIndentation(<jk>true</jk>) - .setQuoteChar(<js>'\''</js>) - .setEnableNamespaces(<jk>true</jk>) - .setDefaultNamespaceUri(<js>"http://www.apache.org/person/"</js>); + XmlSerializer s = <jk>new</jk> XmlSerializerBuilder() + .ws() + .sq() + .ns() + .defaultNamespaceUri(<js>"http://www.apache.org/person/"</js>) + .build(); </p> <p> This produces the following equivalent where the elements don't need prefixes since they're already in the default document namespace: @@ -2106,11 +2107,12 @@ </p> <p class='bcode'> <jc>// Create a new serializer with readable output, this time with namespaces enabled.</jc> - XmlSerializer s = <jk>new</jk> XmlSerializer() - .setUseIndentation(<jk>true</jk>) - .setQuoteChar(<js>'\''</js>) - .setAutoDetectNamespaces(<jk>false</jk>) - .setNamespaces(<js>"{per:'http://www.apache.org/person/'}"</js>); + XmlSerializer s = <jk>new</jk> XmlSerializerBuilder() + .ws() + .sq() + .autoDetectNamespaces(<jk>false</jk>) + .namespaces(<js>"{per:'http://www.apache.org/person/'}"</js>) + .build(); </p> </div> @@ -2240,9 +2242,7 @@ </p> <p class='bcode'> <jc>// Create a new serializer with readable output.</jc> - XmlSerializer s = <jk>new</jk> XmlSerializer() - .setUseIndentation(<jk>true</jk>) - .setQuoteChar(<js>'\''</js>); + XmlSerializer s = <jk>new</jk> XmlSerializerBuilder().ws().sq().build(); <jc>// Create our bean.</jc> Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>, <js>"http://sample/addressBook/person/1"</js>, <js>"http://sample/addressBook"</js>, <js>"Aug 12, 1946"</js>); @@ -2353,11 +2353,12 @@ </p> <p class='bcode'> <jc>// Create a new serializer with readable output.</jc> - XmlSerializer s = <jk>new</jk> XmlSerializer() - .setUseIndentation(<jk>true</jk>) - .setEnableNamespaces(<jk>true</jk>) - .setAddNamespaceUrisToRoot(<jk>true</jk>) - .setQuoteChar(<js>'\''</js>); + XmlSerializer s = <jk>new</jk> XmlSerializerBuilder() + .ws() + .ns() + .sq() + .addNamespaceUrisToRoot(<jk>true</jk>) + .build(); <jc>// Create the equivalent schema serializer.</jc> XmlSchemaSerializer ss = s.getSchemaSerializer(); @@ -2655,11 +2656,12 @@ </p> <p class='bcode'> <jc>// Create a new serializer with readable output.</jc> - XmlSerializer s = <jk>new</jk> XmlSerializer() - .setUseIndentation(<jk>true</jk>) - .setQuoteChar(<js>'\''</js>) - .setEnableNamespaces(<jk>false</jk>) - .setDetectRecursions(<jk>true</jk>); + XmlSerializer s = <jk>new</jk> XmlSerializerBuilder() + .ws() + .sq() + .ns() + .detectRecursions(<jk>true</jk>) + .build(); <jc>// Create a recursive loop.</jc> A a = <jk>new</jk> A(); @@ -2735,10 +2737,7 @@ </p> <p class='bcode'> <jc>// Create a new serializer with readable output.</jc> - XmlSerializer s = <jk>new</jk> XmlSerializer() - .setEnableNamespaces(<jk>true</jk>) - .setUseIndentation(<jk>true</jk>) - .setQuoteChar(<js>'\''</js>); + XmlSerializer s = <jk>new</jk> XmlSerializerBuilder().ws().sq().ns().build(); <jc>// Create our bean.</jc> Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>, <js>"http://sample/addressBook/person/1"</js>, <js>"http://sample/addressBook"</js>, <js>"Aug 12, 1946"</js>); @@ -3191,7 +3190,7 @@ </p> <p class='bcode'> <jc>// Create a client to handle XML requests and responses.</jc> - RestClient client = <jk>new</jk> RestClient(XmlSerializer.<jk>class</jk>, XmlParser.<jk>class</jk>); + RestClient client = <jk>new</jk> RestClientBuilder(XmlSerializer.<jk>class</jk>, XmlParser.<jk>class</jk>).build(); </p> <p> The client handles all content negotiation based on the registered serializers and parsers.
