home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / share / perl5 / XML / XPath / Boolean.pm next >
Encoding:
Perl POD Document  |  2000-07-03  |  1.2 KB  |  74 lines

  1. # $Id: Boolean.pm,v 1.7 2000/07/03 08:54:47 matt Exp $
  2.  
  3. package XML::XPath::Boolean;
  4. use XML::XPath::Number;
  5. use XML::XPath::Literal;
  6. use strict;
  7.  
  8. use overload
  9.         '""' => \&value,
  10.         '<=>' => \&cmp;
  11.  
  12. sub True {
  13.     my $class = shift;
  14.     my $val = 1;
  15.     bless \$val, $class;
  16. }
  17.  
  18. sub False {
  19.     my $class = shift;
  20.     my $val = 0;
  21.     bless \$val, $class;
  22. }
  23.  
  24. sub value {
  25.     my $self = shift;
  26.     $$self;
  27. }
  28.  
  29. sub cmp {
  30.     my $self = shift;
  31.     my ($other, $swap) = @_;
  32.     if ($swap) {
  33.         return $other <=> $$self;
  34.     }
  35.     return $$self <=> $other;
  36. }
  37.  
  38. sub to_number { XML::XPath::Number->new($_[0]->value); }
  39. sub to_boolean { $_[0]; }
  40. sub to_literal { XML::XPath::Literal->new($_[0]->value ? "true" : "false"); }
  41.  
  42. sub string_value { return $_[0]->to_literal->value; }
  43.  
  44. 1;
  45. __END__
  46.  
  47. =head1 NAME
  48.  
  49. XML::XPath::Boolean - Boolean true/false values
  50.  
  51. =head1 DESCRIPTION
  52.  
  53. XML::XPath::Boolean objects implement simple boolean true/false objects.
  54.  
  55. =head1 API
  56.  
  57. =head2 XML::XPath::Boolean->True
  58.  
  59. Creates a new Boolean object with a true value.
  60.  
  61. =head2 XML::XPath::Boolean->False
  62.  
  63. Creates a new Boolean object with a false value.
  64.  
  65. =head2 value()
  66.  
  67. Returns true or false.
  68.  
  69. =head2 to_literal()
  70.  
  71. Returns the string "true" or "false".
  72.  
  73. =cut
  74.