protected internal virtual DmnDecisionImpl CreateFromDecision(IDmnElementTransformContext context,
                                                                      IDecision decision)
        {
            var decisionEntity = CreateDmnElement();

            decisionEntity.Key  = decision.Id;
            decisionEntity.Name = decision.Name;
            return(decisionEntity);
        }
Beispiel #2
0
 protected internal static string GetExpressionLanguage(IDmnElementTransformContext context,
                                                        string expressionLanguage)
 {
     if (!ReferenceEquals(expressionLanguage, null))
     {
         return(expressionLanguage);
     }
     return(GetGlobalExpressionLanguage(context));
 }
        protected internal override DmnDecisionRequirementsGraphImpl CreateFromDefinitions(
            IDmnElementTransformContext context, IDefinitions definitions)
        {
            var entity = (DecisionRequirementsDefinitionEntity)base.CreateFromDefinitions(context, definitions);

            entity.Category = definitions.Namespace;

            return(entity);
        }
        protected internal virtual DmnDecisionTableImpl CreateFromDecisionTable(IDmnElementTransformContext context,
                                                                                IDecisionTable decisionTable)
        {
            var dmnDecisionTable = CreateDmnElement(context, decisionTable);

            //TODO dmnDecisionTable.HitPolicyHandler赋值
            dmnDecisionTable.HitPolicyHandler = getHitPolicyHandler(context, decisionTable, dmnDecisionTable);

            return(dmnDecisionTable);
        }
Beispiel #5
0
        protected internal virtual DmnDecisionTableRuleImpl CreateFromRule(IDmnElementTransformContext context,
                                                                           IRule rule)
        {
            var decisionTableRule = CreateDmnElement(context, rule);

            decisionTableRule.Id   = rule.Id;
            decisionTableRule.Name = rule.Label;

            return(decisionTableRule);
        }
Beispiel #6
0
        protected internal virtual DmnDecisionRequirementsGraphImpl CreateFromDefinitions(
            IDmnElementTransformContext context, IDefinitions definitions)
        {
            var drd = CreateDmnElement();

            drd.Key  = definitions.Id;
            drd.Name = definitions.Name;

            return(drd);
        }
Beispiel #7
0
        protected internal static string GetGlobalExpressionLanguage(IDmnElementTransformContext context)
        {
            var expressionLanguage = context.ModelInstance.Definitions.ExpressionLanguage;

            if (!DefaultDmnEngineConfiguration.FEEL_EXPRESSION_LANGUAGE.Equals(expressionLanguage))
            {
                return(expressionLanguage);
            }
            return(null);
        }
Beispiel #8
0
 protected internal static IDmnTypeDefinition CreateTypeDefinition(IDmnElementTransformContext context,
                                                                   string typeRef)
 {
     if (!ReferenceEquals(typeRef, null))
     {
         var transformer = context.DataTypeTransformerRegistry.GetTransformer(typeRef);
         return(new DmnTypeDefinitionImpl(typeRef, transformer));
     }
     return(new DefaultTypeDefinition());
 }
        protected internal override DmnDecisionImpl CreateFromDecision(IDmnElementTransformContext context,
                                                                       IDecision decision)
        {
            var decisionDefinition = (DecisionDefinitionEntity)base.CreateFromDecision(context, decision);

            string category = context.ModelInstance.Definitions.Namespace;

            decisionDefinition.Category = category;

            return(decisionDefinition);
        }
Beispiel #10
0
        //TODO Input 底层赋值
        protected internal virtual DmnDecisionTableInputImpl CreateFromInput(IDmnElementTransformContext context,
                                                                             IInput input)
        {
            var decisionTableInput = CreateDmnElement(context, input);

            decisionTableInput.Id            = input.Id;
            decisionTableInput.Name          = input.Label;
            decisionTableInput.InputVariable = input.CamundaInputVariable;

            return(decisionTableInput);
        }
Beispiel #11
0
        protected internal virtual DmnExpressionImpl CreateFromInputEntry(IDmnElementTransformContext context,
                                                                          IInputEntry inputEntry)
        {
            var condition = CreateDmnElement(context, inputEntry);

            condition.Id   = inputEntry.Id;
            condition.Name = inputEntry.Label;
            condition.ExpressionLanguage = DmnExpressionTransformHelper.GetExpressionLanguage(context, inputEntry);
            condition.Expression         = DmnExpressionTransformHelper.GetExpression(inputEntry);

            return(condition);
        }
        protected internal virtual IDmnTypeDefinition GetTypeDefinition(IDmnElementTransformContext context,
                                                                        IOutput output)
        {
            var typeRef = output.TypeRef;

            if (!ReferenceEquals(typeRef, null))
            {
                var transformer = context.DataTypeTransformerRegistry.GetTransformer(typeRef);
                return(new DmnTypeDefinitionImpl(typeRef, transformer));
            }
            return(new DefaultTypeDefinition());
        }
        protected internal virtual DmnDecisionTableOutputImpl CreateFromOutput(IDmnElementTransformContext context,
                                                                               IOutput output)
        {
            var decisionTableOutput = CreateDmnElement(context, output);

            decisionTableOutput.Id             = output.Id;
            decisionTableOutput.Name           = output.Label;
            decisionTableOutput.OutputName     = output.Name;
            decisionTableOutput.TypeDefinition = GetTypeDefinition(context, output);

            return(decisionTableOutput);
        }
        protected internal virtual DmnExpressionImpl CreateFromLiteralExpressionEntry(
            IDmnElementTransformContext context, ILiteralExpression literalExpression)
        {
            var dmnExpression = CreateDmnElement(context, literalExpression);

            dmnExpression.Id   = literalExpression.Id;
            dmnExpression.Name = literalExpression.Label;
            dmnExpression.ExpressionLanguage = DmnExpressionTransformHelper.GetExpressionLanguage(context,
                                                                                                  literalExpression);
            dmnExpression.Expression = DmnExpressionTransformHelper.GetExpression(literalExpression);

            return(dmnExpression);
        }
Beispiel #15
0
        protected internal virtual DmnVariableImpl CreateFromVariable(IDmnElementTransformContext context,
                                                                      IVariable variable)
        {
            var dmnVariable = CreateDmnElement(context, variable);

            dmnVariable.Id   = variable.Id;
            dmnVariable.Name = variable.Name;

            var typeDefinition = DmnExpressionTransformHelper.CreateTypeDefinition(context, variable);

            dmnVariable.TypeDefinition = typeDefinition;

            return(dmnVariable);
        }
        protected internal virtual DmnExpressionImpl CreateFromInputExpression(IDmnElementTransformContext context,
                                                                               IInputExpression inputExpression)
        {
            var dmnExpression = CreateDmnElement(context, inputExpression);

            dmnExpression.Id                 = inputExpression.Id;
            dmnExpression.Name               = inputExpression.Label;
            dmnExpression.TypeDefinition     = DmnExpressionTransformHelper.CreateTypeDefinition(context, inputExpression);
            dmnExpression.ExpressionLanguage = DmnExpressionTransformHelper.GetExpressionLanguage(context,
                                                                                                  inputExpression);
            dmnExpression.Expression = DmnExpressionTransformHelper.GetExpression(inputExpression);

            return(dmnExpression);
        }
        //TODO 决策表规则解析 约束决策表所有规则的 and或or等关系 aggregation默认为SUM问题待解决(可以为null)
        protected internal virtual IDmnHitPolicyHandler getHitPolicyHandler(IDmnElementTransformContext context,
                                                                            IDecisionTable decisionTable, DmnDecisionTableImpl dmnDecisionTable)
        {
            var hitPolicy = decisionTable.HitPolicy;

            if (hitPolicy == null)
            {
                hitPolicy = HitPolicy.Unique;
            }
            var aggregation      = decisionTable.Aggregation;
            var hitPolicyHandler = context.HitPolicyHandlerRegistry.getHandler(hitPolicy, aggregation);

            if (hitPolicyHandler != null)
            {
                return(hitPolicyHandler);
            }
            //return null;
            throw Log.HitPolicyNotSupported(dmnDecisionTable, hitPolicy, aggregation);
        }
Beispiel #18
0
 public static IDmnTypeDefinition CreateTypeDefinition(IDmnElementTransformContext context,
                                                       ILiteralExpression expression)
 {
     return(CreateTypeDefinition(context, expression.TypeRef));
 }
 protected internal virtual DmnDecisionTableOutputImpl CreateDmnElement(IDmnElementTransformContext context,
                                                                        IOutput output)
 {
     return(new DmnDecisionTableOutputImpl());
 }
Beispiel #20
0
 public virtual DmnVariableImpl HandleElement(IDmnElementTransformContext context, IVariable variable)
 {
     return(CreateFromVariable(context, variable));
 }
Beispiel #21
0
 public static IDmnTypeDefinition CreateTypeDefinition(IDmnElementTransformContext context,
                                                       INformationItem informationItem)
 {
     return(CreateTypeDefinition(context, informationItem.TypeRef));
 }
Beispiel #22
0
 public virtual DmnDecisionTableRuleImpl HandleElement(IDmnElementTransformContext context, IRule rule)
 {
     return(CreateFromRule(context, rule));
 }
Beispiel #23
0
 protected internal virtual DmnDecisionTableRuleImpl CreateDmnElement(IDmnElementTransformContext context,
                                                                      IRule rule)
 {
     return(new DmnDecisionTableRuleImpl());
 }
 protected internal virtual DmnExpressionImpl CreateDmnElement(IDmnElementTransformContext context,
                                                               ILiteralExpression inputEntry)
 {
     return(new DmnExpressionImpl());
 }
 public virtual DmnExpressionImpl HandleElement(IDmnElementTransformContext context,
                                                ILiteralExpression literalExpression)
 {
     return(CreateFromLiteralExpressionEntry(context, literalExpression));
 }
Beispiel #26
0
 public static string GetExpressionLanguage(IDmnElementTransformContext context, ILiteralExpression expression)
 {
     return(GetExpressionLanguage(context, expression.ExpressionLanguage));
 }
Beispiel #27
0
 protected internal virtual DmnVariableImpl CreateDmnElement(IDmnElementTransformContext context,
                                                             IVariable variable)
 {
     return(new DmnVariableImpl());
 }
Beispiel #28
0
 public static string GetExpressionLanguage(IDmnElementTransformContext context, IUnaryTests expression)
 {
     return(GetExpressionLanguage(context, expression.ExpressionLanguage));
 }
 public virtual DmnExpressionImpl HandleElement(IDmnElementTransformContext context,
                                                IInputExpression inputExpression)
 {
     return(CreateFromInputExpression(context, inputExpression));
 }
Beispiel #30
0
 public virtual DmnDecisionRequirementsGraphImpl HandleElement(IDmnElementTransformContext context,
                                                               IDefinitions definitions)
 {
     return(CreateFromDefinitions(context, definitions));
 }