# ------------------------------------------------------------------------------------- # TripleStore::Update # ------------------------------------------------------------------------------------- # # Author : Jean-Michel Hiver (jhiver@mkdoc.com). # Version : $Id: Update.pm,v 1.1.1.1 2003/01/13 18:20:39 jhiver Exp $ # # Description: # # ------------------------------------------------------------------------------------- package TripleStore::Update; use strict; use warnings; use Carp; use base qw /TripleStore::Mixin::Class/; # $self->set_subject ($subject); # $self->set_predicate ($predicate); # $self->set_object ($subject); BEGIN { no strict 'refs'; foreach my $method_name (qw /subject predicate object/) { my $set_name = "set_$method_name"; my $del_name = "del_$method_name"; my $exists_name = "exists_$method_name"; *$set_name = sub { my $self = shift; $self->{$method_name} = shift; }; *$del_name = sub { my $self = shift; delete $self->{$method_name}; }; *$exists_name = sub { my $self = shift; exists $self->{$method_name}; }; *$method_name = sub { my $self = shift; return $self->{$method_name}; }; } } ## # $class->new (%args); # -------------------- # Instanciates a new TripleStore::Update ## sub new { my $class = shift->class; return bless { @_ }, $class; } sub bound_values { my $self = shift; my @res = (); push @res, $self->subject() if ($self->exists_subject()); push @res, $self->predicate() if ($self->exists_predicate()); push @res, $self->object() if ($self->exists_object()); @res = map { do { no warnings; my $x = $_; my $y = 0 + $_; "$x", "$y"; }; } @res; return wantarray ? @res : \@res; } 1;