From 88dfdba97eae86d6d263120fc247ce7a24c43e18 Mon Sep 17 00:00:00 2001 From: dsyer Date: Wed, 3 Jun 2009 14:52:20 +0000 Subject: [PATCH] RESOLVED - issue BATCH-1269: Add FieldSet support to PassThroughFieldExtractor http://jira.springframework.org/browse/BATCH-1269 --- .../file/transform/PassThroughFieldExtractor.java | 4 ++++ .../transform/PassThroughFieldExtractorTests.java | 15 +++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/PassThroughFieldExtractor.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/PassThroughFieldExtractor.java index d20dcc6de..773699609 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/PassThroughFieldExtractor.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/PassThroughFieldExtractor.java @@ -58,6 +58,10 @@ public class PassThroughFieldExtractor implements FieldExtractor { } return args; } + + if (item instanceof FieldSet) { + return ((FieldSet) item).getValues(); + } return new Object[] { item }; diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/transform/PassThroughFieldExtractorTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/transform/PassThroughFieldExtractorTests.java index 6ec1e2be7..2ce00fec2 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/transform/PassThroughFieldExtractorTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/transform/PassThroughFieldExtractorTests.java @@ -15,7 +15,7 @@ */ package org.springframework.batch.item.file.transform; -import static junit.framework.Assert.*; +import static junit.framework.Assert.assertTrue; import java.util.Arrays; import java.util.List; @@ -29,21 +29,28 @@ import org.junit.Test; public class PassThroughFieldExtractorTests { @Test - public void testExtract_string() { + public void testExtractString() { PassThroughFieldExtractor extractor = new PassThroughFieldExtractor(); Object[] result = extractor.extract("abc"); assertTrue(Arrays.equals(new Object[] { "abc" }, result)); } @Test - public void testExtract_array() { + public void testExtractArray() { PassThroughFieldExtractor extractor = new PassThroughFieldExtractor(); Object[] result = extractor.extract(new String[] { "a", "b", null, "d" }); assertTrue(Arrays.equals(new Object[] { "a", "b", "", "d" }, result)); } @Test - public void testExtract_collection() { + public void testExtractFieldSet() { + PassThroughFieldExtractor
extractor = new PassThroughFieldExtractor
(); + Object[] result = extractor.extract(new DefaultFieldSet(new String[] { "a", "b", "", "d" })); + assertTrue(Arrays.equals(new Object[] { "a", "b", "", "d" }, result)); + } + + @Test + public void testExtractCollection() { PassThroughFieldExtractor> extractor = new PassThroughFieldExtractor>(); Object[] result = extractor.extract(Arrays.asList("a", "b", null, "d")); assertTrue(Arrays.equals(new Object[] { "a", "b", "", "d" }, result));