Find in this group all groups
Unknown more information…

i : 8 February 2008 • 12:24AM -0500

[jira] Created: (BEANUTILS-304) BeanDiff - encapsulate, apply, and merge bean differences
by Mark Lewis (JIRA)


BeanDiff - encapsulate, apply, and merge bean differences

                 Key: BEANUTILS-304
             Project: Commons BeanUtils
          Issue Type: New Feature
          Components: Bean / Property Utils, Bean-Collections, ConvertUtils & Converters, DynaBean
    Affects Versions: LATER THAN 1.8.0
            Reporter: Mark Lewis
             Fix For: LATER THAN 1.8.0

It would be great to have a way to compare two beans and capture the diff somehow.  This is just my initial brainstorm on the idea:

- The BeanDiff class encapsulates differences between two beans -of the same type-, the source bean and the target bean.
- A BeanDiff instance represents what property assignments would be necessary to turn the target bean into the source bean.
- A BeanDiff can be applied to a target bean, performing the necessary property assignments to make its property values exactly match the source bean.
- Two BeanDiff instances can be merged into a single BeanDiff instance, allowing multiple source beans to be merged into one target bean.
- If a conflict would occur during a merge (from a property being assigned two different values), a BeanDiffConflictException is thrown.
- The BeanDiffConflictException contains an array of BeanDiffConflict objects.
- Each BeanDiffConflict instance represents a single property and the two conflicting values that were to be assigned.

- All these actions would work on DynaBeans as well.
- +Converters would be able to account for type differences in source and target bean properties.+

An example of how this could be used is when dealing with ORM and optimistic locking.  Knowing exactly which properties have been modified would allow concurrent modification of a bean (record) without fear of reasserting the original values and destroying someone else's changes.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

Bookmark with:

Delicious   Digg   reddit   Facebook   StumbleUpon

Related Messages

opensubscriber is not affiliated with the authors of this message nor responsible for its content.