DS-Lab / src / main / java / dslab / rmi / serialize / ServerSerializer.java
ServerSerializer.java
Raw
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();
    }
}