in foundations/foundation-protobuf/src/main/java/org/apache/servicecomb/foundation/protobuf/internal/schema/serializer/SerializerSchemaManager.java [120:159]
protected <T> FieldSchema<T> createScalarField(Field protoField, PropertyDescriptor propertyDescriptor) {
if (protoField.getType().isEnum()) {
return EnumWriteSchemas.create(protoField, propertyDescriptor);
}
switch ((ScalarFieldType) protoField.getType()) {
case INT32:
return Int32WriteSchemas.create(protoField, propertyDescriptor);
case UINT32:
return UInt32WriteSchemas.create(protoField, propertyDescriptor);
case SINT32:
return SInt32WriteSchemas.create(protoField, propertyDescriptor);
case FIXED32:
return Fixed32WriteSchemas.create(protoField, propertyDescriptor);
case SFIXED32:
return SFixed32WriteSchemas.create(protoField, propertyDescriptor);
case INT64:
return Int64WriteSchemas.create(protoField, propertyDescriptor);
case UINT64:
return UInt64WriteSchemas.create(protoField, propertyDescriptor);
case SINT64:
return SInt64WriteSchemas.create(protoField, propertyDescriptor);
case FIXED64:
return Fixed64WriteSchemas.create(protoField, propertyDescriptor);
case SFIXED64:
return SFixed64WriteSchemas.create(protoField, propertyDescriptor);
case FLOAT:
return FloatWriteSchemas.create(protoField, propertyDescriptor);
case DOUBLE:
return DoubleWriteSchemas.create(protoField, propertyDescriptor);
case BOOL:
return BoolWriteSchemas.create(protoField, propertyDescriptor);
case STRING:
return StringWriteSchemas.create(protoField, propertyDescriptor);
case BYTES:
return BytesWriteSchemas.create(protoField, propertyDescriptor);
default:
throw new IllegalStateException("unknown proto field type: " + protoField.getType());
}
}