package XML::XPath::Variable;
use strict;
sub new {
my $class = shift;
my ($pp, $name) = @_;
bless { name => $name, path_parser => $pp }, $class;
}
sub as_string {
my $self = shift;
'\$' . $self->{name};
}
sub as_xml {
my $self = shift;
return "<Variable>" . $self->{name} . "</Variable>\n";
}
sub get_value {
my $self = shift;
$self->{path_parser}->get_var($self->{name});
}
sub set_value {
my $self = shift;
my ($val) = @_;
$self->{path_parser}->set_var($self->{name}, $val);
}
sub evaluate {
my $self = shift;
my $val = $self->get_value;
return $val;
}
1;