public void writeObject()

in hessian-lite/src/main/java/com/alibaba/com/caucho/hessian/io/MapSerializer.java [76:114]


    public void writeObject(Object obj, AbstractHessianOutput out)
            throws IOException {
        if (out.addRef(obj))
            return;

        Map map = (Map) obj;

        Class<?> cl = obj.getClass();

        if (cl.equals(HashMap.class)
                || !(obj instanceof java.io.Serializable))
            out.writeMapBegin(null);
        else if (!_isSendJavaType) {
            // hessian/3a19
            for (; cl != null; cl = cl.getSuperclass()) {
                if (cl.equals(HashMap.class)) {
                    out.writeMapBegin(null);
                    break;
                } else if (cl.getName().startsWith("java.")) {
                    out.writeMapBegin(cl.getName());
                    break;
                }
            }

            if (cl == null)
                out.writeMapBegin(null);
        } else {
            out.writeMapBegin(cl.getName());
        }

        Iterator iter = map.entrySet().iterator();
        while (iter.hasNext()) {
            Map.Entry entry = (Map.Entry) iter.next();

            out.writeObject(entry.getKey());
            out.writeObject(entry.getValue());
        }
        out.writeMapEnd();
    }