The {@link com.ibm.etools.iseries.dds.dom.DdsModel} is the root of the model hierarchy. Among other things the DdsModel knows the type of DDS we are working with (ddsType attribute ). The {@link com.ibm.etools.iseries.dds.dom.DdsType} enumeration contains the 4 types of DDS we support, DSPF, PRTF, PF and LF. Some convenience methods have been added to query if the model is a certain type or category of type.
The DDS hierarchy is the obvious one, where a {@link com.ibm.etools.iseries.dds.dom.FileLevel} contains a {@link Record} which contains a {@link Field}. The one type of field that is common to all DDS types is the {@link com.ibm.etools.iseries.dds.dom.NamedField}. The NamedField knows its name, type, length and decimal positions. {@link com.ibm.etools.iseries.dds.dom.FieldType} enumerates all of the field types in DDS. Both the dataLength and the decimalPostion use a {@link com.ibm.etools.iseries.dds.dom.Length} class to encapsulate their integer value in anticipation of database reference fields. All fields have a usage that determines whether it is input or output capable. {@link com.ibm.etools.iseries.dds.dom.Usage} enumerates all the usages possible in all DDS types. The Length classes are immutable and the NamedField class provides convenience methods to get and set it with primitive integers.
FileLevel, Record and Field are all {@link com.ibm.etools.iseries.dds.dom.DdsStatement}s. This means that they have a {@link com.ibm.etools.iseries.dds.dom.CommentContainer}, an {@link com.ibm.etools.iseries.dds.dom.AnnotationContainer} and a {@link com.ibm.etools.iseries.dds.dom.KeywordContainer}. By annotation we mean any semantic information about the statement that cannot be represented by the DDS language. Typically this is runtime information that the tooling remember in order to be able to render the records visually. A KeywordContainer contains 0 to n Keywords. The use of container classes facilitates generic processing of comments, annotations and keywords.