Coverage Report - org.jbehave.core.model.TableUtils
 
Classes in this File Line Coverage Branch Coverage Complexity
TableUtils
93%
15/16
91%
11/12
4
 
 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  
         // ignore a leading and a trailing empty value
 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  
 }