package Java::JCR::Base; use strict; use warnings; use Inline::Java qw( cast ); use Scalar::Util qw( blessed ); our $VERSION = '0.02'; =head1 NAME Java::JCR::Base - Base class for all JCR wrappers =head1 DESCRIPTION This class is used internally only and provides no functionality beyond what is required to make the Perl wrappers for the JCR library work. =cut sub _process_args { my @args; for my $arg (@_) { if (blessed $arg && $arg->isa('Java::JCR::Base')) { push @args, $arg->{obj}; } else { push @args, $arg; } } return @args; } sub _process_return { my $result = shift; my $java_package = shift; my $perl_package = shift; # Null is null if (!defined $result) { return $result; } # Process array results elsif ($java_package =~ /^Array:(.*)$/) { my $real_package = $1; return [ map { bless { obj => cast($real_package, $_) }, $perl_package } @{ $result } ]; } # Process scalar results else { return bless { obj => cast($java_package, $result), }, $perl_package; } } =head1 SEE ALSO L =head1 AUTHOR Andrew Sterling Hanenkamp, Ehanenkamp@cpan.orgE =head1 LICENSE AND COPYRIGHT Copyright 2006 Andrew Sterling Hanenkamp Ehanenkamp@cpan.orgE. All Rights Reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See L. This program 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. =cut 1