public static boolean isReadLocalsFromTuple ( final RuleBuildContext context , final AccumulateDescr accumDescr , final RuleConditionElement source ) { if ( accumDescr . isMultiPattern ( ) ) { return true ; } PatternDescr inputPattern = accumDescr . getInputPattern ( ) ; if ( inputPattern == null ) { context . addError ( new DescrBuildError ( context . getParentDescr ( ) , accumDescr , null , "Invalid accumulate pattern in rule '" + context . getRule ( ) . getName ( ) + "'." ) ) ; return true ; } if ( source instanceof Pattern ) { if ( ( ( Pattern ) source ) . hasXPath ( ) ) { return true ; } if ( ( ( Pattern ) source ) . getSource ( ) instanceof EntryPointId ) { return false ; } } if ( inputPattern . getSource ( ) != null && ! ( inputPattern . getSource ( ) instanceof WindowReferenceDescr ) && ! ( inputPattern . getSource ( ) instanceof EntryPointDescr ) ) { return true ; } return source instanceof QueryElement || ( source . getNestedElements ( ) . size ( ) == 1 && source . getNestedElements ( ) . get ( 0 ) instanceof QueryElement ) ; }
This method checks for the conditions when local declarations should be read from a tuple instead of the right object when resolving declarations in an accumulate