Add ObjectMapper Module for Id de-/serialization #2849
Merged
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.
This change adds a Module, that configures a Jackson
ObjectMapper
such that it can natively de-/serializeId<T>
classes, even when nested in Lists or Maps.This is a prerequisite for storing link ids in the network for enabling turn restrictions in #2829.
Example
Bonus Improvement
The
@JsonId
annotation from #2667 also got generalized to work for anyId<T>
class.This code now is a blueprint for de-/serializing even parametrized classes. We should be able to write records with complex types that easily can be de-/serialized using Jackson.
Great thanks @mrieser for the support with the generalization!