package com.akjava.lib.common.functions;
import java.util.HashMap;
import java.util.Map;
import com.akjava.lib.common.utils.CSVUtils;
import com.google.common.base.Function;
public class CSVFunctions {
private static PairCsvFunction tabPairCsvFunction=new PairCsvFunction("\t");
public static PairCsvFunction getTabPairCsvFunction() {
return tabPairCsvFunction;
}
private static PairCsvFunction commaPairCsvFunction=new PairCsvFunction(",");
public static PairCsvFunction getCommaPairCsvFunction() {
return commaPairCsvFunction;
}
public static class PairCsvFunction implements Function<String,Map<String,String>>{
private String separator;
public PairCsvFunction(String separator) {
super();
this.separator = separator;
}
@Override
public Map<String,String> apply(String input){
Map<String,String> map=new HashMap<String, String>();
if(input.isEmpty()){
return map;
}
String[] lines=CSVUtils.splitLines(input);
for(String line:lines){
if(line.isEmpty()){
continue;
}
String[] csv=CSVUtils.splitAtFirst(line, separator);
if(csv.length==2){
map.put(csv[0], csv[1]);
}else{
map.put(csv[0], "");
}
}
return map;
}
}
}