diff options
Diffstat (limited to 'src/main/java/com/beust/jcommander/converters/DefaultListConverter.java')
-rw-r--r-- | src/main/java/com/beust/jcommander/converters/DefaultListConverter.java | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/main/java/com/beust/jcommander/converters/DefaultListConverter.java b/src/main/java/com/beust/jcommander/converters/DefaultListConverter.java new file mode 100644 index 0000000..00bf9ac --- /dev/null +++ b/src/main/java/com/beust/jcommander/converters/DefaultListConverter.java @@ -0,0 +1,36 @@ +package com.beust.jcommander.converters; + +import com.beust.jcommander.IStringConverter; +import com.beust.jcommander.internal.Lists; + +import java.util.List; + +/** + * A converter to obtain a list of elements. + * @param <T> the element type + * @author simon04 + */ +public class DefaultListConverter<T> implements IStringConverter<List<T>> { + + private final IParameterSplitter splitter; + private final IStringConverter<T> converter; + + /** + * Constructs a new converter. + * @param splitter to split value into list of arguments + * @param converter to convert list of arguments to target element type + */ + public DefaultListConverter(IParameterSplitter splitter, IStringConverter<T> converter) { + this.splitter = splitter; + this.converter = converter; + } + + @Override + public List<T> convert(String value) { + List<T> result = Lists.newArrayList(); + for (String param : splitter.split(value)) { + result.add(converter.convert(param)); + } + return result; + } +} |