Folks.Individual – folks Reference Manual

# Individual

## Object Hierarchy:

## Description:

public class Individual : Object, AliasDetails, AvatarDetails, BirthdayDetails, EmailDetails, ExtendedInfo, FavouriteDetails, GenderDetails, GroupDetails, ImDetails, InteractionDetails, LocalIdDetails, LocationDetails, NameDetails, NoteDetails, PresenceDetails, PhoneDetails, PostalAddressDetails, RoleDetails, UrlDetails, WebServiceDetails

A physical person, aggregated from the various Personas the person might have, such as their different IM addresses or vCard entries. An individual must always contain at least one Persona.

When choosing the values of single-valued properties (such as Individual.alias and Individual.avatar; but not multi-valued properties such as Individual.groups and Individual.im_addresses) from the Personas in the individual to present as the values of those properties of the individual, it is guaranteed that if the individual contains a persona from the primary persona store (see IndividualAggregator.primary_store), its property values will be chosen above all others. This means that any changes to property values made through folks (which are normally written to the primary store) will always be used by Folks.Individuals.

No further guarantees are made about the order of preference used for choosing which property values to use for the Folks.Individual, other than that the order may vary between properties, but is guaranteed to be stable for a given property.

Namespace: Folks
Package: folks

## Content:

### Properties:

- public string alias { get; set; }
  An alias for the contact.
- public LoadableIcon? avatar { get; set; }
  An avatar for the contact.
- public DateTime? birthday { get; set; }
  The birthday of the Persona and Individual. This is assumed to be in UTC.
- public string? calendar_event_id { get; set; }
  The event ID of the birthday event from the source calendar.
- public uint call_interaction_count { get; }
  The call interaction associated with a Persona
- public string[] client_types { get; set; }
  The contact's client types.
- public string display_name { get; }
  The name of this Individual to display in the UI.
- public Set<EmailFieldDetails> email_addresses { get; set; }
  The email addresses of the contact.
- public string full_name { get; set; }
  The full name of the contact.
- public Gender gender { get; set; }
  The gender of the contact.
- public Set<string> groups { get; set; }
  A set of group IDs for groups containing the member.
- public string id { get; }
  A unique identifier for the Individual.
- public MultiMap<string,ImFieldDetails> im_addresses { get; set; }
  A mapping of IM protocol to an (unordered) set of IM addresses.
- public uint im_interaction_count { get; }
  The IM interaction associated with a Persona
- public bool is_favourite { get; set; }
  Whether this Individual is a user-defined favourite.
- public bool is_user { get; }
  Whether the Individual is the user.
- public DateTime? last_call_interaction_datetime { get; }
- public DateTime? last_im_interaction_datetime { get; }
- public Set<string> local_ids { get; set; }
  The IIDs corresponding to Personas in a backend that we fully trust.
- public Location? location { get; set; }
  The current location of the contact. Null if the contact’s current location isn’t known, or they’re keeping it private.
- public string nickname { get; set; }
  The nickname of the contact.
- public Set<NoteFieldDetails> notes { get; set; }
  The notes about the contact.
- public Set<Persona> personas { get; set; }
  The set of Persona s encapsulated by this Individual.
- public Set<PhoneFieldDetails> phone_numbers { get; set; }
  The phone numbers of the contact.
- public Set<PostalAddressFieldDetails> postal_addresses { get; set; }
  The postal addresses of the contact.
- public string presence_message { get; set; }
  The contact's presence message.
- public string presence_status { get; set; }
  The contact's detailed presence status.
- public PresenceType presence_type { get; set; }
  The contact's presence type.
- public Set<RoleFieldDetails> roles { get; set; }
  The roles of the contact.
- public StructuredName? structured_name { get; set; }
  The contact name split in its constituent parts.
- public TrustLevel trust_level { get; }
  The trust level of the Individual.
- public Set<UrlFieldDetails> urls { get; set; }
  The websites of the contact.
- public MultiMap<string,WebServiceFieldDetails> web_service_addresses { get; set; }
  A mapping of web service to an (unordered) set of web service addresses.

### Creation methods:

- public Individual (Set<Persona>? personas)
  Create a new Individual.

### Methods:

- public async void change_alias (string alias) throws PropertyError
  Change the contact's alias.
- public async void change_avatar (LoadableIcon? avatar) throws PropertyError
- public async void change_extended_field (string name, ExtendedFieldDetails value) throws PropertyError
  Change the value of an arbitrary field.
- public async void change_group (string group, bool is_member)
  Add or remove the Individual from the specified group.
- public async void change_groups (Set<string> groups) throws PropertyError
  Change the contact's groups.
- public async void change_is_favourite (bool is_favourite) throws PropertyError
  Change whether the contact is a user-defined favourite.
- public async void change_nickname (string nickname) throws PropertyError
  Change the contact's nickname.
- public ExtendedFieldDetails? get_extended_field (string name)
  Retrieve the value for an arbitrary field.
- public bool has_anti_link_with_individual (Individual i)
  Anti-linked with an individual?
- public bool has_anti_link_with_persona (Persona p)
  Anti-linked with a persona?
- public async void remove_extended_field (string name) throws PropertyError
  Remove an arbitrary field.

### Signals:

- public signal void personas_changed (Set<Persona> added, Set<Persona> removed)
  Emitted when one or more Personas are added to or removed from the Individual. As the parameters are (unordered) sets, the orders of their elements are undefined.
- public signal void removed (Individual? replacement_individual)
  Emitted when the last of the Individual's Personas has been removed.

### Inherited Members:

All known members inherited from class GLib.Object

- @get
- @new
- @ref
- @set
- add_toggle_ref
- add_weak_pointer
- bind_property
- connect
- constructed
- disconnect
- dispose
- dup_data
- dup_qdata
- force_floating
- freeze_notify
- get_class
- get_data

- get_property
- get_qdata
- get_type
- getv
- interface_find_property
- interface_install_property
- interface_list_properties
- is_floating
- new_valist
- new_with_properties
- newv
- notify
- notify_property
- ref_count
- ref_sink
- remove_toggle_ref
- remove_weak_pointer

- replace_data
- replace_qdata
- set_data
- set_data_full
- set_property
- set_qdata
- set_qdata_full
- set_valist
- setv
- steal_data
- steal_qdata
- thaw_notify
- unref
- watch_closure
- weak_ref
- weak_unref

All known members inherited from interface Folks.AliasDetails

- alias

- change_alias

All known members inherited from interface Folks.AvatarDetails

- avatar

- change_avatar

All known members inherited from interface Folks.BirthdayDetails

- birthday
- calendar_event_id

- change_birthday

- change_calendar_event_id

All known members inherited from interface Folks.EmailDetails

- change_email_addresses

- email_addresses

All known members inherited from interface Folks.ExtendedInfo

- change_extended_field

- get_extended_field

- remove_extended_field

All known members inherited from interface Folks.FavouriteDetails

- change_is_favourite

- is_favourite

All known members inherited from interface Folks.GenderDetails

- change_gender

- gender

All known members inherited from interface Folks.GroupDetails

- change_group
- change_groups

- group_changed

- groups

All known members inherited from interface Folks.ImDetails

- change_im_addresses

- im_addresses

- normalise_im_address

All known members inherited from interface Folks.InteractionDetails

- call_interaction_count
- im_interaction_count

- last_call_interaction_datetime

- last_im_interaction_datetime

All known members inherited from interface Folks.LocalIdDetails

- change_local_ids

- local_ids

All known members inherited from interface Folks.LocationDetails

- change_location

- location

All known members inherited from interface Folks.NameDetails

- change_full_name
- change_nickname

- change_structured_name
- full_name

- nickname
- structured_name

All known members inherited from interface Folks.NoteDetails

- change_notes

- notes

All known members inherited from interface Folks.PresenceDetails

- client_types
- get_default_message_from_type
- is_online

- presence_message
- presence_status

- presence_type
- typecmp

All known members inherited from interface Folks.PhoneDetails

- change_phone_numbers

- phone_numbers

All known members inherited from interface Folks.PostalAddressDetails

- change_postal_addresses

- postal_addresses

All known members inherited from interface Folks.RoleDetails

- change_roles

- roles

All known members inherited from interface Folks.UrlDetails

- change_urls

- urls

All known members inherited from interface Folks.WebServiceDetails

- change_web_service_addresses

- web_service_addresses