BaseType constructor
BaseType(
- FieldDescriptorProto field,
- GenerationContext ctx
Implementation
factory BaseType(FieldDescriptorProto field, GenerationContext ctx) {
String constSuffix;
switch (field.type) {
case FieldDescriptorProto_Type.typeBool:
return const BaseType._raw(FieldDescriptorProto_Type.typeBool, 'B',
'$coreImportPrefix.bool', r'$_setBool', null);
case FieldDescriptorProto_Type.typeFloat:
return const BaseType._raw(FieldDescriptorProto_Type.typeFloat, 'F',
'$coreImportPrefix.double', r'$_setFloat', null);
case FieldDescriptorProto_Type.typeDouble:
return const BaseType._raw(FieldDescriptorProto_Type.typeDouble, 'D',
'$coreImportPrefix.double', r'$_setDouble', null);
case FieldDescriptorProto_Type.typeInt32:
return const BaseType._raw(FieldDescriptorProto_Type.typeInt32, '3',
'$coreImportPrefix.int', r'$_setSignedInt32', null);
case FieldDescriptorProto_Type.typeUint32:
return const BaseType._raw(FieldDescriptorProto_Type.typeUint32, 'U3',
'$coreImportPrefix.int', r'$_setUnsignedInt32', null);
case FieldDescriptorProto_Type.typeSint32:
return const BaseType._raw(FieldDescriptorProto_Type.typeSint32, 'S3',
'$coreImportPrefix.int', r'$_setSignedInt32', null);
case FieldDescriptorProto_Type.typeFixed32:
return const BaseType._raw(FieldDescriptorProto_Type.typeFixed32, 'F3',
'$coreImportPrefix.int', r'$_setUnsignedInt32', null);
case FieldDescriptorProto_Type.typeSfixed32:
return const BaseType._raw(FieldDescriptorProto_Type.typeSfixed32,
'SF3', '$coreImportPrefix.int', r'$_setSignedInt32', null);
case FieldDescriptorProto_Type.typeInt64:
return const BaseType._raw(FieldDescriptorProto_Type.typeInt64, '6',
'$_fixnumImportPrefix.Int64', r'$_setInt64', null);
case FieldDescriptorProto_Type.typeUint64:
return const BaseType._raw(FieldDescriptorProto_Type.typeUint64, 'U6',
'$_fixnumImportPrefix.Int64', r'$_setInt64', null);
case FieldDescriptorProto_Type.typeSint64:
return const BaseType._raw(FieldDescriptorProto_Type.typeSint64, 'S6',
'$_fixnumImportPrefix.Int64', r'$_setInt64', null);
case FieldDescriptorProto_Type.typeFixed64:
return const BaseType._raw(FieldDescriptorProto_Type.typeFixed64, 'F6',
'$_fixnumImportPrefix.Int64', r'$_setInt64', null);
case FieldDescriptorProto_Type.typeSfixed64:
return const BaseType._raw(FieldDescriptorProto_Type.typeSfixed64,
'SF6', '$_fixnumImportPrefix.Int64', r'$_setInt64', null);
case FieldDescriptorProto_Type.typeString:
return const BaseType._raw(FieldDescriptorProto_Type.typeString, 'S',
'$coreImportPrefix.String', r'$_setString', null);
case FieldDescriptorProto_Type.typeBytes:
return const BaseType._raw(
FieldDescriptorProto_Type.typeBytes,
'Y',
'$coreImportPrefix.List<$coreImportPrefix.int>',
r'$_setBytes',
null);
case FieldDescriptorProto_Type.typeGroup:
constSuffix = 'G';
break;
case FieldDescriptorProto_Type.typeMessage:
constSuffix = 'M';
break;
case FieldDescriptorProto_Type.typeEnum:
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);
}