BATCH-1659: add test for file exists (moved from setUpOutputFile to createNewFile)

This commit is contained in:
Dave Syer
2010-11-26 13:22:03 +00:00
parent a3702694cd
commit 25b899b83d
4 changed files with 54 additions and 16 deletions

View File

@@ -49,7 +49,9 @@ public class DefaultFieldSet implements FieldSet {
}
private NumberFormat numberFormat = NumberFormat.getInstance(Locale.US);
private String grouping = ",";
private String decimal = ".";
/**
@@ -60,15 +62,15 @@ public class DefaultFieldSet implements FieldSet {
private List<String> names;
/**
* The {@link NumberFormat} to use for parsing numbers. If unset the
* US locale will be used ('.' as decimal place).
* The {@link NumberFormat} to use for parsing numbers. If unset the US
* locale will be used ('.' as decimal place).
* @param numberFormat the {@link NumberFormat} to use for number parsing
*/
public final void setNumberFormat(NumberFormat numberFormat) {
this.numberFormat = numberFormat;
if (numberFormat instanceof DecimalFormat) {
grouping = ""+((DecimalFormat)numberFormat).getDecimalFormatSymbols().getGroupingSeparator();
decimal = ""+((DecimalFormat)numberFormat).getDecimalFormatSymbols().getDecimalSeparator();
grouping = "" + ((DecimalFormat) numberFormat).getDecimalFormatSymbols().getGroupingSeparator();
decimal = "" + ((DecimalFormat) numberFormat).getDecimalFormatSymbols().getDecimalSeparator();
}
}
@@ -81,11 +83,24 @@ public class DefaultFieldSet implements FieldSet {
this.dateFormat = dateFormat;
}
/**
* Create a FieldSet with anonymous tokens. They can only be retrieved by
* column number.
* @param tokens the token values
* @see FieldSet#readString(int)
*/
public DefaultFieldSet(String[] tokens) {
this.tokens = tokens == null ? null : (String[]) tokens.clone();
setNumberFormat(NumberFormat.getInstance(Locale.US));
}
/**
* Create a FieldSet with named tokens. The token values can then be
* retrieved either by name or by column number.
* @param tokens the token values
* @param names the names of the tokens
* @see FieldSet#readString(String)
*/
public DefaultFieldSet(String[] tokens, String[] names) {
Assert.notNull(tokens);
Assert.notNull(names);
@@ -438,7 +453,7 @@ public class DefaultFieldSet implements FieldSet {
*/
public BigDecimal readBigDecimal(int index, BigDecimal defaultValue) {
String candidate = readAndTrim(index);
if (!StringUtils.hasText(candidate)) {
return defaultValue;
}
@@ -484,13 +499,17 @@ public class DefaultFieldSet implements FieldSet {
return parseDate(readAndTrim(index), dateFormat);
}
/* (non-Javadoc)
* @see org.springframework.batch.item.file.transform.FieldSet#readDate(int, java.util.Date)
/*
* (non-Javadoc)
*
* @see org.springframework.batch.item.file.transform.FieldSet#readDate(int,
* java.util.Date)
*/
public Date readDate(int index, Date defaultValue) {
try {
return readDate(index);
} catch (IllegalArgumentException e) {
}
catch (IllegalArgumentException e) {
return defaultValue;
}
}
@@ -511,13 +530,17 @@ public class DefaultFieldSet implements FieldSet {
}
}
/* (non-Javadoc)
* @see org.springframework.batch.item.file.transform.FieldSet#readDate(int, java.util.Date)
/*
* (non-Javadoc)
*
* @see org.springframework.batch.item.file.transform.FieldSet#readDate(int,
* java.util.Date)
*/
public Date readDate(String name, Date defaultValue) {
try {
return readDate(name);
} catch (IllegalArgumentException e) {
}
catch (IllegalArgumentException e) {
return defaultValue;
}
}
@@ -543,7 +566,8 @@ public class DefaultFieldSet implements FieldSet {
public Date readDate(int index, String pattern, Date defaultValue) {
try {
return readDate(index, pattern);
} catch (IllegalArgumentException e) {
}
catch (IllegalArgumentException e) {
return defaultValue;
}
}
@@ -573,7 +597,8 @@ public class DefaultFieldSet implements FieldSet {
public Date readDate(String name, String pattern, Date defaultValue) {
try {
return readDate(name, pattern);
} catch (IllegalArgumentException e) {
}
catch (IllegalArgumentException e) {
return defaultValue;
}
}

View File

@@ -11,8 +11,21 @@ package org.springframework.batch.item.file.transform;
*/
public interface FieldSetFactory {
FieldSet create(String[] names, String[] values);
/**
* Create a FieldSet with named tokens. The token values can then be
* retrieved either by name or by column number.
* @param values the token values
* @param names the names of the tokens
* @see DefaultFieldSet#readString(String)
*/
FieldSet create(String[] values, String[] names);
/**
* Create a FieldSet with anonymous tokens. They can only be retrieved by
* column number.
* @param values the token values
* @see FieldSet#readString(int)
*/
FieldSet create(String[] values);
}

View File

@@ -95,7 +95,7 @@ public final class FileUtils {
}
try {
return file.createNewFile();
return file.createNewFile() && file.exists();
}
catch (IOException e) {
// On some filesystems you can get an exception here even though the