3.1.1 Abstract Data Model
This section describes a conceptual model of possible data organization that an implementation maintains to participate in this protocol. The described organization is provided to facilitate the explanation of how the protocol behaves. This document does not mandate that implementations adhere to this model as long as their external behavior is consistent with that described in this document.
All abstract data model (ADM) types maintained by the client are prefixed with "Client".
The following ADM types are defined in this section:
Client.AddressBook: A collection of Client.AddressBookObject ADM types, each of which are contained in any number of AddressList ADM types. Among the many types of objects, a Client.AddressBook ADM type includes the following object types:
Mailbox user, each of which is a mailbox owner.
Mail users, each of which describes a person or entity that can receive e-mail messages.
Distribution lists, each of which is a collection of other mail users, distribution lists, or other Client.AddressBookObject ADM types that can receive e-mail messages.
Resource objects that can be reserved, such as rooms or equipment.
Organization objects, each of which describes an organization.
Department objects, which describe the departmental structure of an organization.
Client.AddressBookContainers ADM types.
Client.AddressBookContainer: A Client.AddressBookObject ADM type that describes a Client.AddressList ADM type.
Client.AddressBookHierarchyTable: A collection of Client.AddressBookContainer ADM types arranged in a hierarchy. Messaging users are able to scroll through this table of objects, set positioning based on a name typed by a messaging user, perform searches, and perform ambiguous name resolution (ANR) against the names in that Client.AddressList ADM type. Messaging users are able to display information about a Client.AddressBookObject ADM type from the table, an object obtained through ANR, or a recipient on a message. The information displayed can be formatted according to a display template that is supplied in the Client.AddressBookObject ADM type, and the type of information depends on the type of Client.AddressBookObject ADM type being displayed.
Client.AddressBookObject: An entity in a Client.AddressBook ADM type that contains a set of attributes, each attribute with a set of associated values
Client.AddressList: A collection of distinct Client.AddressBookObject ADM types.
Client.OfflineAddressBook: A collection of Client.AddressList ADM types that are stored in a format that a client can save and use locally.