The name of a function parameter may contain only letters, digits, and "_". The first character must not be a digit.
You may change the names of functions, member variables and virtual types when you override them in a derived class or pattern (for instance in order to resolve name collisions in cases of multiple inheritance). They inherit the names of the base versions by default (and their name is changed accordingly if the inherited base name is changed). Check this check-box if you would like to assign a different name (which will not be changed then if the base name is changed).
The type of the member variable may be selected from the combo-boxes "Basic types" and "Other types". "Basic types" lists all classes whose declaration is contained in the basic include file std.lava. If you don't explicitly select a type for a new member variable then its type will be String.
This attribute enables us to distinguish three kinds of references to other objects: Constituents, acquaintances, and reverse (back or up) links. Constituents belong to the current object, acquaintances are pointers to independent objects, and reverse links are auxiliary back or up pointers that are required to facilitate automatic storage management by reference counts.
The object category of a member variable may be value object (default) or state object.
A protected member variable can be accessed only by functions contained in the implementation of the present or a derived class.
A read-only member variable xy of some object can be assigned a value only "from inside the object" via the path self.xy, i.e., from within functions belonging to the current class or its implementation. It is write-protected against access "from outside".
The effect of this attribute is that the respective member object remains isolated from the outside world. Every read access delivers a copy of the object (that may the manipulated without affecting the original object), every write access assigns a copy to the corresponding member variable (that will not be affected by subsequent modifications of the write input object).
This attribute is enabled only if the member variable is accessed via set/get functions (see next paragraph). It allows you to defer the implementation of the set/get functions to a derived class: The set/get functions are abstract.
If a member variable xy has this property then set/get functions are generated for it in the implementation of the containing class. Every read or write access to the variable is redirected implicitly through these get/set functions. Only these set/get functions themselves may directly access the variable. In this way you can supervise every access attempt to the variable and, by properly modifying the default set/get functions, achieve additional side effects or perform access permission checks.
Consumable member variables are used for producer/consumer synchronization in Lava.
The mode of a member variable may be mandatory (default), optional, or placeholder. If optional, the parameter may assume the special null value Ø ("undefined"). Placeholder members cannot be accessed at all. They are used in forms to describe fields that are to be filled in only in a later step by some other person, although they are visible from the beginning.
See also