private PyExpr escapeCall ( String callExpr , ImmutableList < SoyPrintDirective > directives ) { PyExpr escapedExpr = new PyExpr ( callExpr , Integer . MAX_VALUE ) ; if ( directives . isEmpty ( ) ) { return escapedExpr ; } // Successively wrap each escapedExpr in various directives. for ( SoyPrintDirective directive : directives ) { Preconditions . checkState ( directive instanceof SoyPySrcPrintDirective , "Autoescaping produced a bogus directive: %s" , directive . getName ( ) ) ; escapedExpr = ( ( SoyPySrcPrintDirective ) directive ) . applyForPySrc ( escapedExpr , ImmutableList . of ( ) ) ; } return escapedExpr ; }
Escaping directives might apply to the output of the call node so wrap the output with all required directives .