Table 6.130—DRM_Hierarchical_Table
Property |
Description |
||||||
Superclass |
|||||||
Class |
· <DRM Hierarchical Table> |
||||||
Subclass |
· <DRM Property Table Reference Table> |
||||||
Definition |
This is an abstract DRM class that specifies a common definition of hierarchically defined tables within the SEDRIS data model. It explains their use, implementation, and how to resolve references. Conceptually, a <DRM Hierarchical Table> is an ordered collection of objects. Objects within a table are referenced by their ordinal position in the collection. Referencing objects encode this position as an field called an index. This indexed referencing scheme does not contain an explicit reference to a table object. Instead, the reference to the table object is implicitly based on the definition of the derived table class, the referencing object, and the referencing index field. Further, the entire content of the conceptual table does not have to be contained within a single table object. The conceptual table may be "constructed" from multiple <DRM Hierarchical Table> based objects contained within the object hierarchy. The start_index field of a <DRM Hierarchical Table> based class, together with the number of component of the table is used to define the "range" of a particular instance of the table. These ranges are combined, by traversal UP the hierarchy, to form the conceptual table to which index fields refer. When ranges overlap, the range from the <DRM Hierarchical Table> that is lower in the hierarchy takes precedence. From a practical, implementation perspective, resolving an index reference is simple. First, traverse up the hierarchy until a table of the appropriate derived class (with respect to the referencing object and reference index) is found attached to an aggregate object in the hierarchy. When a table object is found, an evaluation shall be performed to determine if the referencing index lies within the range of the table instance (table.start_index £ reference_index < start_index + number_of_table_components) If it does, then the expression (start_index + 1 - reference_index) should be used to determine the ordinal position of the reference object within the ordered components of the table. If the reference index does not fall within the table's range, then the traversal shall continue up the hierarchy. All reference indices shall resolve to some table contained within the hierarchy. |
||||||
Example(s) |
· See the <DRM Vertex With Component Indices> class for specific examples. |
||||||
Inherited field elements |
|
||||||
Field elements |
|
||||||
Associated to (one-way) (inherited) |
· none |
||||||
Associated to (one-way) |
· none |
||||||
Associated by (one-way) (inherited) |
· none |
||||||
Associated by (one-way) |
· none |
||||||
Associated with (two-way) (inherited) |
· none |
||||||
Associated with (two-way) |
· none |
||||||
Composed of (two-way) (inherited) |
· none |
||||||
Composed of (two-way) |
· none |
||||||
Composed of (two-way metadata) (inherited) |
· none |
||||||
Composed of (two-way metadata) |
· none |
||||||
Component of (two-way) (inherited) |
· none |
||||||
Component of (two-way) |
· one or more <DRM Aggregate Geometry>s |
||||||
Constraints |
· none |
||||||
Notes |
none |
||||||
Class diagram |