Exemple #1
0
 public DmnBusinessRuleTaskActivityBehavior(BaseCallableElement callableElement, string resultVariableName,
                                            IDecisionResultMapper decisionResultMapper)
 {
     this.CallableElement      = callableElement;
     ResultVariable            = resultVariableName;
     this.DecisionResultMapper = decisionResultMapper;
 }
        public static ProcessDefinitionImpl GetProcessDefinitionToCall(IVariableScope execution,
                                                                       BaseCallableElement callableElement)
        {
            var processDefinitionKey = callableElement.GetDefinitionKey(execution);
            var tenantId             = callableElement.GetDefinitionTenantId(execution);

            DeploymentCache deploymentCache = DeploymentCache;

            ProcessDefinitionImpl processDefinition = null;

            if (callableElement.LatestBinding)
            {
                processDefinition =
                    deploymentCache.FindDeployedLatestProcessDefinitionByKeyAndTenantId(processDefinitionKey, tenantId);
            }
            else if (callableElement.DeploymentBinding)
            {
                var deploymentId = callableElement.DeploymentId;
                processDefinition = deploymentCache.FindDeployedProcessDefinitionByDeploymentAndKey(deploymentId,
                                                                                                    processDefinitionKey);
            }
            else if (callableElement.VersionBinding)
            {
                var version = callableElement.GetVersion(execution);
                processDefinition =
                    deploymentCache.FindDeployedProcessDefinitionByKeyVersionAndTenantId(processDefinitionKey, version,
                                                                                         tenantId);
            }

            return(processDefinition);
        }
        //public static CmmnCaseDefinition getCaseDefinitionToCall(IVariableScope execution, BaseCallableElement callableElement)
        //{
        //    string caseDefinitionKey = callableElement.getDefinitionKey(execution);
        //    string tenantId = callableElement.getDefinitionTenantId(execution);

        //    DeploymentCache deploymentCache = DeploymentCache;

        //    CmmnCaseDefinition caseDefinition = null;
        //    if (callableElement.LatestBinding)
        //    {
        //        caseDefinition = deploymentCache.findDeployedLatestCaseDefinitionByKeyAndTenantId(caseDefinitionKey, tenantId);

        //    }
        //    else if (callableElement.DeploymentBinding)
        //    {
        //        string deploymentId = callableElement.DeploymentId;
        //        caseDefinition = deploymentCache.findDeployedCaseDefinitionByDeploymentAndKey(deploymentId, caseDefinitionKey);

        //    }
        //    else if (callableElement.VersionBinding)
        //    {
        //        int? version = callableElement.getVersion(execution);
        //        caseDefinition = deploymentCache.findDeployedCaseDefinitionByKeyVersionAndTenantId(caseDefinitionKey, version, tenantId);
        //    }

        //    return caseDefinition;
        //}

        public static IDecisionDefinition GetDecisionDefinitionToCall(IVariableScope execution,
                                                                      BaseCallableElement callableElement)
        {
            var decisionDefinitionKey = callableElement.GetDefinitionKey(execution);
            var tenantId = callableElement.GetDefinitionTenantId(execution);

            DeploymentCache deploymentCache = DeploymentCache;

            IDecisionDefinition decisionDefinition = null;

            if (callableElement.LatestBinding)
            {
                decisionDefinition =
                    deploymentCache.FindDeployedLatestDecisionDefinitionByKeyAndTenantId(decisionDefinitionKey, tenantId);
            }
            else if (callableElement.DeploymentBinding)
            {
                var deploymentId = callableElement.DeploymentId;
                decisionDefinition = deploymentCache.FindDeployedDecisionDefinitionByDeploymentAndKey(deploymentId,
                                                                                                      decisionDefinitionKey);
            }
            else if (callableElement.VersionBinding)
            {
                var version = callableElement.GetVersion(execution);
                decisionDefinition =
                    deploymentCache.FindDeployedDecisionDefinitionByKeyVersionAndTenantId(decisionDefinitionKey, version,
                                                                                          tenantId);
            }

            return(decisionDefinition);
        }
Exemple #4
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void testBinding()
        public virtual void testBinding()
        {
            // given:
            BaseCallableElement.CallableElementBinding caseBinding = BaseCallableElement.CallableElementBinding.LATEST;
            decisionTask.CamundaDecisionBinding = caseBinding.Value;

            // when
            CmmnActivity activity = handler.handleElement(planItem, context);

            // then
            DecisionTaskActivityBehavior behavior        = (DecisionTaskActivityBehavior)activity.ActivityBehavior;
            BaseCallableElement          callableElement = behavior.CallableElement;

            BaseCallableElement.CallableElementBinding binding = callableElement.Binding;
            assertNotNull(binding);
            assertEquals(caseBinding, binding);
        }
Exemple #5
0
//JAVA TO C# CONVERTER WARNING: MethodInfo 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public static void evaluateDecision(org.camunda.bpm.engine.impl.core.Variable.scope.AbstractVariableScope execution, org.camunda.bpm.engine.impl.core.model.BaseCallableElement callableElement, String resultVariable, org.camunda.bpm.engine.impl.dmn.result.DecisionResultMapper decisionResultMapper) throws Exception
        public static void EvaluateDecision(AbstractVariableScope execution, BaseCallableElement callableElement,
                                            string resultVariable, IDecisionResultMapper decisionResultMapper)
        {
            var decisionDefinition = ResolveDecisionDefinition(callableElement, execution);
            var invocation         = CreateInvocation(decisionDefinition, execution);

            Invoke(invocation);

            var result = (IDmnDecisionResult)invocation.InvocationResult;

            if (result != null)
            {
                execution.SetVariableLocalTransient(DecisionResultVariable, result);

                if (!ReferenceEquals(resultVariable, null) && (decisionResultMapper != null))
                {
                    var mappedDecisionResult = decisionResultMapper.MapDecisionResult(result);
                    execution.SetVariable(resultVariable, mappedDecisionResult);
                }
            }
        }
Exemple #6
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void testVersionConstant()
        public virtual void testVersionConstant()
        {
            // given:
            string caseVersion = "2";

            decisionTask.CamundaDecisionVersion = caseVersion;

            // when
            CmmnActivity activity = handler.handleElement(planItem, context);

            // then
            DecisionTaskActivityBehavior behavior        = (DecisionTaskActivityBehavior)activity.ActivityBehavior;
            BaseCallableElement          callableElement = behavior.CallableElement;

            ParameterValueProvider caseVersionValueProvider = callableElement.VersionValueProvider;

            assertNotNull(caseVersionValueProvider);

            assertTrue(caseVersionValueProvider is ConstantValueProvider);
            assertEquals(caseVersion, caseVersionValueProvider.getValue(null));
        }
Exemple #7
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void testVersionExpression()
        public virtual void testVersionExpression()
        {
            // given:
            string caseVersion = "${aVersion}";

            decisionTask.CamundaDecisionVersion = caseVersion;

            // when
            CmmnActivity activity = handler.handleElement(planItem, context);

            // then
            DecisionTaskActivityBehavior behavior        = (DecisionTaskActivityBehavior)activity.ActivityBehavior;
            BaseCallableElement          callableElement = behavior.CallableElement;

            ParameterValueProvider caseVersionValueProvider = callableElement.VersionValueProvider;

            assertNotNull(caseVersionValueProvider);

            assertTrue(caseVersionValueProvider is ElValueProvider);
            ElValueProvider valueProvider = (ElValueProvider)caseVersionValueProvider;

            assertEquals(caseVersion, valueProvider.Expression.ExpressionText);
        }
Exemple #8
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void testExpressionDecisionRef()
        public virtual void testExpressionDecisionRef()
        {
            // given:
            string decisionRef = "${aDecisionToCall}";

            decisionTask.Decision = decisionRef;

            // when
            CmmnActivity activity = handler.handleElement(planItem, context);

            // then
            DecisionTaskActivityBehavior behavior        = (DecisionTaskActivityBehavior)activity.ActivityBehavior;
            BaseCallableElement          callableElement = behavior.CallableElement;

            ParameterValueProvider caseRefValueProvider = callableElement.DefinitionKeyValueProvider;

            assertNotNull(caseRefValueProvider);

            assertTrue(caseRefValueProvider is ElValueProvider);
            ElValueProvider valueProvider = (ElValueProvider)caseRefValueProvider;

            assertEquals(decisionRef, valueProvider.Expression.ExpressionText);
        }
Exemple #9
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void testConstantDecisionRef()
        public virtual void testConstantDecisionRef()
        {
            // given:
            string decisionRef = "aDecisionToCall";

            decisionTask.Decision = decisionRef;

            // when
            CmmnActivity activity = handler.handleElement(planItem, context);

            // then
            DecisionTaskActivityBehavior behavior        = (DecisionTaskActivityBehavior)activity.ActivityBehavior;
            BaseCallableElement          callableElement = behavior.CallableElement;

            ParameterValueProvider decisionRefValueProvider = callableElement.DefinitionKeyValueProvider;

            assertNotNull(decisionRefValueProvider);

            assertTrue(decisionRefValueProvider is ConstantValueProvider);
            ConstantValueProvider valueProvider = (ConstantValueProvider)decisionRefValueProvider;

            assertEquals(decisionRef, valueProvider.getValue(null));
        }
Exemple #10
0
 protected internal static IDecisionDefinition ResolveDecisionDefinition(BaseCallableElement callableElement,
                                                                         AbstractVariableScope execution)
 {
     //throw new NotImplementedException();
     return(CallableElementUtil.GetDecisionDefinitionToCall(execution, callableElement));
 }