protected FieldSchema createScalarField()

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());
    }
  }