
=head1 NAME

OODoc::Object - base class for all OODoc classes.



=head1 SYNOPSIS

 # Never instantiated directly.


=head1 DESCRIPTION

Any object used in the OODoc module is derived from this OODoc::Object
class.  This means that all functionality in this class is provided
for all of the other classes.


=head1 OVERLOADED



=head1 METHODS


=head2 Constructors


OODoc::Object-E<gt>B<new>(OPTIONS)

=over 4

Create a new object (instantiation).  All objects in OODoc are created
the same way: they carry a list of key-value pairs as option.  For
examples, see the description of this method in the manual page of
the specific object.

The validity of the options for C<new> is checked, in contrary to the
options when used with many other method defined by OODoc.

=back

=head2 Inheritance knowledge


$obj-E<gt>B<extends>([OBJECT])

=over 4

Close to all elements used within OODoc can have an inheritance relation.
The returned object is extended by the current object.  Multiple inheritance
is not supported here.

=back

=head2 Commonly used functions


$obj-E<gt>B<filenameToPackage>(FILENAME)

OODoc::Object-E<gt>B<filenameToPackage>(FILENAME)

=over 4

I<Example:> 

 print $self->filenameToPackage('Mail/Box.pm'); # prints Mail::Box

=back

$obj-E<gt>B<mkdirhier>(DIRECTORY)

OODoc::Object-E<gt>B<mkdirhier>(DIRECTORY)

=over 4

Creates this DIRECTORY and all its non-existing parents.

=back

=head2 Manual Repository

All manuals can be reached everywhere in the program: it is a global
collection.

$obj-E<gt>B<addManual>(MANUAL)

=over 4

The MANUAL will be added to the list of known manuals.  The same package
name can appear in more than one manual.  This OBJECT shall be of type
L<OODoc::Manual|OODoc::Manual>.

=back

$obj-E<gt>B<mainManual>(NAME)

=over 4

Returns the manual of the named package which contains the primar
documentation for the code of the package NAME.

=back

$obj-E<gt>B<manual>(NAME)

=over 4

Returns the manual with the specified name, or else C<undef>.

=back

$obj-E<gt>B<manuals>

=over 4

All manuals are returned.

=back

$obj-E<gt>B<manualsForPackage>(NAME)

=over 4

Returns a list package objects which are related to the specified NAME.
One NAME can appear in more than one file, and therefore a list is
returned.

=back

$obj-E<gt>B<packageNames>

=over 4

Returns the names of all defined packages.

=back



=head1 DIAGNOSTICS

I<Warning:> Unknown option $name

You have used the option with $name, which is not defined with the
instantiation (the C<new> method) of this object.

I<Warning:> Unknown options @names

You have used more than one option which is not defined to instantiate
the object.

I<Error:> manual definition requires manual object

A call to L<addManual()|OODoc::Object/"Manual Repository"> expects a new manual object (a L<OODoc::Manual|OODoc::Manual>),
however an incompatible thing was passed.  Usually, intended was a call
to L<manualsForPackage()|OODoc::Object/"Manual Repository"> or L<mainManual()|OODoc::Object/"Manual Repository">.






=head1 REFERENCES

See the OODoc website at L<http://perl.overmeer.net/oodoc/> for more details.

=head1 COPYRIGHTS

Module version 0.09.
Written by Mark Overmeer (mark@overmeer.net).  See the ChangeLog for
other contributors.

Copyright (c) 2003 by the author(s). All rights reserved.  This program
is free software; you can redistribute it and/or modify it under the
same terms as Perl itself.


