Sha256: d461e3dc442f8b3abdac95a1e7ce3602b8672d99da52c787fe4d20873a47f8df

Contents?: true

Size: 1.59 KB

Versions: 42

Compression:

Stored size: 1.59 KB

Contents

package Javonet::Core::Handler::CommandHandler::InvokeStaticMethodHandler;
use aliased 'Javonet::Core::Handler::PerlHandler' => 'PerlHandler';
use strict;
use warnings FATAL => 'all';
use Moose;
use lib 'lib';
use lib 'data_seed';
use Nice::Try;
use aliased 'Javonet::Core::Exception::Exception' => 'Exception';
extends 'Javonet::Core::Handler::CommandHandler::AbstractCommandHandler';

sub new {
    my $class = shift;
    my $self = {
        required_parameters_count => 2
    };
    return bless $self, $class;
}

sub process {
    my ($self, $command) = @_;
    try {
        my $current_payload_ref = $command->{payload};
        my @cur_payload = @$current_payload_ref;
        my $parameters_length = @cur_payload;
        if ($parameters_length < $self->{required_parameters_count}) {
            die Exception->new("Exception: InvokeStaticMethod parameters mismatch");
        }
        my $clazz = $command->{payload}[0];
        my $method_name = $command->{payload}[1];

        if (my $method = $clazz->can($method_name)) {
            if ($parameters_length == $self->{required_parameters_count}) {
                return $method->();
            }
            else {
                my @method_arguments;
                for (my $i = 2; $i < $parameters_length; $i++) {
                    push @method_arguments, $command->{payload}[$i];
                }
                return $method->(@method_arguments);
            }
        }
        else {
            die Exception->new("Exception InvokeStaticMethod: method not found");
        }
    }
    catch ($e){
        return Exception->new($e);
    }
}

1;

Version data entries

42 entries across 21 versions & 1 rubygems

Version Path
javonet-ruby-sdk-2.4.7 lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/lib/Javonet/Core/Handler/CommandHandler/InvokeStaticMethodHandler.pm
javonet-ruby-sdk-2.4.7 lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Handler/CommandHandler/InvokeStaticMethodHandler.pm
javonet-ruby-sdk-2.4.6 lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/lib/Javonet/Core/Handler/CommandHandler/InvokeStaticMethodHandler.pm
javonet-ruby-sdk-2.4.6 lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Handler/CommandHandler/InvokeStaticMethodHandler.pm
javonet-ruby-sdk-2.4.5 lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/lib/Javonet/Core/Handler/CommandHandler/InvokeStaticMethodHandler.pm
javonet-ruby-sdk-2.4.5 lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Handler/CommandHandler/InvokeStaticMethodHandler.pm
javonet-ruby-sdk-2.4.4 lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Handler/CommandHandler/InvokeStaticMethodHandler.pm
javonet-ruby-sdk-2.4.4 lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/lib/Javonet/Core/Handler/CommandHandler/InvokeStaticMethodHandler.pm
javonet-ruby-sdk-2.4.3 lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Handler/CommandHandler/InvokeStaticMethodHandler.pm
javonet-ruby-sdk-2.4.3 lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/lib/Javonet/Core/Handler/CommandHandler/InvokeStaticMethodHandler.pm
javonet-ruby-sdk-2.4.2 lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Handler/CommandHandler/InvokeStaticMethodHandler.pm
javonet-ruby-sdk-2.4.2 lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/lib/Javonet/Core/Handler/CommandHandler/InvokeStaticMethodHandler.pm
javonet-ruby-sdk-2.3.0 lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/lib/Javonet/Core/Handler/CommandHandler/InvokeStaticMethodHandler.pm
javonet-ruby-sdk-2.3.0 lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Handler/CommandHandler/InvokeStaticMethodHandler.pm
javonet-ruby-sdk-2.2.0 lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/lib/Javonet/Core/Handler/CommandHandler/InvokeStaticMethodHandler.pm
javonet-ruby-sdk-2.2.0 lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Handler/CommandHandler/InvokeStaticMethodHandler.pm
javonet-ruby-sdk-2.1.14 lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/lib/Javonet/Core/Handler/CommandHandler/InvokeStaticMethodHandler.pm
javonet-ruby-sdk-2.1.14 lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Handler/CommandHandler/InvokeStaticMethodHandler.pm
javonet-ruby-sdk-2.1.13 lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/lib/Javonet/Core/Handler/CommandHandler/InvokeStaticMethodHandler.pm
javonet-ruby-sdk-2.1.13 lib/javonet-ruby-sdk/Binaries/Perl/MacOs/X64/lib/Javonet/Core/Handler/CommandHandler/InvokeStaticMethodHandler.pm