package er.neo4jadaptor.ersatz.lucene;
import com.webobjects.eoaccess.EOAttribute;
import er.neo4jadaptor.ersatz.Translator;
/**
* Encodes any type of object into a String
*
* @see StorableTypes
*
* @author Jedrzej Sobanski
*/
public class LuceneTranslator implements Translator {
public static interface Coder {
public String encode(Object value);
public Object decode(String encoded);
}
public static final LuceneTranslator instance = new LuceneTranslator();
private static final String NULL_LITERAL = "";
private LuceneTranslator() {
}
public String fromNeutralValue(Object value, EOAttribute att) {
if (value == null) {
return NULL_LITERAL;
} else {
Coder t = StorableTypes.getForAttribute(att);
return t.encode(value);
}
}
public Object toNeutralValue(Object value, EOAttribute att) {
if (NULL_LITERAL.equals(value)) {
return null;
} else {
Coder t = StorableTypes.getForAttribute(att);
String s = (String) value;
return t.decode(s);
}
}
}