1 | |
package org.jbehave.core.model; |
2 | |
|
3 | |
import java.util.ArrayList; |
4 | |
import java.util.List; |
5 | |
|
6 | |
import org.apache.commons.lang.StringUtils; |
7 | |
|
8 | 0 | public class TableUtils { |
9 | |
|
10 | |
public static List<String> parseRow(String rowAsString, String separator, boolean trimValues) { |
11 | 7 | return parseRow(rowAsString, separator, null, trimValues); |
12 | |
} |
13 | |
|
14 | |
public static List<String> parseRow(String rowAsString, String separator, String commentSeparator, boolean trimValues) { |
15 | 2179 | StringBuffer regex = new StringBuffer(); |
16 | 4360 | for (char c : separator.toCharArray()) { |
17 | 2181 | regex.append("\\").append(c); |
18 | |
} |
19 | 2179 | List<String> values = new ArrayList<String>(); |
20 | 26912 | for ( String value : rowAsString.split(regex.toString(),-1) ){ |
21 | 24733 | String stripped = StringUtils.substringBefore(value, commentSeparator); |
22 | 24733 | String trimmed = trimValues ? stripped.trim() : stripped; |
23 | 24733 | values.add(StringUtils.substringBefore(trimmed, commentSeparator)); |
24 | |
} |
25 | |
|
26 | 2179 | if (StringUtils.isBlank(values.get(0))) { |
27 | 2173 | values.remove(0); |
28 | |
} |
29 | 2179 | int lastIndex = values.size() - 1; |
30 | 2179 | if (lastIndex != -1 && StringUtils.isBlank(values.get(lastIndex))) { |
31 | 2173 | values.remove(lastIndex); |
32 | |
} |
33 | 2179 | return values; |
34 | |
} |
35 | |
|
36 | |
} |