Apache-DAV
view release on metacpan or search on metacpan
xs/Apache/DAV/Resource/Resource.pm view on Meta::CPAN
#
# /*
# * *********** WARNING **************
# * This file generated by Apache::DAV::WrapXS/0.01
# * Any changes made here will be lost
# * ***********************************
# * 1. /opt/perl5.6.1/lib/site_perl/5.6.1/ExtUtils/XSBuilder/WrapXS.pm:38
# * 2. /opt/perl5.6.1/lib/site_perl/5.6.1/ExtUtils/XSBuilder/WrapXS.pm:1898
# * 3. xsbuilder/xs_generate.pl:6
# */
#
package Apache::DAV::Resource;
require DynaLoader ;
use strict ;
use vars qw{$VERSION @ISA} ;
push @ISA, 'DynaLoader' ;
$VERSION = '0.01';
bootstrap Apache::DAV::Resource $VERSION ;
use Apache::Array ;
use Apache::DAV;
use Apache::DAV::PropsResult;
use Apache::DAV::XMLDoc;
use Apache::DAV::XMLAttr;
use Apache::DAV::XMLElem;
use Apache::DAV::Text;
use Apache::DAV::TextHeader;
use Apache::DAV::HooksLocks;
use Apache::DAV::LockDB;
use Apache::DAV::Error;
use vars qw{@obj} ;
sub print_tag
{
my ($e) = @_ ;
print '<', $e -> name, '>', "\n" ;
my $t = $e -> first_cdata ;
if ($t)
{
my $txt = $t -> first ;
while ($txt)
{
print $txt -> text, "\n" ;
$txt = $txt -> next ;
}
}
print_tags ($e -> first_child) ;
print '</', $e -> name, '>', "\n" ;
}
sub print_tags
{
my ($e) = @_ ;
while ($e)
{
print_tag ($e) ;
$e = $e -> next ;
}
}
sub create_xml_prop
{
my ($r, $set, $remove) = @_ ;
my $nsid = 0 ;
my %namespaces ;
my @set ;
my @remove ;
#my @obj ;
@obj = () ;
my $setprop ;
my $setelem ;
my $removeprop ;
my $removeelem ;
$namespaces{'DAV:'} = $nsid++ ;
if (keys %$set)
{
$setprop = Apache::DAV::XMLElem -> new ({name => 'prop'}) ;
foreach (keys %$set)
{
my ($ns, $name) ;
($ns, $name) = ('DAV:', $_) if (!(($ns, $name) = /^(.*):(.*?)$/)) ;
$ns = 'DAV:' if ($ns eq 'DAV' || !$ns) ;
$name = '???' if (!$name) ;
$namespaces{$ns} = $nsid++ if (!exists $namespaces{$ns}) ;
my $text = Apache::DAV::Text -> new ({ text => $set -> {$_} });
my $elem = Apache::DAV::XMLElem -> new ({name => $name, ns => $namespaces{$ns},}) ;
my $header = $elem -> first_cdata;
$header->first($text);
$header->last ($text);
$set[-1] -> next($elem) if (@set) ;
$elem->parent($setprop);
push @set, $elem ;
push @obj, $elem, $text ;
}
$setprop -> first_child($set[0]) ;
$setprop -> last_child($set[-1]) ;
$setelem = Apache::DAV::XMLElem -> new ({name => 'set',
first_child => $setprop,
last_child => $setprop,
});
$setprop->parent($setelem);
push @obj, $setprop, $setelem ;
}
if (keys %$remove)
{
$removeprop = Apache::DAV::XMLElem -> new ({name => 'prop'}) ;
foreach (keys %$remove)
{
my ($ns, $name) ;
($ns, $name) = ('DAV:', $_) if (!(($ns, $name) = /^(.*):(.*?)$/)) ;
$ns = 'DAV:' if ($ns eq 'DAV' || !$ns) ;
$name = '???' if (!$name) ;
$namespaces{$ns} = $nsid++ if (!exists $namespaces{$ns}) ;
my $elem = Apache::DAV::XMLElem -> new ({name => $name, ns => $namespaces{$ns},}) ;
$remove[-1] -> next($elem) if (@remove) ;
$elem->parent($removeprop);
push @remove, $elem ;
push @obj, $elem ;
}
$removeprop -> first_child($remove[0]) ;
$removeprop -> last_child($remove[-1]) ;
$removeelem = Apache::DAV::XMLElem -> new ({name => 'remove',
first_child => $removeprop,
last_child => $removeprop,
});
$removeprop->parent($removeelem);
push @obj, $removeprop, $removeelem ;
#print "remove: " ; print_tags ($removeelem) ;
}
my $xml_elem_propertyupdate ;
if ($setelem || $removeelem)
{
$xml_elem_propertyupdate = Apache::DAV::XMLElem -> new ({name => 'propertyupdate',
first_child => $setelem || $removeelem,
last_child => $removeelem || $setelem,
});
push @obj, $xml_elem_propertyupdate ;
$setelem->parent($xml_elem_propertyupdate) if ($setelem) ;
$removeelem->parent($xml_elem_propertyupdate) if ($removeelem) ;
$setelem->next($removeelem) if ($removeelem && $setelem) ;
( run in 1.186 second using v1.01-cache-2.11-cpan-39bf76dae61 )