refactor: extract the translation logic from the TranslationMapping class #3780
+234
−78
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.
What this PR changes/adds
second refactoring toward the solution of #3736
in this PR the "translation" logic that was implemented in the
TranslationMapping
hierarchy has been extracted to a new interfaceFieldTranslator
and its hierarchy, whileTranslationMapping
remains a simple tree data structure that can provide theFieldTranslator
to the caller (we could find a better name for it, suggestions welcome)Why it does that
now that we have the
FieldTranslator
we can add a method there that can return aWhereClause
directly, giving the possibility to translate the whole criteria following the specific SQL implementationFurther notes
Linked Issue(s)
Part of #3736
Please be sure to take a look at the contributing guidelines and our etiquette for pull requests.