set method
フィールドデータをセットする
name
フィールド名
value
セットするデータ
Implementation
void set(String name, Object value) {
if (name == 'createDate' || name == 'updateDate') {
value = DateTime.parse(value as String);
_fields[name] = value;
return;
}
if (['NCMBUser', 'NCMBObject', 'NCMBFile', 'NCMBPush', 'NCMBInstallation']
.indexOf(value.runtimeType.toString()) >
-1) {
_fields[name] = value;
return;
}
if (name == 'objectId') {
objectId = value as String;
_fields[name] = value;
return;
}
if (name == 'acl') {
if (!(value is NCMBAcl)) {
var acl = new NCMBAcl();
acl.sets(value as Map);
value = acl;
}
_fields[name] = value;
return;
}
try {
var map = value as Map;
if (map.containsKey('className')) {
var className = map['className'] as String;
map.remove('__type');
map.remove('className');
print(className);
switch (className) {
case 'user':
var user = NCMBUser();
user.sets(map);
value = user;
break;
case 'installation':
var installation = NCMBInstallation();
installation.sets(map);
value = installation;
break;
case 'push':
var push = NCMBPush();
push.sets(map);
value = push;
break;
default:
NCMBObject obj = NCMBObject(className);
obj.sets(map);
value = obj;
}
_fields[name] = value;
return;
}
if (map.containsKey('__type') && map['__type'] == 'GeoPoint') {
var geo = NCMBGeoPoint(
map['latitude'].toDouble(), map['longitude'].toDouble());
_fields[name] = geo;
return;
} else if (map.containsKey('__type') && map['__type'] == 'Date') {
var format = DateFormat("yyyy-MM-ddTHH:mm:ss.S'Z'");
_fields[name] = format.parseStrict(map['iso']);
return;
}
} catch (e) {
_fields[name] = value;
}
}