Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(98)

Side by Side Diff: lib/protobuf_field.dart

Issue 131943002: Handle protocol buffer messages with no package (Closed) Base URL: https://github.com/dart-lang/dart-protoc-plugin.git@master
Patch Set: Fix bug and updte version Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « lib/file_generator.dart ('k') | pubspec.yaml » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 part of protoc; 5 part of protoc;
6 6
7 class ProtobufField { 7 class ProtobufField {
8 static final RegExp HEX_LITERAL_REGEX = 8 static final RegExp HEX_LITERAL_REGEX =
9 new RegExp(r'^0x[0-9a-f]+$', multiLine: false, caseSensitive: false); 9 new RegExp(r'^0x[0-9a-f]+$', multiLine: false, caseSensitive: false);
10 static final RegExp INTEGER_LITERAL_REGEX = new RegExp(r'^[+-]?[0-9]+$'); 10 static final RegExp INTEGER_LITERAL_REGEX = new RegExp(r'^[+-]?[0-9]+$');
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 initialization = '()${SP}=>${SP}<int>[$byteList]'; 260 initialization = '()${SP}=>${SP}<int>[$byteList]';
261 } 261 }
262 } 262 }
263 break; 263 break;
264 case FieldDescriptorProto_Type.TYPE_GROUP: 264 case FieldDescriptorProto_Type.TYPE_GROUP:
265 ProtobufContainer groupType = context[field.typeName]; 265 ProtobufContainer groupType = context[field.typeName];
266 if (groupType != null) { 266 if (groupType != null) {
267 typePackage = groupType.package; 267 typePackage = groupType.package;
268 baseType = groupType.classname; 268 baseType = groupType.classname;
269 typeString = write(groupType.classname); 269 typeString = write(groupType.classname);
270 prefixedBaseType = groupType.packageImportPrefix + '.' + baseType; 270 if (groupType.packageImportPrefix.isNotEmpty) {
271 prefixedBaseType = groupType.packageImportPrefix + '.' + baseType;
272 } else {
273 prefixedBaseType = baseType;
274 }
271 prefixedTypeString = write(prefixedBaseType); 275 prefixedTypeString = write(prefixedBaseType);
272 codedStreamType = 'Group'; 276 codedStreamType = 'Group';
273 } else { 277 } else {
274 throw 'FAILURE: Unknown group type reference ${field.typeName}'; 278 throw 'FAILURE: Unknown group type reference ${field.typeName}';
275 } 279 }
276 initialization = '()${SP}=>${SP}new ${baseType}()'; 280 initialization = '()${SP}=>${SP}new ${baseType}()';
277 prefixedInitialization = '()${SP}=>${SP}new ${prefixedBaseType}()'; 281 prefixedInitialization = '()${SP}=>${SP}new ${prefixedBaseType}()';
278 break; 282 break;
279 case FieldDescriptorProto_Type.TYPE_MESSAGE: 283 case FieldDescriptorProto_Type.TYPE_MESSAGE:
280 ProtobufContainer messageType = context[field.typeName]; 284 ProtobufContainer messageType = context[field.typeName];
281 if (messageType != null) { 285 if (messageType != null) {
282 typePackage = messageType.package; 286 typePackage = messageType.package;
283 baseType = messageType.classname; 287 baseType = messageType.classname;
284 typeString = write(baseType); 288 typeString = write(baseType);
285 prefixedBaseType = messageType.packageImportPrefix + '.' + baseType; 289 if (messageType.packageImportPrefix.isNotEmpty) {
290 prefixedBaseType = messageType.packageImportPrefix + '.' + baseType;
291 } else {
292 prefixedBaseType = baseType;
293 }
286 prefixedTypeString = write(prefixedBaseType); 294 prefixedTypeString = write(prefixedBaseType);
287 codedStreamType = 'Message'; 295 codedStreamType = 'Message';
288 } else { 296 } else {
289 throw 'FAILURE: Unknown message type reference ${field.typeName}'; 297 throw 'FAILURE: Unknown message type reference ${field.typeName}';
290 } 298 }
291 initialization = '()${SP}=>${SP}new ${baseType}()'; 299 initialization = '()${SP}=>${SP}new ${baseType}()';
292 prefixedInitialization = '()${SP}=>${SP}new ${prefixedBaseType}()'; 300 prefixedInitialization = '()${SP}=>${SP}new ${prefixedBaseType}()';
293 break; 301 break;
294 case FieldDescriptorProto_Type.TYPE_ENUM: 302 case FieldDescriptorProto_Type.TYPE_ENUM:
295 EnumGenerator enumType = context[field.typeName]; 303 EnumGenerator enumType = context[field.typeName];
296 if (enumType != null) { 304 if (enumType != null) {
297 typePackage = enumType.package; 305 typePackage = enumType.package;
298 baseType = enumType.classname; 306 baseType = enumType.classname;
299 typeString = write(enumType.classname); 307 typeString = write(enumType.classname);
300 codedStreamType = 'Enum'; 308 codedStreamType = 'Enum';
301 prefixedBaseType = enumType.packageImportPrefix + '.' + baseType; 309 if (enumType.packageImportPrefix.isNotEmpty) {
310 prefixedBaseType = enumType.packageImportPrefix + '.' + baseType;
311 } else {
312 prefixedBaseType = baseType;
313 }
302 prefixedTypeString = write(prefixedBaseType); 314 prefixedTypeString = write(prefixedBaseType);
303 packable = true; 315 packable = true;
304 if (!repeats) { 316 if (!repeats) {
305 if (field.hasDefaultValue() && !field.defaultValue.isEmpty) { 317 if (field.hasDefaultValue() && !field.defaultValue.isEmpty) {
306 initialization = 318 initialization =
307 '()${SP}=>${SP}${baseType}.${field.defaultValue}'; 319 '()${SP}=>${SP}${baseType}.${field.defaultValue}';
308 prefixedInitialization = 320 prefixedInitialization =
309 '()${SP}=>${SP}${prefixedBaseType}.${field.defaultValue}'; 321 '()${SP}=>${SP}${prefixedBaseType}.${field.defaultValue}';
310 } else if (!enumType._canonicalValues.isEmpty) { 322 } else if (!enumType._canonicalValues.isEmpty) {
311 initialization = 323 initialization =
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 return 2; // Length-delimited 397 return 2; // Length-delimited
386 case FieldDescriptorProto_Type.TYPE_GROUP: 398 case FieldDescriptorProto_Type.TYPE_GROUP:
387 return 3; // Start group 399 return 3; // Start group
388 case FieldDescriptorProto_Type.TYPE_FLOAT: 400 case FieldDescriptorProto_Type.TYPE_FLOAT:
389 case FieldDescriptorProto_Type.TYPE_FIXED32: 401 case FieldDescriptorProto_Type.TYPE_FIXED32:
390 case FieldDescriptorProto_Type.TYPE_SFIXED32: 402 case FieldDescriptorProto_Type.TYPE_SFIXED32:
391 return 5; // 32-bit 403 return 5; // 32-bit
392 } 404 }
393 } 405 }
394 } 406 }
OLDNEW
« no previous file with comments | « lib/file_generator.dart ('k') | pubspec.yaml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698