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

vy pushed a commit to branch scheduled-for-deletion/LOG4J2-930
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git

commit adef4e7db034ed6621bc204b5fe2d0678a64b243
Author: rpopma <[email protected]>
AuthorDate: Mon Jan 12 17:38:35 2015 +0900

    pass FormattingInfo to the PatternConverter#newInstance factory method
    instead of managing them in a separate list parallel to the converters
---
 .../logging/log4j/core/pattern/PatternParser.java  | 125 ++++++++-------------
 1 file changed, 48 insertions(+), 77 deletions(-)

diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/PatternParser.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/PatternParser.java
index c0a7b9e492..a4d754892e 100644
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/PatternParser.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/pattern/PatternParser.java
@@ -89,8 +89,7 @@ public final class PatternParser {
     /**
      * Constructor.
      *
-     * @param converterKey
-     *            The type of converters that will be used.
+     * @param converterKey The type of converters that will be used.
      */
     public PatternParser(final String converterKey) {
         this(null, converterKey, null, null);
@@ -99,12 +98,9 @@ public final class PatternParser {
     /**
      * Constructor.
      *
-     * @param config
-     *            The current Configuration.
-     * @param converterKey
-     *            The key to lookup the converters.
-     * @param expected
-     *            The expected base Class of each Converter.
+     * @param config The current Configuration.
+     * @param converterKey The key to lookup the converters.
+     * @param expected The expected base Class of each Converter.
      */
     public PatternParser(final Configuration config, final String 
converterKey, final Class<?> expected) {
         this(config, converterKey, expected, null);
@@ -113,14 +109,10 @@ public final class PatternParser {
     /**
      * Constructor.
      *
-     * @param config
-     *            The current Configuration.
-     * @param converterKey
-     *            The key to lookup the converters.
-     * @param expectedClass
-     *            The expected base Class of each Converter.
-     * @param filterClass
-     *            Filter the returned plugins after calling the plugin manager.
+     * @param config The current Configuration.
+     * @param converterKey The key to lookup the converters.
+     * @param expectedClass The expected base Class of each Converter.
+     * @param filterClass Filter the returned plugins after calling the plugin 
manager.
      */
     public PatternParser(final Configuration config, final String 
converterKey, final Class<?> expectedClass,
             final Class<?> filterClass) {
@@ -141,9 +133,9 @@ public final class PatternParser {
                 if (keys != null) {
                     for (final String key : keys.value()) {
                         if (converters.containsKey(key)) {
-                            LOGGER.warn("Converter key '{}' is already mapped 
to '{}'. " +
-                                    "Sorry, Dave, I can't let you do that! 
Ignoring plugin [{}].",
-                                key, converters.get(key), clazz);
+                            LOGGER.warn("Converter key '{}' is already mapped 
to '{}'. "
+                                    + "Sorry, Dave, I can't let you do that! 
Ignoring plugin [{}].", key,
+                                    converters.get(key), clazz);
                         } else {
                             converters.put(key, clazz);
                         }
@@ -186,11 +178,12 @@ public final class PatternParser {
             } else {
                 field = FormattingInfo.getDefault();
             }
-            list.add(new PatternFormatter(pc, field));
+            list.add(new PatternFormatter(pc));
         }
         if (alwaysWriteExceptions && !handlesThrowable) {
-            final LogEventPatternConverter pc = 
ExtendedThrowablePatternConverter.newInstance(null);
-            list.add(new PatternFormatter(pc, FormattingInfo.getDefault()));
+            FormattingInfo formattingInfo = FormattingInfo.getDefault();
+            final LogEventPatternConverter pc = 
ExtendedThrowablePatternConverter.newInstance(null, formattingInfo);
+            list.add(new PatternFormatter(pc));
         }
         return list;
     }
@@ -206,16 +199,11 @@ public final class PatternParser {
      * returned.
      * </p>
      *
-     * @param lastChar
-     *        last processed character.
-     * @param pattern
-     *        format string.
-     * @param i
-     *        current index into pattern format.
-     * @param convBuf
-     *        buffer to receive conversion specifier.
-     * @param currentLiteral
-     *        literal to be output in case format specifier in unrecognized.
+     * @param lastChar last processed character.
+     * @param pattern format string.
+     * @param i current index into pattern format.
+     * @param convBuf buffer to receive conversion specifier.
+     * @param currentLiteral literal to be output in case format specifier in 
unrecognized.
      * @return position in pattern after converter.
      */
     private static int extractConverter(final char lastChar, final String 
pattern, final int start,
@@ -246,12 +234,9 @@ public final class PatternParser {
     /**
      * Extract options.
      *
-     * @param pattern
-     *            conversion pattern.
-     * @param i
-     *            start of options.
-     * @param options
-     *            array to receive extracted options
+     * @param pattern conversion pattern.
+     * @param i start of options.
+     * @param options array to receive extracted options
      * @return position in pattern after options.
      */
     private static int extractOptions(final String pattern, final int start, 
final List<String> options) {
@@ -289,20 +274,15 @@ public final class PatternParser {
     /**
      * Parse a format specifier.
      *
-     * @param pattern
-     *            pattern to parse.
-     * @param patternConverters
-     *            list to receive pattern converters.
-     * @param formattingInfos
-     *            list to receive field specifiers corresponding to pattern 
converters.
-     * @param noConsoleNoAnsi
-     *            TODO
+     * @param pattern pattern to parse.
+     * @param patternConverters list to receive pattern converters.
+     * @param formattingInfos list to receive field specifiers corresponding 
to pattern converters.
+     * @param noConsoleNoAnsi TODO
      * @param convertBackslashes if {@code true}, backslash characters are 
treated as escape characters and character
      *            sequences like "\" followed by "t" (backslash+t) are 
converted to special characters like '\t' (tab).
      */
     public void parse(final String pattern, final List<PatternConverter> 
patternConverters,
-            final List<FormattingInfo> formattingInfos, final boolean 
noConsoleNoAnsi,
-            final boolean convertBackslashes) {
+            final List<FormattingInfo> formattingInfos, final boolean 
noConsoleNoAnsi, final boolean convertBackslashes) {
         if (pattern == null) {
             throw new NullPointerException("pattern");
         }
@@ -452,20 +432,17 @@ public final class PatternParser {
     /**
      * Creates a new PatternConverter.
      *
-     * @param converterId
-     *            converterId.
-     * @param currentLiteral
-     *            literal to be used if converter is unrecognized or following 
converter if converterId contains extra
-     *            characters.
-     * @param rules
-     *            map of stock pattern converters keyed by format specifier.
-     * @param options
-     *            converter options.
+     * @param converterId converterId.
+     * @param currentLiteral literal to be used if converter is unrecognized 
or following converter if converterId
+     *            contains extra characters.
+     * @param rules map of stock pattern converters keyed by format specifier.
+     * @param options converter options.
      * @param noConsoleNoAnsi TODO
      * @return converter or null.
      */
     private PatternConverter createConverter(final String converterId, final 
StringBuilder currentLiteral,
-            final Map<String, Class<PatternConverter>> rules, final 
List<String> options, final boolean noConsoleNoAnsi) {
+            final Map<String, Class<PatternConverter>> rules, final 
List<String> options,
+            final boolean noConsoleNoAnsi, final FormattingInfo 
formattingInfo) {
         String converterName = converterId;
         Class<PatternConverter> converterClass = null;
 
@@ -518,6 +495,8 @@ public final class PatternParser {
                     parms[i] = optionsArray;
                 } else if (clazz.isAssignableFrom(Configuration.class)) {
                     parms[i] = config;
+                } else if (clazz.isAssignableFrom(FormattingInfo.class)) {
+                    parms[i] = formattingInfo;
                 } else {
                     LOGGER.error("Unknown parameter type " + clazz.getName() + 
" for static newInstance method of "
                             + converterClass.getName());
@@ -549,24 +528,15 @@ public final class PatternParser {
     /**
      * Processes a format specifier sequence.
      *
-     * @param c
-     *            initial character of format specifier.
-     * @param pattern
-     *            conversion pattern
-     * @param i
-     *            current position in conversion pattern.
-     * @param currentLiteral
-     *            current literal.
-     * @param formattingInfo
-     *            current field specifier.
-     * @param rules
-     *            map of stock pattern converters keyed by format specifier.
-     * @param patternConverters
-     *            list to receive parsed pattern converter.
-     * @param formattingInfos
-     *            list to receive corresponding field specifier.
-     * @param noConsoleNoAnsi
-     *            TODO
+     * @param c initial character of format specifier.
+     * @param pattern conversion pattern
+     * @param i current position in conversion pattern.
+     * @param currentLiteral current literal.
+     * @param formattingInfo current field specifier.
+     * @param rules map of stock pattern converters keyed by format specifier.
+     * @param patternConverters list to receive parsed pattern converter.
+     * @param formattingInfos list to receive corresponding field specifier.
+     * @param noConsoleNoAnsi TODO
      * @param convertBackslashes if {@code true}, backslash characters are 
treated as escape characters and character
      *            sequences like "\" followed by "t" (backslash+t) are 
converted to special characters like '\t' (tab).
      * @return position after format specifier sequence.
@@ -584,7 +554,8 @@ public final class PatternParser {
         final List<String> options = new ArrayList<String>();
         i = extractOptions(pattern, i, options);
 
-        final PatternConverter pc = createConverter(converterId, 
currentLiteral, rules, options, noConsoleNoAnsi);
+        final PatternConverter pc = createConverter(converterId, 
currentLiteral, rules, options, noConsoleNoAnsi,
+                formattingInfo);
 
         if (pc == null) {
             StringBuilder msg;

Reply via email to