${programmers}
When a collection is being created from a setup table, an ${objectFactoryMethod} is called for each row of the table. This is needed because the type of the elements of the collection are not known (prior to jdk1.5).
 * The name of the ${objectFactoryMethod} is formed from concatenating each of the ${label}s in the table and applying ${extendedCamelCase} to them
  * Eg, the labels "name", "owing" form the ${objectFactoryMethod} name of ''nameOwing()''.
 * The ${objectFactoryMethod} takes an argument for each ${label} column in the table, in order.
 * The ${objectFactoryMethod} is called once for each element row of the table, passing the values from the table as arguments (suitably parsed).
The responsibility of the ${objectFactoryMethod} depends on whether the ${listSetUp} has been passed a Collection or not:
 * For an embedded table, a list is automatically constructed by ${fitLibrary} and passed to the ${listSetUp}. The ${objectFactoryMethod} creates a suitable object from the arguments and returns it. It's automatically added to the list.
 * For a table that's not embedded, there are two possibilities:
  * A list was passed to the ${listSetUp} when it was selected. The ${objectFactoryMethod} creates a suitable object from the arguments and returns it. It's automatically added to the list.
  * '''No''' list was passed to the ${listSetUp} when it was selected. The ${objectFactoryMethod} is then responsible for adding the created object to some collection itself. It doesn't need to return it. This option is provided for:
   * Backwards compatibility, because this was how ''!-SetUpFixture-!'' worked
   * Creating other types of collections, such as ''Maps''
   * When it's necessary to wire up bidirectional associations between objects (To do: discuss this in detail.)
!3 Examples
 * See [[''chat example''][.FitLibrary.UserGuide.FitLibraryByExample.WorkFlow.WorkflowCode]]
