BaseType constructor
BaseType(
- FieldDescriptorProto field,
- FeatureSet features,
- GenerationContext ctx
Implementation
factory BaseType(
FieldDescriptorProto field,
FeatureSet features,
GenerationContext ctx,
) {
String constSuffix;
FieldDescriptorProto_Type type;
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:
case FieldDescriptorProto_Type.TYPE_MESSAGE:
if (features.messageEncoding == FeatureSet_MessageEncoding.DELIMITED) {
constSuffix = 'G';
type = FieldDescriptorProto_Type.TYPE_GROUP;
} else {
constSuffix = 'M';
type = FieldDescriptorProto_Type.TYPE_MESSAGE;
}
case FieldDescriptorProto_Type.TYPE_ENUM:
constSuffix = 'E';
type = FieldDescriptorProto_Type.TYPE_ENUM;
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(
type,
constSuffix,
generator.classname!,
null,
generator,
);
}