public boolean execute(BeneratorContext context) {
   Long invocations = count.evaluate(context);
   TaskExecutor.execute(
       getTask(context),
       context,
       invocations,
       invocations,
       getPageListeners(context),
       pageSize.evaluate(context),
       stats.evaluate(context),
       getErrorHandler(context),
       infoLog);
   return true;
 }
 private List<PageListener> getPageListeners(BeneratorContext context) {
   List<PageListener> listeners = new ArrayList<PageListener>();
   if (pageListener != null) listeners.add(pageListener.evaluate(context));
   return listeners;
 }
 public synchronized Task getTask(BeneratorContext context) {
   if (task == null) task = taskProvider.evaluate(context);
   return task;
 }