NAME
App::Service - Provides core methods for App-Context Services
SYNOPSIS
use App::Service;
# never really used, because this is a base class
%named = (
# named args would go here
);
$service = App::Service->new(%named);
DESCRIPTION
The App::Service class is a base class for all App-Context services.
* Throws: App::Exception
* Since: 0.01
Constructor Methods:
new()
This constructor is used to create all objects which are App-Context services. Customized behavior for a particular service is achieved by overriding the _init() method.
* Signature: $service = App::Service->new(%named)
* Return: $service App::Service
* Throws: App::Exception
* Since: 0.01
Sample Usage: (never used because this is a base class, but the
constructors of all services follow these rules)
* If the number of arguments is odd, the first arg is the service name
(otherwise, "default" is assumed)
* If there are remaining arguments, they are variable/value pairs
* If there are no arguments at all, the "default" name is assumed
* If a "name" was supplied using any of these methods,
the master config is consulted to find the config for this
particular service instance (service_type/name).
$service = App::Service->new(); # assumes "default" name
$service = App::Service->new("srv1"); # instantiate named service
$service = App::Service->new( # "default" with named args
arg1 => 'value1',
arg2 => 'value2',
);
service_type()
Returns the service type (i.e. CallDispatcher, Repository, SessionObject, etc.).
* Signature: $service_type = App::Service->service_type();
* Param: void
* Return: $service_type string
* Since: 0.01
$service_type = $service->service_type();
content()
* Signature: $content = $self->content();
* Param: void
* Return: $content any
* Throws: App::Exception
* Since: 0.01
$content = $so->content();
if (ref($content)) {
App::Reference->print($content);
print "\n";
}
else {
print $content, "\n";
}
content_type()
* Signature: $content_type = $service->content_type();
* Param: void
* Return: $content_type string
* Throws: App::Exception
* Since: 0.01
Sample Usage:
$content_type = $service->content_type();
content_description()
* Signature: $content_description = $service->content_description();
* Param: void
* Return: $content_description string
* Throws: App::Exception
* Since: 0.01
Provide a description of the content which is useful for diagnostic purposes (such as for the timing log implemented in App::Context::HTTP).
This method can be overridden by an application-specific service such as a web application user interface widget to provide more useful information in the description.
Sample Usage:
$content_description = $service->content_description();
internals()
* Signature: $guts = $self->internals();
* Param: void
* Return: $guts {}
* Throws: App::Exception
* Since: 0.01
$guts = $so->internals();
App::Reference->print($guts);
print App::Reference->dump($guts), "\n";
Copy the internals of the current SessionObject to a new hash and return a reference to that hash for debugging purposes. The resulting hash reference may be printed using Data::Dumper (or App::Reference). The refe
dump()
* Signature: $perl = $service->dump();
* Param: void
* Return: $perl text
* Throws: App::Exception
* Since: 0.01
Sample Usage:
$service = $context->repository();
print $service->dump(), "\n";
print()
* Signature: $service->print();
* Param: void
* Return: void
* Throws: App::Exception
* Since: 0.01
Sample Usage:
$service->print();
substitute()
* Signature: $result = $service->substitute($target);
* Signature: $result = $service->substitute($target, $values);
* Param: $target HASH,string
* Param: $values HASH
* Return: $result string
* Throws: App::Exception
* Since: 0.01
Sample Usage:
$welcome_message = $service->substitute("Welcome, {default-user}");
my $auto_params = { user => "{default-user}", org_id => "{org_id}", };
my $auto_values = { org_id => 1, };
$params = $service->substitute($auto_params, $auto_values);
The substitute() method scans the $target string (or hash of strings) for instances of variables (i.e. "{varname}") and makes substitutions. It makes substitutions from a hash of $values if provided or from the values of SessionObjects of the same name.
The substitute() method returns a string (or hash of strings) which is the result of the substitution.
Protected Methods:
The following methods are intended to be called by subclasses of the current class.
_init()
The _init() method is called from within the standard Service constructor. It allows subclasses of the Service to customize the behavior of the constructor by overriding the _init() method. The _init() method in this class simply calls the _init() method to allow each service instance to initialize itself.
* Signature: _init($named)
* Param: $named {} [in]
* Return: void
* Throws: App::Exception
* Since: 0.01
Sample Usage:
$service->_init(\%args);
ACKNOWLEDGEMENTS
* Author: Stephen Adkins <spadkins@gmail.com>
* License: This is free software. It is licensed under the same terms as Perl itself.