| 1 |
package Message::DOM::DOMImplementation; |
package Message::DOM::DOMImplementation; |
| 2 |
use strict; |
use strict; |
| 3 |
our $VERSION=do{my @r=(q$Revision$=~/\d+/g);sprintf "%d."."%02d" x $#r,@r}; |
our $VERSION=do{my @r=(q$Revision$=~/\d+/g);sprintf "%d."."%02d" x $#r,@r}; |
| 4 |
push our @ISA, 'Message::IF::DOMImplementation'; |
push our @ISA, 'Message::IF::DOMImplementation', |
| 5 |
require Message::DOM::DOMException; |
'Message::IF::AtomDOMImplementation'; |
| 6 |
|
|
| 7 |
sub ____new ($) { |
sub ____new ($) { |
| 8 |
my $self = bless {}, shift; |
my $self = bless {}, shift; |
| 16 |
return if $method_name eq 'DESTROY'; |
return if $method_name eq 'DESTROY'; |
| 17 |
|
|
| 18 |
my $module_name = { |
my $module_name = { |
| 19 |
create_document => 'Message::DOM::DOMDocument', ## TODO: New module name |
create_atom_entry_document => 'Message::DOM::Atom::AtomElement', |
| 20 |
|
create_atom_feed_document => 'Message::DOM::Atom::AtomElement', |
| 21 |
|
create_document => 'Message::DOM::Document', |
| 22 |
create_document_type => 'Message::DOM::DocumentType', |
create_document_type => 'Message::DOM::DocumentType', |
|
create_mc_decode_handler => 'Message::Charset::Encode', |
|
| 23 |
create_uri_reference => 'Message::URI::URIReference', |
create_uri_reference => 'Message::URI::URIReference', |
|
get_charset_name_from_uri => 'Message::Charset::Encode', |
|
|
get_uri_from_charset_name => 'Message::Charset::Encode', |
|
| 24 |
}->{$method_name}; |
}->{$method_name}; |
| 25 |
if ($module_name) { |
if ($module_name) { |
| 26 |
eval qq{ require $module_name } or die $@; |
eval qq{ require $module_name } or die $@; |
| 32 |
} |
} |
| 33 |
} # AUTOLOAD |
} # AUTOLOAD |
| 34 |
|
|
|
## MCImplementation |
|
|
sub create_mc_decode_handler; |
|
|
sub get_charset_name_from_uri; |
|
|
sub get_uri_from_charset_name; |
|
| 35 |
## URIImplementation |
## URIImplementation |
| 36 |
sub create_uri_reference ($$); |
sub create_uri_reference ($$); |
| 37 |
|
|
| 40 |
$HasFeature->{core}->{'1.0'} = 1; |
$HasFeature->{core}->{'1.0'} = 1; |
| 41 |
$HasFeature->{core}->{'2.0'} = 1; |
$HasFeature->{core}->{'2.0'} = 1; |
| 42 |
$HasFeature->{core}->{'3.0'} = 1; |
$HasFeature->{core}->{'3.0'} = 1; |
| 43 |
|
$HasFeature->{events}->{''} = 1; |
| 44 |
|
$HasFeature->{events}->{'3.0'} = 1; ## TODO: 2.0? |
| 45 |
|
$HasFeature->{html}->{''} = 1; |
| 46 |
|
$HasFeature->{html}->{'5.0'} = 1; ## TODO: 1.0, 2.0 |
| 47 |
|
$HasFeature->{xhtml}->{''} = 1; |
| 48 |
|
$HasFeature->{xhtml}->{'5.0'} = 1; ## TODO: 2.0 |
| 49 |
|
$HasFeature->{traversal}->{''} = 1; |
| 50 |
|
$HasFeature->{traversal}->{'2.0'} = 1; |
| 51 |
$HasFeature->{xml}->{''} = 1; |
$HasFeature->{xml}->{''} = 1; |
| 52 |
$HasFeature->{xml}->{'1.0'} = 1; |
$HasFeature->{xml}->{'1.0'} = 1; |
| 53 |
$HasFeature->{xml}->{'2.0'} = 1; |
$HasFeature->{xml}->{'2.0'} = 1; |
| 55 |
$HasFeature->{xmlversion}->{''} = 1; |
$HasFeature->{xmlversion}->{''} = 1; |
| 56 |
$HasFeature->{xmlversion}->{'1.0'} = 1; |
$HasFeature->{xmlversion}->{'1.0'} = 1; |
| 57 |
$HasFeature->{xmlversion}->{'1.1'} = 1; |
$HasFeature->{xmlversion}->{'1.1'} = 1; |
| 58 |
|
$HasFeature->{q<http://suika.fam.cx/www/2006/feature/atom>}->{''} = 1; |
| 59 |
|
$HasFeature->{q<http://suika.fam.cx/www/2006/feature/atom>}->{'1.0'} = 1; |
| 60 |
|
$HasFeature->{q<http://suika.fam.cx/www/2006/feature/atomthreading>}->{''} = 1; |
| 61 |
|
$HasFeature->{q<http://suika.fam.cx/www/2006/feature/atomthreading>}->{'1.0'} = 1; |
| 62 |
$HasFeature->{q<http://suika.fam.cx/www/2006/feature/min>}->{''} = 1; |
$HasFeature->{q<http://suika.fam.cx/www/2006/feature/min>}->{''} = 1; |
| 63 |
$HasFeature->{q<http://suika.fam.cx/www/2006/feature/min>}->{'3.0'} = 1; |
$HasFeature->{q<http://suika.fam.cx/www/2006/feature/min>}->{'3.0'} = 1; |
| 64 |
|
$HasFeature->{q<http://suika.fam.cx/www/2006/feature/uri>}->{''} = 1; |
| 65 |
|
$HasFeature->{q<http://suika.fam.cx/www/2006/feature/uri>}->{'4.0'} = 1; |
| 66 |
$HasFeature->{q<http://suika.fam.cx/~wakaba/archive/2004/8/18/manakai-dom#minimum>}->{''} = 1; |
$HasFeature->{q<http://suika.fam.cx/~wakaba/archive/2004/8/18/manakai-dom#minimum>}->{''} = 1; |
| 67 |
$HasFeature->{q<http://suika.fam.cx/~wakaba/archive/2004/8/18/manakai-dom#minimum>}->{'3.0'} = 1; |
$HasFeature->{q<http://suika.fam.cx/~wakaba/archive/2004/8/18/manakai-dom#minimum>}->{'3.0'} = 1; |
| 68 |
$HasFeature->{q<http://suika.fam.cx/www/2006/feature/xdoctype>}->{''} = 1; |
$HasFeature->{q<http://suika.fam.cx/www/2006/feature/xdoctype>}->{''} = 1; |
| 95 |
return $HasFeature->{$feature}->{defined $_[2] ? $_[2] : ''}; |
return $HasFeature->{$feature}->{defined $_[2] ? $_[2] : ''}; |
| 96 |
} # has_feature |
} # has_feature |
| 97 |
|
|
| 98 |
|
## |AtomDOMImplementation| methods |
| 99 |
|
|
| 100 |
|
sub create_atom_entry_document ($$;$$); |
| 101 |
|
|
| 102 |
|
sub create_atom_feed_document ($$;$$); |
| 103 |
|
|
| 104 |
package Message::IF::DOMImplementation; |
package Message::IF::DOMImplementation; |
| 105 |
|
package Message::IF::AtomDOMImplementation; |
| 106 |
|
|
| 107 |
=head1 LICENSE |
=head1 LICENSE |
| 108 |
|
|