PK_ENTITY_track_record_r_t   

struct PK_ENTITY_track_record_r_s
    {
    PK_ENTITY_track_t          track;
    int                        n_original_entities;
    int                       *original_entities;
    PK_CLASS_t                *original_classes;
    int                        n_product_entities;
    PK_ENTITY_t               *product_entities;
    };
typedef struct PK_ENTITY_track_record_r_s PK_ENTITY_track_record_r_t;



This data structure encapsulates the association between entities before
and after the modelling operation.

Used in:

PK_ENTITY_track_r_t


Description of fields:



'track'               This value of this field indicates what type of tracking
                      information the record represents. Permitted values
                      are :

                        PK_ENTITY_track_delete_c
                        PK_ENTITY_track_merge_c
                        PK_ENTITY_track_create_c
                        PK_ENTITY_track_split_c
                        PK_ENTITY_track_derive_c



'n_original_entities' The length of the 'original_entities' and
                      'original_classes' arrays.


'original_entities'   The participating entities in the modelling operation.
                      The class of the entity is held in the corresponding
                      element of 'original_classes' array.


'original_classes'    The class of each participating entity within the
                      'original_entities' array.


'n_product_entities'  The length of the 'product_entities' array.


'product_entities'    The entities resulting from the modelling operation.


The Contents of the Structure

The expectations on the contents of the structure for each track type :


PK_ENTITY_track_delete_c

 o 'original_entities' contains some or all of the deleted entities.

 o The class of the deleted entities can be determined from the
   corresponding entry in the original_classes' array.

 o 'product_entities' will be empty.


PK_ENTITY_track_merge_c

 o 'original_entities' contains the list of entities merged.

 o The class of the merged entities can be determined from the
   corresponding entry in the 'original_classes' array.

 o 'product_entities' holds the list of surviving entities.


PK_ENTITY_track_create_c

 o 'original_entities' holds the list of entities copied, or the entity
   from which the existence of the products was inferred.

 o The class of the original entities can be determined from the
   corresponding entry in the 'original_classes' array.

 o 'product_entities' holds the newly created entities.


PK_ENTITY_track_split_c

 o 'original_entities' holds the list of entities that were split.

 o The class of the original entities can be determined from the
   corresponding entry in the 'original_classes' array.

 o 'product_entities' holds the list of entities resulting from the
   splitting operation.


PK_ENTITY_track_derive_c

 o 'original_entities' holds the list of entities from which resulted in the
   product entities, including the original entities from which any portion
   was created and any unaltered original entities with which that was merged.

 o The class of the original entities can be determined from the
   corresponding entry in the 'original_classes' array.

 o 'product_entities' holds the list of entities created by combination of
   merging and splitting.