Property definitions

popcorn $ JsonRepository :: defaultinit
# A Repository for JsonObjects.
#
# As for document oriented databases, Repository can be used to store and retrieve
# Json object.
# Serialization from/to Json is used to translate from/to nit instances.
#
# See `MongoRepository` for a concrete implementation example.
abstract class JsonRepository[E: Serializable]
	super Repository[E]

	redef fun serialize(item) do
		if item == null then return null
		var stream = new StringWriter
		var serializer = new RepoSerializer(stream)
		serializer.serialize item
		stream.close
		return stream.to_s
	end

	redef fun deserialize(string) do
		if string == null then return null
		var deserializer = new JsonDeserializer(string)
		return deserializer.deserialize.as(E)
	end
end
lib/popcorn/pop_repos.nit:220,1--244,3