protected void expectNullGenerations(ComponentBuilderGenerator<String> gen, int n) {
   ProductWrapper<String> wrapper = new ProductWrapper<String>();
   for (int i = 0; i < n; i++) {
     wrapper = gen.generate(wrapper);
     assertNotNull(wrapper);
     assertNull(wrapper.unwrap());
   }
 }
 @SuppressWarnings({"unchecked", "rawtypes"})
 @Override
 public void startConsuming(ProductWrapper<?> wrapper) {
   Object object = wrapper.unwrap();
   if (!(object instanceof Entity)) throw new IllegalArgumentException("Expected Entity");
   Entity entity = (Entity) object;
   Entity output = mapper.convert(entity);
   stack.push(output);
   target.startConsuming(((ProductWrapper) wrapper).wrap(output));
 }