nastra opened a new pull request #3688:
URL: https://github.com/apache/iceberg/pull/3688


   ## Motivation
   * Use true immutable objects that are type-safe, thread-safe, null-safe
   * Get builder classes for free
   * Get JSON serialization/deserialization for free (this will also be helpful 
for the REST-based Catalog #3424)
   
   This is relying on https://immutables.github.io/ (Apache License 2.0), which 
allows generating immutable objects and builders via annotation processing.
   * Immutable objects are serialization ready (including JSON and its binary 
forms)
   * Supports lazy, derived and optional attributes
   * Immutable objects are constructed once, in a consistent state, and can be 
safely shared
     * Will fail if mandatory attributes are missing
     * Cannot be sneakily modified when passed to other code
   * Immutable objects are naturally thread-safe and can therefore be safely 
shared among threads
     * No excessive copying
     * No excessive synchronization
   * Object definitions are pleasant to write and read
     * No boilerplate setter and getters
     * No ugly IDE-generated hashCode, equals and toString methods that end up 
being stored in source control.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to