Last modified 16 years ago
Last modified on 02/03/09 14:06:42
Analysis
Overview
This task involves the improvement of org.sophie2.core module.
Task requirements
- Revise org.sophie2.core and add some extra functionality that is needed:
- Provide a @Lazy annotation for AutoProperties:
- currently the compute() method is invoked on creation of the AutoProperty
- @Lazy should be used to implement lazy invocation of the compute() method in the AutoProperty, which means the method will be called on demand
- this would provide a performance optimization of AutoProperties holding references to objects which potentially will be never used - for instance some GUI object like an "Advanced settings" panel, which the majority of users wouldn't use at all or would use quite seldom
- Provide a @Const annotation for AutoProperties:
- @Const must ensure that the compute() method is called only once
- Provide a @Lazy annotation for AutoProperties:
- Write appropriate unit tests
Task result
The result of this task should be source code (including unit tests).
Implementation idea
Use reflection for @Const.
Related
PRO_LIB_CORE_TUTORIAL
CORE_ADDITIONS_R0
How to demo
Run the unit tests and show the results to the team.