package org.neo4j.smack.serialization.strategy;
import org.neo4j.graphdb.PropertyContainer;
import org.neo4j.smack.serialization.SerializationException;
import org.neo4j.smack.serialization.SerializationStrategy;
import org.neo4j.smack.serialization.Serializer;
/**
* Serializes a property container into a map.
*/
public class PropertyContainerSerializationStrategy implements
SerializationStrategy<PropertyContainer> {
private static final PropertyValueSerializationStrategy valueSerialization = new PropertyValueSerializationStrategy();
@Override
public void serialize(PropertyContainer entity, Serializer out)
throws SerializationException
{
out.startMap();
for(String name : entity.getPropertyKeys()) {
// TODO: Look into caching serialized property keys
out.putMapPropertyName(name);
valueSerialization.serialize(entity.getProperty(name), out);
}
out.endMap();
}
}