Chapter 5. Delegation classes

5.1. What are delegation classes

Delegation classes are the classes that implement Activity or Condition. From the Process Virtual Machine's perspective, these are external classes that provide programming logic that is inserted into the PVM's graph execution. Delegation classes can be provided by the process languages as well as by the end users.

5.2. Configuration of delegation classes

Delegation classes can be made configurable. Member fields can contain configuration parameters so that a delegation class can be configured differently each time it is used. For example, in the Display activity, the message that is to be printed to the console is a configuration parameter.

Delegation classes should be stateless. This means that executing the interface methods should not change values of the member fields. Changing member field values of delegation classes during execution methods is actually changing the process while it's executing. That is not threadsafe and usually leads to unexpected results. As an exception, getters and setters might be made available to inject the configuration cause they are used before the delegation object is actually used in the process execution.

5.3. Object references

TODO

5.4. Design time versus runtime

TODO: the node behaviour allows for design time as well as runtime behaviour.

5.5. UserCodeInterceptor

TODO: UserCodeInterceptor

5.6. Member field configurations versus properties

TODO: document field configurations versus properties