package cucumber.runtime.xstream;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
abstract class ConverterWithNumberFormat<T extends Number> extends ConverterWithFormat<T> {
private final List<NumberFormat> formats = new ArrayList<NumberFormat>();
ConverterWithNumberFormat(Locale locale, Class[] convertibleTypes) {
super(convertibleTypes);
formats.add(NumberFormat.getNumberInstance(locale));
}
@Override
public T transform(String string) {
T number = super.transform(string);
return number == null ? null : downcast(number);
}
@Override
public List<NumberFormat> getFormats() {
return formats;
}
protected abstract T downcast(Number argument);
}