use of com.cinchapi.concourse.etl.Strainer in project concourse by cinchapi.
the class DelimitedLineImporter method parseObject.
/**
* Transform the delimited line into an object where each field is mapped as
* a value from the analogous key in the {@link #header}. Each key/value
* mapping is subject to processing by the {@link #transformer}.
*
* @param line
* @return the parsed object
*/
protected Multimap<String, Object> parseObject(String line) {
StringSplitter it = new QuoteAwareStringSplitter(line, delimiter, SplitOption.TRIM_WHITESPACE);
Multimap<String, Object> object = LinkedHashMultimap.create();
Strainer strainer = new Strainer((key, value) -> object.put(key, value));
int col = 0;
while (it.hasNext()) {
String key = header.get(col++);
String value = it.next();
Map<String, Object> transformed = transformer.transform(key, (Object) value);
if (transformed != null) {
strainer.process(transformed);
} else {
strainer.process(key, value);
}
}
return object;
}
Aggregations