for (Iterator it = _converters.iterator(); it.hasNext();) { DataConverterRegistration registrationInfo = (DataConverterRegistration)it.next();  if (registrationInfo.getTypeCode() != Integer.MIN_VALUE) { reader.registerConverter(registrationInfo.getTypeCode(), registrationInfo.getConverter()); } else { if ((registrationInfo.getTable() == null) || (registrationInfo.getColumn() == null)) { throw new BuildException("Please specify either the jdbc type or a table/column pair for which the converter shall be defined"); } reader.registerConverter(registrationInfo.getTable(), registrationInfo.getColumn(), registrationInfo.getConverter()); } }
registerConverters(reader.getConverterConfiguration());
    public void execute(Task task, Database model) throws BuildException    {        try        {            Platform           platform = getPlatform();            DataToDatabaseSink sink     = new DataToDatabaseSink(platform, model);            DataReader         reader   = new DataReader();            reader.setModel(model);            reader.setSink(sink);            for (Iterator it = _converters.iterator(); it.hasNext();)            {                DataConverterRegistration registrationInfo = (DataConverterRegistration)it.next();                if (registrationInfo.getTypeCode() != Integer.MIN_VALUE)                {                    reader.registerConverter(registrationInfo.getTypeCode(),                                             registrationInfo.getConverter());                }                else                {                    if ((registrationInfo.getTable() == null) || (registrationInfo.getColumn() == null))                     {                        throw new BuildException("Please specify either the jdbc type or a table/column pair for which the converter shall be defined");                    }                    reader.registerConverter(registrationInfo.getTable(),                                             registrationInfo.getColumn(),                                             registrationInfo.getConverter());                }            }            if ((_singleDataFile != null) && !_fileSets.isEmpty())            {                throw new BuildException("Please use either the datafile attribute or the sub fileset element, but not both");            }            if (_singleDataFile != null)            {                readSingleDataFile(task, reader, _singleDataFile);            }            else            {                for (Iterator it = _fileSets.iterator(); it.hasNext();)                {                    FileSet          fileSet    = (FileSet)it.next();                    File             fileSetDir = fileSet.getDir(task.getProject());                    DirectoryScanner scanner    = fileSet.getDirectoryScanner(task.getProject());                    String[]         files      = scanner.getIncludedFiles();                        for (int idx = 0; (files != null) && (idx < files.length); idx++)                    {                        readSingleDataFile(task, reader, new File(fileSetDir, files[idx]));                    }                }            }        }        catch (Exception ex)        {            throw new BuildException(ex);        }    }