private void doExtraction ( GatherExtractionInfo info ) { // Insert a global temp if we are using the USE_GLOBAL_TEMP pattern. if ( pattern == Pattern . USE_GLOBAL_TEMP ) { Node injectionPoint = compiler . getNodeForCodeInsertion ( null ) ; Node var = NodeUtil . newVarNode ( PROTOTYPE_ALIAS , null ) . useSourceInfoIfMissingFromForTree ( injectionPoint ) ; injectionPoint . addChildToFront ( var ) ; compiler . reportChangeToEnclosingScope ( var ) ; } // Go through all extraction instances and extract each of them. for ( ExtractionInstance instance : info . instances ) { extractInstance ( instance ) ; } }
Declares the temp variable to point to prototype objects and iterates through all ExtractInstance and performs extraction there .