Class GenericActorFactory<OF extends GenericActorFactory<OF,S,A,C,D,DM,F,G,Obj>,S extends GenericSimulation<S,A,C,D,DM,F,G>,A extends GenericActor<S,A,C,D,DM,F,G>,C extends GenericCondition<S,A,C,D,DM,F,G>,D extends GenericDomain<S,A,C,D,DM,F,G>,DM extends GenericDomainMember<S,A,C,D,DM,F,G>,F extends GenericFactory<S,A,C,D,DM,F,G>,G extends GenericGroup<S,A,C,D,DM,F,G>,Obj extends A>

java.lang.Object
org.bzdev.obnaming.NamedObjectFactory<F,Simulation,SimObject,OBJ>
org.bzdev.devqsim.SimObjectFactory<OF,S,Obj>
org.bzdev.drama.generic.GenericActorFactory<OF,S,A,C,D,DM,F,G,Obj>
All Implemented Interfaces:
Cloneable
Direct Known Subclasses:
AbstractActorFactory

public abstract class GenericActorFactory<OF extends GenericActorFactory<OF,S,A,C,D,DM,F,G,Obj>,S extends GenericSimulation<S,A,C,D,DM,F,G>,A extends GenericActor<S,A,C,D,DM,F,G>,C extends GenericCondition<S,A,C,D,DM,F,G>,D extends GenericDomain<S,A,C,D,DM,F,G>,DM extends GenericDomainMember<S,A,C,D,DM,F,G>,F extends GenericFactory<S,A,C,D,DM,F,G>,G extends GenericGroup<S,A,C,D,DM,F,G>,Obj extends A> extends SimObjectFactory<OF,S,Obj>
Abstract class for actor factories.

Generally, there will be a class hierarchy of abstract factories matching the class hierarchy for subclasses of the class a factory creates, each responsible for providing parameters for the corresponding subclass. In addition, there will typically be a factory that is not abstract for each class that can be created.

This class includes the common parameters necessary to initialize actors.

Parameters:

  • domainMember. Used to configure an instance of DomainMember as a shared domain member for handling domain membership.
  • domains. Used to clear a set of domains explicitly provided, but cannot be used to set or add domains.
  • domain. Used to specify a domain that can added or removed from the actor's domain set. For this parameter, the key is the domain and the value is a boolean that is true if conditions for that domain should be tracked; false otherwise. If a specified domain was already joined by a shared domain member, an explicit request to join that domain will be ignored when an actor is created.

The parameters inherited from superclasses are:

  • "timeline" - an integer-keyed set of values that define changes in the object's configuration. Subclasses may provide additional parameters. The default parameters are:
    • "timeline.time" - the time at which timeline parameters are to change. This parameter must be provided if a timeline entry exists. The units are those used by the double-precision time unit for the simulation (for animations, this is generally seconds).
    • "timeline.traceSetMode" - indicates how the parameter "timeline.traceSets" is interpreted. the values are enumeration constants of type TraceSetMode and are used as follows:
      • KEEP - keep the existing trace sets, adding additional ones specified by the parameter "timeline.traceSets".
      • REMOVE - remove the trace sets specified by the parameter "timeline.traceSets".
      • REPLACE - remove all existing trace sets and replace those with the ones specified by the timeline.traceSets parameter.
    • "timeline.traceSets" - a parameter representing a set of TraceSet objects (the three-argument 'add' method is used to add entries).
  • "traceSets" - a set of TraceSets a SimObject will use for tracing. One should use the add and remove factory methods as this parameter refers to a set of values.
  • Constructor Details

    • GenericActorFactory

      protected GenericActorFactory(S sim)
      Constructor. Subclasses must call this constructor.
      Parameters:
      sim - the simulation
  • Method Details

    • clone

      public Object clone() throws CloneNotSupportedException
      Overrides:
      clone in class Object
      Throws:
      CloneNotSupportedException
    • clear

      public void clear()
      Description copied from class: NamedObjectFactory
      Clear all entries and restore to default values. Note: each subclass that implements this method should call super.clear(). Any subclass that defines parameters should call this method in order to restore the parameters to their default values. When an annotation processor is used for some parameters, those parameters can be restored to their default value by calling the parm manager's setDefaults method with the factory as its argument.
      Overrides:
      clear in class SimObjectFactory<OF extends GenericActorFactory<OF,S,A,C,D,DM,F,G,Obj>,S extends GenericSimulation<S,A,C,D,DM,F,G>,Obj extends A>
    • initObject

      protected void initObject(Obj actor)
      Description copied from class: NamedObjectFactory
      Initialize an object. This method will call the methods for the object necessary to initialize it based on how the factory was configured, and is called by createObject() and createObjects unless these methods are overridden. The default method does nothing. Subclasses that override this method to provide subclass-specific initializations must start with the statement "super.initObject(object);".
      Overrides:
      initObject in class SimObjectFactory<OF extends GenericActorFactory<OF,S,A,C,D,DM,F,G,Obj>,S extends GenericSimulation<S,A,C,D,DM,F,G>,Obj extends A>
      Parameters:
      actor - the object to initialize