Class PropagatorCompilerHandler

    • Field Detail

      • alphaNetContainsHashedField

        protected final boolean alphaNetContainsHashedField
        This states if there is at least 1 set of hashed alpha nodes in the network
      • factClassName

        protected final java.lang.String factClassName
      • FACT_HANDLE_PARAM_NAME

        protected static final java.lang.String FACT_HANDLE_PARAM_NAME
        See Also:
        Constant Field Values
      • PROP_CONTEXT_PARAM_NAME

        protected static final java.lang.String PROP_CONTEXT_PARAM_NAME
        See Also:
        Constant Field Values
      • WORKING_MEMORY_PARAM_NAME

        protected static final java.lang.String WORKING_MEMORY_PARAM_NAME
        See Also:
        Constant Field Values
      • MODIFY_PREVIOUS_TUPLE_PARAM_NAME

        protected static final java.lang.String MODIFY_PREVIOUS_TUPLE_PARAM_NAME
        See Also:
        Constant Field Values
      • LOCAL_FACT_VAR_NAME

        protected static final java.lang.String LOCAL_FACT_VAR_NAME
        See Also:
        Constant Field Values
      • allStatements

        protected com.github.javaparser.ast.stmt.BlockStmt allStatements
      • currentStatement

        protected java.util.Deque<com.github.javaparser.ast.Node> currentStatement
      • extractedMethods

        protected java.util.List<com.github.javaparser.ast.body.MethodDeclaration> extractedMethods
      • RANGE_INDEX_VARIABLE_NAME_PREFIX

        protected static final java.lang.String RANGE_INDEX_VARIABLE_NAME_PREFIX
        See Also:
        Constant Field Values
    • Constructor Detail

      • PropagatorCompilerHandler

        protected PropagatorCompilerHandler​(boolean alphaNetContainsHashedField,
                                            java.lang.String factClassName)
    • Method Detail

      • propagateMethod

        protected abstract com.github.javaparser.ast.stmt.Statement propagateMethod​(org.drools.core.reteoo.Sink sink)
      • methodParameters

        protected abstract com.github.javaparser.ast.NodeList<com.github.javaparser.ast.body.Parameter> methodParameters()
      • arguments

        protected abstract com.github.javaparser.ast.NodeList<com.github.javaparser.ast.expr.Expression> arguments()
      • canInlineValue

        protected boolean canInlineValue​(java.lang.Class<?> fieldType)
      • getLastSwitchEntry

        public com.github.javaparser.ast.stmt.SwitchEntry getLastSwitchEntry()
      • getCurrentBlockStatement

        public com.github.javaparser.ast.stmt.BlockStmt getCurrentBlockStatement()
      • propagateMethodName

        protected abstract java.lang.String propagateMethodName()
      • emitCode

        public java.lang.String emitCode()
      • modifyPreviousTuplesType

        public com.github.javaparser.ast.type.ClassOrInterfaceType modifyPreviousTuplesType()
      • factHandleType

        public com.github.javaparser.ast.type.ClassOrInterfaceType factHandleType()
      • propagationContextType

        public com.github.javaparser.ast.type.ClassOrInterfaceType propagationContextType()
      • reteEvaluatorType

        public com.github.javaparser.ast.type.ClassOrInterfaceType reteEvaluatorType()
      • localVariableWithCastInitializer

        protected com.github.javaparser.ast.stmt.ExpressionStmt localVariableWithCastInitializer​(com.github.javaparser.ast.type.Type type,
                                                                                                 java.lang.String variableName,
                                                                                                 com.github.javaparser.ast.expr.MethodCallExpr source)
      • localVariable

        protected com.github.javaparser.ast.stmt.ExpressionStmt localVariable​(com.github.javaparser.ast.type.Type type,
                                                                              java.lang.String variableName,
                                                                              com.github.javaparser.ast.expr.MethodCallExpr source)
      • getVariableType

        public static java.lang.Class<?> getVariableType​(org.drools.core.reteoo.AlphaNode alphaNode)
      • getVariableType

        public static java.lang.Class<?> getVariableType​(org.drools.core.reteoo.Sink sink)
      • sinkCanBeInlined

        public static boolean sinkCanBeInlined​(org.drools.core.reteoo.Sink sink)
      • getVariableName

        protected static java.lang.String getVariableName​(org.drools.core.reteoo.AlphaNode alphaNode)
      • getContextVariableName

        protected java.lang.String getContextVariableName​(org.drools.core.reteoo.AlphaNode alphaNode)
      • getVariableName

        protected static java.lang.String getVariableName​(org.drools.core.reteoo.Sink sink)
      • getVariableName

        protected java.lang.String getVariableName()
      • getVariableName

        protected static java.lang.String getVariableName​(java.lang.Class<?> clazz,
                                                          int nodeId)
        Returns a variable name based on the simple name of the specified class appended with the specified nodeId.
        Parameters:
        clazz - class whose simple name is lowercased and user as the prefix of the variable name
        nodeId - id of NetworkNode
        Returns:
        variable name
        See Also:
        Class.getSimpleName()
      • getAlphaNodeVariableName

        protected java.lang.String getAlphaNodeVariableName​(org.drools.core.reteoo.AlphaNode alphaNode)
      • getRangeIndexVariableName

        protected java.lang.String getRangeIndexVariableName​(org.drools.core.util.index.AlphaRangeIndex alphaRangeIndex,
                                                             int minId)
      • getMinIdFromRangeIndex

        protected int getMinIdFromRangeIndex​(org.drools.core.util.index.AlphaRangeIndex alphaRangeIndex)