code: @Override
      public void configFields(Configuration conf, String[] fields) 
              throws IllegalArgumentException, IOException {
          if (null != fields) {
              super.configFields(conf, fields);
          } else {
              throw new IOException("Fields not defined");
          }
          
          datatypeMap = new HashMap<String,ColumnDataType>();
          for (String s: fields) {
              datatypeMap.put(s, ColumnDataType.STRING);
          }
          String list = conf.get(ConfigConstants.CONF_DELIMITED_DATA_TYPE);
          if (list == null) {
              return;
          }
          String pairs[] = list.split(",");
          for (int i = 0; i < pairs.length; i += 2) {
              String colName = pairs[i].trim();
              String colDataType = pairs[i+1].trim();
              if (!datatypeMap.containsKey(colName)) {
                  throw new IllegalArgumentException("Column name " + colName + " not found.");
              }
              if ("Number".equalsIgnoreCase(colDataType)) {
                  datatypeMap.put(colName, ColumnDataType.NUMBER);
              } else if ("Boolean".equalsIgnoreCase(colDataType)) {
                  datatypeMap.put(colName, ColumnDataType.BOOLEAN);
              } else if (!"String".equalsIgnoreCase(colDataType)) {
                  throw new IllegalArgumentException("Unsupported column data type " + colDataType);
              }
          }
      }
docs: /*
  @see com.marklogic.contentpump.DocBuilder#checkDocumentHeader()
  @throws IOException