net.thucydides.core.csv.FieldName Maven / Gradle / Ivy
package net.thucydides.core.csv;
import org.apache.commons.lang3.StringUtils;
/**
* Utility class to convert CSV headings to valid JavaBean property names.
*/
public final class FieldName {
private final String columnHeading;
public FieldName(final String columnHeading) {
this.columnHeading = columnHeading;
}
public String inNormalizedForm() {
String[] words = columnHeading.trim().split("\\s");
StringBuffer buffer = new StringBuffer();
boolean isFirstWord = true;
for(String word : words) {
if (isFirstWord) {
buffer.append(word.toLowerCase());
isFirstWord = false;
} else {
buffer.append(StringUtils.capitalize(word.toLowerCase()));
}
}
return buffer.toString();
}
public static FieldName from(final String columnHeading) {
return new FieldName(columnHeading);
}
}