Class SimpleModifier

  • All Implemented Interfaces:
    Modifier

    public class SimpleModifier
    extends java.lang.Object
    implements Modifier
    The second primary implementation of Modifier, this one consuming a SimpleFormatter pattern.
    • Field Detail

      • compiledPattern

        private final java.lang.String compiledPattern
      • field

        private final java.text.Format.Field field
      • strong

        private final boolean strong
      • ARG_NUM_LIMIT

        private static final int ARG_NUM_LIMIT
        TODO: This is copied from SimpleFormatterImpl.
        See Also:
        Constant Field Values
    • Constructor Detail

      • SimpleModifier

        public SimpleModifier​(java.lang.String compiledPattern,
                              java.text.Format.Field field,
                              boolean strong)
        Creates a modifier that uses the SimpleFormatter string formats.
      • SimpleModifier

        public SimpleModifier​(java.lang.String compiledPattern,
                              java.text.Format.Field field,
                              boolean strong,
                              Modifier.Parameters parameters)
        Creates a modifier that uses the SimpleFormatter string formats.
    • Method Detail

      • apply

        public int apply​(FormattedStringBuilder output,
                         int leftIndex,
                         int rightIndex)
        Description copied from interface: Modifier
        Apply this Modifier to the string builder.
        Specified by:
        apply in interface Modifier
        Parameters:
        output - The string builder to which to apply this modifier.
        leftIndex - The left index of the string within the builder. Equal to 0 when only one number is being formatted.
        rightIndex - The right index of the string within the string builder. Equal to length when only one number is being formatted.
        Returns:
        The number of characters (UTF-16 code units) that were added to the string builder.
      • getCodePointCount

        public int getCodePointCount()
        Description copied from interface: Modifier
        Returns the number of code points in the modifier, prefix plus suffix.
        Specified by:
        getCodePointCount in interface Modifier
      • isStrong

        public boolean isStrong()
        Description copied from interface: Modifier
        Whether this modifier is strong. If a modifier is strong, it should always be applied immediately and not allowed to bubble up. With regard to padding, strong modifiers are considered to be on the inside of the prefix and suffix.
        Specified by:
        isStrong in interface Modifier
        Returns:
        Whether the modifier is strong.
      • containsField

        public boolean containsField​(java.text.Format.Field field)
        Description copied from interface: Modifier
        Whether the modifier contains at least one occurrence of the given field.
        Specified by:
        containsField in interface Modifier
      • strictEquals

        public boolean strictEquals​(Modifier other)
        Description copied from interface: Modifier
        Returns whether this Modifier equals another Modifier.
        Specified by:
        strictEquals in interface Modifier
      • formatTwoArgPattern

        public static void formatTwoArgPattern​(java.lang.String compiledPattern,
                                               FormattedStringBuilder result,
                                               int index,
                                               PrefixInfixSuffixLengthHelper h,
                                               java.text.Format.Field field)
        TODO: Like above, this belongs with the rest of the SimpleFormatterImpl code. I put it here so that the SimpleFormatter uses in FormattedStringBuilder are near each other.

        Applies the compiled two-argument pattern to the FormattedStringBuilder.

        This method is optimized for the case where the prefix and suffix are often empty, such as in the range pattern like "{0}-{1}".