@Override public GenericRecord readRecord() throws Exception { Header header = new Header(++currentRecordNumber, getDataSourceName(), new Date()); if (iterator.hasNext()) { return new GenericRecord<>(header, iterator.next()); } else { return null; } }
@Override @SuppressWarnings(value = "unchecked") public Record<P> processRecord(final XmlRecord record) throws Exception { P unmarshalledObject = (P) xStream.fromXML(record.getPayload()); return new GenericRecord<>(record.getHeader(), unmarshalledObject); }
@Override public Record<P> processRecord(final StringRecord record) throws Exception { List<Field> fields = parseRecord(record); Map<String, String> fieldsContents = new HashMap<>(); for (Field field : fields) { String fieldName = fieldNames[field.getIndex()]; String fieldValue = field.getRawContent(); fieldsContents.put(fieldName, fieldValue); } return new GenericRecord<>(record.getHeader(), objectMapper.mapObject(fieldsContents)); }
@Override public Record<P> processRecord(final StringRecord record) throws Exception { List<Field> fields = parseRecord(record); Map<String, String> fieldsContents = new HashMap<>(); int index = 0; for (Field field : fields) { String fieldName; if (fieldNamesRetrievedFromHeader) { fieldName = fieldNames[field.getIndex()]; } else { fieldName = fieldNames[index++]; } String rawContent = field.getRawContent(); fieldsContents.put(fieldName, rawContent); } return new GenericRecord<>(record.getHeader(), objectMapper.mapObject(fieldsContents)); }
@Override public Record<P> processRecord(JdbcRecord record) throws Exception { ResultSet resultSet = record.getPayload(); BeanPropertyRowMapper<P> beanPropertyRowMapper = new BeanPropertyRowMapper<>(type); return new GenericRecord<>(record.getHeader(), beanPropertyRowMapper.mapRow(resultSet, record.getHeader().getNumber().intValue())); }