Class ExtrasPatternParser


  • public final class ExtrasPatternParser
    extends java.lang.Object
    Most of the work of the EnhancedPatternLayout class is delegated to the ExtrasPatternParser class.

    It is this class that parses conversion patterns and creates a chained list of PatternConverters.

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      private static class  ExtrasPatternParser.ReadOnlyMap
      The class wraps another Map but throws exceptions on any attempt to modify the map.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static int CONVERTER_STATE
      In converter name state.
      private static int DOT_STATE
      Dot state.
      private static char ESCAPE_CHAR
      Escape character for format specifier.
      private static java.util.Map FILENAME_PATTERN_RULES
      Standard format specifiers for rolling file appenders.
      private static int LITERAL_STATE
      Literal state.
      private static int MAX_STATE
      Max state.
      private static int MIN_STATE
      Min state.
      private static java.util.Map PATTERN_LAYOUT_RULES
      Standard format specifiers for EnhancedPatternLayout.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private ExtrasPatternParser()
      Private constructor.
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      private static org.apache.log4j.pattern.PatternConverter createConverter​(java.lang.String converterId, java.lang.StringBuffer currentLiteral, java.util.Map converterRegistry, java.util.Map rules, java.util.List options)
      Creates a new PatternConverter.
      private static int extractConverter​(char lastChar, java.lang.String pattern, int i, java.lang.StringBuffer convBuf, java.lang.StringBuffer currentLiteral)
      Extract the converter identifier found at position i.
      private static int extractOptions​(java.lang.String pattern, int i, java.util.List options)
      Extract options.
      private static int finalizeConverter​(char c, java.lang.String pattern, int i, java.lang.StringBuffer currentLiteral, ExtrasFormattingInfo formattingInfo, java.util.Map converterRegistry, java.util.Map rules, java.util.List patternConverters, java.util.List formattingInfos)
      Processes a format specifier sequence.
      static java.util.Map getFileNamePatternRules()
      Get standard format specifiers for rolling file appender file specification.
      static java.util.Map getPatternLayoutRules()
      Get standard format specifiers for EnhancedPatternLayout.
      static void parse​(java.lang.String pattern, java.util.List patternConverters, java.util.List formattingInfos, java.util.Map converterRegistry, java.util.Map rules)
      Parse a format specifier.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • ESCAPE_CHAR

        private static final char ESCAPE_CHAR
        Escape character for format specifier.
        See Also:
        Constant Field Values
      • CONVERTER_STATE

        private static final int CONVERTER_STATE
        In converter name state.
        See Also:
        Constant Field Values
      • PATTERN_LAYOUT_RULES

        private static final java.util.Map PATTERN_LAYOUT_RULES
        Standard format specifiers for EnhancedPatternLayout.
      • FILENAME_PATTERN_RULES

        private static final java.util.Map FILENAME_PATTERN_RULES
        Standard format specifiers for rolling file appenders.
    • Constructor Detail

      • ExtrasPatternParser

        private ExtrasPatternParser()
        Private constructor.
    • Method Detail

      • getPatternLayoutRules

        public static java.util.Map getPatternLayoutRules()
        Get standard format specifiers for EnhancedPatternLayout.
        Returns:
        read-only map of format converter classes keyed by format specifier strings.
      • getFileNamePatternRules

        public static java.util.Map getFileNamePatternRules()
        Get standard format specifiers for rolling file appender file specification.
        Returns:
        read-only map of format converter classes keyed by format specifier strings.
      • extractConverter

        private static int extractConverter​(char lastChar,
                                            java.lang.String pattern,
                                            int i,
                                            java.lang.StringBuffer convBuf,
                                            java.lang.StringBuffer currentLiteral)
        Extract the converter identifier found at position i. After this function returns, the variable i will point to the first char after the end of the converter identifier. If i points to a char which is not a character acceptable at the start of a unicode identifier, the value null is returned.
        Parameters:
        lastChar - last processed character.
        pattern - format string.
        i - current index into pattern format.
        convBuf - buffer to receive conversion specifier.
        currentLiteral - literal to be output in case format specifier in unrecognized.
        Returns:
        position in pattern after converter.
      • extractOptions

        private static int extractOptions​(java.lang.String pattern,
                                          int i,
                                          java.util.List options)
        Extract options.
        Parameters:
        pattern - conversion pattern.
        i - start of options.
        options - array to receive extracted options
        Returns:
        position in pattern after options.
      • parse

        public static void parse​(java.lang.String pattern,
                                 java.util.List patternConverters,
                                 java.util.List formattingInfos,
                                 java.util.Map converterRegistry,
                                 java.util.Map rules)
        Parse a format specifier.
        Parameters:
        pattern - pattern to parse.
        patternConverters - list to receive pattern converters.
        formattingInfos - list to receive field specifiers corresponding to pattern converters.
        converterRegistry - map of user-supported pattern converters keyed by format specifier, may be null.
        rules - map of stock pattern converters keyed by format specifier.
      • createConverter

        private static org.apache.log4j.pattern.PatternConverter createConverter​(java.lang.String converterId,
                                                                                 java.lang.StringBuffer currentLiteral,
                                                                                 java.util.Map converterRegistry,
                                                                                 java.util.Map rules,
                                                                                 java.util.List options)
        Creates a new PatternConverter.
        Parameters:
        converterId - converterId.
        currentLiteral - literal to be used if converter is unrecognized or following converter if converterId contains extra characters.
        converterRegistry - map of user-supported pattern converters keyed by format specifier, may be null.
        rules - map of stock pattern converters keyed by format specifier.
        options - converter options.
        Returns:
        converter or null.
      • finalizeConverter

        private static int finalizeConverter​(char c,
                                             java.lang.String pattern,
                                             int i,
                                             java.lang.StringBuffer currentLiteral,
                                             ExtrasFormattingInfo formattingInfo,
                                             java.util.Map converterRegistry,
                                             java.util.Map rules,
                                             java.util.List patternConverters,
                                             java.util.List formattingInfos)
        Processes a format specifier sequence.
        Parameters:
        c - initial character of format specifier.
        pattern - conversion pattern
        i - current position in conversion pattern.
        currentLiteral - current literal.
        formattingInfo - current field specifier.
        converterRegistry - map of user-provided pattern converters keyed by format specifier, may be null.
        rules - map of stock pattern converters keyed by format specifier.
        patternConverters - list to receive parsed pattern converter.
        formattingInfos - list to receive corresponding field specifier.
        Returns:
        position after format specifier sequence.