NAME
Class::Scaffold::Base - large-scale OOP application support
SYNOPSIS
Class::Scaffold::Base->new;
DESCRIPTION
METHODS
new
-
my $obj = Class::Scaffold::Base->new; my $obj = Class::Scaffold::Base->new(%args);
Creates and returns a new object. The constructor will accept as arguments a list of pairs, from component name to initial value. For each pair, the named component is initialized by calling the method of the same name with the given value. If called with a single hash reference, it is dereferenced and its key/value pairs are set as described before.
- FIRST_CONSTRUCTOR_ARGS
-
This method is used by the constructor to order key-value pairs that are passed to the newly created object's accessors - see Class::Accessor::Constructor. This class just defines it as an empty list; subclasses should override it as necessary. The method exists in this class so even if subclasses don't override it, there's something for the constructor mechanism to work with.
MUNGE_CONSTRUCTOR_ARGS
-
This method is used by the constructor to munge the constructor arguments - see Class::Accessor::Constructor. This class' method just returns the arguments as is; subclasses should override it as necessary. The method exists in this class so even if subclasses don't override it, there's something for the constructor mechanism to work with.
add_autoloaded_package
-
This class method takes a single prefix and adds it to the list - set, really - of packages whose methods should be autoloaded. The Class::Scaffold framework will typically be used by an application whose classes are stored in and underneath a package namespace. To avoid having to load all classes explicitly, you can pass the namespace to this method. This class defines a UNIVERSAL::AUTOLOAD that respects the set of classes it should autoload methods for.
init
-
This method is called at the end of the constructor - see Class::Accessor::Constructor. This class' method does nothing; subclasses should override it and wrap it with
SUPER::
as necessary. The method exists in this class so even if subclasses don't override it, there's something for the constructor mechanism to work with. log
-
This method acts as a shortcut to Class::Scaffold::Log. Instead of writing
use Class::Scaffold::Log; Class::Scaffold::Log->instance->debug('foo');
you can simply write
$self->log->debug('foo');
Class::Scaffold::Base inherits from Data::Inherited, Data::Comparable, Error::Hierarchy::Mixin, Class::Scaffold::Delegate::Mixin, Class::Scaffold::Accessor, Class::Scaffold::Factory::Type, and Class::Accessor::Constructor::Base.
The superclass Data::Inherited defines these methods and functions:
every_hash(), every_list(), flush_every_cache_by_key()
The superclass Data::Comparable defines these methods and functions:
comparable(), comparable_scalar(), dump_comparable(),
prepare_comparable(), yaml_dump_comparable()
The superclass Class::Scaffold::Delegate::Mixin defines these methods and functions:
delegate()
The superclass Class::Scaffold::Accessor defines these methods and functions:
mk_framework_object_accessors(), mk_framework_object_array_accessors(),
mk_readonly_accessors()
The superclass Class::Accessor::Complex defines these methods and functions:
mk_abstract_accessors(), mk_array_accessors(), mk_boolean_accessors(),
mk_class_array_accessors(), mk_class_hash_accessors(),
mk_class_scalar_accessors(), mk_concat_accessors(),
mk_forward_accessors(), mk_hash_accessors(), mk_integer_accessors(),
mk_new(), mk_object_accessors(), mk_scalar_accessors(),
mk_set_accessors(), mk_singleton()
The superclass Class::Accessor defines these methods and functions:
_carp(), _croak(), _mk_accessors(), accessor_name_for(),
best_practice_accessor_name_for(), best_practice_mutator_name_for(),
follow_best_practice(), get(), make_accessor(), make_ro_accessor(),
make_wo_accessor(), mk_accessors(), mk_ro_accessors(),
mk_wo_accessors(), mutator_name_for(), set()
The superclass Class::Accessor::Installer defines these methods and functions:
install_accessor()
The superclass Class::Accessor::Constructor defines these methods and functions:
_make_constructor(), mk_constructor(), mk_constructor_with_dirty(),
mk_singleton_constructor()
The superclass Class::Accessor::FactoryTyped defines these methods and functions:
clear_factory_typed_accessors(), clear_factory_typed_array_accessors(),
count_factory_typed_accessors(), count_factory_typed_array_accessors(),
factory_typed_accessors(), factory_typed_accessors_clear(),
factory_typed_accessors_count(), factory_typed_accessors_index(),
factory_typed_accessors_pop(), factory_typed_accessors_push(),
factory_typed_accessors_set(), factory_typed_accessors_shift(),
factory_typed_accessors_splice(), factory_typed_accessors_unshift(),
factory_typed_array_accessors(), factory_typed_array_accessors_clear(),
factory_typed_array_accessors_count(),
factory_typed_array_accessors_index(),
factory_typed_array_accessors_pop(),
factory_typed_array_accessors_push(),
factory_typed_array_accessors_set(),
factory_typed_array_accessors_shift(),
factory_typed_array_accessors_splice(),
factory_typed_array_accessors_unshift(),
index_factory_typed_accessors(), index_factory_typed_array_accessors(),
mk_factory_typed_accessors(), mk_factory_typed_array_accessors(),
pop_factory_typed_accessors(), pop_factory_typed_array_accessors(),
push_factory_typed_accessors(), push_factory_typed_array_accessors(),
set_factory_typed_accessors(), set_factory_typed_array_accessors(),
shift_factory_typed_accessors(), shift_factory_typed_array_accessors(),
splice_factory_typed_accessors(),
splice_factory_typed_array_accessors(),
unshift_factory_typed_accessors(),
unshift_factory_typed_array_accessors()
The superclass Class::Scaffold::Factory::Type defines these methods and functions:
factory_log()
The superclass Class::Factory::Enhanced defines these methods and functions:
add_factory_type(), make_object_for_type(), register_factory_type()
The superclass Class::Factory defines these methods and functions:
factory_error(), get_factory_class(), get_factory_type_for(),
get_loaded_classes(), get_loaded_types(), get_my_factory(),
get_my_factory_type(), get_registered_class(),
get_registered_classes(), get_registered_types(),
remove_factory_type(), unregister_factory_type()
The superclass Class::Accessor::Constructor::Base defines these methods and functions:
STORE(), clear_dirty(), clear_hygienic(), clear_unhygienic(),
contains_hygienic(), contains_unhygienic(), delete_hygienic(),
delete_unhygienic(), dirty(), dirty_clear(), dirty_set(),
elements_hygienic(), elements_unhygienic(), hygienic(),
hygienic_clear(), hygienic_contains(), hygienic_delete(),
hygienic_elements(), hygienic_insert(), hygienic_is_empty(),
hygienic_size(), insert_hygienic(), insert_unhygienic(),
is_empty_hygienic(), is_empty_unhygienic(), set_dirty(),
size_hygienic(), size_unhygienic(), unhygienic(), unhygienic_clear(),
unhygienic_contains(), unhygienic_delete(), unhygienic_elements(),
unhygienic_insert(), unhygienic_is_empty(), unhygienic_size()
The superclass Tie::StdHash defines these methods and functions:
CLEAR(), DELETE(), EXISTS(), FETCH(), FIRSTKEY(), NEXTKEY(), SCALAR(),
TIEHASH()
BUGS AND LIMITATIONS
No bugs have been reported.
Please report any bugs or feature requests through the web interface at http://rt.cpan.org.
INSTALLATION
See perlmodinstall for information and options on installing Perl modules.
AVAILABILITY
The latest version of this module is available from the Comprehensive Perl Archive Network (CPAN). Visit <http://www.perl.com/CPAN/> to find a CPAN site near you. Or see <http://www.perl.com/CPAN/authors/id/M/MA/MARCEL/>.
AUTHORS
Florian Helmberger <fh@univie.ac.at>
Achim Adam <ac@univie.ac.at>
Mark Hofstetter <mh@univie.ac.at>
Heinz Ekker <ek@univie.ac.at>
Marcel Grünauer, <marcel@cpan.org>
COPYRIGHT AND LICENSE
Copyright 2004-2009 by the authors.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.