What is it all about?
MapMate solves the problem of (de)serialization and validation of Custom Primitives and general Serializable Objects in a clean and non-invasive way. MapMate enables you to
* Keep validation of your domain in your domain - the factory methods
* Register your validation exceptions and report them aggregated upon deserialization
* Stay independent of the final format of your serialization (YAML/JSON/XML/... - you control)
* No Magic - MapMate is using your Objects the same way you would use them, which means: - MapMate can not touch - private fields - final fields - private methods - MapMate will not generate dynamic proxies - MapMate does not favor the use of annotations * Support for validating your domain - MapMate allows you to check for validation exceptions and aggregates them accordingly. - You will know exactly what field of what domain was faulty. - MapMate also offers ways of detecting redundant validation exceptions. * Non-intrusive usage and configuration - MapMate instance can be configured in a single place and offers detection of Custom Primitives and Serialized Objects without the use of annotations. - As mentioned above, MapMate creates and validates your Objects the way you would, hence you don't need to change anything in your domain, when using MapMate. Since automatic configuration always requires conventions, MapMate allows you to follow _your_ conventions, instead of the ones it's coders came up with. - That means your domain stays free of dependencies(direct or conventional) to the (de)serialization and validation frameworks. * Highly customizable - MapMate is highly configurable, allowing configuration for - whitelisting and blacklisting packages and/or classes(or even disable the whole class path scanning and configure objects one-by-one) - detection mechanism of Custom Primitives and Serialized Objects - manual definition of Custom Primitives and Serialized Objects - customizing the Validation Errors - An all of this is can be achieved through a powerful builder