Jump to content

Extension:NetlabsClassTree

From NikiWiki
Revision as of 22:04, 15 August 2007 by Ktk (talk | contribs)


This extension adds a -ClassTree- tag that formts a simple list with information about classes and their methods into a Class Tree.

Usage

Syntax

Object Class definitions can be written in a simple list format, contained by the custom -ClassTree- tag. Here is a sample:

<ClassTree title="API Title">
* class1:baseclass:This class implements base functionality for all classes implemented here.
** setValue(char * newvalue):This method sets the value.
** queryValue( char* value, int maxsize):This method queries the value.
* class2:class1:this is a subclass.
** setValue(char * newvalue):this override modifies how the new value is being set.
-/ClassTree-

Sample Output

Te above sample results in the following class tree:

<ClassTree title="API Title">

  • class1:baseclass:This class implements base functionality for all classes implemented here.
    • setValue(char * newvalue):This method sets the value.
    • queryValue( char* value, int maxsize):This method queries the value.
  • class2:class1:this is a subclass.
    • setValue(char * newvalue):this override modifies how the new value is being set.

</ClassTree>

List Features

The ClassTree output implements the following features:

  • the output consists of a
    • class hierarchy list
      • the hierarchy starts with the top parent classes, where the list of these top parents is not sorted
      • the title of the class links display the class description 8move the mouse pointer over a class link to view it)
    • a class description list, containing the class description and a method list per class
      • the classes are ordered like they appear in the class hierarchy list
      • the methods are sorted alphabetically
  • classes in the hierarchy list provide a link to its class description section within the class description list
  • methods that override the same method of a parent class
    • link to the same method of the parent class
    • list all parent implementors of the same mthod

List Format

The following rules apply to the ClassTree definition:

  • The title of the desribed API is specified with the attribute title of the ClassTree element
  • Within the classTree definition, classes are specified on a line starting with a single * character, with the following syntax
* thisclass:parentclass:classdescription
  • Within the classTree definition, methods are specfied below the class definition on a line starting with two * characters, with the following syntax
** method(type parm, type parm,...):methoddescription
  • when defining overrides (specifying the same method for a subclass)
    • the parameter list must be the same (spaces don't matter, but all other must match case-sensitive). This is a restriction to classes being implemented with the Netlabs Object Model (NOM),as polymorphism is not supported by NOM. If a method override specifies a different parameter list, an error is being prepended to the ClassTree output
    • the description for that method is inherited from the parent class to the subclass, if no description is given for that method within the subclass