1 package DBIx::Class::AccessorGroup;
6 use base qw/Class::Accessor::Grouped/;
7 use Scalar::Util qw/weaken blessed/;
8 use DBIx::Class::_Util 'fail_on_internal_call';
12 DBIx::Class::_ENV_::ASSERT_NO_INTERNAL_INDIRECT_CALLS and fail_on_internal_call;
13 shift->mk_classaccessor(@_);
16 sub mk_classaccessor {
18 $self->mk_group_accessors('inherited', $_[0]);
20 ? $self->set_inherited(@_)
21 : ( DBIx::Class::_ENV_::ASSERT_NO_INTERNAL_INDIRECT_CALLS and fail_on_internal_call )
25 my $successfully_loaded_components;
27 sub get_component_class {
28 my $class = $_[0]->get_inherited($_[1]);
30 # It's already an object, just go for it.
31 return $class if blessed $class;
33 if (defined $class and ! $successfully_loaded_components->{$class} ) {
34 $_[0]->ensure_class_loaded($class);
36 mro::set_mro( $class, 'c3' );
39 $successfully_loaded_components->{$class}
40 = ${"${class}::__LOADED__BY__DBIC__CAG__COMPONENT_CLASS__"}
41 = do { \(my $anon = 'loaded') };
42 weaken($successfully_loaded_components->{$class});
48 sub set_component_class {
49 shift->set_inherited(@_);
56 DBIx::Class::AccessorGroup - See Class::Accessor::Grouped
62 This class now exists in its own right on CPAN as Class::Accessor::Grouped
64 =head1 FURTHER QUESTIONS?
66 Check the list of L<additional DBIC resources|DBIx::Class/GETTING HELP/SUPPORT>.
68 =head1 COPYRIGHT AND LICENSE
70 This module is free software L<copyright|DBIx::Class/COPYRIGHT AND LICENSE>
71 by the L<DBIx::Class (DBIC) authors|DBIx::Class/AUTHORS>. You can
72 redistribute it and/or modify it under the same terms as the
73 L<DBIx::Class library|DBIx::Class/COPYRIGHT AND LICENSE>.