Build a person object from multiple contacts
First Claim
1. A method implemented on an electronic computing device for creating a data structure that represents a person, the method comprising:
- on the electronic computing device, receiving a first identifier, the first identifier identifying a first person;
storing the first identifier in a data structure in a first memory cache on the electronic computing device, the data structure comprising a person object, the person object comprising one or more contact objects;
determining whether the first identifier indicates that the first person is a global address list contact;
when it is determined that the first identifier indicates that the first person is a global address list contact;
obtaining first properties for the first person from a global address list store, the first properties comprising first contact information for the first person; and
storing the first properties in a first contact object in the data structure;
when it is determined that the first identifier does not indicate that the first person is a global address list contact, determining from the first identifier whether the first person is an email contact, the email contact being a contact in a contact store for an email application running on the electronic computing device;
when it is determined that the first identifier indicates that the first person is an email contact;
obtaining second properties for the first person from the contact store, the second properties comprising second contact information for the first person;
storing the second properties in the data structure in the first memory cache on the electronic computing device, the second properties being stored in a second contact object in the data structure;
determining whether the second properties include a global address identifier, the global address identifier identifying contact information comprising at least an address for the first person in the global address list store; and
when it is determined that the second properties includes the global address identifier, storing the global address identifier in the second contact object;
creating a second identifier for the first person, the second identifier being a person identifier that identifies the first person;
storing the second identifier in the first contact object; and
storing the second identifier in the second contact object.
2 Assignments
0 Petitions
Accused Products
Abstract
A data structure that represents a person is created. The data structure comprises a person object. The person object comprises one or more contact objects. When it is determined that the person is a global address list contact, first contact information for the person is obtained from a global address list store and stored in a first contact object. When it is determined that the person is an email contact, second contact information is obtained from a contact store and stored in a first memory cache. When it is determined that the second contact information includes a global address identifier, the global address identifier is stored in the second contact object. A person identifier is created for the person that identifies the person. The person identifier is stored in the first contact object and in the second contact object.
19 Citations
20 Claims
-
1. A method implemented on an electronic computing device for creating a data structure that represents a person, the method comprising:
-
on the electronic computing device, receiving a first identifier, the first identifier identifying a first person; storing the first identifier in a data structure in a first memory cache on the electronic computing device, the data structure comprising a person object, the person object comprising one or more contact objects; determining whether the first identifier indicates that the first person is a global address list contact; when it is determined that the first identifier indicates that the first person is a global address list contact; obtaining first properties for the first person from a global address list store, the first properties comprising first contact information for the first person; and storing the first properties in a first contact object in the data structure; when it is determined that the first identifier does not indicate that the first person is a global address list contact, determining from the first identifier whether the first person is an email contact, the email contact being a contact in a contact store for an email application running on the electronic computing device; when it is determined that the first identifier indicates that the first person is an email contact; obtaining second properties for the first person from the contact store, the second properties comprising second contact information for the first person; storing the second properties in the data structure in the first memory cache on the electronic computing device, the second properties being stored in a second contact object in the data structure; determining whether the second properties include a global address identifier, the global address identifier identifying contact information comprising at least an address for the first person in the global address list store; and when it is determined that the second properties includes the global address identifier, storing the global address identifier in the second contact object; creating a second identifier for the first person, the second identifier being a person identifier that identifies the first person; storing the second identifier in the first contact object; and storing the second identifier in the second contact object. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. An electronic computing device comprising:
-
a processing unit; and system memory, the system memory including instructions that, when executed by the processing unit, cause the electronic computing device to; receive a first identifier, the first identifier identifying a first person; store the first identifier in a data structure in a first memory cache on the electronic computing device, the data structure comprising a person object, the person object comprising one or more contact objects; determine whether the first identifier indicates that the first person is a global address list contact; when it is determined that the first identifier indicates that the first person is a global address list contact; obtain first properties for the first person from a global address list store, the first properties comprising first contact information for the first person; and store the first properties in a first contact object in the data structure; when it is determined that the first identifier does not indicate that the first person is a global address list contact, determining from the first identifier whether the first person is an email contact, the email contact being a contact in a contact store for an email application running on the electronic computing device; when it is determined that the first identifier indicates that the first person is an email contact; obtain second properties for the first person from the contact store, the second properties comprising second contact information for the first person; store the second properties in the data structure in the first memory cache on the electronic computing device, the second properties being stored in a second contact object in the data structure; determine whether the second properties include a global address identifier, the global address identifier identifying contact information comprising at least an address for the first person in the global address list store; and when it is determined that the second properties includes the global address identifier, storing the global address identifier in the second contact object; create a second identifier for the first person, the second identifier being a person identifier that identifies the first person; store the second identifier in the first contact object; and store the second identifier in the second contact object. - View Dependent Claims (16, 17, 18, 19)
-
-
20. A computer readable storage device comprising instructions that, when executed by an electronic computing device, cause the electronic computing device to:
-
receive a first identifier, the first identifier identifying a first person, the first identifier being derived from an email address, an instant messaging address, a name or an alias; store the first identifier in a data structure in a first memory cache on the electronic computing device, the data structure comprising a person object, the person object comprising one or more contact objects; determine from metadata associated with the first identifier whether the first identifier indicates that the first person is a global address list contact; when it is determined that the first identifier indicates that the first person is a global address list contact; obtain first properties for the first person from a global address list store, the first properties comprising first contact information for the first person; and store the first properties in a first contact object in the data structure; when it is determined that the first identifier does not indicate that the first person is a global address list contact, determine from metadata associated with the first identifier whether the first person is an email contact, the email contact being a contact in a contact store for an email application running on the electronic computing device; when it is determined that the first identifier is an email contact; obtain second properties for the first person from the contact store, the second properties comprising second contact information for the first person; store the second properties in the data structure in the first memory cache on the electronic computing device, the second properties being stored in a second contact object in the data structure; determine whether the second properties include a global address identifier, the global address identifier identify the first person in the global address list store; and when it is determined that the second properties includes the global address identifier, store the global address identifier in the second contact object; when it is determined that the second properties do not include a global address identifier; determine whether the second properties includes one or more email addresses; and when it is determined that the second properties include one or more email addresses; for each of the one or more email addresses, determine whether a match is found between the email address and a contact in the global address list; and when it is determined that a match is found between the email address and the contact in the global address list, obtain contact information from the global address list corresponding to the email address and store the contact information in the first memory cache; create a second identifier for the first person, the second identifier being a person identifier that identifies the person; store the second identifier in the first contact object; store the second identifier in the second contact object; obtain one or more email addresses from a list of email addresses stored on the electronic computing device; send one or more of the email address to one or more third party sources; obtain contact information from one or more of the third party sources; update the data structure in the first memory cache with the contact information; update the first memory cache with each mail address associated with the contact information; when the first contact is a global address identifier contact, determine whether access to third party contact information is available via the session initiation protocol; when it is determined that access to third party contact information is available via the session initiation protocol; obtain a second identifier from the first identifier, the second identifier having an address associated with the session initiation protocol; and use the second identifier to obtain presence information for the first contact from a server computer; and when it is determined that access to third party contact information is not available via the session initiation protocol; obtain one or more email addresses from a list of email addresses stored on the electronic computing device; and use the one or more email addresses to obtain presence information for the first contact from the server computer.
-
Specification