shell bypass 403
# RDF::Query::Expression::Alias
# -----------------------------------------------------------------------------
=head1 NAME
RDF::Query::Expression::Alias - Class for aliasing expressions with variable names
=head1 VERSION
This document describes RDF::Query::Expression::Alias version 2.918.
=cut
package RDF::Query::Expression::Alias;
use strict;
use warnings;
no warnings 'redefine';
use base qw(RDF::Query::Expression);
use Data::Dumper;
use Scalar::Util qw(blessed);
use Carp qw(carp croak confess);
######################################################################
our ($VERSION);
BEGIN {
$VERSION = '2.918';
}
######################################################################
=head1 METHODS
Beyond the methods documented below, this class inherits methods from the
L<RDF::Query::Expression> class.
=over 4
=cut
=item C<< name >>
Returns the variable name of the aliased expression.
=cut
sub name {
my $self = shift;
return $self->alias->name;
}
=item C<< alias >>
Returns the variable object of the aliased expression.
=cut
sub alias {
my $self = shift;
my ($alias) = $self->operands;
return $alias;
}
=item C<< expression >>
Returns the expression object of the aliased expression.
=cut
sub expression {
my $self = shift;
return ($self->operands)[1];
}
=item C<< sse >>
Returns the SSE string for this algebra expression.
=cut
sub sse {
my $self = shift;
my $context = shift;
return sprintf(
'(alias ?%s %s)',
$self->name,
$self->expression->sse( $context ),
);
}
=item C<< as_sparql >>
Returns the SPARQL string for this algebra expression.
=cut
sub as_sparql {
my $self = shift;
my $context = shift;
my $indent = shift;
my $alias = $self->alias;
my $expr = $self->expression;
return sprintf("(%s AS %s)", $expr->as_sparql, $alias->as_sparql);
}
=item C<< evaluate ( $query, \%bound, $context ) >>
Evaluates the expression using the supplied bound variables.
Will return a RDF::Query::Node object.
=cut
sub evaluate {
my $self = shift;
my $query = shift;
my $bound = shift;
my $ctx = shift;
my $expr = $self->expression;
my $value = $query->var_or_expr_value( $bound, $expr, $ctx );
return $value;
}
=item C<< as_hash >>
Returns the alias as a nested set of plain data structures (no objects).
=cut
sub as_hash {
my $self = shift;
my $context = shift;
return {
type => 'alias',
alias => $self->alias->as_hash,
expression => $self->expression->as_hash,
};
}
1;
__END__
=back
=head1 AUTHOR
Gregory Todd Williams <gwilliams@cpan.org>
=cut