protected FieldSchema createScalarField()

in foundations/foundation-protobuf/src/main/java/org/apache/servicecomb/foundation/protobuf/internal/schema/deserializer/DeserializerSchemaManager.java [143:182]


  protected <T> FieldSchema<T> createScalarField(Field protoField, PropertyDescriptor propertyDescriptor) {
    if (protoField.getType().isEnum()) {
      return EnumsReadSchemas.create(protoField, propertyDescriptor);
    }

    switch ((ScalarFieldType) protoField.getType()) {
      case INT32:
        return Int32ReadSchemas.create(protoField, propertyDescriptor);
      case UINT32:
        return UInt32ReadSchemas.create(protoField, propertyDescriptor);
      case SINT32:
        return SInt32ReadSchemas.create(protoField, propertyDescriptor);
      case FIXED32:
        return Fixed32ReadSchemas.create(protoField, propertyDescriptor);
      case SFIXED32:
        return SFixed32ReadSchemas.create(protoField, propertyDescriptor);
      case INT64:
        return Int64ReadSchemas.create(protoField, propertyDescriptor);
      case UINT64:
        return UInt64ReadSchemas.create(protoField, propertyDescriptor);
      case SINT64:
        return SInt64ReadSchemas.create(protoField, propertyDescriptor);
      case FIXED64:
        return Fixed64ReadSchemas.create(protoField, propertyDescriptor);
      case SFIXED64:
        return SFixed64ReadSchemas.create(protoField, propertyDescriptor);
      case FLOAT:
        return FloatReadSchemas.create(protoField, propertyDescriptor);
      case DOUBLE:
        return DoubleReadSchemas.create(protoField, propertyDescriptor);
      case BOOL:
        return BoolReadSchemas.create(protoField, propertyDescriptor);
      case STRING:
        return StringReadSchemas.create(protoField, propertyDescriptor);
      case BYTES:
        return BytesReadSchemas.create(protoField, propertyDescriptor);
      default:
        throw new IllegalStateException("unknown proto field type: " + protoField.getType());
    }
  }