A computer program for removing duplicate objects from an object store. The program
allows the user to select which properties of the objects will be compared to determine
equivalence. These properties are then read and a signature number is calculated
based on the values of the those properties, using the cyclic redundancy code.
Prior to the calculation of the signature, special cases are accounted for by modifying
the properties. Such special cases can include: missing critical properties which
can be calculated, text field formatting and leading and lagging spaces, order
of attachments, order of categories, name properties, and recurring appointments.
Once the signature values are calculated, objects with the same signature are,
by definition, equivalent by the properties the user selected. Prior to discarding
all but one of the equivalent objects, the program can check whether the object
contains a link. As between two equivalent objects, the one with the link should
be retained.