RDF::Query::ExecutionContext - Query execution context


RDF-Query documentation Contained in the RDF-Query distribution.

Index


Code Index:

NAME

Top

RDF::Query::ExecutionContext - Query execution context

VERSION

Top

This document describes RDF::Query::ExecutionContext version 2.907.

METHODS

Top

new ( model => $model, query => $query, bound => \%bound )
copy ( %new_args )
pushstack
popstack
model
query
options
bound
base_uri
base

Deprecated, use base_uri.

ns
logger
costmodel
requested_variables
optimize
strict_errors
optimistic_threshold_time

AUTHOR

Top

 Gregory Todd Williams <gwilliams@cpan.org>


RDF-Query documentation Contained in the RDF-Query distribution.
# RDF::Query::ExecutionContext
# -----------------------------------------------------------------------------

package RDF::Query::ExecutionContext;

use strict;
use warnings;

######################################################################

our ($VERSION);
BEGIN {
	$VERSION	= '2.907';
}

######################################################################

sub new {
	my $class	= shift;
	my %args	= @_;
	my $self	= bless( [{ %args }], $class );
	return $self;
}

sub copy {
	my $self	= shift;
	my %args	= @_;
	my $class	= ref($self);
	my @data;
	foreach my $i (0 .. $#{ $self }) {
		push(@data, { %{ $self->[$i] } });
	}
	@{ $data[0] }{ keys %args }	= values %args;
	return bless( \@data, $class );
}

sub pushstack {
	my $self	= shift;
	unshift( @{ $self }, {} );
}

sub popstack {
	my $self	= shift;
	shift( @{ $self } );
}

sub model {
	my $self	= shift;
	my $model	= $self->_get_value( 'model', @_ );
	unless ($model) {
		$model	= RDF::Trine::Model->temporary_model;
	}
	return $model;
}

sub query {
	my $self	= shift;
	return $self->_get_value( 'query', @_ );
}

sub options {
	my $self	= shift;
	return $self->_get_value( 'options', @_ );
}

sub bound {
	my $self	= shift;
	return $self->_get_value( 'bound', @_ ) || {};
}

sub base_uri {
	my $self	= shift;
	return $self->_get_value( 'base_uri', @_ ) || {};
}

sub base {
	my $self	= shift;
	warn "The RDF::QueryExecutionContext base method is deprecated in favor of base_uri";
	return $self->base_uri(@_);
}

sub ns {
	my $self	= shift;
	return $self->_get_value( 'ns', @_ ) || {};
}

sub logger {
	my $self	= shift;
	return $self->_get_value( 'logger', @_ );
}

sub costmodel {
	my $self	= shift;
	return $self->_get_value( 'costmodel', @_ );
}

sub requested_variables {
	my $self	= shift;
	return $self->_get_value( 'requested_variables', @_ );
}

sub optimize {
	my $self	= shift;
	return $self->_get_value( 'optimize', @_ );
}

sub strict_errors {
	my $self	= shift;
	return $self->_get_value( 'strict_errors', @_ );
}

sub optimistic_threshold_time {
	my $self	= shift;
	return $self->_get_value( 'optimistic_threshold_time', @_ );
}

sub _get_value {
	my $self	= shift;
	my $key		= shift;
	if (@_) {
		$self->[0]{ $key }	= shift;
	}
	foreach my $i (0 .. $#{ $self }) {
		if (exists($self->[ $i ]{ $key })) {
			return $self->[ $i ]{ $key };
		}
	}
	return;
}

1;

__END__