[[BackLinksMenu]] [[TicketQuery(summary=CORE_ADDITIONS_R1, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|)]] = 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 * 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 == [wiki:PRO_LIB_CORE_TUTORIAL][[BR]] [wiki:CORE_ADDITIONS_R0] == How to demo == Run the unit tests and show the results to the team. = Design = = Implementation = = Testing = = Comments =