Class SimpleDateTimeTextProvider


  • final class SimpleDateTimeTextProvider
    extends DateTimeTextProvider
    The Service Provider Implementation to obtain date-time text for a field.

    This implementation is based on extraction of data from a DateFormatSymbols.

    Specification for implementors

    This class is immutable and thread-safe.
    • Field Detail

      • COMPARATOR

        private static final java.util.Comparator<java.util.Map.Entry<java.lang.String,​java.lang.Long>> COMPARATOR
        Comparator.
      • cache

        private final java.util.concurrent.ConcurrentMap<java.util.Map.Entry<TemporalField,​java.util.Locale>,​java.lang.Object> cache
        Cache.
    • Constructor Detail

      • SimpleDateTimeTextProvider

        SimpleDateTimeTextProvider()
    • Method Detail

      • getText

        public java.lang.String getText​(TemporalField field,
                                        long value,
                                        TextStyle style,
                                        java.util.Locale locale)
        Description copied from class: DateTimeTextProvider
        Gets the text for the specified field, locale and style for the purpose of printing.

        The text associated with the value is returned. The null return value should be used if there is no applicable text, or if the text would be a numeric representation of the value.

        Specified by:
        getText in class DateTimeTextProvider
        Parameters:
        field - the field to get text for, not null
        value - the field value to get text for, not null
        style - the style to get text for, not null
        locale - the locale to get text for, not null
        Returns:
        the text for the field value, null if no text found
      • getTextIterator

        public java.util.Iterator<java.util.Map.Entry<java.lang.String,​java.lang.Long>> getTextIterator​(TemporalField field,
                                                                                                              TextStyle style,
                                                                                                              java.util.Locale locale)
        Description copied from class: DateTimeTextProvider
        Gets an iterator of text to field for the specified field, locale and style for the purpose of parsing.

        The iterator must be returned in order from the longest text to the shortest.

        The null return value should be used if there is no applicable parsable text, or if the text would be a numeric representation of the value. Text can only be parsed if all the values for that field-style-locale combination are unique.

        Specified by:
        getTextIterator in class DateTimeTextProvider
        Parameters:
        field - the field to get text for, not null
        style - the style to get text for, null for all parsable text
        locale - the locale to get text for, not null
        Returns:
        the iterator of text to field pairs, in order from longest text to shortest text, null if the field or style is not parsable
      • findStore

        private java.lang.Object findStore​(TemporalField field,
                                           java.util.Locale locale)
      • createStore

        private java.lang.Object createStore​(TemporalField field,
                                             java.util.Locale locale)
      • narrowMonth

        private java.lang.String narrowMonth​(int month,
                                             java.lang.String text,
                                             java.util.Locale locale)
      • narrowDayOfWeek

        private java.lang.String narrowDayOfWeek​(int dow,
                                                 java.lang.String text,
                                                 java.util.Locale locale)
      • createEntry

        private static <A,​B> java.util.Map.Entry<A,​B> createEntry​(A text,
                                                                              B field)
        Helper method to create an immutable entry.
        Parameters:
        text - the text, not null
        field - the field, not null
        Returns:
        the entry, not null