Derived Data Members
A derived data member is a special data member whose value is governed by a function.
The value of a derived member is recalculated when one of the terms that constitute its associated function—that is, entries, derived members, or relations—is updated. A derived data member is recomputed only if these elements have been defined as active. The activity of an entry, a derived data member, or a relation is specified in its constructor by the argument IlsActivity.
Derived data members are useful in two ways:
-
Derived data members can compose an efficient object-oriented spreadsheet.
The algorithm for satisfying the evaluation functions of derived data members works incrementally, so in situations that demand complicated calculations, derived data members can improve performance of an application that handles such computations.
-
Derived data members reduce the “distance” between objects to make notification easier. Thus, modifying an object can precipitate the re-evaluation of a derived one contained in a remote object and will set off notification about this remote object.
Derived data members re-act to the updates of other derived data members on which they transitively depend. They are also sensitive to modifications of inter-object relations that they encounter during their computation.
For example, the number of passengers flying on a given airline is the sum of the passengers flying on the various routes this airline operates. This sum is in turn the sum of the number of passengers traveling on each route of the airline.
Each time a flight or a route is added or canceled, or each time a passenger books or cancels a seat, the total number of passengers is updated.
Derived Data Members
The set of derived data members for an application must constitute an acyclic graph. The consistency of this acyclic graph is maintained automatically, on demand, and incrementally.