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}' |