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 16
16
package software .xdev .vaadin .comparators .utl ;
17
17
18
18
import java .time .format .DateTimeFormatter ;
19
+ import java .util .Collections ;
20
+ import java .util .List ;
21
+ import java .util .Map ;
19
22
import java .util .Objects ;
23
+ import java .util .WeakHashMap ;
24
+ import java .util .stream .Collectors ;
20
25
21
26
import com .vaadin .flow .component .datepicker .DatePicker ;
22
27
26
31
*/
27
32
public final class DateHelper
28
33
{
34
+ private static final Map <List <String >, DateTimeFormatter > CACHED_FORMATTERS =
35
+ Collections .synchronizedMap (new WeakHashMap <>());
36
+
29
37
private DateHelper ()
30
38
{
31
39
}
@@ -34,13 +42,11 @@ public static DateTimeFormatter getDatePattern(final DatePicker.DatePickerI18n d
34
42
{
35
43
Objects .requireNonNull (datePickerI18n );
36
44
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 ())));
45
51
}
46
52
}
You can’t perform that action at this time.
0 commit comments