@SuppressWarnings("synthetic-access")
 public ProductWrapper<E> generate(ProductWrapper<E> wrapper) {
   Entity entity = createEntity("Test");
   context.setCurrentProduct(new ProductWrapper<Entity>(entity));
   if (!builder.execute((BeneratorContext) context)) return null;
   return wrapper.wrap((E) entity.get(componentName));
 }
 @Override
 public synchronized ProductWrapper<E> generate(ProductWrapper<E> wrapper) {
   if (cursor < 0) return null;
   E result = values.get(cursor);
   if (cursor < values.size() - 1) cursor++;
   else cursor = -1;
   if (logger.isDebugEnabled()) logger.debug("created: " + result);
   return wrapper.wrap(result);
 }
 public ProductWrapper<Entity> generate(ProductWrapper<Entity> wrapper) {
   return wrapper.wrap(new Entity("MyEntity", descriptorProvider, "locale", locale));
 }
 public ProductWrapper<E> generate(ProductWrapper<E> wrapper) {
   this.lastMethodCall = "generate";
   return wrapper.wrap(value);
 }