public virtual IDictionary <string, object> GetCustomPropertiesMap(IExecutionEntity execution) { if (customPropertiesResolverInstance == null) { customPropertiesResolverInstance = CustomPropertiesResolverInstance; } return(customPropertiesResolverInstance.GetCustomPropertiesMap(execution)); }
protected internal virtual void PlanTransactionDependentExecutionListener(IListenerFactory listenerFactory, IExecutionEntity execution, ITransactionDependentExecutionListener executionListener, ActivitiListener activitiListener) { IDictionary <string, object> executionVariablesToUse = execution.Variables; ICustomPropertiesResolver customPropertiesResolver = CreateCustomPropertiesResolver(activitiListener); IDictionary <string, object> customPropertiesMapToUse = InvokeCustomPropertiesResolver(execution, customPropertiesResolver); TransactionDependentExecutionListenerExecutionScope scope = new TransactionDependentExecutionListenerExecutionScope(execution.ProcessInstanceId, execution.Id, execution.CurrentFlowElement, executionVariablesToUse, customPropertiesMapToUse); AddTransactionListener(activitiListener, new ExecuteExecutionListenerTransactionListener(executionListener, scope)); }
protected internal virtual ICustomPropertiesResolver CreateCustomPropertiesResolver(ActivitiListener activitiListener) { ICustomPropertiesResolver customPropertiesResolver = null; IListenerFactory listenerFactory = Context.ProcessEngineConfiguration.ListenerFactory; if (ImplementationType.IMPLEMENTATION_TYPE_CLASS.Equals(activitiListener.CustomPropertiesResolverImplementationType, StringComparison.CurrentCultureIgnoreCase)) { customPropertiesResolver = listenerFactory.CreateClassDelegateCustomPropertiesResolver(activitiListener); } else if (ImplementationType.IMPLEMENTATION_TYPE_EXPRESSION.Equals(activitiListener.CustomPropertiesResolverImplementationType, StringComparison.CurrentCultureIgnoreCase)) { customPropertiesResolver = listenerFactory.CreateExpressionCustomPropertiesResolver(activitiListener); } else if (ImplementationType.IMPLEMENTATION_TYPE_DELEGATEEXPRESSION.Equals(activitiListener.CustomPropertiesResolverImplementationType, StringComparison.CurrentCultureIgnoreCase)) { customPropertiesResolver = listenerFactory.CreateDelegateExpressionCustomPropertiesResolver(activitiListener); } return(customPropertiesResolver); }
protected internal virtual IDictionary <string, object> InvokeCustomPropertiesResolver(IExecutionEntity execution, ICustomPropertiesResolver customPropertiesResolver) { IDictionary <string, object> customPropertiesMapToUse = null; if (customPropertiesResolver != null) { customPropertiesMapToUse = customPropertiesResolver.GetCustomPropertiesMap(execution); } return(customPropertiesMapToUse); }