2329 Optimization: Caching DateTimeFormatter instances#2416
Closed
eforest wants to merge 1 commit intomapstruct:masterfrom
Closed
2329 Optimization: Caching DateTimeFormatter instances#2416eforest wants to merge 1 commit intomapstruct:masterfrom
eforest wants to merge 1 commit intomapstruct:masterfrom
Conversation
* GetDateTimeFormatterField ** a FieldReference that creates DateTimeFormatters for given dateFormat as mapper fields ** variableName is created using given dateFormat * AbstractJavaTimeToStringConversion provides GetDateTimeFormatterField as required helper field using DateTimeFormatter instances provided as mapper fields by GetDateTimeFormatterField * ConversionProvider might provide supporting fields directly * Refactoring moved/renamed BuiltInFieldReference, BuiltInConstuctorFragment to package model/common * MappingBuilderContext provides access to mapper support fields (that are independent of mapper methods) * MappingResolverImpl / MapperCreationProcessor process supporting fields provided by ConversionProvider * HelperMethod ** extended to supply additional template parameters to be more flexible in freemarker templates ** extended to support mapper field reference / constructor fragment * SupportingMappingMethod ** provide templateParameters to freemarker ** hashCode/equals base on name property instead of template name, as we use one specific template multiple times with different parameters generating multiple methods ** #getSafeField extracted to SupportingField * SupportingField ** removed hashCode/equals based on template name, as we use one specific template multiple times with different parameters generating multiple methods (superclass equals/hashcode is fine for that) ** added support for template parameters to be more flexible when compiling templates * Tests to verify DateTimeFormatter instance field creation
Member
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
GetDateTimeFormatterField
** a FieldReference that creates DateTimeFormatters
for given dateFormat as mapper fields
** variableName is created using given dateFormat
AbstractJavaTimeToStringConversion
provides GetDateTimeFormatterField as required helper field
using DateTimeFormatter instances provided as mapper fields
by GetDateTimeFormatterField
ConversionProvider
might provide supporting fields directly
Refactoring
moved/renamed BuiltInFieldReference, BuiltInConstuctorFragment to
package model/common
MappingBuilderContext provides access to mapper support fields
(that are independent of mapper methods)
MappingResolverImpl / MapperCreationProcessor
process supporting fields provided by ConversionProvider
HelperMethod
** extended to supply additional template parameters to
be more flexible in freemarker templates
** extended to support mapper field reference / constructor fragment
SupportingMappingMethod
** provide templateParameters to freemarker
** hashCode/equals base on name property instead of template name,
as we use one specific template multiple times with different
parameters generating multiple methods
** #getSafeField extracted to SupportingField
SupportingField
** removed hashCode/equals based on template name,
as we use one specific template multiple times with different
parameters generating multiple methods
(superclass equals/hashcode is fine for that)
** added support for template parameters to be more flexible when
compiling templates
Tests to verify DateTimeFormatter instance field creation
Fixes #2329