ContactMergeClient |
|
|
AssimilateNewContact DecideAmbiguousMerge HandleAmbiguousMerge HandleDifferentNewCard HandleUnambiguousMerge HandleWorthlessNewCard |
Class ContactMergeClient defines no new attributes.
Fields
No fields are defined by ContactMergeClient or any of its superclasses.
Instance template
Class ContactMergeClient cannot be instantiated.
Class definition
Define Class ContactMergeClient; mixes in with Object; operation AssimilateNewContact(contactToKeep: FullContact; addIfNew: Boolean; rejectIfMatch: Boolean; callbackObject: Object): FullContact; // called by the system to decide how to handle a new contact, whether it should be // added to the namecards, rejected as being older than an existing card, or merged with an existing card // uses HandleDifferentNewCard to add new cards (which destroys the original and returns a copy) // returns the contact in the namecards that it was merged with, if any operation HandleDifferentNewCard(contactToKeep: FullContact; addIfNew: Boolean): FullContact; // called by the system when the new contact is different from any in the namecards and should be inserted into the namecards // calls AddCopyToMasterList and destroys the original // returns the new full contact operation HandleWorthlessNewCard(contactToKeep: FullContact): FullContact; // called by the system when the new contact is not worth putting into the namecards // does nothing, returns nilObject operation HandleUnambiguousMerge(existingContact: FullContact; contactToKeep: FullContact): FullContact; // called by the system when the new contact is a peer of one in the system or its match // is so sparse that the two cards should definitely be merged // merges the contactToKeep into the existing contact, returns that contact operation HandleAmbiguousMerge(existingContact: FullContact; contactToKeep: FullContact; addIfNew: Boolean; rejectIfMatch: Boolean; callbackObject: Object): FullContact; // called by the system when the new contact is a match by name only with <existingContact> // they should either be merged or kept separately // if rejectIfMatch is true, then let the callBack object decide handle the ambiguous new cards // otherwise, decide using DecideAmbigousMerge operation DecideAmbiguousMerge(existingContact: FullContact; contactToKeep: FullContact): Boolean; // called by the system to decide whether two ambigous cards should be merged or kept separately // using heuristics // return true if they can be merged; false if they should be kep separately end class;