key
, or null if nothing is available
redef fun [](key)
do
var nsstr = user_defaults.string_for_key(key.to_nsstring)
if nsstr.address_is_null then return null
# TODO report errors
var deserializer = new JsonDeserializer(nsstr.to_s)
var deserialized = deserializer.deserialize
var errors = deserializer.errors
if errors.not_empty then
# An update may have broken the versioning compatibility
print_error "{class_name} error at deserialization: {errors.join(", ")}"
return null # Let's be safe
end
return deserialized
end
lib/ios/data_store.nit:27,2--45,4
redef fun [](key)
do
# Get DB
var db = self.db
if db == null then return null
# Prepare SELECT statement
var stmt = db.select("* FROM {db_table} WHERE key == {key.to_sql_string}")
if stmt == null then return null
# Execute statment
for row in stmt do
# Get from statement
var serialized = row[1].to_s
stmt.close
# Deserialize
var deserializer = new JsonDeserializer(serialized)
var deserialized = deserializer.deserialize
var errors = deserializer.errors
if errors.not_empty then
# An update may have broken the versioning compatibility
print_error "{class_name} error at deserialization: {errors.join(", ")}"
return null # Let's be safe
end
return deserialized
end
stmt.close
return null
end
lib/linux/data_store.nit:61,2--93,4
redef fun [](key) do return shared_preferences[key]
lib/android/data_store.nit:30,2--52