private static void bulk( final LinkedList<Logger> remaining, final ArrayList<Logger> bulkLoggers, final Consumer<Logger> finalConsumer ) { if ( !remaining.isEmpty() ) { Logger logger = remaining.pop(); logger.bulk( bulkLogger -> { bulkLoggers.add( bulkLogger ); bulk( remaining, bulkLoggers, finalConsumer ); } ); } else { Logger logger = new DuplicatingLogger( bulkLoggers ); finalConsumer.accept( logger ); } } }
private static void bulk( final LinkedList<Logger> remaining, final ArrayList<Logger> bulkLoggers, final Consumer<Logger> finalConsumer ) { if ( !remaining.isEmpty() ) { Logger logger = remaining.pop(); logger.bulk( bulkLogger -> { bulkLoggers.add( bulkLogger ); bulk( remaining, bulkLoggers, finalConsumer ); } ); } else { Logger logger = new DuplicatingLogger( bulkLoggers ); finalConsumer.accept( logger ); } } }