Go AVDN
TheRelation - Whose Subclasses Can Define Ties

When for a particular purpose, there is one and at most one another related object to be associated with an object, it's probably to be associated through a Tie field. And the object get to derive from av.tob.TheRelation to be able to define such a field.

For example the Order object for an OrderItem object. Every OrderItem belongs to a single Order object, and an Order object can have many OrderItem objects. So the owner Order object can be tied by a Tie field of the OrderItem object.

A single relation object can tie more than one target objects together, with the same number of Tie fields. For example each Categorization object ties one Category and one Product object together.

A separated Categorization relation class also enables multiple Category object be associated with a single Product object, and multiple Product objects be associated with a single Category object.

A Tie field reflects a tight connection from a relation object to one of its target objects. Where the relation object can even receive a notification upon the target object's deletion by overriding Tie.killingTargetNotify() and Tie.targetKilledNotify() of the tie reference.

A tie can be seen as a rope from a relation object, which has a knot at the outer end that ties one target object at a time.