/usr/share/perl5/OpenOffice/OODoc/Manifest.pm is in libopenoffice-oodoc-perl 2.125-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 | #-----------------------------------------------------------------------------
#
# $Id : Manifest.pm 2.007 2010-07-07 JMG$
#
# Created and maintained by Jean-Marie Gouarne
# Copyright 2008 by Genicorp, S.A. (www.genicorp.com)
#
#-----------------------------------------------------------------------------
package OpenOffice::OODoc::Manifest;
use 5.008_000;
use strict;
our $VERSION = '2.007';
use OpenOffice::OODoc::XPath 2.237;
our @ISA = qw ( OpenOffice::OODoc::XPath );
#-----------------------------------------------------------------------------
# constructor : calling odfXPath constructor with 'manifest' as member choice
sub new
{
my $caller = shift;
my $class = ref ($caller) || $caller;
my %options =
(
part => 'META-INF/manifest.xml',
element => 'manifest:manifest',
body_path => '/manifest:manifest',
@_
);
my $object = $class->SUPER::new(%options);
return $object ?
bless $object, $class :
undef;
}
#-----------------------------------------------------------------------------
# override the basic getBody() method; here the body is the root
sub getBody
{
my $self = shift;
return $self->getRootElement;
}
#-----------------------------------------------------------------------------
# retrieving an entry by content
sub getEntry
{
my ($self, $entry) = @_;
return $self->selectElementByAttribute
('manifest:file-entry', 'manifest:full-path' => $entry);
}
#-----------------------------------------------------------------------------
# get the entry describing the OpenOffice.org mime type of the document
sub getMainEntry
{
my $self = shift;
return $self->getEntry('/');
}
#-----------------------------------------------------------------------------
# set the entry describing the OpenOffice.org mime type of the document
sub setMainEntry
{
my $self = shift;
return $self->setEntry("/", @_);
}
#-----------------------------------------------------------------------------
# get the media type of a given entry
sub getType
{
my ($self, $entry) = @_;
my $element = $self->getEntry($entry);
return $element ?
$self->getAttribute($element, 'manifest:media-type') :
undef;
}
#-----------------------------------------------------------------------------
# get the media type of the main entry
sub getMainType
{
my $self = shift;
return $self->getType("/");
}
#-----------------------------------------------------------------------------
# remove an entry
sub removeEntry
{
my ($self, $entry) = @_;
my $element = $self->getEntry($entry);
return $element ?
$self->removeElement($element) :
undef;
}
#-----------------------------------------------------------------------------
# create a new entry
sub setEntry
{
my $self = shift;
my $entry = shift;
my $type = shift || '';
my $element = $self->getEntry($entry);
unless ($element)
{
$element = $self->appendElement
(
$self->getBody(),
'manifest:file-entry'
);
$self->setAttribute($element, 'manifest:media-type', $type);
$self->setAttribute($element, 'manifest:full-path', $entry);
}
else
{
$self->setAttribute($element, 'manifest:media-type', $type);
}
return $element;
}
#-----------------------------------------------------------------------------
1;
|