public class IndividualAggregator : Object
This is the main interface for client applications.
Linking and unlinking of personas and individuals is performed entirely through the aggregator. Personas may be linked together to form
individuals; for example, the personas which form
individual2 may be linked together with
another_persona to give a new Individual:
var personas = new HashSet<Persona> ();
yield my_individual_aggregator.link_personas (personas);
The individuals which contained those personas will be removed when IndividualAggregator.link_personas is called. Any personas in those individuals which were not included in the linking call may end up implicitly linked to the new individual, or may be aggregated into other new individuals.
For example, consider the situation where
individual1 contains two personas,
individual2 contains one persona,
another_persona comes from
which also contains
another_persona will result in
being removed. A new Individual will be created containing all the personas
passed to the linking function. It might also contain
persona3B; or they might be in one or two other
An existing individual may be unlinked to form singleton individuals for each of its personas:
yield my_individual_aggregator.unlink_individual (my_individual);
Note that to link two individuals together, their two sets of personas must be linked together. There is no API to directly link the individuals themselves, as conceptually folks links Personas, not Individuals.
Folks does not support having more than one IndividualAggregator instantiated at the same time. Most clients should use IndividualAggregator.dup to retrieve the IndividualAggregator singleton.