The Node may be either an Attr or an
Element, depending on whether a custom attribute or element
is being parsed.

Implementations may choose to return a completely new definition,
which will replace the original definition in the resulting
BeanFactory.

The supplied ParserContext can be used to register any
additional beans needed to support the main definition.

Parameters:

source - the source element or attribute that is to be parsed

definition - the current bean definition

parserContext - the object encapsulating the current state of the parsing process

Returns:

the decorated definition (to be registered in the BeanFactory),
or simply the original bean definition if no decoration is required.
A null value is strictly speaking invalid, but will be leniently
treated like the case where the original bean definition gets returned.