1# $Id: Boolean.pm,v 1.1.1.2 2007/10/10 23:04:14 ahuda Exp $ 2# Copyright 2001-2002, AxKit.com Ltd. All rights reserved. 3 4package XML::LibXML::Boolean; 5use XML::LibXML::Number; 6use XML::LibXML::Literal; 7use strict; 8 9use vars qw ($VERSION); 10 11$VERSION = "1.65"; # VERSION TEMPLATE: DO NOT CHANGE 12 13use overload 14 '""' => \&value, 15 '<=>' => \&cmp; 16 17sub new { 18 my $class = shift; 19 my ($param) = @_; 20 my $val = $param ? 1 : 0; 21 bless \$val, $class; 22} 23 24sub True { 25 my $class = shift; 26 my $val = 1; 27 bless \$val, $class; 28} 29 30sub False { 31 my $class = shift; 32 my $val = 0; 33 bless \$val, $class; 34} 35 36sub value { 37 my $self = shift; 38 $$self; 39} 40 41sub cmp { 42 my $self = shift; 43 my ($other, $swap) = @_; 44 if ($swap) { 45 return $other <=> $$self; 46 } 47 return $$self <=> $other; 48} 49 50sub to_number { XML::LibXML::Number->new($_[0]->value); } 51sub to_boolean { $_[0]; } 52sub to_literal { XML::LibXML::Literal->new($_[0]->value ? "true" : "false"); } 53 54sub string_value { return $_[0]->to_literal->value; } 55 561; 57__END__ 58 59=head1 NAME 60 61XML::LibXML::Boolean - Boolean true/false values 62 63=head1 DESCRIPTION 64 65XML::LibXML::Boolean objects implement simple boolean true/false objects. 66 67=head1 API 68 69=head2 XML::LibXML::Boolean->True 70 71Creates a new Boolean object with a true value. 72 73=head2 XML::LibXML::Boolean->False 74 75Creates a new Boolean object with a false value. 76 77=head2 value() 78 79Returns true or false. 80 81=head2 to_literal() 82 83Returns the string "true" or "false". 84 85=cut 86