* The Value / Enum Mappings should copy all the parameters from the method that is being overriden
* The source parameter should be the first source parameter
When compilig with Java 9 and and source version 1.8 Elements#getTypeElement(CharSequence) returns the types from all modules (such as java.xml.bind or java.xml.datatype).
However if the required modules are not added the classes cannot be used. Therefore, apart from using the Elements we are also checking if the class is also there.
If source version 9 is used then Elements#getTypeElement(CharSequence) works correctly and does not return the types if the modules are not there
From the Javadoc of @ObjectFactory: If there are two factory methods, both serving the same type, one with no parameters and one taking sources as input, then the one with the source parameters is favored. If there are multiple such factories, an ambiguity error is shown.
If a SourceRHS is present then the source type of the SourceRHS and the MappingContext parameters are considered for the factory method selection, i.e. the other source parameters are ignored
* #611 Allow nested declaration of Mappers
Up until now, if a Mapper was declared as a nested interface, say
EnclosingClass.NestedMapper, the implementation of the mapper was
generated as NestedMapperImpl in the same package. The Mappers factory
class then tried to load EnclosingClass$NestedMapperImpl, which would
fail.
* #122 Use util methods when possible
* Fix some warnings in Javadoc generation
* Don't use raw classes when not needed
* Add .yml, binding.xjb and .asciidoc files to license check exclusion
* Move the error generation for the invalid TargetReference into the BuilderFromTargetMapping
* TargetReference will strip the first entry name in the following cases only if the first entry name matches the MappingTarget parameter, or for reverse mappings it matches the source parameter name
* Pass the reverse source parameter when initializing a reverse mapping
* SetterWrapperForCollectionsAndMaps - Does a simple assignment without doing any null checks
* SetterWrapperForCollectionsAndMapsWithNullCheck - Does an assignment that does a null check before assignment and takes direct assignment into consideration
* ExistingInstanceSetterWrapperForCollectionsAndMaps - Used for wrapping an assignment when the method is an update method
Additionally don't do local var assignment if there are presence checkers