File tree Expand file tree Collapse file tree 1 file changed +14
-8
lines changed
vaadin-simple-grid-filter/src/main/java/software/xdev/vaadin/comparators/utl Expand file tree Collapse file tree 1 file changed +14
-8
lines changed Original file line number Diff line number Diff line change 1616package software .xdev .vaadin .comparators .utl ;
1717
1818import java .time .format .DateTimeFormatter ;
19+ import java .util .Collections ;
20+ import java .util .List ;
21+ import java .util .Map ;
1922import java .util .Objects ;
23+ import java .util .WeakHashMap ;
24+ import java .util .stream .Collectors ;
2025
2126import com .vaadin .flow .component .datepicker .DatePicker ;
2227
2631 */
2732public final class DateHelper
2833{
34+ private static final Map <List <String >, DateTimeFormatter > CACHED_FORMATTERS =
35+ Collections .synchronizedMap (new WeakHashMap <>());
36+
2937 private DateHelper ()
3038 {
3139 }
@@ -34,13 +42,11 @@ public static DateTimeFormatter getDatePattern(final DatePicker.DatePickerI18n d
3442 {
3543 Objects .requireNonNull (datePickerI18n );
3644
37- final StringBuilder patternString = new StringBuilder ();
38-
39- for (final String pattern : datePickerI18n .getDateFormats ())
40- {
41- patternString .append ('[' ).append (pattern ).append (']' );
42- }
43-
44- return DateTimeFormatter .ofPattern (patternString .toString ());
45+ return CACHED_FORMATTERS .computeIfAbsent (
46+ datePickerI18n .getDateFormats (),
47+ formats -> DateTimeFormatter .ofPattern (formats
48+ .stream ()
49+ .map (pattern -> "[" + pattern + "]" )
50+ .collect (Collectors .joining ())));
4551 }
4652}
You can’t perform that action at this time.
0 commit comments