getRelationObject static method
dynamic
getRelationObject(
{ - required ColumnRelation relation,
- dynamic value,
})
Implementation
static getRelationObject({required ColumnRelation relation, dynamic value}) {
if (value == null) {
return null;
}
switch (relation.relationType) {
case RelationType.ManyToOne:
Map<String, dynamic> relationMap = {};
relation.referencedEntityColumns?.forEach((column) {
var relationValue = value[column!.name];
if (relationValue.runtimeType == int &&
column.type == ColumnType.BOOLEAN) {
relationMap[column.name as String] =
relationValue == 1 ? true : false;
} else if (relationValue.runtimeType == String &&
column.type == ColumnType.BOOLEAN) {
relationMap[column.name as String] =
relationValue == "1" ? true : false;
} else {
relationMap[column.name as String] = relationValue;
}
});
return relation.referencedEntity?.classMirror!
.newInstance('fromJson', [relationMap]);
case RelationType.OneToMany:
return value.toList().map((valueItem) {
Map<String, dynamic> relationMap = {};
relation.referencedEntityColumns?.forEach((column) {
var relationValue = valueItem[column!.name];
if (relationValue.runtimeType == int &&
column.type == ColumnType.BOOLEAN) {
relationMap[column.name as String] =
relationValue == 1 ? true : false;
} else if (relationValue.runtimeType == String &&
column.type == ColumnType.BOOLEAN) {
relationMap[column.name as String] =
relationValue == "1" ? true : false;
} else {
relationMap[column.name as String] = relationValue;
}
});
return relationMap;
}).toList();
default:
return null;
}
}