Packages themselves can be grouped into hierarchies. For a system as complex as Cheshire, a package oriented organization can be very useful. It makes the broader purpose of a class self documenting, while at the same time encouraging the developer to not straddle functionality that should belong to different classes with a single class. The diagram below gives the proposed modular view of the new Cheshire, with the modules named by the packages that will implement them. A module contained in another module is a subpackage of the container package.
Arrows indicate data flow.
Cheshire packages should be rooted at edu.berkeley.cheshire to ensure their uniqueness across the Internet. Symbolic links and aliases can be used to get around any inconveniences caused by long package names. The edu.berkeley prefix was omitted in the above diagram for display considerations. The packages are described below. Uses javax.xml.parsers routines for XML parsing and various utility functions in edu.berkeley.cheshire.util for format conversions and parsing of other data types.