package SQL::Statement::Placeholder; ###################################################################### # # This module is copyright (c), 2009-2017 by Jens Rehsack. # All rights reserved. # # It may be freely distributed under the same terms as Perl itself. # See below for help and copyright information (search for SYNOPSIS). # ###################################################################### use strict; use warnings FATAL => "all"; use vars qw(@ISA); use Carp (); use SQL::Statement::Term (); our $VERSION = '1.412'; @ISA = qw(SQL::Statement::Term); =pod =head1 NAME SQL::Statement::Placeholder - implements getting the next placeholder value =head1 SYNOPSIS # create an placeholder term with an SQL::Statement object as owner # and the $argnum of the placeholder. my $term = SQL::Statement::Placeholder->new( $owner, $argnum ); # access the result of that operation $term->value( $eval ); =head1 DESCRIPTION SQL::Statement::Placeholder implements getting the next placeholder value. Accessing a specific placeholder is currently unimplemented and not tested. =head1 INHERITANCE SQL::Statement::Placeholder ISA SQL::Statement::Term =head1 METHODS =head2 new Instantiates a new C instance. =head2 value Returns the value of the next placeholder. =cut sub new { my ( $class, $owner, $argnum ) = @_; my $self = $class->SUPER::new($owner); $self->{ARGNUM} = $argnum; return $self; } sub value($) { # from S::S->get_row_value(): # my $val = ( # $self->{join} # or !$eval # or ref($eval) =~ /Statement$/ # ) ? $self->params($arg_num) : $eval->param($arg_num); # let's see where us will lead taking from params every time # XXX later: return $_[0]->{OWNER}->{params}->[$_[0]->{ARGNUM}]; return $_[0]->{OWNER}->{params}->[ $_[0]->{OWNER}->{argnum}++ ]; } =head1 AUTHOR AND COPYRIGHT Copyright (c) 2009-2017 by Jens Rehsack: rehsackATcpan.org All rights reserved. You may distribute this module under the terms of either the GNU General Public License or the Artistic License, as specified in the Perl README file. =cut 1;