private static CtStatement appendMonitorCallbacks( Factory factory, LoopMonitor monitor, While loop, CtWhile astLoop) { String counterName = counterName(monitor); if (!loop.isUnbreakable()) { insertAfterUnderSameParent( newStatementFromSnippet(factory, monitor.invocationOnMonitoringEnd(counterName)), astLoop); } appendMonitoredReturnExit(factory, monitor, loop.returnStatements()); appendMonitoredBreakExit(factory, monitor, loop.breakStatements()); return newStatementFromSnippet(factory, monitor.invocationOnLoopError(counterName)); }