# -------------------------------------------------------------------------------------
# TripleStore::Query
# -------------------------------------------------------------------------------------
#
# Author : Jean-Michel Hiver (jhiver@mkdoc.com).
# Version : $Id: Query.pm,v 1.1.1.1 2003/01/13 18:20:39 jhiver Exp $
#
# Description:
#
# -------------------------------------------------------------------------------------
package TripleStore::Query;
use strict;
use warnings;
use Carp;
use TripleStore::Query::Variable;
use TripleStore::Query::Criterion;
use TripleStore::Query::Clause;
use TripleStore::Query::And;
use TripleStore::Query::Or;
use TripleStore::Query::Limit;
use TripleStore::Query::Sort;
use TripleStore::Query::Sort::NumericAscending;
use TripleStore::Query::Sort::NumericDescending;
use TripleStore::Query::Sort::StringAscending;
use TripleStore::Query::Sort::StringDescending;
use base qw /TripleStore::Mixin::Class
TripleStore::Mixin::Unimplemented/;
use overload (
'*' => \&_boolean_and,
'+' => \&_boolean_or,
'&' => \&_boolean_and,
'|' => \&_boolean_or,
'""' => sub { return shift() },
);
##
# $self->_boolean_and();
# ----------------------
# Returns a boolean AND of the queries.
##
sub _boolean_and
{
my $self = shift;
return new TripleStore::Query::And ($self, map { ref $_ ? $_ : () } @_);
}
##
# $self->_boolean_or();
# ----------------------
# Returns a boolean OR of the queries.
##
sub _boolean_or
{
my $self = shift;
return new TripleStore::Query::Or ($self, map { ref $_ ? $_ : () } @_);
}
##
# $self->list_subqueries();
# -------------------------
# Lists all the subqueries which are underneath that
# TripleStore::Query object.
##
sub list_subqueries
{
my $class = shift->class;
return $class->_unimplemented();
}
##
# $self->list_clauses();
# ----------------------
# Lists all the clauses which are underneath that
# TripleStore::Query object.
##
sub list_clauses
{
my $class = shift->class;
return $class->_unimplemented();
}
##
# $self->list_variables();
# ------------------------
# Lists all the variables which are underneath that
# TripleStore::Query object.
##
sub list_variables
{
my $class = shift->class;
return $class->_unimplemented();
}
1;
__END__