The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Siebel::Srvrmgr::ListParser::OutputFactory - abstract factory class to create Siebel::Srvrmgr::ListParser::Output objects

SYNOPSIS

        use Siebel::Srvrmgr::ListParser::OutputFactory;

    my $output = Siebel::Srvrmgr::ListParser::OutputFactory->create(
        $type,
        {
            data_type => $type,
            raw_data  => \@data,
            cmd_line  => 'list something'
        }
    );

        if (Siebel::Srvrmgr::ListParser::OutputFactory->can_create('weirdo')) ? print "can\n" : print "cannot\n";

DESCRIPTION

This is an abstract factory class to create instances of subclass of Siebel::Srvrmgr::ListParser::Output superclass.

It has the mapping between the types parsed by Siebel::Srvrmgr::ListParser class to the respective class of output. See Siebel::Srvrmgr::ListParser::OutputFactory::table_mapping for the mapping between types and classes.

METHODS

All methods below are class methods.

build

Returns the instance of the class defined by the type given as parameter. Expects two parameters: an string with the type of output and an hash reference with the parameters expected by the new method of Siebel::Srvrmgr::ListParser::Output subclasses.

A third, optional parameter, is required if the desired instance is a subclass of Siebel::Srvrmgr::ListParser::Output::Tabular: one must pass a single character as the field separator, if exists in the output to be parsed.

Despite using MooseX::AbstractFactory to implement the Abstract Factory pattern, this method must be invoked instead of create so the class will be able to make additional checkings necessary to define defaults for subclasses of Siebel::Srvrmgr::ListParser::Output::Tabular.

can_create

Expects a string as the output type.

Returns true if there is a mapping between the given type and a subclass of Siebel::Srvrmgr::ListParser::Output; otherwise it returns false;

get_mapping

Returns an hash reference with the mapping between the parsed types and subclasses of Siebel::Srvrmgr::ListParser::Ouput.

The values are array references with the partial classes names and a compiled regular expression to validate the command.

SEE ALSO

AUTHOR

Alceu Rodrigues de Freitas Junior, <arfreitas@cpan.org>.

COPYRIGHT AND LICENSE

This software is copyright (c) 2012 of Alceu Rodrigues de Freitas Junior, <arfreitas@cpan.org>.

This file is part of Siebel Monitoring Tools.

Siebel Monitoring Tools is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Siebel Monitoring Tools is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with Siebel Monitoring Tools. If not, see http://www.gnu.org/licenses/.