package dslab.rmi.serialize; import dslab.protocol.Protocol; import dslab.protocol.ProtocolException; import dslab.rmi.serialize.Executors.Executor; import java.util.logging.Logger; /** * Server serializers are used on the server side of a client-server type interaction */ public abstract class ServerSerializer<PROTOCOL extends Protocol> extends Serializer { private final static Logger LOG = Logger.getLogger(ServerSerializer.class.getSimpleName()); public abstract Executor<?, PROTOCOL> deserialize(String request) throws ProtocolException; public String serialize(Object object) { if (object == null) object = ""; return ("ok " + object).toLowerCase().trim(); } public String serialize(ProtocolException e) { return ("error " + e.getCode() + " " + e.getMessage()).trim().toLowerCase(); } public String serialize(Protocol protocol) { return "ok " + protocol.getName(); } }