Features :: DocHelper


Uses

DocHelper has been used as a utility within Online for a number of things. DocHelper in general is useful when:
  • Generating specific source code documentation:
    DocHelper doesn't intend to be a contender to tools like DoxyGen (We actually use it) that provide general source documentation. It can be used for specific documentation tasks. Anything that can be searched through regular expressions can be used within DocHelper.

  • Creating configuration files:
    Maven, ant, and most build script and configuration files require accurate listing of dependencies among other elements. A quick document definition (dochelper) file can be created to generate content for these files. This is especially useful when dealing with a large number of applications.

  • Analyzing application source or data alone or in conjunction:
    Being able to compare specifics in one or more applications, generating a quick comparison document can be quite useful when analyzing an application alone or in relation to another. In addition, DocHelper provides a processor mechanism that can help with analysis task.

  • In general, the creation of any content that must be gathered from existing sources and may need to be processed modified

Features

The Features of the dochelper are outlined below.
  • Ease of Use
    • Ant Integration - Doc helper defines an ant task. It can be used from within build scripts with ease.
    • Self contained executable jar allows user to execute DocHelper as a command.
  • Flexible - (Flexible Architecture)
    • Result Tree is generated after search. A number of processors may be applied to the result tree at any level of processing: Document, RecordSet, Record, Pattern. Each processor may modify or alter the result tree. I.E. Sorting, Logical Operations, etc.
    • Different renderers may be applied to generate output. In fact multiple renderers may be applied to the document definition in order to render results in more than one output format at the same time. I.E. Search Source Code for specific code references and generate XML for MindMap and a PDF for a report.
    • Searches may be transformed into content by encapsulation at each level of the process:
      The document may be encapsulated with content as a whole.
      Each Record Set may be encapsulated with content individualy
      Each Record may be encapsulated with content individualy
      Each pattern may be encapsulated with content individualy
    • Encapsulation may be defined within the configuration file or utilizing simple file templates.
    • A search result may be transformed into content at two different points:
      When a match is found. Within encapsulation content at each level.
  • Extensible
    • Every Step and most members in the process equate to interfaces. General architecture follows the program to a contract method.
    • Interface definitions for objects that require configuration extend the Configurable interface. This means that by adding a params tag any parameter may be passed to the implementing object without code modification.
  • Open Source License
    • Free to use, Free to modify.


This project requires some technical understanding to use:
  1. Knowledge of Regular Expressions (Essential)
  2. Understanding of XML (For Configuration File)
This project was designed with extensibility in mind. The idea is that users that wish to extend the project to parse new resources or render different output or process the search results in a specific manner may do so.

To extend this project the follwoing is required:
  1. Knowledge of Java