private Feature convertField()

in scio-parquet/src/main/java/com/spotify/parquet/tensorflow/TensorflowExampleSchemaConverter.java [133:203]


  private Feature convertField(final Type parquetType) {
    if (!parquetType.isPrimitive()) {
      throw new UnsupportedOperationException("Only primitive fields are supported");
    } else {
      final String featureName = parquetType.getName();
      final PrimitiveType asPrimitive = parquetType.asPrimitiveType();
      final PrimitiveType.PrimitiveTypeName parquetPrimitiveTypeName =
          asPrimitive.getPrimitiveTypeName();
      final Feature feature =
          parquetPrimitiveTypeName.convert(
              new PrimitiveType.PrimitiveTypeNameConverter<Feature, RuntimeException>() {
                @Override
                public Feature convertINT64(PrimitiveType.PrimitiveTypeName primitiveTypeName) {
                  return Feature.newBuilder().setName(featureName).setType(FeatureType.INT).build();
                }

                @Override
                public Feature convertINT96(PrimitiveType.PrimitiveTypeName primitiveTypeName)
                    throws RuntimeException {
                  throw new UnsupportedOperationException(
                      "Unsupported primitive type: " + primitiveTypeName);
                }

                @Override
                public Feature convertFIXED_LEN_BYTE_ARRAY(
                    PrimitiveType.PrimitiveTypeName primitiveTypeName) throws RuntimeException {
                  throw new UnsupportedOperationException(
                      "Unsupported primitive type: " + primitiveTypeName);
                }

                @Override
                public Feature convertBOOLEAN(PrimitiveType.PrimitiveTypeName primitiveTypeName)
                    throws UnsupportedOperationException {
                  throw new UnsupportedOperationException(
                      "Unsupported primitive type: " + primitiveTypeName);
                }

                @Override
                public Feature convertFLOAT(PrimitiveType.PrimitiveTypeName primitiveTypeName) {
                  return Feature.newBuilder()
                      .setName(featureName)
                      .setType(FeatureType.FLOAT)
                      .build();
                }

                @Override
                public Feature convertDOUBLE(PrimitiveType.PrimitiveTypeName primitiveTypeName)
                    throws RuntimeException {
                  throw new UnsupportedOperationException(
                      "Unsupported primitive type: " + primitiveTypeName);
                }

                @Override
                public Feature convertINT32(PrimitiveType.PrimitiveTypeName primitiveTypeName)
                    throws RuntimeException {
                  throw new UnsupportedOperationException(
                      "Unsupported primitive type: " + primitiveTypeName);
                }

                @Override
                public Feature convertBINARY(PrimitiveType.PrimitiveTypeName primitiveTypeName) {
                  return Feature.newBuilder()
                      .setName(featureName)
                      .setType(FeatureType.BYTES)
                      .build();
                }
              });
      final ValueCount valueCount = convertRepetition(asPrimitive.getRepetition());
      return valueCount == null ? feature : feature.toBuilder().setValueCount(valueCount).build();
    }
  }