Chromium Code Reviews| Index: lib/message_generator.dart |
| diff --git a/lib/message_generator.dart b/lib/message_generator.dart |
| index f6cff19ce426d6332839c61b6652150cf8f18311..014c37e1ff5121dadd3a6856fb3d0d9f60051e7b 100644 |
| --- a/lib/message_generator.dart |
| +++ b/lib/message_generator.dart |
| @@ -105,8 +105,13 @@ class MessageGenerator extends ProtobufContainer { |
| makeDefault = field.initializationForPackage(package); |
| } |
| String subBuilder = null; |
| - if (field.message || field.group) { |
| + String subBuilderRepeated = null; |
| + if (field.message) { |
| + subBuilder = '${fieldType}.create'; |
| + subBuilderRepeated = '${fieldType}.createRepeated'; |
| + } else if (field.group) { |
|
Siggi Cherem (dart-lang)
2014/12/19 21:53:14
after chatting about it - seems we can do the same
sra1
2014/12/19 23:11:02
Done.
|
| subBuilder = '()${SP}=>${SP}new ${fieldType}()'; |
| + subBuilderRepeated = '()${SP}=>${SP}new PbList<${fieldType}>()'; |
|
Siggi Cherem (dart-lang)
2014/12/19 21:53:14
not for this CL, but I'll ask since I'm thinking a
Søren Gjesse
2015/01/05 16:00:07
I don't see any reason for using ${SP} when genera
|
| } |
| String valueOf = null; |
| if (field.enm) { |
| @@ -116,7 +121,7 @@ class MessageGenerator extends ProtobufContainer { |
| // Repeated message: default is an empty list |
| out.println('..m(${field.number},${SP}' |
| '\'${field.externalFieldName}\',${SP}$subBuilder,' |
| - '${SP}()${SP}=>${SP}new PbList<${fieldType}>())'); |
| + '${SP}$subBuilderRepeated)'); |
| } else if (type[0] == 'P' && type != 'PG' && type != 'PE') { |
| // Repeated, not a message or enum: default is an empty list, |
| // subBuilder is null, valueOf is null. |
| @@ -172,6 +177,12 @@ class MessageGenerator extends ProtobufContainer { |
| out.println('BuilderInfo get info_${SP}=>${SP}_i;'); |
| + // Factory functions which can be used as default value closures. |
| + out.println('static ${classname}${SP}create()${SP}=>' |
| + '${SP}new ${classname}();'); |
| + out.println('static PbList<${classname}>${SP}createRepeated()${SP}=>' |
| + '${SP}new PbList<${classname}>();'); |
| + |
| generateFieldsAccessorsMutators(out); |
| }); |
| out.println(); |