A save identifier is unique, reader-friendly string which has a one-to-one correspondence with an
ACIS class. For example, "body" is a save identifier for the
BODY class, which is derived from
ENTITY.
|
|
ACIS classes perform most of the work associated with reading and writing save files. The restore methods of a given class can make references to the restore methods of other classes. Class names do not appear in the save file, but the save identifiers do. Both class names and save identifiers are contained within the index.
|
|
The save file sometimes strings save identifiers together using a dash ("-"). This often reflects the
ACIS class derivation. For example, the save identifiers "plane-surface" have a class derivation consisting of
ENTITY,
SURFACE, and
PLANE. The save identifiers "colour-tsl-attrib" have the class derivation
ENTITY,
ATTRIB,
ATTRIB_TSL, and
ATTRIB_COL.
|
|
Unique save identifier strings are required for private attributes that a developer may create. This is achieved by deriving a private base class from
ATTRIB and giving it a unique name. Developers may use any class name for their private attributes, yet the full identifiers are unique in the save file.
|
|
If the save identifiers are not completely recognized by
ACIS, a data structure from just the
recognized classes is constructed and restored. The remaining data at the end of the record is remembered so that it is not lost by a later save. For unrecognized classes whose derivation is two or more levels removed from
ENTITY, such as classes derived from
CURVE,
SURFACE, or
ATTRIB, the minimum is to create a recognizable data structure so that references to the data structure are correct. For example, if a record from a derived class of
ATTRIB is not recognized, an
ATTRIB record is created in such a way that the chain of attributes remains connected for the entity owning the unrecognized attribute.
|