package com.datascience.utils.transformations.simple;
import com.datascience.utils.ITransformation;
import com.google.common.base.Joiner;
import com.google.common.base.Splitter;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;
/**
* @Author: artur
*/
public class MapTransform implements ITransformation<Map<String, Double>, String> {
protected Joiner joiner;
protected Splitter splitter;
public MapTransform(String separator){
joiner = Joiner.on(separator);
splitter = Splitter.on(separator);
}
@Override
public String transform(Map<String, Double> result) {
LinkedList<String> stringItems = new LinkedList<String>();
for (Map.Entry<String, Double> item : result.entrySet()){
stringItems.add(item.getKey() + ":" + item.getValue());
}
return joiner.join(stringItems);
}
@Override
public Map<String, Double> inverse(String object) {
Map<String, Double> map = new HashMap<String, Double>();
for (String item : splitter.split(object)){
String[] kv = item.split(":");
map.put(kv[0], Double.parseDouble(kv[1]));
}
return map;
}
}