/** * 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 * * @param accumDescr * @param source * @return */ public static boolean isReadLocalsFromTuple(final AccumulateDescr accumDescr, final RuleConditionElement source) { final boolean readLocalsFromTuple = accumDescr.isMultiPattern() || ( accumDescr.getInputPattern().getSource() != null && !( accumDescr.getInputPattern().getSource() instanceof WindowReferenceDescr ) && !( accumDescr.getInputPattern().getSource() instanceof EntryPointDescr ) ) || source instanceof QueryElement || ( source.getNestedElements().size() == 1 && source.getNestedElements().get( 0 ) instanceof QueryElement ); return readLocalsFromTuple; } }
public void visitPatternDescr(final PatternDescr descr) { this.patternContext = true; this.template = new String(); StringBuilder localString = new StringBuilder(); if ( descr.getDescrs() != Collections.EMPTY_LIST ) { if ( descr.getIdentifier() != null ) { localString.append( "<pattern identifier=\"" + descr.getIdentifier() + "\" object-type=\"" + descr.getObjectType() + "\" >" + XmlDumper.eol + processDescrList( descr.getDescrs() ) + XmlDumper.eol ); } else { localString.append( "<pattern object-type=\"" + descr.getObjectType() + "\" >" + XmlDumper.eol + processDescrList( descr.getDescrs() ) + XmlDumper.eol ); } } else { if ( descr.getIdentifier() != null ) { localString.append( "<pattern identifier=\"" + descr.getIdentifier() + "\" object-type=\"" + descr.getObjectType() + "\" >" + XmlDumper.eol );; } else { localString.append( "<pattern object-type=\"" + descr.getObjectType() + "\" >" + XmlDumper.eol ); } } if ( descr.getSource() != null ) { visit( descr.getSource() ); localString.append( this.template ); } localString.append( "</pattern>" + XmlDumper.eol ); this.template = localString.toString(); this.patternContext = false; }