LeftTuple childLeftTuple = leftTuple.firstChild;
LeftTuple temp = null;
while ( childLeftTuple != null ) {
int varsLength = this.queryElement.getVariableIndexes().length;
if ( srcVarIndexes != null ) {
QueryElementFactHandle qeh = (QueryElementFactHandle) childLeftTuple.getLastHandle();
Object[] resultObjects = (Object[]) qeh.getObject();
for ( int j = 0, i = varsLength; i < varIndexes.length; i++, j++ ) {
Variable v = trgVars.get( j );
v.setValue( resultObjects[i] );
}
}
temp = childLeftTuple;
this.sink.doPropagateAssertLeftTuple( context,
workingMemory,
childLeftTuple,
childLeftTuple.getLeftTupleSink() );
if ( srcVarIndexes != null ) {
QueryElementFactHandle qeh = (QueryElementFactHandle) childLeftTuple.getLastHandle();
for ( int i = 0; i < trgVars.size(); i++ ) {
Variable v = trgVars.get( i );
v.unSet();
}
}