# Number of lines of code in create_stub: 48
my ( $self, %args ) = @_;
my $serviceName = $args{service_name};
my $stubConfig = $args{stub_config};
my $stub = undef;
if ( $serviceName->can('new') ) {
return $serviceName->new(
'api_provider' => $self->{api_provider},
'stub_config' => $stubConfig
);
}
else {
my $message_factory =
Com::Vmware::Vapi::l10n::Runtime::get_runtime_message_factory();
my $msg = $message_factory->get_message(
id => 'Com.Vmware.Vapi.Bindings.StubFactory.ModuleNotLoaded',
args => [$serviceName]
);
throw ModuleNotLoaded( $msg->str() );
}
#
# The following code is dead code for now. If we decide to support partial name search, then we
# enable the following code
#
my %hash = %INC;
my $key;
my $value;
while ( ( $key, $value ) = each %INC ) {
if ( $key =~ /Com\/Vmware*/ ) {
$key =~ s/\
$key =~ s/.pm/::$serviceName/g;
if ( $key->can('new')
&& $key->isa('Com::Vmware::Vapi::Bindings::VapiInterface') )
{
$serviceName = $key;
}
}
}
$stub = $serviceName->new(
'api_provider' => $self->{api_provider},
'stub_config' => $stubConfig
);
return $stub;
}