package org.neo4j.smack.serialization.strategy; import org.neo4j.graphdb.Node; import org.neo4j.smack.api.UrlReverseLookerUpper; import org.neo4j.smack.serialization.SerializationException; import org.neo4j.smack.serialization.SerializationStrategy; import org.neo4j.smack.serialization.Serializer; public class NodeSerializationStrategy implements SerializationStrategy<Node> { private static final String SELF_FIELD = "self"; private static final String DATA_FIELD = "data"; private static final String EXTENSIONS_FIELD = "extensions"; private static final UrlReverseLookerUpper url = new UrlReverseLookerUpper(); private static final PropertyContainerSerializationStrategy propertySerialization = new PropertyContainerSerializationStrategy(); @Override public void serialize(Node node, Serializer out) throws SerializationException { out.startMap(); out.putMapPropertyName(DATA_FIELD); propertySerialization.serialize(node, out); out.putMapPropertyName(SELF_FIELD); out.putString(url.reverse(node)); out.putMapPropertyName(EXTENSIONS_FIELD); out.startMap(); out.endMap(); out.endMap(); } }