class RestMsg extends Cdr {

    public HttpRequestMsg serialize(Cdr cdr) throws EtiqetException {
        try {
            update(cdr);
            Message messageConfig = getMessage();
            if (messageConfig == null) {
                LOG.error("Message type {} not recognised", msgType);
                throw new EtiqetException("Message type " + msgType + " not recognised");
            }

            instance = (HttpRequestMsg) Class.forName(messageConfig.getImplementation()).getConstructor().newInstance();
            handleHttpRequest();
        } catch (EtiqetException e) {
            LOG.error("Exception thrown serializing RestMsg", e);
            throw e;
        } catch (Exception e) {
            LOG.error("Exception thrown serializing RestMsg", e);
            throw new SerializeException(e);
        }

        return instance;
    }

    public  RestMsg(String msgType);

}