From: Alexis Laferrière Date: Sat, 1 Feb 2014 18:33:39 +0000 (-0500) Subject: lib/serialization: adds a method to detect unserializable type X-Git-Tag: v0.6.4~16^2~11 X-Git-Url: http://nitlanguage.org lib/serialization: adds a method to detect unserializable type Signed-off-by: Alexis Laferrière --- diff --git a/lib/serialization.nit b/lib/serialization.nit index cd80d3d..f673ded 100644 --- a/lib/serialization.nit +++ b/lib/serialization.nit @@ -28,13 +28,20 @@ interface Serializer # Serialize an attribute, used by `Serializable::core_serialize_to` fun serialize_attribute(name: String, value: nullable Object) do + if not try_to_serialize(value) then + warn("argument {value.class_name}::{name} is not serializable.") + end + end + + # Serialize `value` is possie, i.e. it is `Serializable` or `null` + fun try_to_serialize(value: nullable Object): Bool + do if value isa Serializable then value.serialize_to_or_delay(self) else if value == null then serialize value - else - warn("argument {value.class_name}::{name} is not serializable.") - end + else return false + return true end # Warn of problems and potential errors (such as if an attribute