1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
For a given property of __**A**__, the patching rules are:
[%autowidth.stretch, cols="d,a,a"]
|===
|__**A**__'s property type |<em>A</em>'s property exists in <em>B</em> |<em>A</em>'s property doesn't exist in <em>B</em>
|Null, boolean, integer, and string
|Replace __**B**__'s property with __**A**__'s property.
|Keep __**A**__'s property.
|Sequence
|
__**B**__'s property is also a sequence::
Append the items of __**A**__'s property to __**B**__'s
property.
+
A structure field type object's
xref:struct-ft-obj.adoc#members-prop[`members` property] is an
exception: __**A**__'s property is considered to be an _ordered
mapping_, therefore apply the mapping patching rules.
__**B**__'s property is _not_ a sequence::
Replace __**B**__'s property with __**A**__'s property.
|Keep __**A**__'s property.
|Mapping
|
__**B**__'s property is also a mapping::
Patch __**A**__'s property over __**B**__'s property according to
those rules.
__**B**__'s property is _not_ a mapping::
Replace __**B**__'s property with __**A**__'s property.
|Keep __**A**__'s property.
|===
NOTE: When __**A**__'s property replaces __**B**__'s property and the
value of __**A**__'s property is null, this effectively "`resets`" the
property to its default value.
|