DoxygenConverter class reference
NSObject | |
DoxygenConverter.h |
Overview
The doxygen output converter class.
This class handles the doxygen xml output files and converts them to DocSet. The conversion happens through several steps:
If
Doxyfile
doesn't exist or doxygen configuration file is not passed over via the command line parameters, the default file is created using the doxygen itself, then the configuration file options are set so that correct output is used.Doxygen is started with the configuration file which results in xml files being created at the desired output path.
The generated xml files are parsed and converted to clean versions which are used for creating the rest of the documentation. All index xml files are created as well.
All references in the cleaned xml files are checked so that they point to the correct files and members.
Optionally, all cleaned xml files are converted to xhtml.
Optionally, the DocSet bundle is created.
All temporary files are optionally removed.
The convertion takes several steps. In the first steps the objects database is generated which is used in later steps to get and handle the list of documented objects. The database is a standard NSDictionary
of the following layout:
"Index"
key: contains aNSXMLDocument
with clean index XML."Hierarchy"
key: contains aNSXMLDocument
with clean hierarchy XML."Hierarchies"
key: contains aNSMutableDictionary
with classes hierarchy tree."
key: contains a" NSMutableDictionary
describing the object:"ObjectName"
key: contains the object name. This is the same name as used for the key in the parent dictionary. It still serves a purpose for the non-documented objects which are part of the hierarchy - for there we can't use the"ObjectData"
key since we have no entry..."ObjectData"
key: contains a pointer to the object's data under the main"Objects"
key list. Note that this isnil
if the object is not documented."Children"
key: contains aNSMutableDictionary
with all children of this object. If the object doesn't have any children, empty dictionary is used. The dictionary has the same structure as the main"Hierarchies"
dictionary:"
..." ...
"
..." ...
"Objects"
key: contains aNSMutableDictionary
with object descriptions. This is usefull for enumerating over all documented objects:"
key: contains a" NSMutableDictionary
with object data:"ObjectName"
key: anNSString
with the object name (this is the same name as used for the key in the root dictionary)."ObjectKind"
key: anNSString
which has the value"class"
if the object is a class,"category"
if the object is category and"protocol"
if the object is a protocol."ObjectClass
key: anNSString
which contains the name of the class to which the object "belongs". At the moment this is only used for categories to map to the class that the category extends. This is key is missing for other objects. Note that the key is also missing for categories which "parent" class cannot be determined (not likely, but be prepared just in case)."CleanedMarkup"
key: contains anNSXMLDocument
with clean XML. This document is updated through different steps and always contains the last object data."Members"
key: contains aNSMutableDictionary
with the descriptions of all object members. This is mainly used for nicer links generation. The keys for the dictionary are simply method names:"
key: contains a" NSMutableDictionary
with member description:"Name"
key: aNSString
with the member name (this is the same name as the key in the parent dictionary)."Prefix"
key: aNSString
with the prefix to be used before the name in order to get the selector name."Selector"
key: aNSString
with the correctly formatted member selector that can be used directly when creating member link names within the same object (inter object links cannot use this because their template might include prefix at arbitrary place).
"
..." ...
"Parent"
key: ANSString
containing the name of the object parent. This is only used for classes and is left out for other objects."RelativeDirectory"
key: thisNSString
describes the sub directory under which the object will be stored relative to the index file. At the moment this value depends on the object type and can be"Classes"
,"Categories"
or"Protocols"
."RelativePath"
key: thisNSString
describes the relative path including the file name to the index file. This path starts with the value of theRelativeDirectory
key to which the object file name is added."DoxygenMarkupFilename"
key: contains anNSString
that specifies the original name of the XML generated by the doxygen.
"
..." ...
"Directories"
key: contains aNSMutableDictionary
which resembles the file structure under which the objects are stored. This is usefull for enumerating over the documented objects by their relative directory under which they will be saved:"
key: contains a" NSMutableArray
with the list of all objects for this directory. The objects stored in the array are simply pointers to the main"Objects"
instances."
..." ...
Note that this class relies on CommandLineParser
to determine the exact conversion work flow and common, application-wide parameters. Internally the class delegates all output generation to top level OutputProcessing
conformers which in turn manage all their dependent generators.
This class doesn't perform any actual output generation. Instead it delegates it to the concrete OutputGenerator
instances.
Tasks
Converting handling
-
- convert
Converts the doxygen generated file into the desired output.
Instance methods
convert
Converts the doxygen generated file into the desired output.
- (void)convert
Exceptions
- NSException
Thrown if conversion fails.
Declared in
DoxygenConverter.h
© 2008-2009 Tomaz Kragelj. All rights reserved. (Last updated: 2009-08-24)
Back to index / hierarchy.