From 89f108627e30fa30f210f6dc539313715a433df0 Mon Sep 17 00:00:00 2001 From: robokaso Date: Tue, 15 Jul 2008 09:58:14 +0000 Subject: [PATCH] IN PROGRESS - BATCH-709: Change all collections to use generics --- .../file/transform/AbstractLineTokenizer.java | 4 +-- .../transform/DelimitedLineTokenizer.java | 4 +-- .../file/transform/FixedLengthTokenizer.java | 4 +-- .../PrefixMatchingCompositeLineTokenizer.java | 27 +++++++++---------- .../transform/RangeArrayPropertyEditor.java | 8 +++--- .../RecursiveCollectionItemTransformer.java | 14 +++++----- ...ixMatchingCompositeLineTokenizerTests.java | 6 ++--- 7 files changed, 33 insertions(+), 34 deletions(-) diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/AbstractLineTokenizer.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/AbstractLineTokenizer.java index a4d12de18..bbf677550 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/AbstractLineTokenizer.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/AbstractLineTokenizer.java @@ -70,7 +70,7 @@ public abstract class AbstractLineTokenizer implements LineTokenizer { line = ""; } - List tokens = new ArrayList(doTokenize(line)); + List tokens = new ArrayList(doTokenize(line)); String[] values = (String[]) tokens.toArray(new String[tokens.size()]); @@ -83,6 +83,6 @@ public abstract class AbstractLineTokenizer implements LineTokenizer { return new DefaultFieldSet(values, names); } - protected abstract List doTokenize(String line); + protected abstract List doTokenize(String line); } diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/DelimitedLineTokenizer.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/DelimitedLineTokenizer.java index cb0806aea..66bb095a6 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/DelimitedLineTokenizer.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/DelimitedLineTokenizer.java @@ -105,9 +105,9 @@ public class DelimitedLineTokenizer extends AbstractLineTokenizer { * * @return the resulting tokens */ - protected List doTokenize(String line) { + protected List doTokenize(String line) { - List tokens = new ArrayList(); + List tokens = new ArrayList(); // line is never null in current implementation // line is checked in parent: AbstractLineTokenizer.tokenize() diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/FixedLengthTokenizer.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/FixedLengthTokenizer.java index 86254cd8b..697c67c08 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/FixedLengthTokenizer.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/FixedLengthTokenizer.java @@ -86,8 +86,8 @@ public class FixedLengthTokenizer extends AbstractLineTokenizer { * @throws IncorrectLineLengthException if line length is greater than * or less than the max range set. */ - protected List doTokenize(String line) { - List tokens = new ArrayList(ranges.length); + protected List doTokenize(String line) { + List tokens = new ArrayList(ranges.length); int lineLength; String token; diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/PrefixMatchingCompositeLineTokenizer.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/PrefixMatchingCompositeLineTokenizer.java index 38ba8c79f..c765e7916 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/PrefixMatchingCompositeLineTokenizer.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/PrefixMatchingCompositeLineTokenizer.java @@ -17,7 +17,6 @@ package org.springframework.batch.item.file.transform; import java.util.HashMap; -import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; @@ -26,23 +25,23 @@ import org.springframework.batch.item.file.mapping.FieldSet; public class PrefixMatchingCompositeLineTokenizer implements LineTokenizer { - private Map tokenizers = new HashMap(); - - public void setTokenizers(Map tokenizers) { - this.tokenizers = new LinkedHashMap(tokenizers); + private Map tokenizers = new HashMap(); + + public void setTokenizers(Map tokenizers) { + this.tokenizers = new LinkedHashMap(tokenizers); } - + public FieldSet tokenize(String line) { - if (line==null) { + if (line == null) { return new DefaultFieldSet(new String[0]); } LineTokenizer tokenizer = null; LineTokenizer defaultTokenizer = null; - for (Iterator iter = tokenizers.keySet().iterator(); iter.hasNext();) { - String key = (String) iter.next(); + for (String key : tokenizers.keySet()) { + if ("".equals(key)) { defaultTokenizer = (LineTokenizer) tokenizers.get(key); // don't break here or the tokenizer may not be found @@ -53,13 +52,13 @@ public class PrefixMatchingCompositeLineTokenizer implements LineTokenizer { break; } } - - if (tokenizer==null) { + + if (tokenizer == null) { tokenizer = defaultTokenizer; } - - if (tokenizer==null) { - throw new IllegalStateException("Could not match record to tokenizer for line=["+line+"]"); + + if (tokenizer == null) { + throw new IllegalStateException("Could not match record to tokenizer for line=[" + line + "]"); } return tokenizer.tokenize(line); diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/RangeArrayPropertyEditor.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/RangeArrayPropertyEditor.java index 568bd8779..864d5e5fc 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/RangeArrayPropertyEditor.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/RangeArrayPropertyEditor.java @@ -97,11 +97,9 @@ public class RangeArrayPropertyEditor extends PropertyEditorSupport { Range[] c = (Range[])ranges.clone(); //sort array of Ranges - Arrays.sort(c, new Comparator() { - public int compare(Object o1, Object o2) { - Range c1 = (Range)o1; - Range c2 = (Range)o2; - return c1.getMin()-c2.getMin(); + Arrays.sort(c, new Comparator() { + public int compare(Range r1, Range r2) { + return r1.getMin()-r2.getMin(); } } ); diff --git a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/RecursiveCollectionItemTransformer.java b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/RecursiveCollectionItemTransformer.java index f2726453e..bb9ee36fe 100644 --- a/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/RecursiveCollectionItemTransformer.java +++ b/spring-batch-infrastructure/src/main/java/org/springframework/batch/item/file/transform/RecursiveCollectionItemTransformer.java @@ -1,7 +1,6 @@ package org.springframework.batch.item.file.transform; import java.util.Collection; -import java.util.Iterator; import org.springframework.batch.item.transform.ItemTransformer; @@ -10,8 +9,8 @@ import org.springframework.batch.item.transform.ItemTransformer; * specially if it is an array or collection. In this case it loops though, * calling itself on each member in turn, until it encounters a non collection. * At this point, if the item is a String, that is used, or else it is passed to - * the delegate {@link ItemTransformer}. The transformed single item Strings - * are all concatenated with line separators. + * the delegate {@link ItemTransformer}. The transformed single item Strings are + * all concatenated with line separators. * * @author Dave Syer * @@ -45,7 +44,10 @@ public class RecursiveCollectionItemTransformer implements ItemTransformer { /* * (non-Javadoc) - * @see org.springframework.batch.item.writer.ItemTransformer#transform(java.lang.Object) + * + * @see + * org.springframework.batch.item.writer.ItemTransformer#transform(java. + * lang.Object) */ public Object transform(Object input) throws Exception { TransformHolder holder = new TransformHolder(); @@ -67,8 +69,8 @@ public class RecursiveCollectionItemTransformer implements ItemTransformer { private void transformRecursively(Object data, TransformHolder converted) throws Exception { if (data instanceof Collection) { - for (Iterator iterator = ((Collection) data).iterator(); iterator.hasNext();) { - Object value = (Object) iterator.next(); + + for (Object value : (Collection) data) { // (recursive) transformRecursively(value, new TransformHolder(converted.builder)); } diff --git a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/transform/PrefixMatchingCompositeLineTokenizerTests.java b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/transform/PrefixMatchingCompositeLineTokenizerTests.java index 6af142b03..8501aaf78 100644 --- a/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/transform/PrefixMatchingCompositeLineTokenizerTests.java +++ b/spring-batch-infrastructure/src/test/java/org/springframework/batch/item/file/transform/PrefixMatchingCompositeLineTokenizerTests.java @@ -40,7 +40,7 @@ public class PrefixMatchingCompositeLineTokenizerTests extends TestCase { } public void testNullLine() throws Exception { - tokenizer.setTokenizers(Collections.singletonMap("foo", new DelimitedLineTokenizer())); + tokenizer.setTokenizers(Collections.singletonMap("foo", (LineTokenizer) new DelimitedLineTokenizer())); FieldSet fields = tokenizer.tokenize(null); assertEquals(0, fields.getFieldCount()); } @@ -73,7 +73,7 @@ public class PrefixMatchingCompositeLineTokenizerTests extends TestCase { } public void testNoMatch() throws Exception { - tokenizer.setTokenizers(Collections.singletonMap("foo", new DelimitedLineTokenizer())); + tokenizer.setTokenizers(Collections.singletonMap("foo", (LineTokenizer) new DelimitedLineTokenizer())); try { tokenizer.tokenize("nomatch"); fail("Expected IllegalStateException"); @@ -83,7 +83,7 @@ public class PrefixMatchingCompositeLineTokenizerTests extends TestCase { } public void testMatchWithPrefix() throws Exception { - tokenizer.setTokenizers(Collections.singletonMap("foo", new LineTokenizer() { + tokenizer.setTokenizers(Collections.singletonMap("foo", (LineTokenizer) new LineTokenizer() { public FieldSet tokenize(String line) { return new DefaultFieldSet(new String[] {line}); }