App-Framework
view release on metacpan or search on metacpan
lib/App/Framework/Base/Object.pm view on Meta::CPAN
=cut
sub verbose
{
my $this = shift ;
my ($level) = @_ ;
#my $class = $this->class() ;
my $class = ref($this) || $this ;
#print "In verbose() for $class\n" ;
$VERBOSE{$class} ||= 0 ;
my $old = $VERBOSE{$class} ;
$VERBOSE{$class} = $level if defined($level) ;
return $old ;
}
#----------------------------------------------------------------------------
=item B<undef_verbose()>
Set verbose print options flag to undefined.
=cut
sub undef_verbose
{
my $this = shift ;
my ($level) = @_ ;
#my $class = $this->class() ;
my $class = ref($this) || $this ;
#print "In undef_verbose() for $class\n" ;
$DEBUG{$class} ||= 0 ;
my $old = $DEBUG{$class} ;
$DEBUG{$class} = undef ;
return $old ;
}
#----------------------------------------------------------------------------
=item B<field_access($field, [$val])>
Get/set a field value. Used by derived objects to get/set the underlying object field
variable when they have overridden that field's access method.
=cut
sub field_access
{
my $this = shift ;
my ($field, $value) = @_ ;
my $class = ref($this) || $this ;
my %field_list = ();
%field_list = %{ $FIELD_LIST{$class} } if exists($FIELD_LIST{$class}) ;
$this->throw_fatal("Attempting to access an invalid field \"$field\" for this object class \"$class\" ") unless (exists($field_list{$field})) ;
$this->{$field} = $value if defined($value) ;
return $this->{$field} ;
}
#----------------------------------------------------------------------------
=item B<set(%args)>
Set one or more settable parameter.
The %args are specified as a hash, for example
set('mmap_handler' => $mmap_handler)
Sets field values. Field values are expressed as part of the HASH (i.e. normal
field => value pairs).
=cut
sub set
{
my $this = shift ;
my (%args) = @_ ;
prt_data("set() ARGS=", \%args, "\n") if $global_debug>=3 ;
$this = $this->check_instance() ;
# Args
## my %field_list = $this->field_list() ;
my $class = ref($this) || $this ;
my %field_list = ();
%field_list = %{ $FIELD_LIST{$class} } if exists($FIELD_LIST{$class}) ;
foreach my $field (keys %field_list)
{
if (exists($args{$field}))
{
print " + set $field = $args{$field}\n" if $global_debug>=3 ;
# Need to call actual method (rather than ___set) so that it can be overridden
if (!defined($args{$field}))
{
# Set to undef
my $undef_method = "undef_$field" ;
$this->$undef_method() ;
}
else
{
$this->$field($args{$field}) ;
}
}
}
## See if strict checks are enabled
( run in 1.198 second using v1.01-cache-2.11-cpan-39bf76dae61 )