[operations] [attributes] [fields] [template] [definition]
[implementation] [documentation]
To use the search tool you need to use a browser which supports JAVA (c)

[next] [prev] [superclass] [next peer] [prev peer] [subclass] [index] [hierarchy]

ContactMergeClient

mixes in with Object

ContactMergeClient



Operations

Get list of all operations

AssimilateNewContact
DecideAmbiguousMerge
HandleAmbiguousMerge
HandleDifferentNewCard
HandleUnambiguousMerge
HandleWorthlessNewCard


Attributes

Get list of all attributes

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;