BaseType constructor
BaseType(
- FieldDescriptorProto field,
- GenerationContext ctx
Implementation
factory BaseType(FieldDescriptorProto field, GenerationContext ctx) {
String constSuffix;
switch (field.type) {
case FieldDescriptorProto_Type.TYPE_BOOL:
return const BaseType._raw(FieldDescriptorProto_Type.TYPE_BOOL, 'B',
'$coreImportPrefix.bool', r'$_setBool', null);
case FieldDescriptorProto_Type.TYPE_FLOAT:
return const BaseType._raw(FieldDescriptorProto_Type.TYPE_FLOAT, 'F',
'$coreImportPrefix.double', r'$_setFloat', null);
case FieldDescriptorProto_Type.TYPE_DOUBLE:
return const BaseType._raw(FieldDescriptorProto_Type.TYPE_DOUBLE, 'D',
'$coreImportPrefix.double', r'$_setDouble', null);
case FieldDescriptorProto_Type.TYPE_INT32:
return const BaseType._raw(FieldDescriptorProto_Type.TYPE_INT32, '3',
'$coreImportPrefix.int', r'$_setSignedInt32', null);
case FieldDescriptorProto_Type.TYPE_UINT32:
return const BaseType._raw(FieldDescriptorProto_Type.TYPE_UINT32, 'U3',
'$coreImportPrefix.int', r'$_setUnsignedInt32', null);
case FieldDescriptorProto_Type.TYPE_SINT32:
return const BaseType._raw(FieldDescriptorProto_Type.TYPE_SINT32, 'S3',
'$coreImportPrefix.int', r'$_setSignedInt32', null);
case FieldDescriptorProto_Type.TYPE_FIXED32:
return const BaseType._raw(FieldDescriptorProto_Type.TYPE_FIXED32, 'F3',
'$coreImportPrefix.int', r'$_setUnsignedInt32', null);
case FieldDescriptorProto_Type.TYPE_SFIXED32:
return const BaseType._raw(FieldDescriptorProto_Type.TYPE_SFIXED32,
'SF3', '$coreImportPrefix.int', r'$_setSignedInt32', null);
case FieldDescriptorProto_Type.TYPE_INT64:
return const BaseType._raw(FieldDescriptorProto_Type.TYPE_INT64, '6',
'$_fixnumImportPrefix.Int64', r'$_setInt64', null);
case FieldDescriptorProto_Type.TYPE_UINT64:
return const BaseType._raw(FieldDescriptorProto_Type.TYPE_UINT64, 'U6',
'$_fixnumImportPrefix.Int64', r'$_setInt64', null);
case FieldDescriptorProto_Type.TYPE_SINT64:
return const BaseType._raw(FieldDescriptorProto_Type.TYPE_SINT64, 'S6',
'$_fixnumImportPrefix.Int64', r'$_setInt64', null);
case FieldDescriptorProto_Type.TYPE_FIXED64:
return const BaseType._raw(FieldDescriptorProto_Type.TYPE_FIXED64, 'F6',
'$_fixnumImportPrefix.Int64', r'$_setInt64', null);
case FieldDescriptorProto_Type.TYPE_SFIXED64:
return const BaseType._raw(FieldDescriptorProto_Type.TYPE_SFIXED64,
'SF6', '$_fixnumImportPrefix.Int64', r'$_setInt64', null);
case FieldDescriptorProto_Type.TYPE_STRING:
return const BaseType._raw(FieldDescriptorProto_Type.TYPE_STRING, 'S',
'$coreImportPrefix.String', r'$_setString', null);
case FieldDescriptorProto_Type.TYPE_BYTES:
return const BaseType._raw(
FieldDescriptorProto_Type.TYPE_BYTES,
'Y',
'$coreImportPrefix.List<$coreImportPrefix.int>',
r'$_setBytes',
null);
case FieldDescriptorProto_Type.TYPE_GROUP:
constSuffix = 'G';
break;
case FieldDescriptorProto_Type.TYPE_MESSAGE:
constSuffix = 'M';
break;
case FieldDescriptorProto_Type.TYPE_ENUM:
constSuffix = 'E';
break;
default:
throw ArgumentError('unimplemented type: ${field.type.name}');
}
final generator = ctx.getFieldType(field.typeName);
if (generator == null) {
throw 'FAILURE: Unknown type reference ${field.typeName}';
}
return BaseType._raw(
field.type, constSuffix, generator.classname!, null, generator);
}