if ( NodeTypeEnums.NotNode == tupleSource.getType() ) {
// not nodes start up linked in
smem.linkNodeWithoutRuleNotify(bm.getNodePosMaskBit());
}
} else if ( tupleSource.getType() == NodeTypeEnums.LeftInputAdapterNode ) {
LiaNodeMemory liaMemory = ( LiaNodeMemory ) smem.createNodeMemory( ( LeftInputAdapterNode ) tupleSource, wm );
liaMemory.setSegmentMemory( smem );
liaMemory.setNodePosMaskBit( nodePosMask );
allLinkedTestMask = allLinkedTestMask | nodePosMask;
} else if ( tupleSource.getType() == NodeTypeEnums.EvalConditionNode ) {
EvalMemory evalMem = ( EvalMemory ) smem.createNodeMemory( ( EvalConditionNode ) tupleSource, wm );
evalMem.setSegmentMemory( smem );
} else if ( tupleSource.getType() == NodeTypeEnums.ConditionalBranchNode ) {
ConditionalBranchMemory branchMem = ( ConditionalBranchMemory ) smem.createNodeMemory( ( ConditionalBranchNode ) tupleSource, wm );
branchMem.setSegmentMemory( smem );
updateNodeBit = false; // nodes after a branch CE can notify, but they cannot impact linking
} else if ( tupleSource.getType() == NodeTypeEnums.FromNode ) {
FromMemory fromMemory = ( FromMemory ) smem.createNodeMemory( ( FromNode ) tupleSource, wm );
fromMemory.getBetaMemory().setSegmentMemory( smem );
} else if ( tupleSource.getType() == NodeTypeEnums.QueryElementNode ) {
// Initialize the QueryElementNode and have it's memory reference the actual query SegmentMemory
QueryElementNode queryNode = ( QueryElementNode ) tupleSource;
LeftInputAdapterNode liaNode = getQueryLiaNode(queryNode.getQueryElement().getQueryName(), getQueryOtn(segmentRoot));
LiaNodeMemory liam = ( LiaNodeMemory ) wm.getNodeMemory( (MemoryFactory) liaNode );
SegmentMemory querySmem = liam.getSegmentMemory();
if ( querySmem == null ) {
querySmem = createSegmentMemory( liaNode, wm );
}
QueryElementNodeMemory queryNodeMem = ( QueryElementNodeMemory ) smem.createNodeMemory( queryNode, wm );
queryNodeMem.setQuerySegmentMemory( querySmem );