package com.datascience.utils.transformations.simple;
import com.datascience.core.base.ContValue;
import com.datascience.utils.ITransformation;
import com.google.common.base.Joiner;
import com.google.common.base.Splitter;
import java.util.Iterator;
/**
* User: artur
* Date: 5/7/13
*/
public class ContValueTransform implements ITransformation<ContValue, String> {
Joiner joiner;
Splitter splitter;
String separator;
public ContValueTransform(String separator){
joiner = Joiner.on(separator);
splitter = Splitter.on(separator);
this.separator = separator;
}
@Override
public String transform(ContValue s) {
if (s != null)
return joiner.join(s.getValue().toString(), s.getZeta() != null ? s.getZeta().toString() : "");
else
return separator;
}
@Override
public ContValue inverse(String object) {
Iterator<String> values = splitter.split(object).iterator();
String value = values.next();
String zeta = values.next();
if (value.isEmpty() && zeta.isEmpty())
return null;
return new ContValue(Double.parseDouble(value), zeta.isEmpty() ? null : Double.parseDouble(zeta));
}
}