http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.java b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.java new file mode 100644 index 0000000..6ea4ed3 --- /dev/null +++ b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.java @@ -0,0 +1,590 @@ +// *************************************************************************************************************************** +// * 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.urlencoding; + +import java.util.*; + +import org.apache.juneau.*; +import org.apache.juneau.uon.*; + +/** + * Builder class for building instances of URL-Encoding serializers. + */ +public class UrlEncodingSerializerBuilder extends UonSerializerBuilder { + + /** + * Constructor, default settings. + */ + public UrlEncodingSerializerBuilder() { + super(); + } + + /** + * Constructor. + * @param propertyStore The initial configuration settings for this builder. + */ + public UrlEncodingSerializerBuilder(PropertyStore propertyStore) { + super(propertyStore); + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializer build() { + return new UrlEncodingSerializer(propertyStore); + } + + + //-------------------------------------------------------------------------------- + // Properties + //-------------------------------------------------------------------------------- + + /** + * <b>Configuration property:</b> Serialize bean property collections/arrays as separate key/value pairs. + * <p> + * <ul> + * <li><b>Name:</b> <js>"UrlEncoding.expandedParams"</js> + * <li><b>Data type:</b> <code>Boolean</code> + * <li><b>Default:</b> <jk>false</jk> + * <li><b>Session-overridable:</b> <jk>true</jk> + * </ul> + * <p> + * If <jk>false</jk>, serializing the array <code>[1,2,3]</code> results in <code>?key=$a(1,2,3)</code>. + * If <jk>true</jk>, serializing the same array results in <code>?key=1&key=2&key=3</code>. + * + * <h5 class='section'>Example:</h5> + * <p class='bcode'> + * <jk>public class</jk> A { + * <jk>public</jk> String[] f1 = {<js>"a"</js>,<js>"b"</js>}; + * <jk>public</jk> List<String> f2 = <jk>new</jk> LinkedList<String>(Arrays.<jsm>asList</jsm>(<jk>new</jk> String[]{<js>"c"</js>,<js>"d"</js>})); + * } + * + * UrlEncodingSerializer s1 = UrlEncodingSerializer.<jsf>DEFAULT</jsf>; + * UrlEncodingSerializer s2 = <jk>new</jk> UrlEncodingSerializerBuilder().expandedParams(<jk>true</jk>).build(); + * + * String ss1 = s1.serialize(<jk>new</jk> A()); <jc>// Produces "f1=(a,b)&f2=(c,d)"</jc> + * String ss2 = s2.serialize(<jk>new</jk> A()); <jc>// Produces "f1=a&f1=b&f2=c&f2=d"</jc> + * </p> + * <p> + * This option only applies to beans. + * <p> + * <h5 class='section'>Notes:</h5> + * <ul> + * <li>If parsing multi-part parameters, it's highly recommended to use Collections or Lists + * as bean property types instead of arrays since arrays have to be recreated from scratch every time a value + * is added to it. + * </ul> + * <p> + * <h5 class='section'>Notes:</h5> + * <ul> + * <li>This is equivalent to calling <code>property(<jsf>URLENC_expandedParams</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 UrlEncodingContext#URLENC_expandedParams + */ + public UrlEncodingSerializerBuilder expandedParams(boolean value) { + return property(UrlEncodingContext.URLENC_expandedParams, value); + } + + @Override /* UonSerializerBuilder */ + public UrlEncodingSerializerBuilder encodeChars(boolean value) { + super.encodeChars(value); + return this; + } + + @Override /* UonSerializerBuilder */ + public UrlEncodingSerializerBuilder encoding() { + super.encoding(); + return this; + } + + @Override /* SerializerBuilder */ + public UrlEncodingSerializerBuilder maxDepth(int value) { + super.maxDepth(value); + return this; + } + + @Override /* SerializerBuilder */ + public UrlEncodingSerializerBuilder initialDepth(int value) { + super.initialDepth(value); + return this; + } + + @Override /* SerializerBuilder */ + public UrlEncodingSerializerBuilder detectRecursions(boolean value) { + super.detectRecursions(value); + return this; + } + + @Override /* SerializerBuilder */ + public UrlEncodingSerializerBuilder ignoreRecursions(boolean value) { + super.ignoreRecursions(value); + return this; + } + + @Override /* SerializerBuilder */ + public UrlEncodingSerializerBuilder useWhitespace(boolean value) { + super.useWhitespace(value); + return this; + } + + @Override /* SerializerBuilder */ + public UrlEncodingSerializerBuilder ws() { + super.ws(); + return this; + } + + @Override /* SerializerBuilder */ + public UrlEncodingSerializerBuilder addBeanTypeProperties(boolean value) { + super.addBeanTypeProperties(value); + return this; + } + + @Override /* SerializerBuilder */ + public UrlEncodingSerializerBuilder quoteChar(char value) { + super.quoteChar(value); + return this; + } + + @Override /* SerializerBuilder */ + public UrlEncodingSerializerBuilder sq() { + super.sq(); + return this; + } + + @Override /* SerializerBuilder */ + public UrlEncodingSerializerBuilder trimNullProperties(boolean value) { + super.trimNullProperties(value); + return this; + } + + @Override /* SerializerBuilder */ + public UrlEncodingSerializerBuilder trimEmptyCollections(boolean value) { + super.trimEmptyCollections(value); + return this; + } + + @Override /* SerializerBuilder */ + public UrlEncodingSerializerBuilder trimEmptyMaps(boolean value) { + super.trimEmptyMaps(value); + return this; + } + + @Override /* SerializerBuilder */ + public UrlEncodingSerializerBuilder trimStrings(boolean value) { + super.trimStrings(value); + return this; + } + + @Override /* SerializerBuilder */ + public UrlEncodingSerializerBuilder relativeUriBase(String value) { + super.relativeUriBase(value); + return this; + } + + @Override /* SerializerBuilder */ + public UrlEncodingSerializerBuilder absolutePathUriBase(String value) { + super.absolutePathUriBase(value); + return this; + } + + @Override /* SerializerBuilder */ + public UrlEncodingSerializerBuilder sortCollections(boolean value) { + super.sortCollections(value); + return this; + } + + @Override /* SerializerBuilder */ + public UrlEncodingSerializerBuilder sortMaps(boolean value) { + super.sortMaps(value); + return this; + } + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder beansRequireDefaultConstructor(boolean value) { + super.beansRequireDefaultConstructor(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder beansRequireSerializable(boolean value) { + super.beansRequireSerializable(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder beansRequireSettersForGetters(boolean value) { + super.beansRequireSettersForGetters(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder beansRequireSomeProperties(boolean value) { + super.beansRequireSomeProperties(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder beanMapPutReturnsOldValue(boolean value) { + super.beanMapPutReturnsOldValue(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder beanConstructorVisibility(Visibility value) { + super.beanConstructorVisibility(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder beanClassVisibility(Visibility value) { + super.beanClassVisibility(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder beanFieldVisibility(Visibility value) { + super.beanFieldVisibility(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder methodVisibility(Visibility value) { + super.methodVisibility(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder useJavaBeanIntrospector(boolean value) { + super.useJavaBeanIntrospector(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder useInterfaceProxies(boolean value) { + super.useInterfaceProxies(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder ignoreUnknownBeanProperties(boolean value) { + super.ignoreUnknownBeanProperties(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder ignoreUnknownNullBeanProperties(boolean value) { + super.ignoreUnknownNullBeanProperties(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder ignorePropertiesWithoutSetters(boolean value) { + super.ignorePropertiesWithoutSetters(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder ignoreInvocationExceptionsOnGetters(boolean value) { + super.ignoreInvocationExceptionsOnGetters(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder ignoreInvocationExceptionsOnSetters(boolean value) { + super.ignoreInvocationExceptionsOnSetters(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder sortProperties(boolean value) { + super.sortProperties(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder notBeanPackages(String...values) { + super.notBeanPackages(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder notBeanPackages(Collection<String> values) { + super.notBeanPackages(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder setNotBeanPackages(String...values) { + super.setNotBeanPackages(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder setNotBeanPackages(Collection<String> values) { + super.setNotBeanPackages(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder removeNotBeanPackages(String...values) { + super.removeNotBeanPackages(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder removeNotBeanPackages(Collection<String> values) { + super.removeNotBeanPackages(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder notBeanClasses(Class<?>...values) { + super.notBeanClasses(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder notBeanClasses(Collection<Class<?>> values) { + super.notBeanClasses(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder setNotBeanClasses(Class<?>...values) { + super.setNotBeanClasses(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder setNotBeanClasses(Collection<Class<?>> values) { + super.setNotBeanClasses(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder removeNotBeanClasses(Class<?>...values) { + super.removeNotBeanClasses(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder removeNotBeanClasses(Collection<Class<?>> values) { + super.removeNotBeanClasses(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder beanFilters(Class<?>...values) { + super.beanFilters(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder beanFilters(Collection<Class<?>> values) { + super.beanFilters(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder setBeanFilters(Class<?>...values) { + super.setBeanFilters(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder setBeanFilters(Collection<Class<?>> values) { + super.setBeanFilters(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder removeBeanFilters(Class<?>...values) { + super.removeBeanFilters(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder removeBeanFilters(Collection<Class<?>> values) { + super.removeBeanFilters(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder pojoSwaps(Class<?>...values) { + super.pojoSwaps(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder pojoSwaps(Collection<Class<?>> values) { + super.pojoSwaps(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder setPojoSwaps(Class<?>...values) { + super.setPojoSwaps(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder setPojoSwaps(Collection<Class<?>> values) { + super.setPojoSwaps(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder removePojoSwaps(Class<?>...values) { + super.removePojoSwaps(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder removePojoSwaps(Collection<Class<?>> values) { + super.removePojoSwaps(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder implClasses(Map<Class<?>,Class<?>> values) { + super.implClasses(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public <T> UrlEncodingSerializerBuilder implClass(Class<T> interfaceClass, Class<? extends T> implClass) { + super.implClass(interfaceClass, implClass); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder beanDictionary(Class<?>...values) { + super.beanDictionary(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder beanDictionary(Collection<Class<?>> values) { + super.beanDictionary(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder setBeanDictionary(Class<?>...values) { + super.setBeanDictionary(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder setBeanDictionary(Collection<Class<?>> values) { + super.setBeanDictionary(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder removeFromBeanDictionary(Class<?>...values) { + super.removeFromBeanDictionary(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder removeFromBeanDictionary(Collection<Class<?>> values) { + super.removeFromBeanDictionary(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder beanTypePropertyName(String value) { + super.beanTypePropertyName(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder defaultParser(Class<?> value) { + super.defaultParser(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder locale(Locale value) { + super.locale(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder timeZone(TimeZone value) { + super.timeZone(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder mediaType(MediaType value) { + super.mediaType(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder debug(boolean value) { + super.debug(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder property(String name, Object value) { + super.property(name, value); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder properties(Map<String,Object> properties) { + super.properties(properties); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder addToProperty(String name, Object value) { + super.addToProperty(name, value); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder putToProperty(String name, Object key, Object value) { + super.putToProperty(name, key, value); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder putToProperty(String name, Object value) { + super.putToProperty(name, value); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder removeFromProperty(String name, Object value) { + super.removeFromProperty(name, value); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder classLoader(ClassLoader classLoader) { + super.classLoader(classLoader); + return this; + } + + @Override /* CoreObjectBuilder */ + public UrlEncodingSerializerBuilder 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/urlencoding/UrlEncodingSerializerContext.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerContext.java b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerContext.java index dc2c46e..7c546ec 100644 --- a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerContext.java +++ b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerContext.java @@ -13,69 +13,31 @@ package org.apache.juneau.urlencoding; import org.apache.juneau.*; +import org.apache.juneau.uon.*; /** * Configurable properties on the {@link UrlEncodingSerializer} 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. */ public class UrlEncodingSerializerContext extends UonSerializerContext { - /** - * <b>Configuration property:</b> Serialize bean property collections/arrays as separate key/value pairs. - * <p> - * <ul> - * <li><b>Name:</b> <js>"UrlEncoding.expandedParams"</js> - * <li><b>Data type:</b> <code>Boolean</code> - * <li><b>Default:</b> <jk>false</jk> - * <li><b>Session-overridable:</b> <jk>true</jk> - * </ul> - * <p> - * If <jk>false</jk>, serializing the array <code>[1,2,3]</code> results in <code>?key=$a(1,2,3)</code>. - * If <jk>true</jk>, serializing the same array results in <code>?key=1&key=2&key=3</code>. - * - * <h5 class='section'>Example:</h5> - * <p class='bcode'> - * <jk>public class</jk> A { - * <jk>public</jk> String[] f1 = {<js>"a"</js>,<js>"b"</js>}; - * <jk>public</jk> List<String> f2 = <jk>new</jk> LinkedList<String>(Arrays.<jsm>asList</jsm>(<jk>new</jk> String[]{<js>"c"</js>,<js>"d"</js>})); - * } - * - * UrlEncodingSerializer s1 = <jk>new</jk> UrlEncodingParser(); - * UrlEncodingSerializer s2 = <jk>new</jk> UrlEncodingParser().setProperty(UrlEncodingContext.<jsf>URLENC_expandedParams</jsf>, <jk>true</jk>); - * - * String s1 = p1.serialize(<jk>new</jk> A()); <jc>// Produces "f1=(a,b)&f2=(c,d)"</jc> - * String s2 = p2.serialize(<jk>new</jk> A()); <jc>// Produces "f1=a&f1=b&f2=c&f2=d"</jc> - * </p> - * <p> - * This option only applies to beans. - * <p> - * <h5 class='section'>Notes:</h5> - * <ul> - * <li>If parsing multi-part parameters, it's highly recommended to use Collections or Lists - * as bean property types instead of arrays since arrays have to be recreated from scratch every time a value - * is added to it. - * </ul> - */ - public static final String URLENC_expandedParams = "UrlEncoding.expandedParams"; - - final boolean expandedParams; /** * 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 UrlEncodingSerializerContext(ContextFactory cf) { - super(cf); - this.expandedParams = cf.getProperty(URLENC_expandedParams, boolean.class, false); + public UrlEncodingSerializerContext(PropertyStore ps) { + super(ps); + this.expandedParams = ps.getProperty(UrlEncodingContext.URLENC_expandedParams, boolean.class, false); } @Override /* Context */ http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerSession.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerSession.java b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerSession.java index 9f89a7f..30b5b5c 100644 --- a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerSession.java +++ b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerSession.java @@ -12,13 +12,12 @@ // *************************************************************************************************************************** package org.apache.juneau.urlencoding; -import static org.apache.juneau.urlencoding.UrlEncodingParserContext.*; - import java.lang.reflect.*; import java.util.*; import org.apache.juneau.*; import org.apache.juneau.json.*; +import org.apache.juneau.uon.*; /** * Session object that lives for the duration of a single use of {@link UrlEncodingSerializer}. @@ -37,7 +36,7 @@ public class UrlEncodingSerializerSession extends UonSerializerSession { * @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. @@ -49,7 +48,7 @@ public class UrlEncodingSerializerSession extends UonSerializerSession { if (op == null || op.isEmpty()) { expandedParams = ctx.expandedParams; } else { - expandedParams = op.getBoolean(URLENC_expandedParams, false); + expandedParams = op.getBoolean(UrlEncodingContext.URLENC_expandedParams, false); } } http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core/src/main/java/org/apache/juneau/urlencoding/package.html ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/urlencoding/package.html b/juneau-core/src/main/java/org/apache/juneau/urlencoding/package.html index 1282922..4d623d1 100644 --- a/juneau-core/src/main/java/org/apache/juneau/urlencoding/package.html +++ b/juneau-core/src/main/java/org/apache/juneau/urlencoding/package.html @@ -305,7 +305,7 @@ <h2 class='topic' onclick='toggle(this)'>2 - UrlEncodingSerializer and UonSerializer classes</h2> <div class='topic'> <p> - {@link org.apache.juneau.urlencoding.UrlEncodingSerializer} and {@link org.apache.juneau.urlencoding.UonSerializer} classes are used to convert POJOs to URL-encoded strings.<br> + {@link org.apache.juneau.urlencoding.UrlEncodingSerializer} and {@link org.apache.juneau.uon.UonSerializer} classes are used to convert POJOs to URL-encoded strings.<br> The <code>UonSerializer</code> class converts parameter values to UON notation. The <code>UrlEncodingSerializer</code> class converts a POJO to key/value URL-Encoded pairs using <code>UonSerializer</code> to serialize the values. If you're trying to construct complete URL-Encoded entities, use <code>UrlEncodingSerializer</code>. @@ -318,9 +318,9 @@ <ul class='spaced-list'> <li>{@link org.apache.juneau.urlencoding.UrlEncodingSerializer#DEFAULT} - All default settings, strict mode. <li>{@link org.apache.juneau.urlencoding.UrlEncodingSerializer#DEFAULT_READABLE} - Use whitespace and indentation for readability. - <li>{@link org.apache.juneau.urlencoding.UonSerializer#DEFAULT} - All default settings, strict mode. - <li>{@link org.apache.juneau.urlencoding.UonSerializer#DEFAULT_READABLE} - Use whitespace and indentation for readability. - <li>{@link org.apache.juneau.urlencoding.UonSerializer#DEFAULT_ENCODING} - Same as DEFAULT, but use URL-Encoding on special characters. + <li>{@link org.apache.juneau.uon.UonSerializer#DEFAULT} - All default settings, strict mode. + <li>{@link org.apache.juneau.uon.UonSerializer#DEFAULT_READABLE} - Use whitespace and indentation for readability. + <li>{@link org.apache.juneau.uon.UonSerializer#DEFAULT_ENCODING} - Same as DEFAULT, but use URL-Encoding on special characters. </ul> <p> The general guidelines on which serializer to use is: @@ -623,7 +623,7 @@ </p> <p class='bcode'> <jc>// Clone an existing serializer and set property for detecting recursions.</jc> - UrlEncodingSerializer s = UrlEncodingSerializer.<jsf>DEFAULT_READABLE</jsf>.clone().setDetectRecursions(<jk>true</jk>); + UrlEncodingSerializer s = UrlEncodingSerializer.<jsf>DEFAULT_READABLE</jsf>.builder().detectRecursions(<jk>true</jk>).build(); <jc>// Create a recursive loop.</jc> A a = <jk>new</jk> A(); @@ -663,7 +663,7 @@ </p> <ul class='spaced-list'> <li>{@link org.apache.juneau.BeanContext} - Bean context properties. - <li>{@link org.apache.juneau.urlencoding.UonSerializerContext} - UON serializer context properties. + <li>{@link org.apache.juneau.uon.UonSerializerContext} - UON serializer context properties. <li>{@link org.apache.juneau.urlencoding.UrlEncodingSerializerContext} - URL-Encoding serializer context properties. </ul> </div> @@ -686,7 +686,7 @@ <h2 class='topic' onclick='toggle(this)'>3 - UrlEncodingParser and UonParser classes</h2> <div class='topic'> <p> - {@link org.apache.juneau.urlencoding.UrlEncodingParser} and {@link org.apache.juneau.urlencoding.UonParser} classes are used to convert URL-encoded strings back into POJOs.<br> + {@link org.apache.juneau.urlencoding.UrlEncodingParser} and {@link org.apache.juneau.uon.UonParser} classes are used to convert URL-encoded strings back into POJOs.<br> The <code>UonParser</code> class converts UON-encoded parameter values to POJOs. The <code>UrlEncodingParser</code> class converts entire URL-Encoded strings to POJOs using <code>UonSerializer</code> to serialize indivisual values. If you're trying to parse an entire URL-Encoded string, use <code>UrlEncodingParser</code>. @@ -697,8 +697,8 @@ </p> <ul class='spaced-list'> <li>{@link org.apache.juneau.urlencoding.UrlEncodingParser#DEFAULT} - Default parser for entire URL-encoded strings, decode <code>%xx</code> sequences. - <li>{@link org.apache.juneau.urlencoding.UonParser#DEFAULT} - Default parser for URL-encoded parameter values, don't decode <code>%xx</code> sequences. - <li>{@link org.apache.juneau.urlencoding.UonParser#DEFAULT_DECODING} - Default parser for URL-encoded parameter values, decode <code>%xx</code> sequences. + <li>{@link org.apache.juneau.uon.UonParser#DEFAULT} - Default parser for URL-encoded parameter values, don't decode <code>%xx</code> sequences. + <li>{@link org.apache.juneau.uon.UonParser#DEFAULT_DECODING} - Default parser for URL-encoded parameter values, decode <code>%xx</code> sequences. </ul> <p> The general guildlines on which parser to use is: @@ -916,7 +916,7 @@ </p> <ul class='spaced-list'> <li>{@link org.apache.juneau.BeanContext} - Bean context properties. - <li>{@link org.apache.juneau.urlencoding.UonParserContext} - UON parser context properties. + <li>{@link org.apache.juneau.uon.UonParserContext} - UON parser context properties. <li>{@link org.apache.juneau.urlencoding.UrlEncodingParserContext} - URL-Encoding parser context properties. </ul> </div> http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core/src/main/java/org/apache/juneau/utils/PojoQuery.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/utils/PojoQuery.java b/juneau-core/src/main/java/org/apache/juneau/utils/PojoQuery.java index e42ec1b..5249b17 100644 --- a/juneau-core/src/main/java/org/apache/juneau/utils/PojoQuery.java +++ b/juneau-core/src/main/java/org/apache/juneau/utils/PojoQuery.java @@ -622,7 +622,7 @@ public final class PojoQuery { numberRanges = l.toArray(new NumberRange[l.size()]); } - private List<String> breakUpTokens(String s) { + private static List<String> breakUpTokens(String s) { // Get rid of whitespace in "123 - 456" s = s.replaceAll("(-?\\d+)\\s*-\\s*(-?\\d+)", "$1-$2"); // Get rid of whitespace in ">= 123" @@ -1042,7 +1042,7 @@ public final class PojoQuery { /** * Break up search pattern into separate tokens. */ - private List<String> breakUpTokens(String s) { + private static List<String> breakUpTokens(String s) { // If the string is null or all whitespace, return an empty vector. if (s == null || s.trim().length() == 0) http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core/src/main/java/org/apache/juneau/xml/XmlBeanMeta.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/xml/XmlBeanMeta.java b/juneau-core/src/main/java/org/apache/juneau/xml/XmlBeanMeta.java index 0121a3e..7b00113 100644 --- a/juneau-core/src/main/java/org/apache/juneau/xml/XmlBeanMeta.java +++ b/juneau-core/src/main/java/org/apache/juneau/xml/XmlBeanMeta.java @@ -13,6 +13,7 @@ package org.apache.juneau.xml; import static org.apache.juneau.xml.annotation.XmlFormat.*; + import java.util.*; import org.apache.juneau.*; http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core/src/main/java/org/apache/juneau/xml/XmlDocSerializer.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/xml/XmlDocSerializer.java b/juneau-core/src/main/java/org/apache/juneau/xml/XmlDocSerializer.java index c62d18f..0d4a9d2 100644 --- a/juneau-core/src/main/java/org/apache/juneau/xml/XmlDocSerializer.java +++ b/juneau-core/src/main/java/org/apache/juneau/xml/XmlDocSerializer.java @@ -12,6 +12,9 @@ // *************************************************************************************************************************** package org.apache.juneau.xml; +import static org.apache.juneau.xml.XmlSerializerContext.*; + +import org.apache.juneau.*; import org.apache.juneau.annotation.*; import org.apache.juneau.serializer.*; @@ -33,14 +36,30 @@ import org.apache.juneau.serializer.*; public class XmlDocSerializer extends XmlSerializer { /** Default serializer without namespaces. */ - @Produces(value="text/xml+simple",contentType="text/xml") - public static class Simple extends XmlDocSerializer { - /** Constructor */ - public Simple() { - setEnableNamespaces(false); + @Produces(value="text/xml",contentType="text/xml") + public static class Ns extends XmlDocSerializer { + + /** + * 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); } } + /** + * Constructor. + * @param propertyStore The property store containing all the settings for this object. + */ + public XmlDocSerializer(PropertyStore propertyStore) { + super(propertyStore); + } //-------------------------------------------------------------------------------- // Entry point methods http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core/src/main/java/org/apache/juneau/xml/XmlParser.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/xml/XmlParser.java b/juneau-core/src/main/java/org/apache/juneau/xml/XmlParser.java index a6a0212..7a325c7 100644 --- a/juneau-core/src/main/java/org/apache/juneau/xml/XmlParser.java +++ b/juneau-core/src/main/java/org/apache/juneau/xml/XmlParser.java @@ -15,13 +15,11 @@ package org.apache.juneau.xml; import static javax.xml.stream.XMLStreamConstants.*; import static org.apache.juneau.internal.StringUtils.*; import static org.apache.juneau.xml.annotation.XmlFormat.*; -import static org.apache.juneau.xml.XmlParserContext.*; import java.lang.reflect.*; import java.util.*; import javax.xml.stream.*; -import javax.xml.stream.util.*; import org.apache.juneau.*; import org.apache.juneau.annotation.*; @@ -53,10 +51,27 @@ import org.apache.juneau.xml.annotation.*; public class XmlParser extends ReaderParser { /** Default parser, all default settings.*/ - public static final XmlParser DEFAULT = new XmlParser().lock(); + public static final XmlParser DEFAULT = new XmlParser(PropertyStore.create()); private static final int UNKNOWN=0, OBJECT=1, ARRAY=2, STRING=3, NUMBER=4, BOOLEAN=5, NULL=6; + + private final XmlParserContext ctx; + + /** + * Constructor. + * @param propertyStore The property store containing all the settings for this object. + */ + public XmlParser(PropertyStore propertyStore) { + super(propertyStore); + this.ctx = createContext(XmlParserContext.class); + } + + @Override /* CoreObject */ + public XmlParserBuilder builder() { + return new XmlParserBuilder(propertyStore); + } + /** * Workhorse method. * @@ -497,7 +512,7 @@ public class XmlParser extends ReaderParser { @Override /* Parser */ public XmlParserSession createSession(Object input, ObjectMap op, Method javaMethod, Object outer, Locale locale, TimeZone timeZone, MediaType mediaType) { - return new XmlParserSession(getContext(XmlParserContext.class), op, input, javaMethod, outer, locale, timeZone, mediaType); + return new XmlParserSession(ctx, op, input, javaMethod, outer, locale, timeZone, mediaType); } @Override /* Parser */ @@ -525,585 +540,4 @@ public class XmlParser extends ReaderParser { XmlParserSession s = (XmlParserSession)session; return doParseArgs(s, s.getXmlStreamReader(), argTypes); } - - - //-------------------------------------------------------------------------------- - // Properties - //-------------------------------------------------------------------------------- - - /** - * <b>Configuration property:</b> Enable validation. - * <p> - * <ul> - * <li><b>Name:</b> <js>"XmlParser.validating"</js> - * <li><b>Data type:</b> <code>Boolean</code> - * <li><b>Default:</b> <jk>false</jk> - * <li><b>Session-overridable:</b> <jk>true</jk> - * </ul> - * <p> - * If <jk>true</jk>, XML document will be validated. - * See {@link XMLInputFactory#IS_VALIDATING} for more info. - * <p> - * If <jk>true</jk>, string values will be trimmed of whitespace using {@link String#trim()} before being added to the POJO. - * <p> - * <h5 class='section'>Notes:</h5> - * <ul> - * <li>This is equivalent to calling <code>setProperty(<jsf>XML_validating</jsf>, value)</code>. - * </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 XmlParserContext#XML_validating - */ - public XmlParser setValidating(boolean value) throws LockedException { - return setProperty(XML_validating, value); - } - - /** - * <b>Configuration property:</b> XML reporter. - * <p> - * <ul> - * <li><b>Name:</b> <js>"XmlParser.reporter"</js> - * <li><b>Data type:</b> {@link XMLReporter} - * <li><b>Default:</b> <jk>null</jk> - * <li><b>Session-overridable:</b> <jk>true</jk> - * </ul> - * <p> - * Associates an {@link XMLReporter} with this parser. - * <p> - * <h5 class='section'>Notes:</h5> - * <ul> - * <li>Reporters are not copied to new parsers during a clone. - * </ul> - * <p> - * If <jk>true</jk>, string values will be trimmed of whitespace using {@link String#trim()} before being added to the POJO. - * <p> - * <h5 class='section'>Notes:</h5> - * <ul> - * <li>This is equivalent to calling <code>setProperty(<jsf>XML_reporter</jsf>, value)</code>. - * </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 XmlParserContext#XML_reporter - */ - public XmlParser setReporter(XMLReporter value) throws LockedException { - return setProperty(XML_reporter, value); - } - - /** - * <b>Configuration property:</b> XML resolver. - * <p> - * <ul> - * <li><b>Name:</b> <js>"XmlParser.resolver"</js> - * <li><b>Data type:</b> {@link XMLResolver} - * <li><b>Default:</b> <jk>null</jk> - * <li><b>Session-overridable:</b> <jk>true</jk> - * </ul> - * <p> - * Associates an {@link XMLResolver} with this parser. - * <p> - * If <jk>true</jk>, string values will be trimmed of whitespace using {@link String#trim()} before being added to the POJO. - * <p> - * <h5 class='section'>Notes:</h5> - * <ul> - * <li>This is equivalent to calling <code>setProperty(<jsf>XML_resolver</jsf>, value)</code>. - * </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 XmlParserContext#XML_resolver - */ - public XmlParser setResolver(XMLResolver value) throws LockedException { - return setProperty(XML_resolver, value); - } - - /** - * <b>Configuration property:</b> XML event allocator. - * <p> - * <ul> - * <li><b>Name:</b> <js>"XmlParser.eventAllocator"</js> - * <li><b>Data type:</b> {@link XMLEventAllocator} - * <li><b>Default:</b> <jk>null</jk> - * <li><b>Session-overridable:</b> <jk>true</jk> - * </ul> - * <p> - * Associates an {@link XMLEventAllocator} with this parser. - * <p> - * If <jk>true</jk>, string values will be trimmed of whitespace using {@link String#trim()} before being added to the POJO. - * <p> - * <h5 class='section'>Notes:</h5> - * <ul> - * <li>This is equivalent to calling <code>setProperty(<jsf>XML_eventAllocator</jsf>, value)</code>. - * </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 XmlParserContext#XML_eventAllocator - */ - public XmlParser setEventAllocator(XMLEventAllocator value) throws LockedException { - return setProperty(XML_eventAllocator, value); - } - - /** - * <b>Configuration property:</b> Preserve root element during generalized parsing. - * <p> - * <ul> - * <li><b>Name:</b> <js>"XmlParser.preserveRootElement"</js> - * <li><b>Data type:</b> <code>Boolean</code> - * <li><b>Default:</b> <jk>false</jk> - * <li><b>Session-overridable:</b> <jk>true</jk> - * </ul> - * <p> - * If <jk>true</jk>, when parsing into a generic {@link ObjectMap}, the map will - * contain a single entry whose key is the root element name. - * - * Example: - * <table class='styled'> - * <tr> - * <td>XML</td> - * <td>ObjectMap.toString(), preserveRootElement==false</td> - * <td>ObjectMap.toString(), preserveRootElement==true</td> - * </tr> - * <tr> - * <td><code><xt><root><a></xt>foobar<xt></a></root></xt></code></td> - * <td><code>{ a:<js>'foobar'</js> }</code></td> - * <td><code>{ root: { a:<js>'foobar'</js> }}</code></td> - * </tr> - * </table> - * <p> - * <h5 class='section'>Notes:</h5> - * <ul> - * <li>This is equivalent to calling <code>setProperty(<jsf>XML_preserveRootElement</jsf>, value)</code>. - * </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 XmlParserContext#XML_preserveRootElement - */ - public XmlParser setPreserveRootElement(boolean value) throws LockedException { - return setProperty(XML_preserveRootElement, value); - } - - @Override /* Parser */ - public XmlParser setTrimStrings(boolean value) throws LockedException { - super.setTrimStrings(value); - return this; - } - - @Override /* Parser */ - public XmlParser setStrict(boolean value) throws LockedException { - super.setStrict(value); - return this; - } - - @Override /* Parser */ - public XmlParser setInputStreamCharset(String value) throws LockedException { - super.setInputStreamCharset(value); - return this; - } - - @Override /* Parser */ - public XmlParser setFileCharset(String value) throws LockedException { - super.setFileCharset(value); - return this; - } - - @Override /* CoreApi */ - public XmlParser setBeansRequireDefaultConstructor(boolean value) throws LockedException { - super.setBeansRequireDefaultConstructor(value); - return this; - } - - @Override /* CoreApi */ - public XmlParser setBeansRequireSerializable(boolean value) throws LockedException { - super.setBeansRequireSerializable(value); - return this; - } - - @Override /* CoreApi */ - public XmlParser setBeansRequireSettersForGetters(boolean value) throws LockedException { - super.setBeansRequireSettersForGetters(value); - return this; - } - - @Override /* CoreApi */ - public XmlParser setBeansRequireSomeProperties(boolean value) throws LockedException { - super.setBeansRequireSomeProperties(value); - return this; - } - - @Override /* CoreApi */ - public XmlParser setBeanMapPutReturnsOldValue(boolean value) throws LockedException { - super.setBeanMapPutReturnsOldValue(value); - return this; - } - - @Override /* CoreApi */ - public XmlParser setBeanConstructorVisibility(Visibility value) throws LockedException { - super.setBeanConstructorVisibility(value); - return this; - } - - @Override /* CoreApi */ - public XmlParser setBeanClassVisibility(Visibility value) throws LockedException { - super.setBeanClassVisibility(value); - return this; - } - - @Override /* CoreApi */ - public XmlParser setBeanFieldVisibility(Visibility value) throws LockedException { - super.setBeanFieldVisibility(value); - return this; - } - - @Override /* CoreApi */ - public XmlParser setMethodVisibility(Visibility value) throws LockedException { - super.setMethodVisibility(value); - return this; - } - - @Override /* CoreApi */ - public XmlParser setUseJavaBeanIntrospector(boolean value) throws LockedException { - super.setUseJavaBeanIntrospector(value); - return this; - } - - @Override /* CoreApi */ - public XmlParser setUseInterfaceProxies(boolean value) throws LockedException { - super.setUseInterfaceProxies(value); - return this; - } - - @Override /* CoreApi */ - public XmlParser setIgnoreUnknownBeanProperties(boolean value) throws LockedException { - super.setIgnoreUnknownBeanProperties(value); - return this; - } - - @Override /* CoreApi */ - public XmlParser setIgnoreUnknownNullBeanProperties(boolean value) throws LockedException { - super.setIgnoreUnknownNullBeanProperties(value); - return this; - } - - @Override /* CoreApi */ - public XmlParser setIgnorePropertiesWithoutSetters(boolean value) throws LockedException { - super.setIgnorePropertiesWithoutSetters(value); - return this; - } - - @Override /* CoreApi */ - public XmlParser setIgnoreInvocationExceptionsOnGetters(boolean value) throws LockedException { - super.setIgnoreInvocationExceptionsOnGetters(value); - return this; - } - - @Override /* CoreApi */ - public XmlParser setIgnoreInvocationExceptionsOnSetters(boolean value) throws LockedException { - super.setIgnoreInvocationExceptionsOnSetters(value); - return this; - } - - @Override /* CoreApi */ - public XmlParser setSortProperties(boolean value) throws LockedException { - super.setSortProperties(value); - return this; - } - - @Override /* CoreApi */ - public XmlParser setNotBeanPackages(String...values) throws LockedException { - super.setNotBeanPackages(values); - return this; - } - - @Override /* CoreApi */ - public XmlParser setNotBeanPackages(Collection<String> values) throws LockedException { - super.setNotBeanPackages(values); - return this; - } - - @Override /* CoreApi */ - public XmlParser addNotBeanPackages(String...values) throws LockedException { - super.addNotBeanPackages(values); - return this; - } - - @Override /* CoreApi */ - public XmlParser addNotBeanPackages(Collection<String> values) throws LockedException { - super.addNotBeanPackages(values); - return this; - } - - @Override /* CoreApi */ - public XmlParser removeNotBeanPackages(String...values) throws LockedException { - super.removeNotBeanPackages(values); - return this; - } - - @Override /* CoreApi */ - public XmlParser removeNotBeanPackages(Collection<String> values) throws LockedException { - super.removeNotBeanPackages(values); - return this; - } - - @Override /* CoreApi */ - public XmlParser setNotBeanClasses(Class<?>...values) throws LockedException { - super.setNotBeanClasses(values); - return this; - } - - @Override /* CoreApi */ - public XmlParser setNotBeanClasses(Collection<Class<?>> values) throws LockedException { - super.setNotBeanClasses(values); - return this; - } - - @Override /* CoreApi */ - public XmlParser addNotBeanClasses(Class<?>...values) throws LockedException { - super.addNotBeanClasses(values); - return this; - } - - @Override /* CoreApi */ - public XmlParser addNotBeanClasses(Collection<Class<?>> values) throws LockedException { - super.addNotBeanClasses(values); - return this; - } - - @Override /* CoreApi */ - public XmlParser removeNotBeanClasses(Class<?>...values) throws LockedException { - super.removeNotBeanClasses(values); - return this; - } - - @Override /* CoreApi */ - public XmlParser removeNotBeanClasses(Collection<Class<?>> values) throws LockedException { - super.removeNotBeanClasses(values); - return this; - } - - @Override /* CoreApi */ - public XmlParser setBeanFilters(Class<?>...values) throws LockedException { - super.setBeanFilters(values); - return this; - } - - @Override /* CoreApi */ - public XmlParser setBeanFilters(Collection<Class<?>> values) throws LockedException { - super.setBeanFilters(values); - return this; - } - - @Override /* CoreApi */ - public XmlParser addBeanFilters(Class<?>...values) throws LockedException { - super.addBeanFilters(values); - return this; - } - - @Override /* CoreApi */ - public XmlParser addBeanFilters(Collection<Class<?>> values) throws LockedException { - super.addBeanFilters(values); - return this; - } - - @Override /* CoreApi */ - public XmlParser removeBeanFilters(Class<?>...values) throws LockedException { - super.removeBeanFilters(values); - return this; - } - - @Override /* CoreApi */ - public XmlParser removeBeanFilters(Collection<Class<?>> values) throws LockedException { - super.removeBeanFilters(values); - return this; - } - - @Override /* CoreApi */ - public XmlParser setPojoSwaps(Class<?>...values) throws LockedException { - super.setPojoSwaps(values); - return this; - } - - @Override /* CoreApi */ - public XmlParser setPojoSwaps(Collection<Class<?>> values) throws LockedException { - super.setPojoSwaps(values); - return this; - } - - @Override /* CoreApi */ - public XmlParser addPojoSwaps(Class<?>...values) throws LockedException { - super.addPojoSwaps(values); - return this; - } - - @Override /* CoreApi */ - public XmlParser addPojoSwaps(Collection<Class<?>> values) throws LockedException { - super.addPojoSwaps(values); - return this; - } - - @Override /* CoreApi */ - public XmlParser removePojoSwaps(Class<?>...values) throws LockedException { - super.removePojoSwaps(values); - return this; - } - - @Override /* CoreApi */ - public XmlParser removePojoSwaps(Collection<Class<?>> values) throws LockedException { - super.removePojoSwaps(values); - return this; - } - - @Override /* CoreApi */ - public XmlParser 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 XmlParser setBeanDictionary(Class<?>...values) throws LockedException { - super.setBeanDictionary(values); - return this; - } - - @Override /* CoreApi */ - public XmlParser setBeanDictionary(Collection<Class<?>> values) throws LockedException { - super.setBeanDictionary(values); - return this; - } - - @Override /* CoreApi */ - public XmlParser addToBeanDictionary(Class<?>...values) throws LockedException { - super.addToBeanDictionary(values); - return this; - } - - @Override /* CoreApi */ - public XmlParser addToBeanDictionary(Collection<Class<?>> values) throws LockedException { - super.addToBeanDictionary(values); - return this; - } - - @Override /* CoreApi */ - public XmlParser removeFromBeanDictionary(Class<?>...values) throws LockedException { - super.removeFromBeanDictionary(values); - return this; - } - - @Override /* CoreApi */ - public XmlParser removeFromBeanDictionary(Collection<Class<?>> values) throws LockedException { - super.removeFromBeanDictionary(values); - return this; - } - - @Override /* CoreApi */ - public XmlParser setBeanTypePropertyName(String value) throws LockedException { - super.setBeanTypePropertyName(value); - return this; - } - - @Override /* CoreApi */ - public XmlParser setDefaultParser(Class<?> value) throws LockedException { - super.setDefaultParser(value); - return this; - } - - @Override /* CoreApi */ - public XmlParser setLocale(Locale value) throws LockedException { - super.setLocale(value); - return this; - } - - @Override /* CoreApi */ - public XmlParser setTimeZone(TimeZone value) throws LockedException { - super.setTimeZone(value); - return this; - } - - @Override /* CoreApi */ - public XmlParser setMediaType(MediaType value) throws LockedException { - super.setMediaType(value); - return this; - } - - @Override /* CoreApi */ - public XmlParser setDebug(boolean value) throws LockedException { - super.setDebug(value); - return this; - } - - @Override /* CoreApi */ - public XmlParser setProperty(String name, Object value) throws LockedException { - super.setProperty(name, value); - return this; - } - - @Override /* CoreApi */ - public XmlParser setProperties(ObjectMap properties) throws LockedException { - super.setProperties(properties); - return this; - } - - @Override /* CoreApi */ - public XmlParser addToProperty(String name, Object value) throws LockedException { - super.addToProperty(name, value); - return this; - } - - @Override /* CoreApi */ - public XmlParser putToProperty(String name, Object key, Object value) throws LockedException { - super.putToProperty(name, key, value); - return this; - } - - @Override /* CoreApi */ - public XmlParser putToProperty(String name, Object value) throws LockedException { - super.putToProperty(name, value); - return this; - } - - @Override /* CoreApi */ - public XmlParser removeFromProperty(String name, Object value) throws LockedException { - super.removeFromProperty(name, value); - return this; - } - - - //-------------------------------------------------------------------------------- - // Overridden methods - //-------------------------------------------------------------------------------- - - @Override /* CoreApi */ - public XmlParser setClassLoader(ClassLoader classLoader) throws LockedException { - super.setClassLoader(classLoader); - return this; - } - - @Override /* Lockable */ - public XmlParser lock() { - super.lock(); - return this; - } - - @Override /* Lockable */ - public XmlParser clone() { - try { - XmlParser c = (XmlParser)super.clone(); - return c; - } catch (CloneNotSupportedException e) { - throw new RuntimeException(e); // Shouldn't happen. - } - } } http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core/src/main/java/org/apache/juneau/xml/XmlParserBuilder.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/xml/XmlParserBuilder.java b/juneau-core/src/main/java/org/apache/juneau/xml/XmlParserBuilder.java new file mode 100644 index 0000000..6074bb3 --- /dev/null +++ b/juneau-core/src/main/java/org/apache/juneau/xml/XmlParserBuilder.java @@ -0,0 +1,616 @@ +// *************************************************************************************************************************** +// * 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.XmlParserContext.*; + +import java.util.*; + +import javax.xml.stream.*; +import javax.xml.stream.util.*; + +import org.apache.juneau.*; +import org.apache.juneau.parser.*; + +/** + * Builder class for building XML parsers. + */ +public class XmlParserBuilder extends ParserBuilder { + + /** + * Constructor, default settings. + */ + public XmlParserBuilder() { + super(); + } + + /** + * Constructor. + * @param propertyStore The initial configuration settings for this builder. + */ + public XmlParserBuilder(PropertyStore propertyStore) { + super(propertyStore); + } + + @Override /* CoreObjectBuilder */ + public XmlParser build() { + return new XmlParser(propertyStore); + } + + + //-------------------------------------------------------------------------------- + // Properties + //-------------------------------------------------------------------------------- + + /** + * <b>Configuration property:</b> Enable validation. + * <p> + * <ul> + * <li><b>Name:</b> <js>"XmlParserBuilder.validating"</js> + * <li><b>Data type:</b> <code>Boolean</code> + * <li><b>Default:</b> <jk>false</jk> + * <li><b>Session-overridable:</b> <jk>true</jk> + * </ul> + * <p> + * If <jk>true</jk>, XML document will be validated. + * See {@link XMLInputFactory#IS_VALIDATING} for more info. + * <p> + * If <jk>true</jk>, string values will be trimmed of whitespace using {@link String#trim()} before being added to the POJO. + * <p> + * <h5 class='section'>Notes:</h5> + * <ul> + * <li>This is equivalent to calling <code>property(<jsf>XML_validating</jsf>, value)</code>. + * </ul> + * + * @param value The new value for this property. + * @return This object (for method chaining). + * @see XmlParserContext#XML_validating + */ + public XmlParserBuilder validating(boolean value) { + return property(XML_validating, value); + } + + /** + * <b>Configuration property:</b> XML reporter. + * <p> + * <ul> + * <li><b>Name:</b> <js>"XmlParserBuilder.reporter"</js> + * <li><b>Data type:</b> {@link XMLReporter} + * <li><b>Default:</b> <jk>null</jk> + * <li><b>Session-overridable:</b> <jk>true</jk> + * </ul> + * <p> + * Associates an {@link XMLReporter} with this parser. + * <p> + * <h5 class='section'>Notes:</h5> + * <ul> + * <li>Reporters are not copied to new parsers during a clone. + * </ul> + * <p> + * If <jk>true</jk>, string values will be trimmed of whitespace using {@link String#trim()} before being added to the POJO. + * <p> + * <h5 class='section'>Notes:</h5> + * <ul> + * <li>This is equivalent to calling <code>property(<jsf>XML_reporter</jsf>, value)</code>. + * </ul> + * + * @param value The new value for this property. + * @return This object (for method chaining). + * @see XmlParserContext#XML_reporter + */ + public XmlParserBuilder reporter(XMLReporter value) { + return property(XML_reporter, value); + } + + /** + * <b>Configuration property:</b> XML resolver. + * <p> + * <ul> + * <li><b>Name:</b> <js>"XmlParserBuilder.resolver"</js> + * <li><b>Data type:</b> {@link XMLResolver} + * <li><b>Default:</b> <jk>null</jk> + * <li><b>Session-overridable:</b> <jk>true</jk> + * </ul> + * <p> + * Associates an {@link XMLResolver} with this parser. + * <p> + * If <jk>true</jk>, string values will be trimmed of whitespace using {@link String#trim()} before being added to the POJO. + * <p> + * <h5 class='section'>Notes:</h5> + * <ul> + * <li>This is equivalent to calling <code>property(<jsf>XML_resolver</jsf>, value)</code>. + * </ul> + * + * @param value The new value for this property. + * @return This object (for method chaining). + * @see XmlParserContext#XML_resolver + */ + public XmlParserBuilder resolver(XMLResolver value) { + return property(XML_resolver, value); + } + + /** + * <b>Configuration property:</b> XML event allocator. + * <p> + * <ul> + * <li><b>Name:</b> <js>"XmlParserBuilder.eventAllocator"</js> + * <li><b>Data type:</b> {@link XMLEventAllocator} + * <li><b>Default:</b> <jk>null</jk> + * <li><b>Session-overridable:</b> <jk>true</jk> + * </ul> + * <p> + * Associates an {@link XMLEventAllocator} with this parser. + * <p> + * If <jk>true</jk>, string values will be trimmed of whitespace using {@link String#trim()} before being added to the POJO. + * <p> + * <h5 class='section'>Notes:</h5> + * <ul> + * <li>This is equivalent to calling <code>property(<jsf>XML_eventAllocator</jsf>, value)</code>. + * </ul> + * + * @param value The new value for this property. + * @return This object (for method chaining). + * @see XmlParserContext#XML_eventAllocator + */ + public XmlParserBuilder eventAllocator(XMLEventAllocator value) { + return property(XML_eventAllocator, value); + } + + /** + * <b>Configuration property:</b> Preserve root element during generalized parsing. + * <p> + * <ul> + * <li><b>Name:</b> <js>"XmlParserBuilder.preserveRootElement"</js> + * <li><b>Data type:</b> <code>Boolean</code> + * <li><b>Default:</b> <jk>false</jk> + * <li><b>Session-overridable:</b> <jk>true</jk> + * </ul> + * <p> + * If <jk>true</jk>, when parsing into a generic {@link ObjectMap}, the map will + * contain a single entry whose key is the root element name. + * + * Example: + * <table class='styled'> + * <tr> + * <td>XML</td> + * <td>ObjectMap.toString(), preserveRootElement==false</td> + * <td>ObjectMap.toString(), preserveRootElement==true</td> + * </tr> + * <tr> + * <td><code><xt><root><a></xt>foobar<xt></a></root></xt></code></td> + * <td><code>{ a:<js>'foobar'</js> }</code></td> + * <td><code>{ root: { a:<js>'foobar'</js> }}</code></td> + * </tr> + * </table> + * <p> + * <h5 class='section'>Notes:</h5> + * <ul> + * <li>This is equivalent to calling <code>property(<jsf>XML_preserveRootElement</jsf>, value)</code>. + * </ul> + * + * @param value The new value for this property. + * @return This object (for method chaining). + * @see XmlParserContext#XML_preserveRootElement + */ + public XmlParserBuilder preserveRootElement(boolean value) { + return property(XML_preserveRootElement, value); + } + + @Override /* ParserBuilder */ + public XmlParserBuilder trimStrings(boolean value) { + super.trimStrings(value); + return this; + } + + @Override /* ParserBuilder */ + public XmlParserBuilder strict(boolean value) { + super.strict(value); + return this; + } + + @Override /* ParserBuilder */ + public XmlParserBuilder strict() { + super.strict(); + return this; + } + + @Override /* ParserBuilder */ + public XmlParserBuilder inputStreamCharset(String value) { + super.inputStreamCharset(value); + return this; + } + + @Override /* ParserBuilder */ + public XmlParserBuilder fileCharset(String value) { + super.fileCharset(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder beansRequireDefaultConstructor(boolean value) { + super.beansRequireDefaultConstructor(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder beansRequireSerializable(boolean value) { + super.beansRequireSerializable(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder beansRequireSettersForGetters(boolean value) { + super.beansRequireSettersForGetters(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder beansRequireSomeProperties(boolean value) { + super.beansRequireSomeProperties(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder beanMapPutReturnsOldValue(boolean value) { + super.beanMapPutReturnsOldValue(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder beanConstructorVisibility(Visibility value) { + super.beanConstructorVisibility(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder beanClassVisibility(Visibility value) { + super.beanClassVisibility(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder beanFieldVisibility(Visibility value) { + super.beanFieldVisibility(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder methodVisibility(Visibility value) { + super.methodVisibility(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder useJavaBeanIntrospector(boolean value) { + super.useJavaBeanIntrospector(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder useInterfaceProxies(boolean value) { + super.useInterfaceProxies(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder ignoreUnknownBeanProperties(boolean value) { + super.ignoreUnknownBeanProperties(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder ignoreUnknownNullBeanProperties(boolean value) { + super.ignoreUnknownNullBeanProperties(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder ignorePropertiesWithoutSetters(boolean value) { + super.ignorePropertiesWithoutSetters(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder ignoreInvocationExceptionsOnGetters(boolean value) { + super.ignoreInvocationExceptionsOnGetters(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder ignoreInvocationExceptionsOnSetters(boolean value) { + super.ignoreInvocationExceptionsOnSetters(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder sortProperties(boolean value) { + super.sortProperties(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder notBeanPackages(String...values) { + super.notBeanPackages(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder notBeanPackages(Collection<String> values) { + super.notBeanPackages(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder setNotBeanPackages(String...values) { + super.setNotBeanPackages(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder setNotBeanPackages(Collection<String> values) { + super.setNotBeanPackages(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder removeNotBeanPackages(String...values) { + super.removeNotBeanPackages(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder removeNotBeanPackages(Collection<String> values) { + super.removeNotBeanPackages(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder notBeanClasses(Class<?>...values) { + super.notBeanClasses(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder notBeanClasses(Collection<Class<?>> values) { + super.notBeanClasses(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder setNotBeanClasses(Class<?>...values) { + super.setNotBeanClasses(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder setNotBeanClasses(Collection<Class<?>> values) { + super.setNotBeanClasses(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder removeNotBeanClasses(Class<?>...values) { + super.removeNotBeanClasses(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder removeNotBeanClasses(Collection<Class<?>> values) { + super.removeNotBeanClasses(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder beanFilters(Class<?>...values) { + super.beanFilters(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder beanFilters(Collection<Class<?>> values) { + super.beanFilters(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder setBeanFilters(Class<?>...values) { + super.setBeanFilters(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder setBeanFilters(Collection<Class<?>> values) { + super.setBeanFilters(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder removeBeanFilters(Class<?>...values) { + super.removeBeanFilters(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder removeBeanFilters(Collection<Class<?>> values) { + super.removeBeanFilters(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder pojoSwaps(Class<?>...values) { + super.pojoSwaps(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder pojoSwaps(Collection<Class<?>> values) { + super.pojoSwaps(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder setPojoSwaps(Class<?>...values) { + super.setPojoSwaps(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder setPojoSwaps(Collection<Class<?>> values) { + super.setPojoSwaps(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder removePojoSwaps(Class<?>...values) { + super.removePojoSwaps(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder removePojoSwaps(Collection<Class<?>> values) { + super.removePojoSwaps(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder implClasses(Map<Class<?>,Class<?>> values) { + super.implClasses(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public <T> CoreObjectBuilder implClass(Class<T> interfaceClass, Class<? extends T> implClass) { + super.implClass(interfaceClass, implClass); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder beanDictionary(Class<?>...values) { + super.beanDictionary(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder beanDictionary(Collection<Class<?>> values) { + super.beanDictionary(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder setBeanDictionary(Class<?>...values) { + super.setBeanDictionary(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder setBeanDictionary(Collection<Class<?>> values) { + super.setBeanDictionary(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder removeFromBeanDictionary(Class<?>...values) { + super.removeFromBeanDictionary(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder removeFromBeanDictionary(Collection<Class<?>> values) { + super.removeFromBeanDictionary(values); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder beanTypePropertyName(String value) { + super.beanTypePropertyName(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder defaultParser(Class<?> value) { + super.defaultParser(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder locale(Locale value) { + super.locale(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder timeZone(TimeZone value) { + super.timeZone(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder mediaType(MediaType value) { + super.mediaType(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder debug(boolean value) { + super.debug(value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder property(String name, Object value) { + super.property(name, value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder properties(Map<String,Object> properties) { + super.properties(properties); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder addToProperty(String name, Object value) { + super.addToProperty(name, value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder putToProperty(String name, Object key, Object value) { + super.putToProperty(name, key, value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder putToProperty(String name, Object value) { + super.putToProperty(name, value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder removeFromProperty(String name, Object value) { + super.removeFromProperty(name, value); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder classLoader(ClassLoader classLoader) { + super.classLoader(classLoader); + return this; + } + + @Override /* CoreObjectBuilder */ + public XmlParserBuilder 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/XmlParserContext.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/xml/XmlParserContext.java b/juneau-core/src/main/java/org/apache/juneau/xml/XmlParserContext.java index 095410d..931edd7 100644 --- a/juneau-core/src/main/java/org/apache/juneau/xml/XmlParserContext.java +++ b/juneau-core/src/main/java/org/apache/juneau/xml/XmlParserContext.java @@ -21,10 +21,10 @@ import org.apache.juneau.parser.*; /** * Configurable properties on the {@link XmlParser} 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'> @@ -137,17 +137,17 @@ public class XmlParserContext extends ParserContext { /** * 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 XmlParserContext(ContextFactory cf) { - super(cf); - validating = cf.getProperty(XML_validating, boolean.class, false); - preserveRootElement = cf.getProperty(XML_preserveRootElement, boolean.class, false); - reporter = cf.getProperty(XML_reporter, XMLReporter.class, null); - resolver = cf.getProperty(XML_resolver, XMLResolver.class, null); - eventAllocator = cf.getProperty(XML_eventAllocator, XMLEventAllocator.class, null); + public XmlParserContext(PropertyStore ps) { + super(ps); + validating = ps.getProperty(XML_validating, boolean.class, false); + preserveRootElement = ps.getProperty(XML_preserveRootElement, boolean.class, false); + reporter = ps.getProperty(XML_reporter, XMLReporter.class, null); + resolver = ps.getProperty(XML_resolver, XMLResolver.class, null); + eventAllocator = ps.getProperty(XML_eventAllocator, XMLEventAllocator.class, null); } @Override /* Context */ http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core/src/main/java/org/apache/juneau/xml/XmlParserSession.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/xml/XmlParserSession.java b/juneau-core/src/main/java/org/apache/juneau/xml/XmlParserSession.java index 6a52ed7..0cb6aba 100644 --- a/juneau-core/src/main/java/org/apache/juneau/xml/XmlParserSession.java +++ b/juneau-core/src/main/java/org/apache/juneau/xml/XmlParserSession.java @@ -12,8 +12,8 @@ // *************************************************************************************************************************** package org.apache.juneau.xml; +import static javax.xml.stream.XMLStreamConstants.*; import static org.apache.juneau.xml.XmlParserContext.*; -import static javax.xml.stream.XMLStreamConstants.*; import java.io.*; import java.lang.reflect.*; http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core/src/main/java/org/apache/juneau/xml/XmlSchemaDocSerializer.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/xml/XmlSchemaDocSerializer.java b/juneau-core/src/main/java/org/apache/juneau/xml/XmlSchemaDocSerializer.java index 6dd2841..5036bf8 100644 --- a/juneau-core/src/main/java/org/apache/juneau/xml/XmlSchemaDocSerializer.java +++ b/juneau-core/src/main/java/org/apache/juneau/xml/XmlSchemaDocSerializer.java @@ -37,16 +37,10 @@ public class XmlSchemaDocSerializer extends XmlSchemaSerializer { /** * Constructor. + * @param propertyStore The property store containing all the settings for this object. */ - public XmlSchemaDocSerializer() {} - - /** - * Constructor. - * - * @param cf The context factory to use for creating the context for this serializer. - */ - protected XmlSchemaDocSerializer(ContextFactory cf) { - super(cf); + public XmlSchemaDocSerializer(PropertyStore propertyStore) { + super(propertyStore, null); } @Override /* Serializer */ http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/95e832e1/juneau-core/src/main/java/org/apache/juneau/xml/XmlSchemaSerializer.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/xml/XmlSchemaSerializer.java b/juneau-core/src/main/java/org/apache/juneau/xml/XmlSchemaSerializer.java index ec9bc52..1cd340f 100644 --- a/juneau-core/src/main/java/org/apache/juneau/xml/XmlSchemaSerializer.java +++ b/juneau-core/src/main/java/org/apache/juneau/xml/XmlSchemaSerializer.java @@ -56,20 +56,24 @@ import org.w3c.dom.ls.*; @Produces(value="text/xml+schema",contentType="text/xml") public class XmlSchemaSerializer extends XmlSerializer { + private final XmlSerializerContext ctx; + /** - * Constructor + * Constructor. + * @param propertyStore Initialize with the specified config property store. */ - public XmlSchemaSerializer() { - super(); + public XmlSchemaSerializer(PropertyStore propertyStore) { + this(propertyStore, null); } /** - * Constructor. - * - * @param config Initialize with the specified config property store. + * Constructor + * @param propertyStore The property store containing all the settings for this object. + * @param overrideProperties A set of overridden settings, typically defined by the class itself. */ - protected XmlSchemaSerializer(ContextFactory config) { - getContextFactory().copyFrom(config); + public XmlSchemaSerializer(PropertyStore propertyStore, Map<String,Object> overrideProperties) { + super(propertyStore); + this.ctx = this.propertyStore.create(overrideProperties).getContext(XmlSerializerContext.class); } @Override /* XmlSerializer */ @@ -580,6 +584,6 @@ public class XmlSchemaSerializer extends XmlSerializer { if (op == null) op = new ObjectMap(); op.put(XmlSerializerContext.XML_enableNamespaces, true); - return new XmlSerializerSession(getContext(XmlSerializerContext.class), op, output, javaMethod, locale, timeZone, mediaType); + return new XmlSerializerSession(ctx, op, output, javaMethod, locale, timeZone, mediaType); } }
