Help-Site Computer Manuals
Software
Hardware
Programming
Networking
  Algorithms & Data Structures   Programming Languages   Revision Control
  Protocols
  Cameras   Computers   Displays   Keyboards & Mice   Motherboards   Networking   Printers & Scanners   Storage
  Windows   Linux & Unix   Mac

B<PerlPoint::Generator::Object::Page>
generators page object class

B<PerlPoint::Generator::Object::Page> - generators page object class


NAME

PerlPoint::Generator::Object::Page - generators page object class


VERSION

This manual describes version 0.03.


SYNOPSIS


DESCRIPTION

This is an internal class. Objects represent chapters and provide access to various chapter data, see method descriptions below.


METHODS

new()




B<Parameters:>
class
The class name.

Returns: the new object.

Example:




=cut

sub new

 {

  # get parameter

  my ($class, %params)=@_;

  # check parameters

  confess "[BUG] Missing class name.\n" unless $class;

  # build new object

  my __PACKAGE__ $me=fields::new($class);

  # init it

  $me->{nr}    = exists $params{nr}    ? $params{nr}    : 0;

  $me->{fpath} = exists $params{fpath} ? $params{fpath} : undef;

  $me->{spath} = exists $params{spath} ? $params{spath} : undef;

  $me->{npath} = exists $params{npath} ? $params{npath} : [0];    # for intros before a first headline (like a (LOCAL)TOC)

  $me->{ppath} = exists $params{ppath} ? $params{ppath} : [0];    # for intros before a first headline (like a (LOCAL)TOC)

  $me->{vars}  = exists $params{vars}  ? $params{vars}  : undef;

  # and supply it

  $me;

 }



=pod

path()

Provides the path of a chapter, this means, the sequence of main and subchapters to enter the document part under a certain headline.

Parameters:

object
An object as produced by new().

parameters
This should be a reference to a hash containing the following keys:
type
A chapter path has various forms (or types). Choose here which is of interest.
fpath
the path of full (or long) chapter titles (headlines)

npath
the numerical path - levels are represented by their public numbers, as used in schemes like 1.2.3.4..

ppath
the page headline path: each level holds its chapter number.

spath
the path of short chapter titles (or headlines), these are the parts entered after an optional ~ in a headline:

  =Long headline ~ Short

mode
Configures how the path should be suppplied:
array
All parts of the path are elements of an array that is supplied via reference.

full
The path is provided as a string. Parts are delimited by the value of option delimiter which is mandatory in this mode.

title
Supplies just the last part of the path (this is the chapters own title).

delimiter
In mode full this needs to be set to a string that is used as a delimiter between the path parts.

Returns: the requested path, as configured by option mode.

Example:




=cut

sub path

 {

  # get and check parameters

  ((my __PACKAGE__ $me), my %params)=@_;

  confess "[BUG] Missing object parameter.\n" unless $me;

  confess "[BUG] Object parameter is no ", __PACKAGE__, " object.\n" unless ref $me and $me->isa(__PACKAGE__);

  confess "[BUG] Missing type parameter.\n" unless exists $params{type};

  confess "[BUG] Invalid type parameter.\n" unless $params{type}=~/^[fnps]path$/; # full, numerical, page or short

  confess "[BUG] Missing mode parameter.\n" unless exists $params{mode};

  confess "[BUG] Invalid mode parameter.\n" unless $params{mode}=~/^(array|full|title)$/;

  confess "[BUG] Missing delimiter parameter.\n" if $params{mode} eq 'full' and not exists $params{delimiter};

  # build and supply the path, mode dependend

  if ($params{mode} eq 'array')

    {defined($me->{$params{type}}) ? [@{$me->{$params{type}}}] : [];}

  elsif ($params{mode} eq 'full')

    {defined($me->{$params{type}}) ? join($params{delimiter}, map {(defined) ? $_ : ''} @{$me->{$params{type}}}[0..($#{$me->{$params{type}}}-1)]) : '';}

  elsif ($params{mode} eq 'title')

    {defined($me->{$params{type}}) ? $me->{$params{type}}[-1] : '';}

  else

    {die "[BUG] Unimplemented case.";}

 }



=pod

nr()

Provide chapter number.

Parameters:

object
An object as produced by new().

Returns: the page (or chapter) number.

Example:




=cut

sub nr

 {

  # get and check parameters

  ((my __PACKAGE__ $me))=@_;

  confess "[BUG] Missing object parameter.\n" unless $me;

  confess "[BUG] Object parameter is no ", __PACKAGE__, " object.\n" unless ref $me and $me->isa(__PACKAGE__);

  # supply data

  $me->{nr};

 }



=pod

vars()

Provide chapter variables.

Parameters:

object
An object as produced by new().

Returns: the chapters variables, as a hash.

Example:




=cut

sub vars

 {

  # get and check parameters

  ((my __PACKAGE__ $me))=@_;

  confess "[BUG] Missing object parameter.\n" unless $me;

  confess "[BUG] Object parameter is no ", __PACKAGE__, " object.\n" unless ref $me and $me->isa(__PACKAGE__);

  # supply data (as copy as usual)

  return {%{$me->{vars}}};

 }

# MODULE FRAME COMPLETION ####################################################




# flag successful loading

1;



# = POD TRAILER SECTION =================================================================


NOTES




=head1 SEE ALSO




=head1 SUPPORT

A PerlPoint mailing list is set up to discuss usage, ideas, bugs, suggestions and translator development. To subscribe, please send an empty message to perlpoint-subscribe@perl.org.

If you prefer, you can contact me via perl@jochen-stenzel.de as well.


AUTHOR

Copyright (c) Jochen Stenzel (perl@jochen-stenzel.de), 2004-2005. All rights reserved.

This module is free software, you can redistribute it and/or modify it under the terms of the Artistic License distributed with Perl version 5.003 or (at your option) any later version. Please refer to the Artistic License that came with your Perl distribution for more details.

The Artistic License should have been included in your distribution of Perl. It resides in the file named ``Artistic'' at the top-level of the Perl source tree (where Perl was downloaded/unpacked - ask your system administrator if you dont know where this is). Alternatively, the current version of the Artistic License distributed with Perl can be viewed on-line on the World-Wide Web (WWW) from the following URL: http://www.perl.com/perl/misc/Artistic.html




=head1 DISCLAIMER

This software is distributed in the hope that it will be useful, but is provided ``AS IS'' WITHOUT WARRANTY OF ANY KIND, either expressed or implied, INCLUDING, without limitation, the implied warranties of MERCHANTABILITY and FITNESS FOR A PARTICULAR PURPOSE.

The ENTIRE RISK as to the quality and performance of the software IS WITH YOU (the holder of the software). Should the software prove defective, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

IN NO EVENT WILL ANY COPYRIGHT HOLDER OR ANY OTHER PARTY WHO MAY CREATE, MODIFY, OR DISTRIBUTE THE SOFTWARE BE LIABLE OR RESPONSIBLE TO YOU OR TO ANY OTHER ENTITY FOR ANY KIND OF DAMAGES (no matter how awful - not even if they arise from known or unknown flaws in the software).

Please refer to the Artistic License that came with your Perl distribution for more details.

Programminig
Wy
Wy
yW
Wy
Programming
Wy
Wy
Wy
Wy