Add PREFIX constants to all the Context classes. Project: http://git-wip-us.apache.org/repos/asf/incubator-juneau/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-juneau/commit/87f505b3 Tree: http://git-wip-us.apache.org/repos/asf/incubator-juneau/tree/87f505b3 Diff: http://git-wip-us.apache.org/repos/asf/incubator-juneau/diff/87f505b3
Branch: refs/heads/master Commit: 87f505b38bf5ae115d968603504b077be1faea2e Parents: 926b7cf Author: JamesBognar <[email protected]> Authored: Sun Oct 8 10:44:28 2017 -0400 Committer: JamesBognar <[email protected]> Committed: Sun Oct 8 10:44:28 2017 -0400 ---------------------------------------------------------------------- .../apache/juneau/jena/RdfParserContext.java | 4 +- .../juneau/jena/RdfSerializerContext.java | 12 +- .../java/org/apache/juneau/BeanContext.java | 156 ++++++++++--------- .../main/java/org/apache/juneau/ObjectMap.java | 23 +++ .../juneau/html/HtmlDocSerializerContext.java | 37 ++--- .../juneau/html/HtmlSerializerContext.java | 14 +- .../juneau/json/JsonSerializerContext.java | 8 +- .../msgpack/MsgPackSerializerContext.java | 4 +- .../org/apache/juneau/parser/ParserContext.java | 12 +- .../juneau/serializer/SerializerContext.java | 40 ++--- .../juneau/soap/SoapXmlSerializerContext.java | 4 +- .../org/apache/juneau/uon/UonParserContext.java | 4 +- .../apache/juneau/uon/UonSerializerContext.java | 8 +- .../juneau/urlencoding/UrlEncodingContext.java | 60 ------- .../urlencoding/UrlEncodingParserBuilder.java | 4 +- .../urlencoding/UrlEncodingParserContext.java | 22 ++- .../urlencoding/UrlEncodingParserSession.java | 2 +- .../urlencoding/UrlEncodingSerializer.java | 2 +- .../UrlEncodingSerializerBuilder.java | 4 +- .../UrlEncodingSerializerContext.java | 37 ++++- .../UrlEncodingSerializerSession.java | 2 +- .../urlencoding/annotation/UrlEncoding.java | 4 +- .../org/apache/juneau/xml/XmlParserContext.java | 12 +- .../apache/juneau/xml/XmlSerializerContext.java | 16 +- .../juneau/yaml/proto/YamlParserContext.java | 2 +- .../yaml/proto/YamlSerializerContext.java | 8 +- .../apache/juneau/rest/test/ParamsResource.java | 5 +- 27 files changed, 277 insertions(+), 229 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/87f505b3/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserContext.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserContext.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserContext.java index 42833c4..53039f3 100644 --- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserContext.java +++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfParserContext.java @@ -48,6 +48,8 @@ import org.apache.juneau.xml.*; * </ul> */ public final class RdfParserContext extends ParserContext implements RdfCommonContext { + + static final String PREFIX = "RdfParser."; /** * <b>Configuration property:</b> Trim whitespace from text elements. @@ -62,7 +64,7 @@ public final class RdfParserContext extends ParserContext implements RdfCommonCo * <p> * If <jk>true</jk>, whitespace in text elements will be automatically trimmed. */ - public static final String RDF_trimWhitespace = "RdfParser.trimWhitespace"; + public static final String RDF_trimWhitespace = PREFIX + "trimWhitespace"; final boolean trimWhitespace, looseCollections; final String rdfLanguage; http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/87f505b3/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerContext.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerContext.java b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerContext.java index 2d5d6aa..3b050b5 100644 --- a/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerContext.java +++ b/juneau-core/juneau-marshall-rdf/src/main/java/org/apache/juneau/jena/RdfSerializerContext.java @@ -48,6 +48,8 @@ import org.apache.juneau.xml.*; * </ul> */ public final class RdfSerializerContext extends SerializerContext implements RdfCommonContext { + + static final String PREFIX = "RdfSerializer."; /** * <b>Configuration property:</b> Add XSI data types to non-<code>String</code> literals. @@ -59,7 +61,7 @@ public final class RdfSerializerContext extends SerializerContext implements Rdf * <li><b>Session-overridable:</b> <jk>true</jk> * </ul> */ - public static final String RDF_addLiteralTypes = "RdfSerializer.addLiteralTypes"; + public static final String RDF_addLiteralTypes = PREFIX + "addLiteralTypes"; /** * <b>Configuration property:</b> Add RDF root identifier property to root node. @@ -80,7 +82,7 @@ public final class RdfSerializerContext extends SerializerContext implements Rdf * If disabled, the parser has to search through the model to find any resources without incoming predicates to * identify root notes, which can introduce a considerable performance degradation. */ - public static final String RDF_addRootProperty = "RdfSerializer.addRootProperty"; + public static final String RDF_addRootProperty = PREFIX + "addRootProperty"; /** * <b>Configuration property:</b> Auto-detect namespace usage. @@ -99,7 +101,7 @@ public final class RdfSerializerContext extends SerializerContext implements Rdf * If enabled, then the data structure will first be crawled looking for namespaces that will be encountered before * the root element is serialized. */ - public static final String RDF_autoDetectNamespaces = "RdfSerializer.autoDetectNamespaces"; + public static final String RDF_autoDetectNamespaces = PREFIX + "autoDetectNamespaces"; /** * <b>Configuration property:</b> Default namespaces. @@ -114,7 +116,7 @@ public final class RdfSerializerContext extends SerializerContext implements Rdf * <p> * The default list of namespaces associated with this serializer. */ - public static final String RDF_namespaces = "RdfSerializer.namespaces.list"; + public static final String RDF_namespaces = PREFIX + "namespaces.list"; /** * <b>Configuration property:</b> Add <js>"_type"</js> properties when needed. @@ -137,7 +139,7 @@ public final class RdfSerializerContext extends SerializerContext implements Rdf * When present, this value overrides the {@link SerializerContext#SERIALIZER_addBeanTypeProperties} setting and is * provided to customize the behavior of specific serializers in a {@link SerializerGroup}. */ - public static final String RDF_addBeanTypeProperties = "RdfSerializer.addBeanTypeProperties"; + public static final String RDF_addBeanTypeProperties = PREFIX + "addBeanTypeProperties"; final boolean http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/87f505b3/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java index d73abbf..762cb1b 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/BeanContext.java @@ -59,7 +59,7 @@ import org.apache.juneau.transform.*; * <p> * Each bean context maintains a cache of {@link ClassMeta} objects that describe information about classes encountered. * These <code>ClassMeta</code> objects are time-consuming to construct. - * Therefore, instances of {@link BeanContext} that share the same <js>"BeanContext.*"</js> property values share + * Therefore, instances of {@link BeanContext} that share the same <js>"Bean.*"</js> property values share * the same cache. This allows for efficient reuse of <code>ClassMeta</code> objects so that the information about * classes only needs to be calculated once. * Because of this, many of the properties defined on the {@link BeanContext} class cannot be overridden on the session. @@ -230,11 +230,13 @@ import org.apache.juneau.transform.*; @SuppressWarnings({"unchecked","rawtypes"}) public class BeanContext extends Context { + static final String PREFIX = "Bean."; + /** * <b>Configuration property:</b> Beans require no-arg constructors. * * <ul> - * <li><b>Name:</b> <js>"BeanContext.beansRequireDefaultConstructor"</js> + * <li><b>Name:</b> <js>"Bean.beansRequireDefaultConstructor"</js> * <li><b>Data type:</b> <code>Boolean</code> * <li><b>Default:</b> <jk>false</jk> * <li><b>Session-overridable:</b> <jk>false</jk> @@ -246,13 +248,13 @@ public class BeanContext extends Context { * <p> * The {@link Bean @Bean} annotation can be used on a class to override this setting when <jk>true</jk>. */ - public static final String BEAN_beansRequireDefaultConstructor = "BeanContext.beansRequireDefaultConstructor"; + public static final String BEAN_beansRequireDefaultConstructor = PREFIX + "beansRequireDefaultConstructor"; /** * <b>Configuration property:</b> Beans require {@link Serializable} interface. * * <ul> - * <li><b>Name:</b> <js>"BeanContext.beansRequireSerializable"</js> + * <li><b>Name:</b> <js>"Bean.beansRequireSerializable"</js> * <li><b>Data type:</b> <code>Boolean</code> * <li><b>Default:</b> <jk>false</jk> * <li><b>Session-overridable:</b> <jk>false</jk> @@ -264,13 +266,13 @@ public class BeanContext extends Context { * <p> * The {@link Bean @Bean} annotation can be used on a class to override this setting when <jk>true</jk>. */ - public static final String BEAN_beansRequireSerializable = "BeanContext.beansRequireSerializable"; + public static final String BEAN_beansRequireSerializable = PREFIX + "beansRequireSerializable"; /** * <b>Configuration property:</b> Beans require setters for getters. * * <ul> - * <li><b>Name:</b> <js>"BeanContext.beansRequireSettersForGetters"</js> + * <li><b>Name:</b> <js>"Bean.beansRequireSettersForGetters"</js> * <li><b>Data type:</b> <code>Boolean</code> * <li><b>Default:</b> <jk>false</jk> * <li><b>Session-overridable:</b> <jk>false</jk> @@ -280,13 +282,13 @@ public class BeanContext extends Context { * If <jk>true</jk>, only getters that have equivalent setters will be considered as properties on a bean. * Otherwise, they will be ignored. */ - public static final String BEAN_beansRequireSettersForGetters = "BeanContext.beansRequireSettersForGetters"; + public static final String BEAN_beansRequireSettersForGetters = PREFIX + "beansRequireSettersForGetters"; /** * <b>Configuration property:</b> Beans require at least one property. * * <ul> - * <li><b>Name:</b> <js>"BeanContext.beansRequireSomeProperties"</js> + * <li><b>Name:</b> <js>"Bean.beansRequireSomeProperties"</js> * <li><b>Data type:</b> <code>Boolean</code> * <li><b>Default:</b> <jk>true</jk> * <li><b>Session-overridable:</b> <jk>false</jk> @@ -298,14 +300,14 @@ public class BeanContext extends Context { * <p> * The {@link Bean @Bean} annotation can be used on a class to override this setting when <jk>true</jk>. */ - public static final String BEAN_beansRequireSomeProperties = "BeanContext.beansRequireSomeProperties"; + public static final String BEAN_beansRequireSomeProperties = PREFIX + "beansRequireSomeProperties"; /** * <b>Configuration property:</b> {@link BeanMap#put(String,Object) BeanMap.put()} method will return old property * value. * * <ul> - * <li><b>Name:</b> <js>"BeanContext.beanMapPutReturnsOldValue"</js> + * <li><b>Name:</b> <js>"Bean.beanMapPutReturnsOldValue"</js> * <li><b>Data type:</b> <code>Boolean</code> * <li><b>Default:</b> <jk>false</jk> * <li><b>Session-overridable:</b> <jk>false</jk> @@ -318,25 +320,25 @@ public class BeanContext extends Context { * <p> * Disabled by default because it introduces a slight performance penalty. */ - public static final String BEAN_beanMapPutReturnsOldValue = "BeanContext.beanMapPutReturnsOldValue"; + public static final String BEAN_beanMapPutReturnsOldValue = PREFIX + "beanMapPutReturnsOldValue"; /** * <b>Configuration property:</b> Look for bean constructors with the specified minimum visibility. * * <ul> - * <li><b>Name:</b> <js>"BeanContext.beanConstructorVisibility"</js> + * <li><b>Name:</b> <js>"Bean.beanConstructorVisibility"</js> * <li><b>Data type:</b> {@link Visibility} * <li><b>Default:</b> {@link Visibility#PUBLIC} * <li><b>Session-overridable:</b> <jk>false</jk> * </ul> */ - public static final String BEAN_beanConstructorVisibility = "BeanContext.beanConstructorVisibility"; + public static final String BEAN_beanConstructorVisibility = PREFIX + "beanConstructorVisibility"; /** * <b>Configuration property:</b> Look for bean classes with the specified minimum visibility. * * <ul> - * <li><b>Name:</b> <js>"BeanContext.beanClassVisibility"</js> + * <li><b>Name:</b> <js>"Bean.beanClassVisibility"</js> * <li><b>Data type:</b> {@link Visibility} * <li><b>Default:</b> {@link Visibility#PUBLIC} * <li><b>Session-overridable:</b> <jk>false</jk> @@ -347,13 +349,13 @@ public class BeanContext extends Context { * For example, if the visibility is <code>PUBLIC</code> and the bean class is <jk>protected</jk>, then the class * will not be interpreted as a bean class. */ - public static final String BEAN_beanClassVisibility = "BeanContext.beanClassVisibility"; + public static final String BEAN_beanClassVisibility = PREFIX + "beanClassVisibility"; /** * <b>Configuration property:</b> Look for bean fields with the specified minimum visibility. * * <ul> - * <li><b>Name:</b> <js>"BeanContext.beanFieldVisibility"</js> + * <li><b>Name:</b> <js>"Bean.beanFieldVisibility"</js> * <li><b>Data type:</b> {@link Visibility} * <li><b>Default:</b> {@link Visibility#PUBLIC} * <li><b>Session-overridable:</b> <jk>false</jk> @@ -367,13 +369,13 @@ public class BeanContext extends Context { * <p> * Use {@link Visibility#NONE} to prevent bean fields from being interpreted as bean properties altogether. */ - public static final String BEAN_beanFieldVisibility = "BeanContext.beanFieldVisibility"; + public static final String BEAN_beanFieldVisibility = PREFIX + "beanFieldVisibility"; /** * <b>Configuration property:</b> Look for bean methods with the specified minimum visibility. * * <ul> - * <li><b>Name:</b> <js>"BeanContext.methodVisibility"</js> + * <li><b>Name:</b> <js>"Bean.methodVisibility"</js> * <li><b>Data type:</b> {@link Visibility} * <li><b>Default:</b> {@link Visibility#PUBLIC} * <li><b>Session-overridable:</b> <jk>false</jk> @@ -384,13 +386,13 @@ public class BeanContext extends Context { * For example, if the visibility is <code>PUBLIC</code> and the bean method is <jk>protected</jk>, then the method * will not be interpreted as a bean getter or setter. */ - public static final String BEAN_methodVisibility = "BeanContext.methodVisibility"; + public static final String BEAN_methodVisibility = PREFIX + "methodVisibility"; /** * <b>Configuration property:</b> Use Java {@link Introspector} for determining bean properties. * * <ul> - * <li><b>Name:</b> <js>"BeanContext.useJavaBeanIntrospector"</js> + * <li><b>Name:</b> <js>"Bean.useJavaBeanIntrospector"</js> * <li><b>Data type:</b> <code>Boolean</code> * <li><b>Default:</b> <jk>false</jk> * <li><b>Session-overridable:</b> <jk>false</jk> @@ -400,13 +402,13 @@ public class BeanContext extends Context { * Using the built-in Java bean introspector will not pick up fields or non-standard getters/setters. * Most {@link Bean @Bean} annotations will be ignored. */ - public static final String BEAN_useJavaBeanIntrospector = "BeanContext.useJavaBeanIntrospector"; + public static final String BEAN_useJavaBeanIntrospector = PREFIX + "useJavaBeanIntrospector"; /** * <b>Configuration property:</b> Use interface proxies. * * <ul> - * <li><b>Name:</b> <js>"BeanContext.useInterfaceProxies"</js> + * <li><b>Name:</b> <js>"Bean.useInterfaceProxies"</js> * <li><b>Data type:</b> <code>Boolean</code> * <li><b>Default:</b> <jk>true</jk> * <li><b>Session-overridable:</b> <jk>false</jk> @@ -416,13 +418,13 @@ public class BeanContext extends Context { * If <jk>true</jk>, then interfaces will be instantiated as proxy classes through the use of an * {@link InvocationHandler} if there is no other way of instantiating them. */ - public static final String BEAN_useInterfaceProxies = "BeanContext.useInterfaceProxies"; + public static final String BEAN_useInterfaceProxies = PREFIX + "useInterfaceProxies"; /** * <b>Configuration property:</b> Ignore unknown properties. * * <ul> - * <li><b>Name:</b> <js>"BeanContext.ignoreUnknownBeanProperties"</js> + * <li><b>Name:</b> <js>"Bean.ignoreUnknownBeanProperties"</js> * <li><b>Data type:</b> <code>Boolean</code> * <li><b>Default:</b> <jk>false</jk> * <li><b>Session-overridable:</b> <jk>false</jk> @@ -432,13 +434,13 @@ public class BeanContext extends Context { * If <jk>true</jk>, trying to set a value on a non-existent bean property will silently be ignored. * Otherwise, a {@code RuntimeException} is thrown. */ - public static final String BEAN_ignoreUnknownBeanProperties = "BeanContext.ignoreUnknownBeanProperties"; + public static final String BEAN_ignoreUnknownBeanProperties = PREFIX + "ignoreUnknownBeanProperties"; /** * <b>Configuration property:</b> Ignore unknown properties with null values. * * <ul> - * <li><b>Name:</b> <js>"BeanContext.ignoreUnknownNullBeanProperties"</js> + * <li><b>Name:</b> <js>"Bean.ignoreUnknownNullBeanProperties"</js> * <li><b>Data type:</b> <code>Boolean</code> * <li><b>Default:</b> <jk>true</jk> * <li><b>Session-overridable:</b> <jk>false</jk> @@ -448,13 +450,13 @@ public class BeanContext extends Context { * If <jk>true</jk>, trying to set a <jk>null</jk> value on a non-existent bean property will silently be ignored. * Otherwise, a {@code RuntimeException} is thrown. */ - public static final String BEAN_ignoreUnknownNullBeanProperties = "BeanContext.ignoreUnknownNullBeanProperties"; + public static final String BEAN_ignoreUnknownNullBeanProperties = PREFIX + "ignoreUnknownNullBeanProperties"; /** * <b>Configuration property:</b> Ignore properties without setters. * * <ul> - * <li><b>Name:</b> <js>"BeanContext.ignorePropertiesWithoutSetters"</js> + * <li><b>Name:</b> <js>"Bean.ignorePropertiesWithoutSetters"</js> * <li><b>Data type:</b> <code>Boolean</code> * <li><b>Default:</b> <jk>true</jk> * <li><b>Session-overridable:</b> <jk>false</jk> @@ -464,13 +466,13 @@ public class BeanContext extends Context { * If <jk>true</jk>, trying to set a value on a bean property without a setter will silently be ignored. * Otherwise, a {@code RuntimeException} is thrown. */ - public static final String BEAN_ignorePropertiesWithoutSetters = "BeanContext.ignorePropertiesWithoutSetters"; + public static final String BEAN_ignorePropertiesWithoutSetters = PREFIX + "ignorePropertiesWithoutSetters"; /** * <b>Configuration property:</b> Ignore invocation errors on getters. * * <ul> - * <li><b>Name:</b> <js>"BeanContext.ignoreInvocationExceptionsOnGetters"</js> + * <li><b>Name:</b> <js>"Bean.ignoreInvocationExceptionsOnGetters"</js> * <li><b>Data type:</b> <code>Boolean</code> * <li><b>Default:</b> <jk>false</jk> * <li><b>Session-overridable:</b> <jk>false</jk> @@ -480,13 +482,13 @@ public class BeanContext extends Context { * If <jk>true</jk>, errors thrown when calling bean getter methods will silently be ignored. * Otherwise, a {@code BeanRuntimeException} is thrown. */ - public static final String BEAN_ignoreInvocationExceptionsOnGetters = "BeanContext.ignoreInvocationExceptionsOnGetters"; + public static final String BEAN_ignoreInvocationExceptionsOnGetters = PREFIX + "ignoreInvocationExceptionsOnGetters"; /** * <b>Configuration property:</b> Ignore invocation errors on setters. * * <ul> - * <li><b>Name:</b> <js>"BeanContext.ignoreInvocationExceptionsOnSetters"</js> + * <li><b>Name:</b> <js>"Bean.ignoreInvocationExceptionsOnSetters"</js> * <li><b>Data type:</b> <code>Boolean</code> * <li><b>Default:</b> <jk>false</jk> * <li><b>Session-overridable:</b> <jk>false</jk> @@ -496,13 +498,13 @@ public class BeanContext extends Context { * If <jk>true</jk>, errors thrown when calling bean setter methods will silently be ignored. * Otherwise, a {@code BeanRuntimeException} is thrown. */ - public static final String BEAN_ignoreInvocationExceptionsOnSetters = "BeanContext.ignoreInvocationExceptionsOnSetters"; + public static final String BEAN_ignoreInvocationExceptionsOnSetters = PREFIX + "ignoreInvocationExceptionsOnSetters"; /** * <b>Configuration property:</b> Sort bean properties in alphabetical order. * * <ul> - * <li><b>Name:</b> <js>"BeanContext.sortProperties"</js> + * <li><b>Name:</b> <js>"Bean.sortProperties"</js> * <li><b>Data type:</b> <code>Boolean</code> * <li><b>Default:</b> <jk>false</jk> * <li><b>Session-overridable:</b> <jk>false</jk> @@ -519,13 +521,13 @@ public class BeanContext extends Context { * to force bean properties to be in a particular order and can just alter the order of the fields/methods * in the Java file. */ - public static final String BEAN_sortProperties = "BeanContext.sortProperties"; + public static final String BEAN_sortProperties = PREFIX + "sortProperties"; /** * <b>Configuration property:</b> Packages whose classes should not be considered beans. * * <ul> - * <li><b>Name:</b> <js>"BeanContext.notBeanPackages.set"</js> + * <li><b>Name:</b> <js>"Bean.notBeanPackages.set"</js> * <li><b>Data type:</b> <code>Set<String></code> * <li><b>Default:</b> * <ul> @@ -550,23 +552,23 @@ public class BeanContext extends Context { * <p> * Note that you can specify prefix patterns to include all subpackages. */ - public static final String BEAN_notBeanPackages = "BeanContext.notBeanPackages.set"; + public static final String BEAN_notBeanPackages = PREFIX + "notBeanPackages.set"; /** * <b>Configuration property:</b> Add to packages whose classes should not be considered beans. */ - public static final String BEAN_notBeanPackages_add = "BeanContext.notBeanPackages.set.add"; + public static final String BEAN_notBeanPackages_add = PREFIX + "notBeanPackages.set.add"; /** * <b>Configuration property:</b> Remove from packages whose classes should not be considered beans. */ - public static final String BEAN_notBeanPackages_remove = "BeanContext.notBeanPackages.set.remove"; + public static final String BEAN_notBeanPackages_remove = PREFIX + "notBeanPackages.set.remove"; /** * <b>Configuration property:</b> Classes to be excluded from consideration as being beans. * * <ul> - * <li><b>Name:</b> <js>"BeanContext.notBeanClasses.set"</js> + * <li><b>Name:</b> <js>"Bean.notBeanClasses.set"</js> * <li><b>Data type:</b> <code>Set<Class></code> * <li><b>Default:</b> empty set * <li><b>Session-overridable:</b> <jk>false</jk> @@ -576,23 +578,23 @@ public class BeanContext extends Context { * Not-bean classes are typically converted to <code>Strings</code> during serialization even if they appear to be * bean-like. */ - public static final String BEAN_notBeanClasses = "BeanContext.notBeanClasses.set"; + public static final String BEAN_notBeanClasses = PREFIX + "notBeanClasses.set"; /** * <b>Configuration property:</b> Add to classes that should not be considered beans. */ - public static final String BEAN_notBeanClasses_add = "BeanContext.notBeanClasses.set.add"; + public static final String BEAN_notBeanClasses_add = PREFIX + "notBeanClasses.set.add"; /** * <b>Configuration property:</b> Remove from classes that should not be considered beans. */ - public static final String BEAN_notBeanClasses_remove = "BeanContext.notBeanClasses.set.remove"; + public static final String BEAN_notBeanClasses_remove = PREFIX + "notBeanClasses.set.remove"; /** * <b>Configuration property:</b> Bean filters to apply to beans. * * <ul> - * <li><b>Name:</b> <js>"BeanContext.beanFilters.list"</js> + * <li><b>Name:</b> <js>"Bean.beanFilters.list"</js> * <li><b>Data type:</b> <code>List<Class></code> * <li><b>Default:</b> empty list * <li><b>Session-overridable:</b> <jk>false</jk> @@ -616,23 +618,23 @@ public class BeanContext extends Context { * All other bean properties will be ignored. * </ul> */ - public static final String BEAN_beanFilters = "BeanContext.beanFilters.list"; + public static final String BEAN_beanFilters = PREFIX + "beanFilters.list"; /** * <b>Configuration property:</b> Add to bean filters. */ - public static final String BEAN_beanFilters_add = "BeanContext.beanFilters.list.add"; + public static final String BEAN_beanFilters_add = PREFIX + "beanFilters.list.add"; /** * <b>Configuration property:</b> Remove from bean filters. */ - public static final String BEAN_beanFilters_remove = "BeanContext.beanFilters.list.remove"; + public static final String BEAN_beanFilters_remove = PREFIX + "beanFilters.list.remove"; /** * <b>Configuration property:</b> POJO swaps to apply to Java objects. * * <ul> - * <li><b>Name:</b> <js>"BeanContext.pojoSwaps.list"</js> + * <li><b>Name:</b> <js>"Bean.pojoSwaps.list"</js> * <li><b>Data type:</b> <code>List<Class></code> * <li><b>Default:</b> empty list * <li><b>Session-overridable:</b> <jk>false</jk> @@ -650,23 +652,23 @@ public class BeanContext extends Context { * When multiple swaps are applicable to the same class, the media type pattern defined by * {@link PojoSwap#forMediaTypes()} or {@link Swap#mediaTypes()} are used to come up with the best match. */ - public static final String BEAN_pojoSwaps = "BeanContext.pojoSwaps.list"; + public static final String BEAN_pojoSwaps = PREFIX + "pojoSwaps.list"; /** * <b>Configuration property:</b> Add to POJO swap classes. */ - public static final String BEAN_pojoSwaps_add = "BeanContext.pojoSwaps.list.add"; + public static final String BEAN_pojoSwaps_add = PREFIX + "pojoSwaps.list.add"; /** * <b>Configuration property:</b> Remove from POJO swap classes. */ - public static final String BEAN_pojoSwaps_remove = "BeanContext.pojoSwaps.list.remove"; + public static final String BEAN_pojoSwaps_remove = PREFIX + "pojoSwaps.list.remove"; /** * <b>Configuration property:</b> Implementation classes for interfaces and abstract classes. * * <ul> - * <li><b>Name:</b> <js>"BeanContext.implClasses.map"</js> + * <li><b>Name:</b> <js>"Bean.implClasses.map"</js> * <li><b>Data type:</b> <code>Map<Class,Class></code> * <li><b>Default:</b> empty map * <li><b>Session-overridable:</b> <jk>false</jk> @@ -677,18 +679,18 @@ public class BeanContext extends Context { * interface/abstract class so that instances of the implementation class are used when instantiated (e.g. during a * parse). */ - public static final String BEAN_implClasses = "BeanContext.implClasses.map"; + public static final String BEAN_implClasses = PREFIX + "implClasses.map"; /** * <b>Configuration property:</b> Add an implementation class. */ - public static final String BEAN_implClasses_put = "BeanContext.implClasses.map.put"; + public static final String BEAN_implClasses_put = PREFIX + "implClasses.map.put"; /** * <b>Configuration property:</b> Explicitly specify visible bean properties. * * <ul> - * <li><b>Name:</b> <js>"BeanContext.includeProperties"</js> + * <li><b>Name:</b> <js>"Bean.includeProperties"</js> * <li><b>Data type:</b> <code>Map<String,String></code> * <li><b>Default:</b> <code>{}</code> * <li><b>Session-overridable:</b> <jk>false</jk> @@ -709,18 +711,18 @@ public class BeanContext extends Context { * <p> * Setting applies to specified class and all subclasses. */ - public static final String BEAN_includeProperties = "BeanContext.includeProperties.map"; + public static final String BEAN_includeProperties = PREFIX + "includeProperties.map"; /** * <b>Configuration property:</b> Explicitly specify visible bean properties. */ - public static final String BEAN_includeProperties_put = "BeanContext.includeProperties.map.put"; + public static final String BEAN_includeProperties_put = PREFIX + "includeProperties.map.put"; /** * <b>Configuration property:</b> Exclude specified properties from beans. * * <ul> - * <li><b>Name:</b> <js>"BeanContext.excludeProperties"</js> + * <li><b>Name:</b> <js>"Bean.excludeProperties"</js> * <li><b>Data type:</b> <code>Map<String,String></code> * <li><b>Default:</b> <code>{}</code> * <li><b>Session-overridable:</b> <jk>false</jk> @@ -741,18 +743,18 @@ public class BeanContext extends Context { * <p> * Setting applies to specified class and all subclasses. */ - public static final String BEAN_excludeProperties = "BeanContext.excludeProperties.map"; + public static final String BEAN_excludeProperties = PREFIX + "excludeProperties.map"; /** * <b>Configuration property:</b> Exclude specified properties from beans. */ - public static final String BEAN_excludeProperties_put = "BeanContext.excludeProperties.map.put"; + public static final String BEAN_excludeProperties_put = PREFIX + "excludeProperties.map.put"; /** * <b>Configuration property:</b> Bean lookup dictionary. * * <ul> - * <li><b>Name:</b> <js>"BeanContext.beanDictionary.list"</js> + * <li><b>Name:</b> <js>"Bean.beanDictionary.list"</js> * <li><b>Data type:</b> <code>List<Class></code> * <li><b>Default:</b> empty list * <li><b>Session-overridable:</b> <jk>false</jk> @@ -768,35 +770,35 @@ public class BeanContext extends Context { * annotations. * </ul> */ - public static final String BEAN_beanDictionary = "BeanContext.beanDictionary.list"; + public static final String BEAN_beanDictionary = PREFIX + "beanDictionary.list"; /** * <b>Configuration property:</b> Add to bean dictionary. */ - public static final String BEAN_beanDictionary_add = "BeanContext.beanDictionary.list.add"; + public static final String BEAN_beanDictionary_add = PREFIX + "beanDictionary.list.add"; /** * <b>Configuration property:</b> Remove from bean dictionary. */ - public static final String BEAN_beanDictionary_remove = "BeanContext.beanDictionary.list.remove"; + public static final String BEAN_beanDictionary_remove = PREFIX + "beanDictionary.list.remove"; /** * <b>Configuration property:</b> Name to use for the bean type properties used to represent a bean type. * * <ul> - * <li><b>Name:</b> <js>"BeanContext.beanTypePropertyName"</js> + * <li><b>Name:</b> <js>"Bean.beanTypePropertyName"</js> * <li><b>Data type:</b> <code>String</code> * <li><b>Default:</b> <js>"_type"</js> * <li><b>Session-overridable:</b> <jk>false</jk> * </ul> */ - public static final String BEAN_beanTypePropertyName = "BeanContext.beanTypePropertyName"; + public static final String BEAN_beanTypePropertyName = PREFIX + "beanTypePropertyName"; /** * <b>Configuration property:</b> Default parser to use when converting <code>Strings</code> to POJOs. * * <ul> - * <li><b>Name:</b> <js>"BeanContext.defaultParser"</js> + * <li><b>Name:</b> <js>"Bean.defaultParser"</js> * <li><b>Data type:</b> <code>Class</code> * <li><b>Default:</b> {@link JsonSerializer} * <li><b>Session-overridable:</b> <jk>false</jk> @@ -805,13 +807,13 @@ public class BeanContext extends Context { * <p> * Used in the in the {@link BeanSession#convertToType(Object, Class)} method. */ - public static final String BEAN_defaultParser = "BeanContext.defaultParser"; + public static final String BEAN_defaultParser = PREFIX + "defaultParser"; /** * <b>Configuration property:</b> Locale. * * <ul> - * <li><b>Name:</b> <js>"BeanContext.locale"</js> + * <li><b>Name:</b> <js>"Bean.locale"</js> * <li><b>Data type:</b> <code>Locale</code> * <li><b>Default:</b> <code>Locale.getDefault()</code> * <li><b>Session-overridable:</b> <jk>true</jk> @@ -820,13 +822,13 @@ public class BeanContext extends Context { * <p> * Used in the in the {@link BeanSession#convertToType(Object, Class)} method. */ - public static final String BEAN_locale = "BeanContext.locale"; + public static final String BEAN_locale = PREFIX + "locale"; /** * <b>Configuration property:</b> TimeZone. * * <ul> - * <li><b>Name:</b> <js>"BeanContext.timeZone"</js> + * <li><b>Name:</b> <js>"Bean.timeZone"</js> * <li><b>Data type:</b> <code>TimeZone</code> * <li><b>Default:</b> <jk>null</jk> * <li><b>Session-overridable:</b> <jk>true</jk> @@ -835,13 +837,13 @@ public class BeanContext extends Context { * <p> * Used in the in the {@link BeanSession#convertToType(Object, Class)} method. */ - public static final String BEAN_timeZone = "BeanContext.timeZone"; + public static final String BEAN_timeZone = PREFIX + "timeZone"; /** * <b>Configuration property:</b> Media type. * * <ul> - * <li><b>Name:</b> <js>"BeanContext.mediaType"</js> + * <li><b>Name:</b> <js>"Bean.mediaType"</js> * <li><b>Data type:</b> <code>MediaType</code> * <li><b>Default:</b> <jk>null</jk> * <li><b>Session-overridable:</b> <jk>true</jk> @@ -850,13 +852,13 @@ public class BeanContext extends Context { * <p> * Specifies a default media type value for serializer and parser sessions. */ - public static final String BEAN_mediaType = "BeanContext.mediaType"; + public static final String BEAN_mediaType = PREFIX + "mediaType"; /** * <b>Configuration property:</b> Debug mode. * * <ul> - * <li><b>Name:</b> <js>"BeanContext.debug"</js> + * <li><b>Name:</b> <js>"Bean.debug"</js> * <li><b>Data type:</b> <code>Boolean</code> * <li><b>Default:</b> <jk>false</jk> * <li><b>Session-overridable:</b> <jk>true</jk> @@ -880,7 +882,7 @@ public class BeanContext extends Context { * in order to determine how that method was invoked. * </ul> */ - public static final String BEAN_debug = "BeanContext.debug"; + public static final String BEAN_debug = PREFIX + "debug"; /* * The default package pattern exclusion list. @@ -990,7 +992,7 @@ public class BeanContext extends Context { public BeanContext(PropertyStore ps) { super(ps); - PropertyStore.PropertyMap pm = ps.getPropertyMap("BeanContext"); + PropertyStore.PropertyMap pm = ps.getPropertyMap("Bean"); hashCode = pm.hashCode(); classLoader = ps.classLoader; defaultParser = ps.defaultParser; http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/87f505b3/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ObjectMap.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ObjectMap.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ObjectMap.java index e3ab9bc..4c376d2 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ObjectMap.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/ObjectMap.java @@ -1180,6 +1180,29 @@ public class ObjectMap extends LinkedHashMap<String,Object> { } /** + * Returns <jk>true</jk> if this map contains a key with the specified string prefix. + * + * @param prefix The string prefix. + * @return <jk>true</jk> if this map contains a key with the specified string prefix. + */ + public boolean containsKeyPrefix(String prefix) { + for (String s : super.keySet()) + if (s.startsWith(prefix)) + return true; + if (inner != null) { + if (inner instanceof ObjectMap) { + if (((ObjectMap)inner).containsKeyPrefix(prefix)) + return true; + return false; + } + for (String s : inner.keySet()) + if (s.startsWith(prefix)) + return true; + } + return false; + } + + /** * Returns <jk>true</jk> if this map contains the specified key, ignoring the inner map if it exists. * * @param key The key to look up. http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/87f505b3/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerContext.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerContext.java index 13c022a..6296ff3 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerContext.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlDocSerializerContext.java @@ -77,7 +77,8 @@ import org.apache.juneau.*; */ public final class HtmlDocSerializerContext extends HtmlSerializerContext { - static final String HTMLDOC = "HtmlDocSerializer."; + @SuppressWarnings("hiding") + static final String PREFIX = "HtmlDocSerializer."; /** * <b>Configuration property:</b> Header section contents. @@ -107,7 +108,7 @@ public final class HtmlDocSerializerContext extends HtmlSerializerContext { * <p> * A value of <js>"NONE"</js> can be used to represent no value to differentiate it from an empty string. */ - public static final String HTMLDOC_header = HTMLDOC + "header"; + public static final String HTMLDOC_header = PREFIX + "header"; /** * <b>Configuration property:</b> Page navigation links. @@ -172,12 +173,12 @@ public final class HtmlDocSerializerContext extends HtmlSerializerContext { * <jk>public class</jk> AddressBookResource <jk>extends</jk> RestServletJenaDefault { * </p> */ - public static final String HTMLDOC_navlinks = HTMLDOC + "navlinks.list"; + public static final String HTMLDOC_navlinks = PREFIX + "navlinks.list"; /** * <b>Configuration property:</b> Add to the {@link #HTMLDOC_navlinks} property. */ - public static final String HTMLDOC_navlinks_add = HTMLDOC + "navlinks.list.add"; + public static final String HTMLDOC_navlinks_add = PREFIX + "navlinks.list.add"; /** * <b>Configuration property:</b> Nav section contents. @@ -210,7 +211,7 @@ public final class HtmlDocSerializerContext extends HtmlSerializerContext { * <p> * A value of <js>"NONE"</js> can be used to represent no value to differentiate it from an empty string. */ - public static final String HTMLDOC_nav = HTMLDOC + "nav"; + public static final String HTMLDOC_nav = PREFIX + "nav"; /** * <b>Configuration property:</b> Aside section contents. @@ -248,7 +249,7 @@ public final class HtmlDocSerializerContext extends HtmlSerializerContext { * <p> * A value of <js>"NONE"</js> can be used to represent no value to differentiate it from an empty string. */ - public static final String HTMLDOC_aside = HTMLDOC + "aside"; + public static final String HTMLDOC_aside = PREFIX + "aside"; /** * <b>Configuration property:</b> Footer section contents. @@ -280,7 +281,7 @@ public final class HtmlDocSerializerContext extends HtmlSerializerContext { * <p> * A value of <js>"NONE"</js> can be used to represent no value to differentiate it from an empty string. */ - public static final String HTMLDOC_footer = HTMLDOC + "footer"; + public static final String HTMLDOC_footer = PREFIX + "footer"; /** * <b>Configuration property:</b> No-results message. @@ -307,7 +308,7 @@ public final class HtmlDocSerializerContext extends HtmlSerializerContext { * <p> * A value of <js>"NONE"</js> can be used to represent no value to differentiate it from an empty string. */ - public static final String HTMLDOC_noResultsMessage = HTMLDOC + "noResultsMessage"; + public static final String HTMLDOC_noResultsMessage = PREFIX + "noResultsMessage"; /** * <b>Configuration property:</b> Prevent word wrap on page. @@ -322,7 +323,7 @@ public final class HtmlDocSerializerContext extends HtmlSerializerContext { * <p> * Adds <js>"* {white-space:nowrap}"</js> to the CSS instructions on the page to prevent word wrapping. */ - public static final String HTMLDOC_nowrap = HTMLDOC + "nowrap"; + public static final String HTMLDOC_nowrap = PREFIX + "nowrap"; /** * <b>Configuration property:</b> Stylesheet import URLs. @@ -343,12 +344,12 @@ public final class HtmlDocSerializerContext extends HtmlSerializerContext { * <p> * A value of <js>"NONE"</js> can be used to represent no value to differentiate it from an empty string. */ - public static final String HTMLDOC_stylesheet = HTMLDOC + "stylesheet"; + public static final String HTMLDOC_stylesheet = PREFIX + "stylesheet"; /** * <b>Configuration property:</b> Add to the {@link #HTMLDOC_stylesheet} property. */ - public static final String HTMLDOC_stylesheet_add = HTMLDOC + "stylesheet.list.add"; + public static final String HTMLDOC_stylesheet_add = PREFIX + "stylesheet.list.add"; /** * <b>Configuration property:</b> CSS style code. @@ -386,12 +387,12 @@ public final class HtmlDocSerializerContext extends HtmlSerializerContext { * ) * </p> */ - public static final String HTMLDOC_style = HTMLDOC + "style.list"; + public static final String HTMLDOC_style = PREFIX + "style.list"; /** * <b>Configuration property:</b> Add to the {@link #HTMLDOC_style} property. */ - public static final String HTMLDOC_style_add = HTMLDOC + "style.list.add"; + public static final String HTMLDOC_style_add = PREFIX + "style.list.add"; /** * <b>Configuration property:</b> Javascript code. @@ -428,12 +429,12 @@ public final class HtmlDocSerializerContext extends HtmlSerializerContext { * ) * </p> */ - public static final String HTMLDOC_script = HTMLDOC + "script.list"; + public static final String HTMLDOC_script = PREFIX + "script.list"; /** * <b>Configuration property:</b> Add to the {@link #HTMLDOC_script} property. */ - public static final String HTMLDOC_script_add = HTMLDOC + "script.list.add"; + public static final String HTMLDOC_script_add = PREFIX + "script.list.add"; /** * <b>Configuration property:</b> Additional head section content. @@ -470,12 +471,12 @@ public final class HtmlDocSerializerContext extends HtmlSerializerContext { * ) * </p> */ - public static final String HTMLDOC_head = HTMLDOC + "head.list"; + public static final String HTMLDOC_head = PREFIX + "head.list"; /** * <b>Configuration property:</b> Add to the {@link #HTMLDOC_head} property. */ - public static final String HTMLDOC_links_add = HTMLDOC + "head.list.add"; + public static final String HTMLDOC_links_add = PREFIX + "head.list.add"; /** * <b>Configuration property:</b> HTML document template. @@ -503,7 +504,7 @@ public final class HtmlDocSerializerContext extends HtmlSerializerContext { * ) * </p> */ - public static final String HTMLDOC_template = HTMLDOC + "template"; + public static final String HTMLDOC_template = PREFIX + "template"; final String[] style, stylesheet, script, navlinks, head; http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/87f505b3/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerContext.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerContext.java index a9f34b5..0f3c03d 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerContext.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/HtmlSerializerContext.java @@ -41,6 +41,8 @@ import org.apache.juneau.xml.*; */ public class HtmlSerializerContext extends XmlSerializerContext { + static final String PREFIX = "HtmlSerializer."; + /** * <b>Configuration property:</b> Anchor text source. * @@ -72,7 +74,7 @@ public class HtmlSerializerContext extends XmlSerializerContext { * (e.g. <js>"http://localhost:9080/foobar#anchorTextHere"</js>) * </ul> */ - public static final String HTML_uriAnchorText = "HtmlSerializer.uriAnchorText"; + public static final String HTML_uriAnchorText = PREFIX + "uriAnchorText"; /** Constant for {@link HtmlSerializerContext#HTML_uriAnchorText} property. */ public static final String PROPERTY_NAME = "PROPERTY_NAME"; @@ -100,7 +102,7 @@ public class HtmlSerializerContext extends XmlSerializerContext { * If a string looks like a URL (e.g. starts with <js>"http://"</js> or <js>"https://"</js>, then treat it like a URL * and make it into a hyperlink based on the rules specified by {@link #HTML_uriAnchorText}. */ - public static final String HTML_detectLinksInStrings = "HtmlSerializer.detectLinksInStrings"; + public static final String HTML_detectLinksInStrings = PREFIX + "detectLinksInStrings"; /** * <b>Configuration property:</b> Look for link labels in the <js>"label"</js> parameter of the URL. @@ -118,7 +120,7 @@ public class HtmlSerializerContext extends XmlSerializerContext { * <p> * The parameter name can be changed via the {@link #HTML_labelParameter} property. */ - public static final String HTML_lookForLabelParameters = "HtmlSerializer.lookForLabelParameters"; + public static final String HTML_lookForLabelParameters = PREFIX + "lookForLabelParameters"; /** * <b>Configuration property:</b> The parameter name to use when using {@link #HTML_lookForLabelParameters}. @@ -130,7 +132,7 @@ public class HtmlSerializerContext extends XmlSerializerContext { * <li><b>Session-overridable:</b> <jk>true</jk> * </ul> */ - public static final String HTML_labelParameter = "HtmlSerializer.labelParameter"; + public static final String HTML_labelParameter = PREFIX + "labelParameter"; /** * <b>Configuration property:</b> Add key/value headers on bean/map tables. @@ -142,7 +144,7 @@ public class HtmlSerializerContext extends XmlSerializerContext { * <li><b>Session-overridable:</b> <jk>true</jk> * </ul> */ - public static final String HTML_addKeyValueTableHeaders = "HtmlSerializer.addKeyValueTableHeaders"; + public static final String HTML_addKeyValueTableHeaders = PREFIX + "addKeyValueTableHeaders"; /** * <b>Configuration property:</b> Add <js>"_type"</js> properties when needed. @@ -165,7 +167,7 @@ public class HtmlSerializerContext extends XmlSerializerContext { * When present, this value overrides the {@link SerializerContext#SERIALIZER_addBeanTypeProperties} setting and is * provided to customize the behavior of specific serializers in a {@link SerializerGroup}. */ - public static final String HTML_addBeanTypeProperties = "HtmlSerializer.addBeanTypeProperties"; + public static final String HTML_addBeanTypeProperties = PREFIX + "addBeanTypeProperties"; final String uriAnchorText; http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/87f505b3/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializerContext.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializerContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializerContext.java index 3e07022..0284aee 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializerContext.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/JsonSerializerContext.java @@ -40,6 +40,8 @@ import org.apache.juneau.serializer.*; */ public final class JsonSerializerContext extends SerializerContext { + static final String PREFIX = "JsonSerializer."; + /** * <b>Configuration property:</b> Simple JSON mode. * @@ -54,7 +56,7 @@ public final class JsonSerializerContext extends SerializerContext { * If <jk>true</jk>, JSON attribute names will only be quoted when necessary. * Otherwise, they are always quoted. */ - public static final String JSON_simpleMode = "JsonSerializer.simpleMode"; + public static final String JSON_simpleMode = PREFIX + "simpleMode"; /** * <b>Configuration property:</b> Prefix solidus <js>'/'</js> characters with escapes. @@ -72,7 +74,7 @@ public final class JsonSerializerContext extends SerializerContext { * However, if you're embedding JSON in an HTML script tag, this setting prevents confusion when trying to serialize * <xt><\/script></xt>. */ - public static final String JSON_escapeSolidus = "JsonSerializer.escapeSolidus"; + public static final String JSON_escapeSolidus = PREFIX + "escapeSolidus"; /** * <b>Configuration property:</b> Add <js>"_type"</js> properties when needed. @@ -95,7 +97,7 @@ public final class JsonSerializerContext extends SerializerContext { * When present, this value overrides the {@link SerializerContext#SERIALIZER_addBeanTypeProperties} setting and is * provided to customize the behavior of specific serializers in a {@link SerializerGroup}. */ - public static final String JSON_addBeanTypeProperties = "JsonSerializer.addBeanTypeProperties"; + public static final String JSON_addBeanTypeProperties = PREFIX + "addBeanTypeProperties"; final boolean simpleMode, http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/87f505b3/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerContext.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerContext.java index f1365e1..285b564 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerContext.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/MsgPackSerializerContext.java @@ -40,6 +40,8 @@ import org.apache.juneau.serializer.*; */ public final class MsgPackSerializerContext extends SerializerContext { + static final String PREFIX = "MsgPackSerializer."; + /** * <b>Configuration property:</b> Add <js>"_type"</js> properties when needed. * @@ -61,7 +63,7 @@ public final class MsgPackSerializerContext extends SerializerContext { * When present, this value overrides the {@link SerializerContext#SERIALIZER_addBeanTypeProperties} setting and is * provided to customize the behavior of specific serializers in a {@link SerializerGroup}. */ - public static final String MSGPACK_addBeanTypeProperties = "MsgPackSerializer.addBeanTypeProperties"; + public static final String MSGPACK_addBeanTypeProperties = PREFIX + "addBeanTypeProperties"; final boolean addBeanTypeProperties; http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/87f505b3/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserContext.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserContext.java index 583649f..09a5e4c 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserContext.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/parser/ParserContext.java @@ -20,6 +20,8 @@ import org.apache.juneau.json.*; */ public class ParserContext extends BeanContext { + static final String PREFIX = "Parser."; + /** * Default context with all default values. */ @@ -40,7 +42,7 @@ public class ParserContext extends BeanContext { * If <jk>true</jk>, string values will be trimmed of whitespace using {@link String#trim()} before being added to * the POJO. */ - public static final String PARSER_trimStrings = "Parser.trimStrings"; + public static final String PARSER_trimStrings = PREFIX + "trimStrings"; /** * <b>Configuration property:</b> Strict mode. @@ -82,7 +84,7 @@ public class ParserContext extends BeanContext { * </tr> * </table> */ - public static final String PARSER_strict = "Parser.strict"; + public static final String PARSER_strict = PREFIX + "strict"; /** * <b>Configuration property:</b> Input stream charset. @@ -100,7 +102,7 @@ public class ParserContext extends BeanContext { * <p> * Used when passing in input streams and byte arrays to {@link Parser#parse(Object, Class)}. */ - public static final String PARSER_inputStreamCharset = "Parser.inputStreamCharset"; + public static final String PARSER_inputStreamCharset = PREFIX + "inputStreamCharset"; /** * <b>Configuration property:</b> File charset. @@ -121,7 +123,7 @@ public class ParserContext extends BeanContext { * <p> * <js>"default"</js> can be used to indicate the JVM default file system charset. */ - public static final String PARSER_fileCharset = "Parser.fileCharset"; + public static final String PARSER_fileCharset = PREFIX + "fileCharset"; /** * <b>Configuration property:</b> Parser listener. @@ -136,7 +138,7 @@ public class ParserContext extends BeanContext { * <p> * Class used to listen for errors and warnings that occur during parsing. */ - public static final String PARSER_listener = "PARSER.listener"; + public static final String PARSER_listener = PREFIX + "listener"; final boolean trimStrings, strict; final String inputStreamCharset, fileCharset; http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/87f505b3/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerContext.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerContext.java index 8d50aa8..a2a01bc 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerContext.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerContext.java @@ -20,6 +20,8 @@ import org.apache.juneau.annotation.*; */ public class SerializerContext extends BeanContext { + static final String PREFIX = "Serializer."; + /** * Default context with all default values. */ @@ -41,7 +43,7 @@ public class SerializerContext extends BeanContext { * If this depth is exceeded, an exception is thrown. * This prevents stack overflows from occurring when trying to serialize models with recursive references. */ - public static final String SERIALIZER_maxDepth = "Serializer.maxDepth"; + public static final String SERIALIZER_maxDepth = PREFIX + "maxDepth"; /** * <b>Configuration property:</b> Initial depth. @@ -57,7 +59,7 @@ public class SerializerContext extends BeanContext { * The initial indentation level at the root. * Useful when constructing document fragments that need to be indented at a certain level. */ - public static final String SERIALIZER_initialDepth = "Serializer.initialDepth"; + public static final String SERIALIZER_initialDepth = PREFIX + "initialDepth"; /** * <b>Configuration property:</b> Automatically detect POJO recursions. @@ -88,7 +90,7 @@ public class SerializerContext extends BeanContext { * <li>Checking for recursion can cause a small performance penalty. * </ul> */ - public static final String SERIALIZER_detectRecursions = "Serializer.detectRecursions"; + public static final String SERIALIZER_detectRecursions = PREFIX + "detectRecursions"; /** * <b>Configuration property:</b> Ignore recursion errors. @@ -108,7 +110,7 @@ public class SerializerContext extends BeanContext { * If <jk>true</jk>, when we encounter the same object when serializing a tree, we set the value to <jk>null</jk>. * Otherwise, an exception is thrown. */ - public static final String SERIALIZER_ignoreRecursions = "Serializer.ignoreRecursions"; + public static final String SERIALIZER_ignoreRecursions = PREFIX + "ignoreRecursions"; /** * <b>Configuration property:</b> Use whitespace. @@ -126,7 +128,7 @@ public class SerializerContext extends BeanContext { * <p> * This setting does not apply to the MessagePack serializer. */ - public static final String SERIALIZER_useWhitespace = "Serializer.useWhitespace"; + public static final String SERIALIZER_useWhitespace = PREFIX + "useWhitespace"; /** * <b>Configuration property:</b> Maximum indentation. @@ -144,7 +146,7 @@ public class SerializerContext extends BeanContext { * <p> * This setting does not apply to the MessagePack or RDF serializers. */ - public static final String SERIALIZER_maxIndent = "Serializer.maxIndent"; + public static final String SERIALIZER_maxIndent = PREFIX + "maxIndent"; /** * <b>Configuration property:</b> Add <js>"_type"</js> properties when needed. @@ -163,7 +165,7 @@ public class SerializerContext extends BeanContext { * For example, when serializing a {@code Map<String,Object>} field, where the bean class cannot be determined from * the value type. */ - public static final String SERIALIZER_addBeanTypeProperties = "Serializer.addBeanTypeProperties"; + public static final String SERIALIZER_addBeanTypeProperties = PREFIX + "addBeanTypeProperties"; /** * <b>Configuration property:</b> Quote character. @@ -181,7 +183,7 @@ public class SerializerContext extends BeanContext { * <p> * This setting does not apply to the MessagePack or RDF serializers. */ - public static final String SERIALIZER_quoteChar = "Serializer.quoteChar"; + public static final String SERIALIZER_quoteChar = PREFIX + "quoteChar"; /** * <b>Configuration property:</b> Trim null bean property values. @@ -203,7 +205,7 @@ public class SerializerContext extends BeanContext { * Map entries with <jk>null</jk> values will be lost. * </ul> */ - public static final String SERIALIZER_trimNullProperties = "Serializer.trimNullProperties"; + public static final String SERIALIZER_trimNullProperties = PREFIX + "trimNullProperties"; /** * <b>Configuration property:</b> Trim empty lists and arrays. @@ -227,7 +229,7 @@ public class SerializerContext extends BeanContext { * Bean properties with empty list values will not be set. * </ul> */ - public static final String SERIALIZER_trimEmptyCollections = "Serializer.trimEmptyLists"; + public static final String SERIALIZER_trimEmptyCollections = PREFIX + "trimEmptyLists"; /** * <b>Configuration property:</b> Trim empty maps. @@ -249,7 +251,7 @@ public class SerializerContext extends BeanContext { * Bean properties with empty map values will not be set. * </ul> */ - public static final String SERIALIZER_trimEmptyMaps = "Serializer.trimEmptyMaps"; + public static final String SERIALIZER_trimEmptyMaps = PREFIX + "trimEmptyMaps"; /** * <b>Configuration property:</b> Trim strings. @@ -264,7 +266,7 @@ public class SerializerContext extends BeanContext { * <p> * If <jk>true</jk>, string values will be trimmed of whitespace using {@link String#trim()} before being serialized. */ - public static final String SERIALIZER_trimStrings = "Serializer.trimStrings"; + public static final String SERIALIZER_trimStrings = PREFIX + "trimStrings"; /** * <b>Configuration property:</b> URI context bean. @@ -284,7 +286,7 @@ public class SerializerContext extends BeanContext { * <js>"{authority:'http://localhost:10000',contextRoot:'/myContext',servletPath:'/myServlet',pathInfo:'/foo'}"</js> * </p> */ - public static final String SERIALIZER_uriContext = "Serializer.uriContext"; + public static final String SERIALIZER_uriContext = PREFIX + "uriContext"; /** * <b>Configuration property:</b> URI resolution. @@ -315,7 +317,7 @@ public class SerializerContext extends BeanContext { * - Don't do any URL resolution. * </ul> */ - public static final String SERIALIZER_uriResolution = "Serializer.uriResolution"; + public static final String SERIALIZER_uriResolution = PREFIX + "uriResolution"; /** * <b>Configuration property:</b> URI relativity. @@ -344,7 +346,7 @@ public class SerializerContext extends BeanContext { * - Relative URIs should be considered relative to the request URI. * </ul> */ - public static final String SERIALIZER_uriRelativity = "Serializer.uriRelativity"; + public static final String SERIALIZER_uriRelativity = PREFIX + "uriRelativity"; /** * <b>Configuration property:</b> Sort arrays and collections alphabetically. @@ -359,7 +361,7 @@ public class SerializerContext extends BeanContext { * <p> * Note that this introduces a performance penalty. */ - public static final String SERIALIZER_sortCollections = "Serializer.sortCollections"; + public static final String SERIALIZER_sortCollections = PREFIX + "sortCollections"; /** * <b>Configuration property:</b> Sort maps alphabetically. @@ -374,7 +376,7 @@ public class SerializerContext extends BeanContext { * <p> * Note that this introduces a performance penalty. */ - public static final String SERIALIZER_sortMaps = "Serializer.sortMaps"; + public static final String SERIALIZER_sortMaps = PREFIX + "sortMaps"; /** * <b>Configuration property:</b> Abridged output. @@ -394,7 +396,7 @@ public class SerializerContext extends BeanContext { * For example, when serializing a POJO with a {@link Bean#typeName()} value, a <js>"_type"</js> will be added when * this setting is disabled, but not added when it is enabled. */ - public static final String SERIALIZER_abridged = "Serializer.abridged"; + public static final String SERIALIZER_abridged = PREFIX + "abridged"; /** * <b>Configuration property:</b> Serializer listener. @@ -409,7 +411,7 @@ public class SerializerContext extends BeanContext { * <p> * Class used to listen for errors and warnings that occur during serialization. */ - public static final String SERIALIZER_listener = "Serializer.listener"; + public static final String SERIALIZER_listener = PREFIX + "listener"; final int maxDepth, initialDepth, maxIndent; http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/87f505b3/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializerContext.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializerContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializerContext.java index 77f64cc..6b2f4a2 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializerContext.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/soap/SoapXmlSerializerContext.java @@ -44,6 +44,8 @@ import org.apache.juneau.xml.*; */ public final class SoapXmlSerializerContext extends XmlSerializerContext { + static final String PREFIX = "SoapXmlSerializer."; + /** * Constructor * @@ -65,5 +67,5 @@ public final class SoapXmlSerializerContext extends XmlSerializerContext { * <li><b>Default:</b> <js>"http://www.w3.org/2003/05/soap-envelope"</js> * </ul> */ - public static final String SOAPXML_SOAPAction = "SoapXmlSerializer.SOAPAction"; + public static final String SOAPXML_SOAPAction = PREFIX + "SOAPAction"; } http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/87f505b3/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserContext.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserContext.java index aa5a02a..bbc5509 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserContext.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonParserContext.java @@ -41,6 +41,8 @@ import org.apache.juneau.urlencoding.*; */ public class UonParserContext extends ParserContext { + static final String PREFIX = "UonParser."; + /** * <b>Configuration property:</b> Decode <js>"%xx"</js> sequences. * @@ -55,7 +57,7 @@ public class UonParserContext extends ParserContext { * Specify <jk>true</jk> if URI encoded characters should be decoded, <jk>false</jk> if they've already been decoded * before being passed to this parser. */ - public static final String UON_decodeChars = "UonParser.decodeChars"; + public static final String UON_decodeChars = PREFIX + "decodeChars"; final boolean decodeChars; http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/87f505b3/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializerContext.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializerContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializerContext.java index f20dba1..952259b 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializerContext.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/uon/UonSerializerContext.java @@ -41,6 +41,8 @@ import org.apache.juneau.urlencoding.*; */ public class UonSerializerContext extends SerializerContext { + static final String PREFIX = "UonSerializer."; + /** * <b>Configuration property:</b> Encode non-valid URI characters. * @@ -59,7 +61,7 @@ public class UonSerializerContext extends SerializerContext { * Set to <jk>false</jk> if parameter value is being passed to some other code that will already perform * URL-encoding of non-valid URI characters. */ - public static final String UON_encodeChars = "UonSerializer.encodeChars"; + public static final String UON_encodeChars = PREFIX + "encodeChars"; /** * <b>Configuration property:</b> Add <js>"_type"</js> properties when needed. @@ -82,7 +84,7 @@ public class UonSerializerContext extends SerializerContext { * When present, this value overrides the {@link SerializerContext#SERIALIZER_addBeanTypeProperties} setting and is * provided to customize the behavior of specific serializers in a {@link SerializerGroup}. */ - public static final String UON_addBeanTypeProperties = "UonSerializer.addBeanTypeProperties"; + public static final String UON_addBeanTypeProperties = PREFIX + "addBeanTypeProperties"; /** * <b>Configuration property:</b> Format to use for query/form-data/header values. @@ -114,7 +116,7 @@ public class UonSerializerContext extends SerializerContext { * interfaces. * </ul> */ - public static final String UON_paramFormat = "UonSerializer.paramFormat"; + public static final String UON_paramFormat = PREFIX + "paramFormat"; final boolean http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/87f505b3/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingContext.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingContext.java deleted file mode 100644 index 3c71a4a..0000000 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingContext.java +++ /dev/null @@ -1,60 +0,0 @@ -// *************************************************************************************************************************** -// * 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; - -/** - * Configurable properties on the {@link UrlEncodingSerializer} and {@link UrlEncodingParser} classes. - * - * <p> - * Use the {@link UrlEncodingSerializerBuilder#property(String, Object)} and - * {@link UrlEncodingParserBuilder#property(String, Object)} methods to set property values. - */ -public final class UrlEncodingContext implements Cloneable { - - /** - * Serialize bean property collections/arrays as separate key/value pairs ({@link Boolean}, default=<jk>false</jk>). - * - * <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>. - * - * <p> - * Example: - * <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. - * - * <h5 class='section'>Notes:</h5> - * <ul> - * <li>If parsing multi-part parameters, it's highly recommended to use <code>Collections</code> or <code>Lists</code> - * 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"; - - boolean - expandedParams = false; -} http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/87f505b3/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserBuilder.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserBuilder.java index 71b6383..72abc1e 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserBuilder.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserBuilder.java @@ -97,10 +97,10 @@ public class UrlEncodingParserBuilder extends UonParserBuilder { * * @param value The new value for this property. * @return This object (for method chaining). - * @see UrlEncodingContext#URLENC_expandedParams + * @see UrlEncodingParserContext#URLENC_expandedParams */ public UrlEncodingParserBuilder expandedParams(boolean value) { - return property(UrlEncodingContext.URLENC_expandedParams, value); + return property(UrlEncodingParserContext.URLENC_expandedParams, value); } @Override /* UonParser */ http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/87f505b3/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserContext.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserContext.java index fbcb41b..426dbc0 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserContext.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserContext.java @@ -27,6 +27,26 @@ import org.apache.juneau.uon.*; */ public class UrlEncodingParserContext extends UonParserContext { + static final String PREFIX = "UrlEncodingParser."; + + /** + * Parser bean property collections/arrays as separate key/value pairs ({@link Boolean}, default=<jk>false</jk>). + * + * <p> + * This is the parser-side equivalent of the {@link UrlEncodingSerializerContext#URLENC_expandedParams} setting. + * + * <p> + * This option only applies to beans. + * + * <h5 class='section'>Notes:</h5> + * <ul> + * <li>If parsing multi-part parameters, it's highly recommended to use <code>Collections</code> or <code>Lists</code> + * 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 = PREFIX + "expandedParams"; + final boolean expandedParams; @@ -40,7 +60,7 @@ public class UrlEncodingParserContext extends UonParserContext { */ public UrlEncodingParserContext(PropertyStore ps) { super(ps); - this.expandedParams = ps.getProperty(UrlEncodingContext.URLENC_expandedParams, boolean.class, false); + this.expandedParams = ps.getProperty(URLENC_expandedParams, boolean.class, false); } @Override /* Context */ http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/87f505b3/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserSession.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserSession.java index a3ebea4..4f7409a 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserSession.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParserSession.java @@ -48,7 +48,7 @@ public class UrlEncodingParserSession extends UonParserSession { if (p.isEmpty()) { expandedParams = ctx.expandedParams; } else { - expandedParams = p.getBoolean(UrlEncodingContext.URLENC_expandedParams, false); + expandedParams = p.getBoolean(UrlEncodingParserContext.URLENC_expandedParams, false); } } http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/87f505b3/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java index 9170cc2..65c800c 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializer.java @@ -14,7 +14,7 @@ package org.apache.juneau.urlencoding; import static org.apache.juneau.serializer.SerializerContext.*; import static org.apache.juneau.uon.UonSerializerContext.*; -import static org.apache.juneau.urlencoding.UrlEncodingContext.*; +import static org.apache.juneau.urlencoding.UrlEncodingSerializerContext.*; import static org.apache.juneau.internal.StringUtils.*; import java.io.*; http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/87f505b3/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.java index 16e8f51..89532e0 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerBuilder.java @@ -96,10 +96,10 @@ public class UrlEncodingSerializerBuilder extends UonSerializerBuilder { * * @param value The new value for this property. * @return This object (for method chaining). - * @see UrlEncodingContext#URLENC_expandedParams + * @see UrlEncodingSerializerContext#URLENC_expandedParams */ public UrlEncodingSerializerBuilder expandedParams(boolean value) { - return property(UrlEncodingContext.URLENC_expandedParams, value); + return property(UrlEncodingSerializerContext.URLENC_expandedParams, value); } /** http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/87f505b3/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerContext.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerContext.java index 87531c4..04166a1 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerContext.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerContext.java @@ -27,6 +27,41 @@ import org.apache.juneau.uon.*; */ public class UrlEncodingSerializerContext extends UonSerializerContext { + static final String PREFIX = "UrlEncodingSerializer."; + + /** + * Serialize bean property collections/arrays as separate key/value pairs ({@link Boolean}, default=<jk>false</jk>). + * + * <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>. + * + * <p> + * Example: + * <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. + * + * <h5 class='section'>Notes:</h5> + * <ul> + * <li>If parsing multi-part parameters, it's highly recommended to use <code>Collections</code> or <code>Lists</code> + * 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 = PREFIX + "expandedParams"; final boolean expandedParams; @@ -41,7 +76,7 @@ public class UrlEncodingSerializerContext extends UonSerializerContext { */ public UrlEncodingSerializerContext(PropertyStore ps) { super(ps); - this.expandedParams = ps.getProperty(UrlEncodingContext.URLENC_expandedParams, boolean.class, false); + this.expandedParams = ps.getProperty(URLENC_expandedParams, boolean.class, false); } @Override /* Context */ http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/87f505b3/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerSession.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerSession.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerSession.java index 90e6b09..a800ad6 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerSession.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerSession.java @@ -54,7 +54,7 @@ public class UrlEncodingSerializerSession extends UonSerializerSession { if (p.isEmpty()) { expandedParams = ctx.expandedParams; } else { - expandedParams = p.getBoolean(UrlEncodingContext.URLENC_expandedParams, false); + expandedParams = p.getBoolean(UrlEncodingSerializerContext.URLENC_expandedParams, false); } } http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/87f505b3/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncoding.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncoding.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncoding.java index 2576e58..1326589 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncoding.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncoding.java @@ -33,8 +33,8 @@ public @interface UrlEncoding { * When true, bean properties of type array or Collection will be expanded into multiple key/value pairings. * * <p> - * This annotation is identical in behavior to using the {@link UrlEncodingContext#URLENC_expandedParams} - * property, but applies to only instances of this bean. + * This annotation is identical in behavior to using the {@link UrlEncodingSerializerContext#URLENC_expandedParams} + * and {@link UrlEncodingParserContext#URLENC_expandedParams} properties, but applies to only instances of this bean. */ boolean expandedParams() default false; } http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/87f505b3/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserContext.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserContext.java b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserContext.java index bc8496e..55cf882 100644 --- a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserContext.java +++ b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/XmlParserContext.java @@ -43,6 +43,8 @@ import org.apache.juneau.parser.*; */ public class XmlParserContext extends ParserContext { + static final String PREFIX = "XmlParser."; + /** * <b>Configuration property:</b> Enable validation. * @@ -57,7 +59,7 @@ public class XmlParserContext extends ParserContext { * If <jk>true</jk>, XML document will be validated. * See {@link XMLInputFactory#IS_VALIDATING} for more info. */ - public static final String XML_validating = "XmlParser.validating"; + public static final String XML_validating = PREFIX + "validating"; /** * <b>Configuration property:</b> XML reporter. @@ -77,7 +79,7 @@ public class XmlParserContext extends ParserContext { * <li>Reporters are not copied to new parsers during a clone. * </ul> */ - public static final String XML_reporter = "XmlParser.reporter"; + public static final String XML_reporter = PREFIX + "reporter"; /** * <b>Configuration property:</b> XML resolver. @@ -92,7 +94,7 @@ public class XmlParserContext extends ParserContext { * <p> * Associates an {@link XMLResolver} with this parser. */ - public static final String XML_resolver = "XmlParser.resolver"; + public static final String XML_resolver = PREFIX + "resolver"; /** * <b>Configuration property:</b> XML event allocator. @@ -107,7 +109,7 @@ public class XmlParserContext extends ParserContext { * <p> * Associates an {@link XMLEventAllocator} with this parser. */ - public static final String XML_eventAllocator = "XmlParser.eventAllocator"; + public static final String XML_eventAllocator = PREFIX + "eventAllocator"; /** * <b>Configuration property:</b> Preserve root element during generalized parsing. @@ -138,7 +140,7 @@ public class XmlParserContext extends ParserContext { * </tr> * </table> */ - public static final String XML_preserveRootElement = "XmlParser.preserveRootElement"; + public static final String XML_preserveRootElement = PREFIX + "preserveRootElement"; final boolean validating,
