Package com.tinkerpop.rexster.protocol.serializer.json.templates

Source Code of com.tinkerpop.rexster.protocol.serializer.json.templates.MetaTemplate

package com.tinkerpop.rexster.protocol.serializer.json.templates;

import com.tinkerpop.rexster.protocol.msg.RexProMessageMeta;
import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.node.JsonNodeFactory;
import org.codehaus.jackson.node.ObjectNode;

import java.util.Iterator;
import java.util.Map;

/**
* @author Blake Eggleston (bdeggleston.github.com)
*/
public class MetaTemplate implements JsonTemplate<RexProMessageMeta> {

    @Override
    public RexProMessageMeta deserialize(JsonNode json) {
        RexProMessageMeta meta = new RexProMessageMeta();
        Iterator<String> itr = json.getFieldNames();
        while (itr.hasNext()) {
            String key = itr.next();
            JsonNode val = json.get(key);
            meta.put(key, JsonConverter.fromJsonNode(val));
        }
        return meta;
    }

    @Override
    public JsonNode serialize(RexProMessageMeta src) {
        ObjectNode map = new ObjectNode(JsonNodeFactory.instance);
        for (Map.Entry<String, Object> entry: src.entrySet()) {
            map.put(entry.getKey(), JsonConverter.toJsonNode(entry.getValue()));
        }
        return map;
    }

    public static MetaTemplate instance = new MetaTemplate();
    static public MetaTemplate getInstance() {
        return instance;
    }
}
TOP

Related Classes of com.tinkerpop.rexster.protocol.serializer.json.templates.MetaTemplate

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.