There are three main ways to create an object: by constructor or by a factory object or a static factory method.
Using the constructor: Then the class
attribute must provide the
fully qualified class name. In case another constructor then the default is
targetted, a constructor
child element can be provided.
The factory
attribute should not be provided for using a constructor.
Using a factory: Then the factory
attribute or one
factory
element must be provided along with the attribute
method
.
Using a static factory method: Then the class
and
method
attributes should be specified. There should be no
reference to a factory
attribute of element.
Construction and initialization: all objects (constructor and factory) are build in two phases: construction and initialisation phase. During construction all is done until a pointer is obtained to the object. In initialisation, operations are applied to the object until it is ready to be used. The separation between construction and initialisation is made to allow for bidirectional references. In that case, at least one of both ends can not be fully initialised before it is injected into the other end.
Operations: after construction, various operations can be applied to objects like e.g. direct field injection, injection through setters, method invocation, enlist with the standard transaction, subscribe the object as a listener to an observable
Arguments: There are two different places for arguments. The arg
elements for the factory method invocation should be placed as child elements under the
object
element. The arg
elements for the constructor should be
placed as child elements under the constructor
element.
HH:mm dd/MM/yyyy
(see SimpleDateFormat). The format for the absolute time can be customized in the
jbpm configuration.