Ambrosia

 view release on metacpan or  search on metacpan

lib/Ambrosia/DataProvider/BaseDriver.pm  view on Meta::CPAN

sub reset
{
    my $self = shift;
    $self->_cql_query = [];
    $self->_cache = new Ambrosia::core::Nil();
    return $self;
}

sub next : Abstract {}

sub count : Abstract {}

####### CQL #########
sub WHAT()     { 0 }
sub SELECT()   { 1 }
sub INSERT()   { 2 }
sub UPDATE()   { 3 }
sub DELETE()   { 4 }
sub SOURCE()   { 5 }
sub PREDICATE() { 6 }
sub LIMIT()    { 7 }
sub ORDER_BY() { 8 }
sub NO_QUOTE() { 9 }
sub JOIN()     { 10 }
sub ON()       { 11 }
sub UNIQ()     { 12 }
sub UNION()    { 13 }
#####################
sub get_what      { $_[0]->_cql_query->[&WHAT] }
sub get_select    { $_[0]->_cql_query->[&SELECT] }
sub get_insert    { $_[0]->_cql_query->[&INSERT] }
sub get_update    { $_[0]->_cql_query->[&UPDATE] }
sub get_delete    { $_[0]->_cql_query->[&DELETE] }
sub get_source    { $_[0]->_cql_query->[&SOURCE] }
sub get_predicate { $_[0]->_cql_query->[&PREDICATE] }
sub get_limit     { $_[0]->_cql_query->[&LIMIT] }
sub get_order_by  { $_[0]->_cql_query->[&ORDER_BY] }
sub get_no_quote  { $_[0]->_cql_query->[&NO_QUOTE] }
sub get_join      { $_[0]->_cql_query->[&JOIN] }
sub get_on        { $_[0]->_cql_query->[&ON] }
sub get_uniq      { $_[0]->_cql_query->[&UNIQ] }
sub get_union     { $_[0]->_cql_query->[&UNION] }

sub what
{
    my $self = shift;
    $self->_cql_query->[&WHAT] = [@_];
    return $self;
}

sub select
{
    return $_[0];
}

sub insert
{
    return $_[0];
}

sub update
{
    return $_[0];
}

sub delete
{
    return $_[0];
}

sub source
{
    my $self = shift;
    $self->_cql_query->[&SOURCE] = ref $_[0] ? $_[0] : [@_];
    return $self;
}

sub from
{
    goto &source;
}

sub into
{
    goto &source;
}

sub predicate
{
    my $self = shift;
    push @{$self->_cql_query->[&PREDICATE]}, [@_] if @_;
    return $self;
}

sub where
{
    goto &predicate;
}

sub limit
{
    my $self = shift;

    if ( $_[0] )
    {
        $self->_cql_query->[&LIMIT]->[0] = $_[0];
    }
    else
    {
        delete $self->_cql_query->[&LIMIT];
    }
    return $self;
}

sub skip
{
    my $self = shift;
    if ( @_ )
    {
        $self->_cql_query->[&LIMIT]->[1] = shift;
    }

 view all matches for this distribution
 view release on metacpan -  search on metacpan

( run in 0.415 second using v1.00-cache-2.02-grep-82fe00e-cpan-1310916c57ae )