package com.bansheeproject.engine.converters;
import com.bansheeproject.log.BansheeLogFactory;
import com.bansheeproject.log.BansheeLogger;
/**
* Represents a converter from objects to string and vice-versa.
*
* @author Alexandre Saudate
* @since 1.0
*/
public abstract class ObjectConverter {
private static BansheeLogger logger = BansheeLogFactory.getDefaultLogger(ObjectConverter.class);
public String encode (Object source) {
logger.debug("Encoding: ".concat(source.toString()));
String response = encodeImpl(source);
if (response.indexOf("?>") != -1) {
response = response.substring(response.indexOf("?>") + 2);
}
logger.debug("Response: ".concat(response));
return response;
}
protected abstract String encodeImpl (Object source);
public abstract Object decode (String response, Class<?> expectedType);
}