Package fr.becpg.config.format
Class PropertyFormats
java.lang.Object
fr.becpg.config.format.PropertyFormats
Modern Java 17 implementation using DateTimeFormatter and Records
Provides better performance, thread safety, and immutability
- Author:
- querephi, matthieu
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final intprivate static final Stringprivate static final Stringprivate static final ConcurrentHashMap<PropertyFormats.FormatConfig,DateTimeFormatter> private final PropertyFormats.FormatConfigprivate final Stringprivate final PropertyFormats.FormatConfigprivate final Stringprivate final PropertyFormats.FormatConfigprivate final Stringprivate static final Stringprivate static final Stringstatic final StringConstantDEFAULT_DECIMAL_PATTERN="###,###private static final Stringprivate static final Stringprivate final Integerprivate static final ConcurrentHashMap<String,PropertyFormats> private static final ConcurrentHashMap<PropertyFormats.FormatConfig,NumberFormat> static final StringConstantPROCESS_DATE_FORMAT="dd MMMM, yyyy"private final boolean -
Constructor Summary
ConstructorsConstructorDescriptionPropertyFormats(boolean useDefaultLocale) Constructor for PropertyFormats.PropertyFormats(boolean useDefaultLocale, String datePattern, String datetimePattern, String decimalPattern) Constructor for PropertyFormats.PropertyFormats(boolean useDefaultLocale, String datePattern, String datetimePattern, String decimalPattern, Integer maxDecimalPrecision) Constructor for PropertyFormats. -
Method Summary
Modifier and TypeMethodDescriptionstatic voidclearFormatCache.private DateconvertToDate(LocalDateTime localDateTime) private LocalDateconvertToLocalDate(Date date) private LocalDateTimeconvertToLocalDateTime(Date date) private DateTimeFormatterprivate NumberFormatformatDate(Object o) formatDate.formatDateTime.formatDecimal.private StringformatWithPrecision(Double qty, NumberFormat baseFormatter) static PropertyFormatsforMode(FormatMode mode, boolean useServerLocale) forMode.private DateTimeFormatterGetter for the fielddatePattern.private DateTimeFormatterGetter for the fielddatetimePattern.getDecimalFormat.Getter for the fielddecimalPattern.Getter for the fieldmaxDecimalPrecision.private NumberFormatbooleanisUseDefaultLocale.parseDate.parseDateTime(String dateString) parseDateTime.parseDecimal(String decimalString) parseDecimal.withDateFormat(String dateFormat) withDateFormat.withDateTimeFormat(String datetimeFormat) withDateTimeFormat.withDatetimePattern(String pattern) Factory method to create a new instance with a different datetime patternwithDecimalFormat(String decimalFormat) withDecimalFormat.
-
Field Details
-
DATE_FORMATTER_CACHE
private static final ConcurrentHashMap<PropertyFormats.FormatConfig,DateTimeFormatter> DATE_FORMATTER_CACHE -
NUMBER_FORMATTER_CACHE
private static final ConcurrentHashMap<PropertyFormats.FormatConfig,NumberFormat> NUMBER_FORMATTER_CACHE -
MODE_CACHE
-
DEFAULT_DATE_PATTERN
- See Also:
-
DEFAULT_DATETIME_PATTERN
- See Also:
-
DEFAULT_DECIMAL_PATTERN
ConstantDEFAULT_DECIMAL_PATTERN="###,###.####"- See Also:
-
PROCESS_DATE_FORMAT
ConstantPROCESS_DATE_FORMAT="dd MMMM, yyyy"- See Also:
-
FRENCH_CSV_DATETIME_FORMAT
- See Also:
-
CSV_DATETIME_FORMAT
- See Also:
-
FRENCH_CSV_DATE_FORMAT
- See Also:
-
CSV_DATE_FORMAT
- See Also:
-
COMPARE_MAX_PRECISION
private static final int COMPARE_MAX_PRECISION- See Also:
-
useDefaultLocale
private final boolean useDefaultLocale -
maxDecimalPrecision
-
datePattern
-
datetimePattern
-
decimalPattern
-
dateConfig
-
datetimeConfig
-
decimalConfig
-
-
Constructor Details
-
PropertyFormats
public PropertyFormats(boolean useDefaultLocale) Constructor for PropertyFormats.
- Parameters:
useDefaultLocale- a boolean
-
PropertyFormats
public PropertyFormats(boolean useDefaultLocale, String datePattern, String datetimePattern, String decimalPattern) Constructor for PropertyFormats.
-
PropertyFormats
public PropertyFormats(boolean useDefaultLocale, String datePattern, String datetimePattern, String decimalPattern, Integer maxDecimalPrecision) Constructor for PropertyFormats.
-
-
Method Details
-
withDateFormat
withDateFormat.
- Parameters:
dateFormat- aStringobject- Returns:
- a
PropertyFormatsobject
-
withDateTimeFormat
withDateTimeFormat.
- Parameters:
datetimeFormat- aStringobject- Returns:
- a
PropertyFormatsobject
-
withDecimalFormat
withDecimalFormat.
- Parameters:
decimalFormat- aStringobject- Returns:
- a
PropertyFormatsobject
-
forMode
forMode.
- Parameters:
mode- aFormatModeobjectuseServerLocale- a boolean- Returns:
- a
PropertyFormatsobject
-
withDatetimePattern
Factory method to create a new instance with a different datetime pattern- Parameters:
pattern- the new datetime pattern to use- Returns:
- a new PropertyFormats instance with the updated datetime pattern
-
formatDate
formatDate.
-
formatDateTime
formatDateTime.
-
formatDecimal
formatDecimal.
-
formatWithPrecision
-
parseDate
parseDate.
- Parameters:
dateString- aStringobject- Returns:
- a
Dateobject - Throws:
ParseException- if any.
-
parseDateTime
parseDateTime.
- Parameters:
dateString- aStringobject- Returns:
- a
Dateobject - Throws:
ParseException- if any.
-
parseDecimal
parseDecimal.
- Parameters:
decimalString- aStringobject- Returns:
- a
Numberobject - Throws:
ParseException- if any.
-
getDateFormatter
-
getDateTimeFormatter
-
getNumberFormatter
-
createDateTimeFormatter
-
createNumberFormat
-
convertToLocalDate
-
convertToLocalDateTime
-
convertToDate
-
isUseDefaultLocale
public boolean isUseDefaultLocale()isUseDefaultLocale.
- Returns:
- a boolean
-
getMaxDecimalPrecision
Getter for the field
maxDecimalPrecision.- Returns:
- a
Integerobject
-
getDatePattern
Getter for the field
datePattern.- Returns:
- a
Stringobject
-
getDatetimePattern
Getter for the field
datetimePattern.- Returns:
- a
Stringobject
-
getDecimalPattern
Getter for the field
decimalPattern.- Returns:
- a
Stringobject
-
getDecimalFormat
getDecimalFormat.
- Returns:
- a
DecimalFormatobject
-
clearFormatCache
public static void clearFormatCache()clearFormatCache.
-