Search in sources :

Example 1 with SelfPatternBiding

use of org.drools.model.view.SelfPatternBiding in project drools by kiegroup.

the class KiePackagesBuilder method addInnerBindings.

private void addInnerBindings(Collection<Binding> bindings, AccumulateFunction[] accumulateFunctions, Condition condition) {
    List<org.drools.model.Declaration> functionArgList = Arrays.stream(accumulateFunctions).map(function -> function.getSource()).filter(org.drools.model.Declaration.class::isInstance).map(org.drools.model.Declaration.class::cast).collect(Collectors.toList());
    if (condition instanceof CompositePatterns) {
        CompositePatterns compositePatterns = (CompositePatterns) condition;
        for (Condition c : compositePatterns.getSubConditions()) {
            Variable<?>[] boundVariables = c.getBoundVariables();
            Arrays.stream(boundVariables).filter(org.drools.model.Declaration.class::isInstance).map(org.drools.model.Declaration.class::cast).filter(decl -> functionArgList.contains(decl)).forEach(decl -> bindings.add(new SelfPatternBiding<>((org.drools.model.Declaration) decl)));
        }
    }
}
Also used : GroupByPatternImpl(org.drools.model.patterns.GroupByPatternImpl) Arrays(java.util.Arrays) AsyncReceive(org.drools.core.rule.AsyncReceive) FunctionUtils.toFunctionN(org.drools.model.functions.FunctionUtils.toFunctionN) Binding(org.drools.model.Binding) CoreComponentFactory(org.drools.core.reteoo.CoreComponentFactory) SingleConstraint(org.drools.model.SingleConstraint) QueryCallPattern(org.drools.model.patterns.QueryCallPattern) PatternImpl(org.drools.model.patterns.PatternImpl) PatternSource(org.drools.core.rule.PatternSource) Map(java.util.Map) Declaration(org.drools.core.rule.Declaration) NamesGenerator.generateName(org.drools.model.impl.NamesGenerator.generateName) LambdaGroupByAccumulate(org.drools.modelcompiler.constraints.LambdaGroupByAccumulate) QueryNameConstraint(org.drools.core.rule.constraint.QueryNameConstraint) ConditionalElement(org.drools.core.rule.ConditionalElement) QueryImpl(org.drools.core.rule.QueryImpl) LambdaConstraint(org.drools.modelcompiler.constraints.LambdaConstraint) Direct(org.kie.api.definition.rule.Direct) EvaluationUtil.adaptBitMask(org.drools.modelcompiler.util.EvaluationUtil.adaptBitMask) TimerUtil.buildTimerExpression(org.drools.modelcompiler.util.TimerUtil.buildTimerExpression) CompositePatterns(org.drools.model.patterns.CompositePatterns) Set(java.util.Set) Predicate1(org.drools.model.functions.Predicate1) Exchange(org.drools.model.impl.Exchange) Query(org.drools.model.Query) Stream(java.util.stream.Stream) RuleImpl(org.drools.core.definitions.rule.impl.RuleImpl) FactTemplateObjectType(org.drools.core.facttemplates.FactTemplateObjectType) LambdaAccumulator(org.drools.modelcompiler.constraints.LambdaAccumulator) CountAccumulateFunction(org.drools.core.base.accumulators.CountAccumulateFunction) AccumulatePattern(org.drools.model.AccumulatePattern) DomainClassMetadata(org.drools.model.DomainClassMetadata) LambdaDataProvider(org.drools.modelcompiler.constraints.LambdaDataProvider) SelfPatternBiding(org.drools.model.view.SelfPatternBiding) Enabled(org.drools.core.spi.Enabled) ObjectType(org.drools.core.spi.ObjectType) EntryPointId(org.drools.core.rule.EntryPointId) All(org.kie.api.definition.rule.All) TypeMetaData(org.drools.model.TypeMetaData) ArrayList(java.util.ArrayList) UnificationConstraint(org.drools.modelcompiler.constraints.UnificationConstraint) BitMaskUtil.calculatePatternMask(org.drools.model.bitmask.BitMaskUtil.calculatePatternMask) RuleUnitUtil(org.kie.internal.ruleunit.RuleUnitUtil) LinkedHashSet(java.util.LinkedHashSet) EntryPoint(org.drools.model.EntryPoint) QueryElement(org.drools.core.rule.QueryElement) RuleConditionElement(org.drools.core.rule.RuleConditionElement) WindowDeclaration(org.drools.core.rule.WindowDeclaration) SelfReferenceClassFieldReader(org.drools.core.base.extractors.SelfReferenceClassFieldReader) LambdaConsequence(org.drools.modelcompiler.consequence.LambdaConsequence) PatternExtractor(org.drools.core.spi.PatternExtractor) NamedConsequenceImpl(org.drools.model.consequences.NamedConsequenceImpl) TemporalConstraintEvaluator(org.drools.modelcompiler.constraints.TemporalConstraintEvaluator) Rule(org.drools.model.Rule) DataProvider(org.drools.core.spi.DataProvider) PropertySpecificOption(org.kie.internal.builder.conf.PropertySpecificOption) BindingEvaluator(org.drools.modelcompiler.constraints.BindingEvaluator) EvalCondition(org.drools.core.rule.EvalCondition) TypeDeclarationUtil.createTypeDeclaration(org.drools.modelcompiler.util.TypeDeclarationUtil.createTypeDeclaration) EnabledBoolean(org.drools.core.base.EnabledBoolean) TypeDeclaration(org.drools.core.rule.TypeDeclaration) Accumulator(org.drools.core.spi.Accumulator) PrototypeVariable(org.drools.model.PrototypeVariable) Consequence(org.drools.model.Consequence) Global(org.drools.model.Global) WindowReference(org.drools.model.WindowReference) DroolsQuery(org.drools.core.base.DroolsQuery) UnitData(org.drools.model.UnitData) DynamicValueSupplier(org.drools.model.DynamicValueSupplier) ExistentialPatternImpl(org.drools.model.patterns.ExistentialPatternImpl) NamedConsequence(org.drools.core.rule.NamedConsequence) AbstractConstraint(org.drools.modelcompiler.constraints.AbstractConstraint) InternalKnowledgePackage(org.drools.core.definitions.InternalKnowledgePackage) Value(org.drools.model.Value) FactFactory.prototypeToFactTemplate(org.drools.modelcompiler.facttemplate.FactFactory.prototypeToFactTemplate) Condition(org.drools.model.Condition) Constraint(org.drools.model.Constraint) Collection(java.util.Collection) Forall(org.drools.core.rule.Forall) SlidingTimeWindow(org.drools.core.rule.SlidingTimeWindow) Index(org.drools.model.Index) LambdaEvalExpression(org.drools.modelcompiler.constraints.LambdaEvalExpression) Collectors(java.util.stream.Collectors) RuleBuilder.buildTimer(org.drools.compiler.rule.builder.RuleBuilder.buildTimer) List(java.util.List) SingleConstraint1(org.drools.model.constraints.SingleConstraint1) Entry(java.util.Map.Entry) Optional(java.util.Optional) BindingInnerObjectEvaluator(org.drools.modelcompiler.constraints.BindingInnerObjectEvaluator) SlidingLengthWindow(org.drools.core.rule.SlidingLengthWindow) Role(org.kie.api.definition.type.Role) ConstraintEvaluator(org.drools.modelcompiler.constraints.ConstraintEvaluator) OR(org.drools.core.rule.GroupElement.OR) LambdaSalience(org.drools.modelcompiler.attributes.LambdaSalience) CombinedConstraint(org.drools.modelcompiler.constraints.CombinedConstraint) KieBaseConfiguration(org.kie.api.KieBaseConfiguration) ClassObjectType(org.drools.core.base.ClassObjectType) Prototype(org.drools.model.Prototype) ClassFieldAccessorCache(org.drools.core.base.ClassFieldAccessorCache) Pattern(org.drools.core.rule.Pattern) InternalReadAccessor(org.drools.core.spi.InternalReadAccessor) HashMap(java.util.HashMap) AsyncSend(org.drools.core.rule.AsyncSend) Behavior(org.drools.core.rule.Behavior) AbstractSingleConstraint(org.drools.model.constraints.AbstractSingleConstraint) AND(org.drools.core.rule.GroupElement.AND) GroupByPattern(org.drools.model.GroupByPattern) View(org.drools.model.View) Function0(org.drools.model.functions.Function0) EvalImpl(org.drools.model.patterns.EvalImpl) LambdaReadAccessor(org.drools.modelcompiler.constraints.LambdaReadAccessor) Function1(org.drools.model.functions.Function1) KnowledgeBuilderConfigurationImpl(org.drools.compiler.builder.impl.KnowledgeBuilderConfigurationImpl) WindowDefinition(org.drools.model.WindowDefinition) RuleBaseConfiguration(org.drools.core.RuleBaseConfiguration) From0(org.drools.model.From0) From1(org.drools.model.From1) EvalExpression(org.drools.core.spi.EvalExpression) KnowledgePackageImpl(org.drools.core.definitions.impl.KnowledgePackageImpl) From(org.drools.model.From) From4(org.drools.model.From4) From2(org.drools.model.From2) Model(org.drools.model.Model) From3(org.drools.model.From3) MultiAccumulate(org.drools.core.rule.MultiAccumulate) Salience(org.drools.core.spi.Salience) Variable(org.drools.model.Variable) ArrayElementReader(org.drools.core.base.extractors.ArrayElementReader) KnowledgeBuilderConfiguration(org.kie.internal.builder.KnowledgeBuilderConfiguration) Propagation(org.kie.api.definition.rule.Propagation) Consumer(java.util.function.Consumer) DSL.entryPoint(org.drools.model.DSL.entryPoint) QueryArgument(org.drools.core.rule.QueryArgument) Collectors.toList(java.util.stream.Collectors.toList) SingleAccumulate(org.drools.core.rule.SingleAccumulate) SalienceInteger(org.drools.core.base.SalienceInteger) Accumulate(org.drools.core.rule.Accumulate) ConditionalNamedConsequenceImpl(org.drools.model.consequences.ConditionalNamedConsequenceImpl) Collections(java.util.Collections) DSL.declarationOf(org.drools.model.DSL.declarationOf) ConditionalBranch(org.drools.core.rule.ConditionalBranch) AccumulateFunction(org.drools.model.functions.accumulate.AccumulateFunction) LambdaEnabled(org.drools.modelcompiler.attributes.LambdaEnabled) GroupElement(org.drools.core.rule.GroupElement) Argument(org.drools.model.Argument) DeclarationImpl(org.drools.model.impl.DeclarationImpl) EvalCondition(org.drools.core.rule.EvalCondition) Condition(org.drools.model.Condition) CompositePatterns(org.drools.model.patterns.CompositePatterns) PrototypeVariable(org.drools.model.PrototypeVariable) Variable(org.drools.model.Variable) Declaration(org.drools.core.rule.Declaration) WindowDeclaration(org.drools.core.rule.WindowDeclaration) TypeDeclarationUtil.createTypeDeclaration(org.drools.modelcompiler.util.TypeDeclarationUtil.createTypeDeclaration) TypeDeclaration(org.drools.core.rule.TypeDeclaration) SelfPatternBiding(org.drools.model.view.SelfPatternBiding)

Aggregations

ArrayList (java.util.ArrayList)1 Arrays (java.util.Arrays)1 Collection (java.util.Collection)1 Collections (java.util.Collections)1 HashMap (java.util.HashMap)1 LinkedHashSet (java.util.LinkedHashSet)1 List (java.util.List)1 Map (java.util.Map)1 Entry (java.util.Map.Entry)1 Optional (java.util.Optional)1 Set (java.util.Set)1 Consumer (java.util.function.Consumer)1 Collectors (java.util.stream.Collectors)1 Collectors.toList (java.util.stream.Collectors.toList)1 Stream (java.util.stream.Stream)1 KnowledgeBuilderConfigurationImpl (org.drools.compiler.builder.impl.KnowledgeBuilderConfigurationImpl)1 RuleBuilder.buildTimer (org.drools.compiler.rule.builder.RuleBuilder.buildTimer)1 RuleBaseConfiguration (org.drools.core.RuleBaseConfiguration)1 ClassFieldAccessorCache (org.drools.core.base.ClassFieldAccessorCache)1 ClassObjectType (org.drools.core.base.ClassObjectType)1