
XAO::DO::Web::Action - base for mode-dependant displayable objects

package XAO::DO::Web::Fubar;
use strict;
use XAO::Objects;
use XAO::Errors qw(XAO::DO::Web::Fubar);
use base XAO::Objects->load(objname => 'Web::Action');
sub check_mode ($$) {
my $self=shift;
my $args=get_args(\@_);
my $mode=$args->{mode};
if($mode eq "foo") {
$self->foo($args);
}
elsif($mode eq "kick") {
$self->kick($args);
}
else {
$self->SUPER::check_mode($args);
}
}

Very simple object with overridable check_mode method. Simplifies implementation of objects with arguments like:
<%Fubar mode="kick" target="ass"%>
Default check_mode() method does not have any functionality and always simply throws an error with the content of 'mode':
throw $self "check_mode - unknown mode ($mode)";
Remember that using "throw $self" you actually throw an error that depends on the namespace of your object and therefor can be caught separately if required.

Nothing.

Copyright (c) 2005 Andrew Maltsev
Copyright (c) 2001-2004 Andrew Maltsev, XAO Inc.
<am@ejelta.com> -- http://ejelta.com/xao/

Recommended reading: XAO::Web, XAO::DO::Web::Page.