JMIUNDO SPI 0.2
Holger Krug <[email protected]>
| Newsgroups | gmane.comp.java.netbeans.modules.mdr.devel |
|---|---|
| Message-ID | <[email protected]> |
The version 0.2 of the JMIUNDO SPI is now available at http://www.rationalizer.com/jmiundo0.2/. The former version still may be reviewed at: http://www.rationalizer.com/jmiundo0.1/. I finished the handling of attribute change events. During this work I discovered a certain deficiency of JMI which makes tracking of attribute change events in the case of nested collection types impossible. I describe this deficiency at http://www.rationalizer.com/jmiundo0.2/com/rationalizer/jmiundo/spi/RepositoryProxy.html#getCollectionEntry(java.util.Collection, java.io.Serializable) Attribute tracking is actually the hardest part of change tracking. I need 5 of the 13 methods in `TransactionProxy' for attribute tracking. IMHO the simple class `AttributeEvent' in the MDR API is an oversimplification because it does not treat nested attribute types at all (as structure of collection of collection of structure of list of class or simpler: collection of collection). I hope I've missed something, but it seems to be as complicated as you can see from certain parts of the SPI. The SPI allows further the tracking of setters of structure fields. Although not part of JMI (because structures do not have an identity and hence are not modifiable) setters of structure fields may be provided by the repository. They are important for interactive applications to allow straightforward GUI implementations. Hence the UndoManager can track them. -- Holger Krug [email protected]