This is an automated email from the ASF dual-hosted git repository.

jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git


The following commit(s) were added to refs/heads/master by this push:
     new 728b0c5  Context API refactoring.
728b0c5 is described below

commit 728b0c5535996a735b888699fd7d68a7ee12d10d
Author: JamesBognar <[email protected]>
AuthorDate: Mon Sep 27 11:18:00 2021 -0400

    Context API refactoring.
---
 .../juneau/urlencoding/UrlEncodingParser.java      | 45 +++-----------------
 .../urlencoding/UrlEncodingParserBuilder.java      | 27 ++++++++----
 .../urlencoding/UrlEncodingParserSession.java      |  2 +-
 .../juneau/urlencoding/UrlEncodingSerializer.java  | 49 +++-------------------
 .../urlencoding/UrlEncodingSerializerBuilder.java  | 25 +++++++----
 .../urlencoding/UrlEncodingSerializerSession.java  |  2 +-
 .../juneau/urlencoding/annotation/UrlEncoding.java |  4 +-
 .../urlencoding/annotation/UrlEncodingConfig.java  |  6 +--
 .../annotation/UrlEncodingConfigAnnotation.java    | 35 ++++++++++++----
 9 files changed, 83 insertions(+), 112 deletions(-)

diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
index e9bb44b..7ce4012 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/UrlEncodingParser.java
@@ -43,52 +43,18 @@ import org.apache.juneau.uon.*;
 public class UrlEncodingParser extends UonParser implements 
UrlEncodingMetaProvider {
 
        
//-------------------------------------------------------------------------------------------------------------------
-       // Configurable properties
-       
//-------------------------------------------------------------------------------------------------------------------
-
-       static final String PREFIX = "UrlEncodingParser";
-
-       /**
-        * Configuration property:  Parser bean property collections/arrays as 
separate key/value pairs.
-        *
-        * <p>
-        * This is the parser-side equivalent of the {@link 
#URLENC_expandedParams} setting.
-        *
-        * <h5 class='section'>Property:</h5>
-        * <ul class='spaced-list'>
-        *      <li><b>ID:</b>  {@link 
org.apache.juneau.urlencoding.UrlEncodingParser#URLENC_expandedParams 
URLENC_expandedParams}
-        *      <li><b>Name:</b>  <js>"UrlEncodingParser.expandedParams.b"</js>
-        *      <li><b>Data type:</b>  <jk>boolean</jk>
-        *      <li><b>System property:</b>  
<c>UrlEncodingParser.expandedParams</c>
-        *      <li><b>Environment variable:</b>  
<c>URLENCODINGPARSER_EXPANDEDPARAMS</c>
-        *      <li><b>Default:</b>  <jk>false</jk>
-        *      <li><b>Session property:</b>  <jk>false</jk>
-        *      <li><b>Annotations:</b>
-        *              <ul>
-        *                      <li class='ja'>{@link 
org.apache.juneau.urlencoding.annotation.UrlEncodingConfig#expandedParams()}
-        *              </ul>
-        *      <li><b>Methods:</b>
-        *              <ul>
-        *                      <li class='jm'>{@link 
org.apache.juneau.urlencoding.UrlEncodingParserBuilder#expandedParams()}
-        *              </ul>
-        * </ul>
-        */
-       public static final String URLENC_expandedParams = PREFIX + 
".expandedParams.b";
-
-
-       
//-------------------------------------------------------------------------------------------------------------------
-       // Predefined instances
+       // Static
        
//-------------------------------------------------------------------------------------------------------------------
 
        /** Reusable instance of {@link UrlEncodingParser}. */
        public static final UrlEncodingParser DEFAULT = new 
UrlEncodingParser(create());
 
-
        
//-------------------------------------------------------------------------------------------------------------------
        // Instance
        
//-------------------------------------------------------------------------------------------------------------------
 
-       private final boolean expandedParams;
+       final boolean expandedParams;
+
        private final Map<ClassMeta<?>,UrlEncodingClassMeta> 
urlEncodingClassMetas = new ConcurrentHashMap<>();
        private final Map<BeanPropertyMeta,UrlEncodingBeanPropertyMeta> 
urlEncodingBeanPropertyMetas = new ConcurrentHashMap<>();
 
@@ -99,8 +65,7 @@ public class UrlEncodingParser extends UonParser implements 
UrlEncodingMetaProvi
         */
        protected UrlEncodingParser(UrlEncodingParserBuilder builder) {
                super(builder);
-               ContextProperties cp = getContextProperties();
-               expandedParams = 
cp.getBoolean(URLENC_expandedParams).orElse(false);
+               expandedParams = builder.expandedParams;
        }
 
        @Override /* Context */
@@ -172,7 +137,7 @@ public class UrlEncodingParser extends UonParser implements 
UrlEncodingMetaProvi
        /**
         * Parser bean property collections/arrays as separate key/value pairs.
         *
-        * @see #URLENC_expandedParams
+        * @see UrlEncodingParserBuilder#expandedParams()
         * @return
         * <jk>false</jk> if serializing the array <c>[1,2,3]</c> results in 
<c>?key=$a(1,2,3)</c>.
         * <br><jk>true</jk> if serializing the same array results in 
<c>?key=1&amp;key=2&amp;key=3</c>.
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 c735e58..98be6d3 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
@@ -12,8 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.urlencoding;
 
-import static org.apache.juneau.urlencoding.UrlEncodingParser.*;
-
 import java.lang.annotation.*;
 import java.lang.reflect.*;
 import java.nio.charset.*;
@@ -31,6 +29,8 @@ import org.apache.juneau.uon.*;
 @FluentSetters
 public class UrlEncodingParserBuilder extends UonParserBuilder {
 
+       boolean expandedParams;
+
        /**
         * Constructor, default settings.
         */
@@ -39,6 +39,7 @@ public class UrlEncodingParserBuilder extends 
UonParserBuilder {
                decoding();
                consumes("application/x-www-form-urlencoded");
                type(UrlEncodingParser.class);
+               expandedParams = env("UrlEncoding.expandedParams", false);
        }
 
        /**
@@ -48,6 +49,7 @@ public class UrlEncodingParserBuilder extends 
UonParserBuilder {
         */
        protected UrlEncodingParserBuilder(UrlEncodingParser copyFrom) {
                super(copyFrom);
+               expandedParams = copyFrom.expandedParams;
        }
 
        /**
@@ -57,6 +59,7 @@ public class UrlEncodingParserBuilder extends 
UonParserBuilder {
         */
        protected UrlEncodingParserBuilder(UrlEncodingParserBuilder copyFrom) {
                super(copyFrom);
+               expandedParams = copyFrom.expandedParams;
        }
 
        @Override /* ContextBuilder */
@@ -77,7 +80,7 @@ public class UrlEncodingParserBuilder extends 
UonParserBuilder {
         * Serialize bean property collections/arrays as separate key/value 
pairs.
         *
         * <p>
-        * This is the parser-side equivalent of the {@link 
#URLENC_expandedParams} setting.
+        * This is the parser-side equivalent of the {@link 
UrlEncodingSerializerBuilder#expandedParams()} setting.
         *
         * <p>
         * If <jk>false</jk>, serializing the array <c>[1,2,3]</c> results in 
<c>?key=$a(1,2,3)</c>.
@@ -108,15 +111,23 @@ public class UrlEncodingParserBuilder extends 
UonParserBuilder {
         *              is added to it.
         * </ul>
         *
-        * <ul class='seealso'>
-        *      <li class='jf'>{@link UrlEncodingParser#URLENC_expandedParams}
-        * </ul>
-        *
         * @return This object (for method chaining).
         */
        @FluentSetter
        public UrlEncodingParserBuilder expandedParams() {
-               return set(URLENC_expandedParams);
+               return expandedParams(true);
+       }
+
+       /**
+        * Same as {@link #expandedParams()} but allows you to explicitly 
specify the value.
+        *
+        * @param value The value for this setting.
+        * @return This object.
+        */
+       @FluentSetter
+       public UrlEncodingParserBuilder expandedParams(boolean value) {
+               expandedParams = value;
+               return this;
        }
 
        // <FluentSetters>
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 6d16d3f..4c4b26e 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
@@ -380,7 +380,7 @@ public class UrlEncodingParserSession extends 
UonParserSession {
        /**
         * Configuration property:  Parser bean property collections/arrays as 
separate key/value pairs.
         *
-        * @see UrlEncodingParser#URLENC_expandedParams
+        * @see UrlEncodingParserBuilder#expandedParams()
         * @return
         * <jk>false</jk> if serializing the array <c>[1,2,3]</c> results in 
<c>?key=$a(1,2,3)</c>.
         * <br><jk>true</jk> if serializing the same array results in 
<c>?key=1&amp;key=2&amp;key=3</c>.
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 f75ccff..5118bf1 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
@@ -120,42 +120,7 @@ import org.apache.juneau.uon.*;
 public class UrlEncodingSerializer extends UonSerializer implements 
UrlEncodingMetaProvider {
 
        
//-------------------------------------------------------------------------------------------------------------------
-       // Configurable properties
-       
//-------------------------------------------------------------------------------------------------------------------
-
-       static final String PREFIX = "UrlEncodingSerializer";
-
-       /**
-        * Configuration property:  Serialize bean property collections/arrays 
as separate key/value pairs.
-        *
-        * <p>
-        * If <jk>false</jk>, serializing the array <c>[1,2,3]</c> results in 
<c>?key=$a(1,2,3)</c>.
-        * <br>If <jk>true</jk>, serializing the same array results in 
<c>?key=1&amp;key=2&amp;key=3</c>.
-        *
-        * <h5 class='section'>Property:</h5>
-        * <ul class='spaced-list'>
-        *      <li><b>ID:</b>  {@link 
org.apache.juneau.urlencoding.UrlEncodingSerializer#URLENC_expandedParams 
URLENC_expandedParams}
-        *      <li><b>Name:</b>  
<js>"UrlEncodingSerializer.expandedParams.b"</js>
-        *      <li><b>Data type:</b>  <jk>boolean</jk>
-        *      <li><b>System property:</b>  
<c>UrlEncodingSerializer.expandedParams</c>
-        *      <li><b>Environment variable:</b>  
<c>URLENCODINGSERIALIZER_EXPANDEDPARAMS</c>
-        *      <li><b>Default:</b>  <jk>false</jk>
-        *      <li><b>Session property:</b>  <jk>false</jk>
-        *      <li><b>Annotations:</b>
-        *              <ul>
-        *                      <li class='ja'>{@link 
org.apache.juneau.urlencoding.annotation.UrlEncodingConfig#expandedParams()}
-        *              </ul>
-        *      <li><b>Methods:</b>
-        *              <ul>
-        *                      <li class='jm'>{@link 
org.apache.juneau.urlencoding.UrlEncodingSerializerBuilder#expandedParams()}
-        *              </ul>
-        * </ul>
-        */
-       public static final String URLENC_expandedParams = PREFIX + 
".expandedParams.b";
-
-
-       
//-------------------------------------------------------------------------------------------------------------------
-       // Predefined instances
+       // Static
        
//-------------------------------------------------------------------------------------------------------------------
 
        /** Reusable instance of {@link UrlEncodingSerializer}, all default 
settings. */
@@ -170,9 +135,8 @@ public class UrlEncodingSerializer extends UonSerializer 
implements UrlEncodingM
        /** Reusable instance of {@link UrlEncodingSerializer.Readable}. */
        public static final UrlEncodingSerializer DEFAULT_READABLE = new 
Readable(create());
 
-
        
//-------------------------------------------------------------------------------------------------------------------
-       // Predefined subclasses
+       // Static subclasses
        
//-------------------------------------------------------------------------------------------------------------------
 
        /**
@@ -220,13 +184,13 @@ public class UrlEncodingSerializer extends UonSerializer 
implements UrlEncodingM
                }
        }
 
-
        
//-------------------------------------------------------------------------------------------------------------------
        // Instance
        
//-------------------------------------------------------------------------------------------------------------------
 
-       private final boolean
+       final boolean
                expandedParams;
+
        private final Map<ClassMeta<?>,UrlEncodingClassMeta> 
urlEncodingClassMetas = new ConcurrentHashMap<>();
        private final Map<BeanPropertyMeta,UrlEncodingBeanPropertyMeta> 
urlEncodingBeanPropertyMetas = new ConcurrentHashMap<>();
 
@@ -237,8 +201,7 @@ public class UrlEncodingSerializer extends UonSerializer 
implements UrlEncodingM
         */
        protected UrlEncodingSerializer(UrlEncodingSerializerBuilder builder) {
                super(builder.encoding());
-               ContextProperties cp = getContextProperties();
-               expandedParams = 
cp.getBoolean(URLENC_expandedParams).orElse(false);
+               expandedParams = builder.expandedParams;
        }
 
        @Override /* Context */
@@ -310,7 +273,7 @@ public class UrlEncodingSerializer extends UonSerializer 
implements UrlEncodingM
        /**
         * Serialize bean property collections/arrays as separate key/value 
pairs.
         *
-        * @see #URLENC_expandedParams
+        * @see UrlEncodingSerializerBuilder#expandedParams()
         * @return
         *      <jk>false</jk> if serializing the array <c>[1,2,3]</c> results 
in <c>?key=$a(1,2,3)</c>.
         *      <br><jk>true</jk> if serializing the same array results in 
<c>?key=1&amp;key=2&amp;key=3</c>.
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 eafdd4d..4914a5c 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
@@ -12,8 +12,6 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.urlencoding;
 
-import static org.apache.juneau.urlencoding.UrlEncodingSerializer.*;
-
 import java.lang.annotation.*;
 import java.lang.reflect.*;
 import java.nio.charset.*;
@@ -31,6 +29,8 @@ import org.apache.juneau.uon.*;
 @FluentSetters
 public class UrlEncodingSerializerBuilder extends UonSerializerBuilder {
 
+       boolean expandedParams;
+
        /**
         * Constructor, default settings.
         */
@@ -38,6 +38,7 @@ public class UrlEncodingSerializerBuilder extends 
UonSerializerBuilder {
                super();
                produces("application/x-www-form-urlencoded");
                type(UrlEncodingSerializer.class);
+               expandedParams = env("UrlEncoding.expandedParams", false);
        }
 
        /**
@@ -47,6 +48,7 @@ public class UrlEncodingSerializerBuilder extends 
UonSerializerBuilder {
         */
        protected UrlEncodingSerializerBuilder(UrlEncodingSerializer copyFrom) {
                super(copyFrom);
+               expandedParams = copyFrom.expandedParams;
        }
 
        /**
@@ -56,6 +58,7 @@ public class UrlEncodingSerializerBuilder extends 
UonSerializerBuilder {
         */
        protected UrlEncodingSerializerBuilder(UrlEncodingSerializerBuilder 
copyFrom) {
                super(copyFrom);
+               expandedParams = copyFrom.expandedParams;
        }
 
        @Override /* ContextBuilder */
@@ -110,15 +113,23 @@ public class UrlEncodingSerializerBuilder extends 
UonSerializerBuilder {
         *      String <jv>out2</jv> = 
<jv>serializer2</jv>.serialize(<jk>new</jk> A()); <jc>
         * </p>
         *
-        * <ul class='seealso'>
-        *      <li class='jf'>{@link 
UrlEncodingSerializer#URLENC_expandedParams}
-        * </ul>
-        *
         * @return This object (for method chaining).
         */
        @FluentSetter
        public UrlEncodingSerializerBuilder expandedParams() {
-               return set(URLENC_expandedParams);
+               return expandedParams(true);
+       }
+
+       /**
+        * Same as {@link #expandedParams()} but allows you to explicitly 
specify the value.
+        *
+        * @param value The value for this setting.
+        * @return This object.
+        */
+       @FluentSetter
+       public UrlEncodingSerializerBuilder expandedParams(boolean value) {
+               expandedParams = value;
+               return this;
        }
 
        // <FluentSetters>
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 a86acd7..0242bce 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
@@ -270,7 +270,7 @@ public class UrlEncodingSerializerSession extends 
UonSerializerSession {
        /**
         * Configuration property:  Serialize bean property collections/arrays 
as separate key/value pairs.
         *
-        * @see UrlEncodingSerializer#URLENC_expandedParams
+        * @see UrlEncodingSerializerBuilder#expandedParams()
         * @return
         *      <jk>false</jk> if serializing the array <c>[1,2,3]</c> results 
in <c>?key=$a(1,2,3)</c>.
         *      <br><jk>true</jk> if serializing the same array results in 
<c>?key=1&amp;key=2&amp;key=3</c>.
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 778bae8..ee450a4 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
@@ -44,8 +44,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 
UrlEncodingSerializer#URLENC_expandedParams}
-        * and {@link UrlEncodingParser#URLENC_expandedParams} properties, but 
applies to only instances of this bean.
+        * This annotation is identical in behavior to using the {@link 
UrlEncodingSerializerBuilder#expandedParams()}
+        * and {@link UrlEncodingParserBuilder#expandedParams()} properties, 
but applies to only instances of this bean.
         */
        boolean expandedParams() default false;
 
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncodingConfig.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncodingConfig.java
index 107c038..4b79218 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncodingConfig.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncodingConfig.java
@@ -30,7 +30,7 @@ import org.apache.juneau.urlencoding.*;
 @Target({TYPE,METHOD})
 @Retention(RUNTIME)
 @Inherited
-@ContextApply(UrlEncodingConfigAnnotation.Apply.class)
+@ContextApply({UrlEncodingConfigAnnotation.SerializerApply.class,UrlEncodingConfigAnnotation.ParserApply.class})
 public @interface UrlEncodingConfig {
 
        /**
@@ -53,7 +53,7 @@ public @interface UrlEncodingConfig {
         * Configuration property:  Parser bean property collections/arrays as 
separate key/value pairs.
         *
         * <p>
-        * This is the parser-side equivalent of the {@link 
UrlEncodingSerializer#URLENC_expandedParams} setting.
+        * This is the parser-side equivalent of the {@link 
UrlEncodingSerializerBuilder#expandedParams()} setting.
         *
         * <p>
         * If <js>"false"</js>, serializing the array <c>[1,2,3]</c> results in 
<c>?key=$a(1,2,3)</c>.
@@ -77,7 +77,7 @@ public @interface UrlEncodingConfig {
         * </ul>
         *
         * <ul class='seealso'>
-        *      <li class='jf'>{@link 
UrlEncodingSerializer#URLENC_expandedParams}
+        *      <li class='jf'>{@link 
UrlEncodingSerializerBuilder#expandedParams()}
         * </ul>
         */
        String expandedParams() default "";
diff --git 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncodingConfigAnnotation.java
 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncodingConfigAnnotation.java
index cbcaa84..b47f343 100644
--- 
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncodingConfigAnnotation.java
+++ 
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/urlencoding/annotation/UrlEncodingConfigAnnotation.java
@@ -23,25 +23,46 @@ import org.apache.juneau.urlencoding.*;
 public class UrlEncodingConfigAnnotation {
 
        /**
-        * Applies {@link UrlEncodingConfig} annotations to a {@link 
ContextPropertiesBuilder}.
+        * Applies {@link UrlEncodingConfig} annotations to a {@link 
UrlEncodingSerializerBuilder}.
         */
-       public static class Apply extends 
AnnotationApplier<UrlEncodingConfig,ContextPropertiesBuilder> {
+       public static class SerializerApply extends 
AnnotationApplier<UrlEncodingConfig,UrlEncodingSerializerBuilder> {
 
                /**
                 * Constructor.
                 *
                 * @param vr The resolver for resolving values in annotations.
                 */
-               public Apply(VarResolverSession vr) {
-                       super(UrlEncodingConfig.class, 
ContextPropertiesBuilder.class, vr);
+               public SerializerApply(VarResolverSession vr) {
+                       super(UrlEncodingConfig.class, 
UrlEncodingSerializerBuilder.class, vr);
                }
 
                @Override
-               public void apply(AnnotationInfo<UrlEncodingConfig> ai, 
ContextPropertiesBuilder b) {
+               public void apply(AnnotationInfo<UrlEncodingConfig> ai, 
UrlEncodingSerializerBuilder b) {
                        UrlEncodingConfig a = ai.getAnnotation();
 
-                       bool(a.expandedParams()).ifPresent(x -> 
b.set(UrlEncodingSerializer.URLENC_expandedParams, x));
-                       bool(a.expandedParams()).ifPresent(x -> 
b.set(UrlEncodingParser.URLENC_expandedParams, x));
+                       bool(a.expandedParams()).ifPresent(x -> 
b.expandedParams(x));
+               }
+       }
+
+       /**
+        * Applies {@link UrlEncodingConfig} annotations to a {@link 
UrlEncodingParserBuilder}.
+        */
+       public static class ParserApply extends 
AnnotationApplier<UrlEncodingConfig,UrlEncodingParserBuilder> {
+
+               /**
+                * Constructor.
+                *
+                * @param vr The resolver for resolving values in annotations.
+                */
+               public ParserApply(VarResolverSession vr) {
+                       super(UrlEncodingConfig.class, 
UrlEncodingParserBuilder.class, vr);
+               }
+
+               @Override
+               public void apply(AnnotationInfo<UrlEncodingConfig> ai, 
UrlEncodingParserBuilder b) {
+                       UrlEncodingConfig a = ai.getAnnotation();
+
+                       bool(a.expandedParams()).ifPresent(x -> 
b.expandedParams(x));
                }
        }
 }
\ No newline at end of file

Reply via email to