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

Unified Diff: lib/extension_generator.dart

Issue 93743006: Use package names as import prefixes when generating code (Closed) Base URL: https://github.com/dart-lang/dart-protoc-plugin.git@master
Patch Set: Addressed review commetns Created 6 years, 12 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « lib/enum_generator.dart ('k') | lib/file_generator.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/extension_generator.dart
diff --git a/lib/extension_generator.dart b/lib/extension_generator.dart
index e78cd1f39daf0033482310f17cd81dc61cd968d8..c7b5266d2d4a916e3bdc4d0ef207d4f3f0f69152 100644
--- a/lib/extension_generator.dart
+++ b/lib/extension_generator.dart
@@ -21,6 +21,8 @@ class ExtensionGenerator implements ProtobufContainer {
'.${descriptor.name}' :
'${parent.fqname}.${descriptor.name}';
+ String get package => _parent.package;
+
String get classname {
String name = new ProtobufField(
_descriptor, _parent, _context).externalFieldName;
@@ -29,17 +31,11 @@ class ExtensionGenerator implements ProtobufContainer {
void generate(IndentingWriter out) {
ProtobufField field = new ProtobufField(_descriptor, _parent, _context);
- String baseType = field.baseType;
+ String baseType = field.baseTypeForPackage(package);
String name = field.externalFieldName;
String type = field.shortTypeName;
- String typeName = '';
- ProtobufContainer typeNameContainer = _context[_descriptor.typeName];
- if (typeNameContainer != null) {
- typeName = typeNameContainer.classname;
- }
-
String extendee = '';
ProtobufContainer extendeeContainer = _context[_descriptor.extendee];
if (extendeeContainer != null) {
@@ -55,17 +51,18 @@ class ExtensionGenerator implements ProtobufContainer {
_descriptor.type == FieldDescriptorProto_Type.TYPE_GROUP) {
if (_descriptor.label ==
FieldDescriptorProto_Label.LABEL_REPEATED) {
- initializer = ',${SP}()${SP}=>${SP}new PbList<${typeName}>()';
- builder = ',${SP}()${SP}=>${SP}new ${typeName}()';
+ initializer = ',${SP}()${SP}=>${SP}new PbList<${baseType}>()';
+ builder = ',${SP}()${SP}=>${SP}new ${baseType}()';
} else {
- initializer = ',${SP}()${SP}=>${SP}new ${typeName}()';
- builder = ',${SP}()${SP}=>${SP}new ${typeName}()';
+ initializer = ',${SP}()${SP}=>${SP}new ${baseType}()';
+ builder = ',${SP}()${SP}=>${SP}new ${baseType}()';
}
} else {
if (_descriptor.label == FieldDescriptorProto_Label.LABEL_REPEATED) {
initializer = ',${SP}()${SP}=>${SP}new PbList<${baseType}>()';
} else if (field.hasInitialization) {
- initializer = ',${SP}${field.initialization}';
+ var fieldInitialization = field.initializationForPackage(package);
+ initializer = ',${SP}${fieldInitialization}';
}
}
@@ -76,7 +73,8 @@ class ExtensionGenerator implements ProtobufContainer {
if (builder.isEmpty) {
builder = ',${SP}null';
}
- valueOf = ',${SP}(var v)${SP}=>${SP}${field.baseType}.valueOf(v)';
+ var fieldType = field.baseTypeForPackage(package);
+ valueOf = ',${SP}(var v)${SP}=>${SP}${fieldType}.valueOf(v)';
}
out.println('static final Extension $name${SP}=${SP}'
« no previous file with comments | « lib/enum_generator.dart ('k') | lib/file_generator.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698