/* * (non-Javadoc) * * @see * com.toolsverse.etl.connector.DataSetConnector#inlinePersist(com.toolsverse * .etl.connector.DataSetConnectorParams, com.toolsverse.etl.common.DataSet, * com.toolsverse.etl.driver.Driver, * com.toolsverse.etl.common.DataSetRecord, int, int) */ public void inlinePersist( ExcelConnectorParams params, DataSet dataSet, Driver driver, DataSetRecord record, int row, int records) throws Exception { if (record == null) return; int currentRow = params.getCurrentRow(); Row excelRow = params.getSheet().createRow(currentRow); params.setCurrentRow(++currentRow); int colCount = dataSet.getFieldCount(); for (int col = 0; col < colCount; col++) { FieldDef fieldDef = dataSet.getFields().get(col); if (!fieldDef.isVisible()) continue; Object fieldValue = record.get(col); int fType = fieldDef.getSqlDataType(); String value = null; Cell dataCell; if (fieldValue != null) { value = dataSet.encode(fieldDef, fieldValue, driver, params.getParams(), false); } if (SqlUtils.isNumber(fType)) { dataCell = excelRow.createCell(col, Cell.CELL_TYPE_NUMERIC); dataCell.setCellValue(value); } else if (SqlUtils.isDateOnly(fType)) { dataCell = excelRow.createCell(col, Cell.CELL_TYPE_NUMERIC); dataCell.setCellStyle(params.getDateCellStyle()); if (fieldValue instanceof java.util.Date) dataCell.setCellValue((java.util.Date) fieldValue); else dataCell.setCellValue(value); } else if (SqlUtils.isTime(fType)) { dataCell = excelRow.createCell(col, Cell.CELL_TYPE_NUMERIC); dataCell.setCellStyle(params.getTimeCellStyle()); if (fieldValue instanceof java.util.Date) dataCell.setCellValue((java.util.Date) fieldValue); else dataCell.setCellValue(value); } else if (SqlUtils.isTimestamp(fType)) { dataCell = excelRow.createCell(col, Cell.CELL_TYPE_NUMERIC); dataCell.setCellStyle(params.getDateTimeCellStyle()); if (fieldValue instanceof java.util.Date) dataCell.setCellValue((java.util.Date) fieldValue); else dataCell.setCellValue(value); } else if (SqlUtils.isBoolean(fType)) { dataCell = excelRow.createCell(col, Cell.CELL_TYPE_BOOLEAN); if (fieldValue instanceof Boolean) dataCell.setCellValue((Boolean) fieldValue); else dataCell.setCellValue(value); } else { dataCell = excelRow.createCell(col, Cell.CELL_TYPE_STRING); dataCell.setCellValue(value); } } if (row >= 0 && records >= 0 && !params.isSilent() && params.getLogStep() > 0 && (row % params.getLogStep()) == 0) Logger.log( Logger.INFO, EtlLogger.class, dataSet.getName() + ": " + EtlResource.PERSITING_RECORD.getValue() + row + " out of " + records); }