2 |
## $Id$ |
## $Id$ |
3 |
## --------------------------------------------------------------------------- |
## --------------------------------------------------------------------------- |
4 |
## $Log$ |
## $Log$ |
5 |
|
## Revision 1.5 2003/02/09 16:24:46 joko |
6 |
|
## + pseudo constructor mechanism by calling method 'constructor' on object instantiation |
7 |
|
## |
8 |
|
## Revision 1.4 2003/01/22 17:56:49 root |
9 |
|
## + fix: just use the logger if it's available |
10 |
|
## |
11 |
## Revision 1.3 2003/01/20 16:54:22 joko |
## Revision 1.3 2003/01/20 16:54:22 joko |
12 |
## + sub fromPackage: refactored from libp's 'getNewPerlObjFromPkgName' or s.th.l.th. |
## + sub fromPackage: refactored from libp's 'getNewPerlObjFromPkgName' or s.th.l.th. |
13 |
## |
## |
32 |
|
|
33 |
|
|
34 |
# get logger instance |
# get logger instance |
35 |
my $logger = Log::Dispatch::Config->instance; |
my $logger = eval { Log::Dispatch::Config->instance; }; |
36 |
|
|
37 |
sub new { |
sub new { |
38 |
|
|
42 |
# use already blessed reference, if passed in - else use the very classname |
# use already blessed reference, if passed in - else use the very classname |
43 |
my $class = ref ($classname) || $classname; |
my $class = ref ($classname) || $classname; |
44 |
|
|
45 |
$logger->debug( "$classname->new( ... )" . "\t[via " . __PACKAGE__ . "]" ); |
$logger->debug( "$classname->new( ... )" . "\t[via " . __PACKAGE__ . "]" ) if $logger; |
46 |
|
|
47 |
# the base for our object - a plain perl hash, which .... |
# the base for our object - a plain perl hash, which .... |
48 |
my $self = {}; |
my $self = {}; |
100 |
$self->{__classname} = $classname; |
$self->{__classname} = $classname; |
101 |
|
|
102 |
$self->_init() if $self->can('_init'); |
$self->_init() if $self->can('_init'); |
103 |
|
$self->constructor() if $self->can('constructor'); |
104 |
|
|
105 |
return $self; |
return $self; |
106 |
} |
} |
155 |
|
|
156 |
# run boot-methods on object |
# run boot-methods on object |
157 |
$object->_init() if $object->can('_init'); |
$object->_init() if $object->can('_init'); |
158 |
|
$object->constructor() if $object->can('constructor'); |
159 |
|
|
160 |
return $object; |
return $object; |
161 |
} |
} |