/** * Given a Flow activity and the current Flow Executor, create the runtime implementation of the activity. * @method jibo.flow.ActivityImplementationFactory#getImplementationOfActivity * @param {jibo.flow.Activity} activity - The activity we wish to get the implementation of. * @param {jibo.flow.FlowExecutor} flowExecutor - The current FlowExecutor. * @param {any} optionCodeThis - object containing only an '.in' property, whose value is the 'this.out' from the previous activity executed. * @returns {jibo.flow.ActivityImplementation} an ActivityImplementation for the given activity. */ /** * Given a Flow activity, return either a Flow-Activity or Behavior constructor for it. * @method jibo.flow.ActivityImplementationFactory#getActivityOrBehaviorConstructor * @param {jibo.flow.Activity} activity - The activity to find the constructor for. * @returns {any} Object with an ActivityImplementation constructor or a Behavior constructor. */ /** * Return the JS Class name for the given activity. This is simply a permutation of the activity's Flow Type. * (e.g. it converts Flow.Eval-Async to FlowEvalAsync) * @param {jibo.flow.Activity} activity - The activity to find the constructor for. * @returns {string} - The JS Class name of the activity's implementation. */ /** * Given a BehaviorConstructor, return the Flow implementation of a Behavior (really a Flow Class instance that wraps a Behavior Class instance). * @method jibo.flow.ActivityImplementationFactory#getBehaviorClassInstance * @param {jibo.bt.BehaviorConstructor} behaviorConstructor - The Behavior constructor for the Behavior or Decorator being wrapped by this Flow Activity. * @param {jibo.flow.Activity} activity - The current Behavior-type Flow activity. * @param {jibo.flow.FlowExecutor} flowExecutor - The current FlowExecutor. * @param {any} optionCodeThis - The object being used for the "this" object in the option code. * @returns {jibo.flow.FlowBehavior} - a FlowBehavior instance that wraps the instantiated Behavior. */ /** * Given an activity constructor, return the constructed activity. * @param {any} activityConstructor - The ActivityImplementation constructor. * @param {jibo.flow.Activity} activity - The current Flow activity. * @param {jibo.flow.FlowExecutor} flowExecutor - The current FlowExecutor. * @param {any} optionCodeThis - The object being used for the "this" object in the option code. * @returns {jibo.flow.ActivityImplementation} an ActivityImplementation for the given activity. */ /** * Log the start of execution of every activity. * @method jibo.flow.ActivityImplementationFactory#log * @param {jibo.flow.Activity} activity - The Activity to log a record of. * @param {jibo.flow.FlowExecutor} flowExecutor - The current FlowExecutor. */