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 - Doxyfiledoesn'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 a- NSXMLDocumentwith clean index XML.
- "Hierarchy"key: contains a- NSXMLDocumentwith clean hierarchy XML.
- "Hierarchies"key: contains a- NSMutableDictionarywith classes hierarchy tree.- "key: contains a- " - NSMutableDictionarydescribing 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 is- nilif the object is not documented.
- "Children"key: contains a- NSMutableDictionarywith 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 a- NSMutableDictionarywith object descriptions. This is usefull for enumerating over all documented objects:- "key: contains a- " - NSMutableDictionarywith object data:- "ObjectName"key: an- NSStringwith the object name (this is the same name as used for the key in the root dictionary).
- "ObjectKind"key: an- NSStringwhich has the value- "class"if the object is a class,- "category"if the object is category and- "protocol"if the object is a protocol.
- "ObjectClasskey: an- NSStringwhich 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 an- NSXMLDocumentwith clean XML. This document is updated through different steps and always contains the last object data.
- "Members"key: contains a- NSMutableDictionarywith 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- " - NSMutableDictionarywith member description:- "Name"key: a- NSStringwith the member name (this is the same name as the key in the parent dictionary).
- "Prefix"key: a- NSStringwith the prefix to be used before the name in order to get the selector name.
- "Selector"key: a- NSStringwith 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: A- NSStringcontaining the name of the object parent. This is only used for classes and is left out for other objects.
- "RelativeDirectory"key: this- NSStringdescribes 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: this- NSStringdescribes the relative path including the file name to the index file. This path starts with the value of the- RelativeDirectorykey to which the object file name is added.
- "DoxygenMarkupFilename"key: contains an- NSStringthat specifies the original name of the XML generated by the doxygen.
 
- "...- " 
- ... 
 
- "Directories"key: contains a- NSMutableDictionarywhich 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- " - NSMutableArraywith 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
- 
          
            - convertConverts 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.