summaryrefslogtreecommitdiffstats
path: root/src/main/java/com/beust/jcommander/converters/DefaultListConverter.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/beust/jcommander/converters/DefaultListConverter.java')
-rw-r--r--src/main/java/com/beust/jcommander/converters/DefaultListConverter.java36
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;
+ }
+}