The following module was proposed for inclusion in the Module List: modid: Class:Aggregate DSLIP: bdpOg description: Base class aggregating several OO aspects userid: CORLISS (Arthur Corliss) chapterid: 6 (Data_Type_Utilities) communities: mailinglists
similar: Class::Accessor, Class::Container, POE, etc. rationale: Okay, this is the last time I'm going to bother you with this request, I just haven't heard a response to my last rationale(s). I'm choosing the name Class::Aggregate since this module aggregates three class aspects, in contrast to most of the Class::* modules, which concentrate on specific traits. This module provides facilities for property accessors, containers, and rudimentary events. The reason why this exists as a separate module/code base is that it chooses a different method of implementation than the existing modules, and its feature focus is also different as well. Syntactically, this module is meant to be used strictly as an ancestor of a custom subclass. Properties are defined as an array of write and read accessor method references, or a single unifed accessor method (a generic accessor that can serve in any of these capacities is provided as part of the class). The container property is implemented with a focus on controlled destruction of contained objects, rather than on a consistent interface. The event system is based on psuedo boolean properties combined into a state flag register. All accesses/modifications of a flag can trigger execution of an optional associated event handler. This system is much smaller and simpler to implement than POE, and, accordingly, the dependencies are much smaller (read: nothing outside of core Perl), as are the capabilities (using POE for what this class intends is much akin to using a twenty pound sledge where I only need a sixteen ounce ballpeen). For these reasons, I hope to persuade you that this module deserves a place on CPAN. Adding it to CPAN would also increase my code reuse, since my other OO CPAN modules will be making use of this code in the near future, and I'm hoping I won't have to include this module within the namespace of each of those modules. enteredby: CORLISS (Arthur Corliss) enteredon: Tue Jan 28 01:10:25 2003 GMT The resulting entry would be: Class:Aggregate bdpOg Base class aggregating several OO aspects CORLISS Thanks for registering, The Pause Team PS: The following links are only valid for module list maintainers: Registration form with editing capabilities: https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=92200000_3607a4dd5caa93ee&SUBMIT_pause99_add_mod_preview=1 Immediate (one click) registration: https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=92200000_3607a4dd5caa93ee&SUBMIT_pause99_add_mod_insertit=1