ODF-lpOD

 view release on metacpan or  search on metacpan

lib/ODF/lpOD/Document.pm  view on Meta::CPAN

sub     set_user_fields
        {
        my $self	= shift;
        foreach my $f (@_)
                {
                $self->set_user_field($f->{name}, $f->{value}, $f->{type});
                }
        return $self->get_user_fields;
        }

#-----------------------------------------------------------------------------

our     $AUTOLOAD;
sub     AUTOLOAD
        {
        my $self        = shift;
        $AUTOLOAD       =~ /.*:(.*)/;
        my $method      = $1;
        $method =~ /^([gs]et)_(.*)/;
        my $action      = $1;
        my $object      = $META{$2};

        unless ($action && $object)
                {
                alert "Unsupported method $method";
                return undef;
                }

        my $e = $self->get_element($object);
        if (!defined $action)
                {
                alert "Unsupported action";
                }
        elsif ($action eq 'get')
                {
                return $e ? $e->get_text() : undef;
                }
        elsif ($action eq 'set')
                {
                unless ($e)
                        {
                        my $body = $self->get_body;
                        $e = $body->append_element($object);
                        }
                my $v = shift;
                if ($object =~ /date$/)
                        {
                        unless ($v)
                                {
                                $v = iso_date;
                                }
                        else
                                {
                                $v = check_odf_value($v, 'date');
                                }
                        }
                elsif ($object =~ /creator$/)
                        {
                        $v      =
                                $v =    (scalar getlogin())     ||
                                        (scalar getpwuid($<))   ||
                                        $<
                                unless $v;
                        }
                elsif ($object =~ /generator$/)
                        {
                        $v = $0 || $$   unless $v;
                        }
                elsif ($object =~ /cycles$/)
                        {
                        unless ($v)
                                {
                                $v = $e->get_text() || 0;
                                $v++;
                                }
                        }
                return $e->set_text($v);
                }
        return undef;
        }

#-----------------------------------------------------------------------------

sub     store
        {
        my $self        = shift;
        my %opt         =
                (
                storage     => { compress => FALSE, string => TRUE },
                @_
                );
        return $self->SUPER::store(%opt);
        }

#=============================================================================
package ODF::lpOD::Settings;
use base 'ODF::lpOD::XMLPart';
our $VERSION    = '1.000';
use constant PACKAGE_DATE => '2010-12-24T13:52:14';
use ODF::lpOD::Common;
#-----------------------------------------------------------------------------

sub     post_load       {}

#=============================================================================
package ODF::lpOD::Manifest;
use base 'ODF::lpOD::XMLPart';
our $VERSION    = '1.001';
use constant PACKAGE_DATE => '2010-12-30T08:34:26';
use ODF::lpOD::Common;
#-----------------------------------------------------------------------------

sub     post_load       {}

#-----------------------------------------------------------------------------

sub     get_entries
        {
        my $self        = shift;
        my %opt         = @_;
        my @all_entries = $self->{context}->get_element_list



( run in 1.752 second using v1.01-cache-2.11-cpan-75ffa21a3d4 )