-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtpl.txt
More file actions
40 lines (32 loc) · 1.59 KB
/
tpl.txt
File metadata and controls
40 lines (32 loc) · 1.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
class {{.ClassName}} {{"{"}}{{range $i, $e := .Fields}}
final {{$e.DataType}} {{$e.FieldName}};{{end}}
const {{.ClassName}}({{range $i, $e := .Fields}}{{if gt $i 0}}, {{end}}this.{{$e.FieldName}}{{end}});
factory {{.ClassName}}.instance() {
return {{.ClassName}}.fromMap({});
}
factory {{.ClassName}}.fromMap(Map<{{.DartMapKeyType}}, {{.DartMapValueType}}> m) {
return {{.ClassName}}({{range $i, $e := .Fields}}
m.containsKey("{{$e.JsonName}}") && m["{{$e.JsonName}}"] != null ? {{if $e.ClassArray}}(m["{{$e.JsonName}}"] as List<dynamic>).map((a) => a as Map<String, dynamic>).map((a) => {{$e.InnerDataType}}.fromMap(a)).toList(){{else if $e.Array}}(m["{{$e.JsonName}}"] as List<dynamic>).map((a) => a as {{$e.InnerDataType}}).toList(){{else}}{{if eq $e.Default "null"}}{{$e.DataType}}.fromMap(m["{{$e.JsonName}}"]){{else}}m["{{$e.JsonName}}"]{{end}}{{end}}: {{if eq $e.Default "null"}}{{$e.DataType}}.instance(){{else}}{{$e.Default}}{{end}},{{end}}
);
}
Map<{{.DartMapKeyType}}, {{.DartMapValueType}}> toMap() {
return {{"{"}}{{range $i, $e := .Fields}}
"{{$e.FieldName}}": {{$e.FieldName}},{{end}}
};
}
Map<{{.DartMapKeyType}}, {{.DartMapValueType}}> toOriginalMap() {
return {{"{"}}{{range $i, $e := .Fields}}
"{{$e.JsonName}}": {{$e.FieldName}},{{end}}
};
}
String toJson() {
return jsonEncode(toMap());
}
String toOriginalJson() {
return jsonEncode(toOriginalMap());
}
@override
String toString() {
return '{{"{"}}{{range $i, $e := .Fields}}{{if gt $i 0}}, {{end}}{{$e.FieldName}}: {{"$"}}{{$e.FieldName}}{{end}}{{"}"}}';
}
}