private Generator<Object[]> createXLSSourceGenerator(
     ArrayTypeDescriptor arrayType, BeneratorContext context, String sourceName) {
   logger.debug("createXLSSourceGenerator({})", arrayType);
   boolean rowBased = (arrayType.isRowBased() != null ? arrayType.isRowBased() : true);
   String emptyMarker = arrayType.getEmptyMarker();
   String nullMarker = arrayType.getNullMarker();
   boolean formatted = isFormatted(arrayType);
   DataSourceProvider<Object[]> factory =
       new XLSArraySourceProvider(
           formatted, new ScriptConverterForObjects(context), emptyMarker, nullMarker, rowBased);
   Generator<Object[]> generator =
       SourceFactory.createRawSourceGenerator(
           arrayType.getNesting(),
           arrayType.getDataset(),
           sourceName,
           factory,
           Object[].class,
           context);
   generator = WrapperFactory.applyConverter(generator, new ArrayElementTypeConverter(arrayType));
   return generator;
 }
 private Generator<Object[]> createCSVSourceGenerator(
     ArrayTypeDescriptor arrayType, BeneratorContext context, String sourceName) {
   logger.debug("createCSVSourceGenerator({})", arrayType);
   String encoding = arrayType.getEncoding();
   if (encoding == null) encoding = context.getDefaultEncoding();
   char separator = DescriptorUtil.getSeparator(arrayType, context);
   boolean rowBased = (arrayType.isRowBased() != null ? arrayType.isRowBased() : true);
   DataSourceProvider<Object[]> factory =
       new CSVArraySourceProvider(
           arrayType.getName(),
           new ScriptConverterForStrings(context),
           rowBased,
           separator,
           encoding);
   Generator<Object[]> generator =
       SourceFactory.createRawSourceGenerator(
           arrayType.getNesting(),
           arrayType.getDataset(),
           sourceName,
           factory,
           Object[].class,
           context);
   return WrapperFactory.applyConverter(generator, new ArrayElementTypeConverter(arrayType));
 }