company logo

ddetrans - Transient property

This option defines a property as transient. Transient attributes are initialized with the default value. Usually they are filled by the application (e.g. during the read event) or by providing a source expression. Transient references must be set using the setTransientReference() function (Property).

Temporary instances created in a program are always considered as transient Instances.

Transient properties may also define virtual, transient or temporary collections. Referenced instances in not owning transient or temporary collections cannot be updated (canUpdate()) in connection with a reference definition, even thoughthe access mode may be set to Update or Write.

How and when a transient property is filled, depends on the specific property definition. Usually, transient properties having a source are filled automatically when being accessed. Transient properties not having a source must be filled by the application (usually by implementing a TypeContext::doAfterRead() handler in the structure context class for the owning instance).

Transient properties in transient instances are always transient. You may also define transient fields in transient instances (e.g. view instances). Even though a transient instance contains transient properties, only, properties marked as transient behave different from those, which are not marked. Transient properties in transient instances are not filled, when creating the transient instance (e.g. calculating a view instance) but are filled from the source when being accessed or by the application program (when no source has been defined. Sources for transient properties in view instances refer to the view instance and thus, contain post calculated values, while sources for view properties refer to the source instance and calculate values from the source passed to the view.

The life time for transient collections depends on the definition of the persistence type in the property (reference) definition. Bounded collections (transient or temporary) get lost, when the owning instance is unselected. Permanent collections (transient or temporary) will remain and need not to be re-calculated when re-selecting the owning instance.

Notes:

When copying a database, transient attributes having a data source are not resolved. When transient attributes are filled by read handlers, those will be resolved when context handlers are enabled, only (CONTEXT_ENABLED=YES)

Type: logical