[FEATURE] New factory API to control the type labelKey
serialization.
#1595
+68
−2
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.
Summary
New API
autoSerializeLabel(boolean)
added to allow the factory can be configured with boolean flag to disable automatic serialization of the type label, and it's respective value. Here is how the configuration may look like in the factory builder.This is done for use cases when all known subtypes has serializable type property in the class definition, then it generates double
type
properties when serialized to JSON.Background of the change
There are two key reason for requesting this feature (new API).
@Json(ignore = true)
is not an option. That results in double type value in the serialized JSON object.Message
in this example). When sub-type has type class property, it can be serialized directly without using polymorphic adapter (eg.MessageWithType
in this example). Having this API would allow to havetype
property in class and allow it to play nicely with polymorphic adapter when deserializing as well.