Class AwsSchemaProvider

  • All Implemented Interfaces:
    java.io.Serializable, org.apache.beam.sdk.schemas.SchemaProvider

    public class AwsSchemaProvider
    extends org.apache.beam.sdk.schemas.GetterBasedSchemaProvider
    Schema provider for AWS SdkPojo models using the provided field metadata (@see SdkPojo.sdkFields()) rather than reflection.

    Note: Beam doesn't support self-referential schemas. Some AWS models are not compatible with schemas for that reason and require a dedicated coder, such as DynamoDB AttributeValue (coder).

    See Also:
    Serialized Form
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.util.List<org.apache.beam.sdk.schemas.FieldValueGetter> fieldValueGetters​(java.lang.Class<?> clazz, org.apache.beam.sdk.schemas.Schema schema)  
      java.util.List<org.apache.beam.sdk.schemas.FieldValueTypeInformation> fieldValueTypeInformations​(java.lang.Class<?> cls, org.apache.beam.sdk.schemas.Schema schema)  
      <T> org.apache.beam.sdk.transforms.SerializableFunction<org.apache.beam.sdk.values.Row,​T> fromRowFunction​(org.apache.beam.sdk.values.TypeDescriptor<T> type)  
      <T> @Nullable org.apache.beam.sdk.schemas.Schema schemaFor​(org.apache.beam.sdk.values.TypeDescriptor<T> type)  
      org.apache.beam.sdk.schemas.SchemaUserTypeCreator schemaTypeCreator​(java.lang.Class<?> cls, org.apache.beam.sdk.schemas.Schema schema)  
      • Methods inherited from class org.apache.beam.sdk.schemas.GetterBasedSchemaProvider

        equals, hashCode, toRowFunction
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • AwsSchemaProvider

        public AwsSchemaProvider()
    • Method Detail

      • schemaFor

        public <T> @Nullable org.apache.beam.sdk.schemas.Schema schemaFor​(org.apache.beam.sdk.values.TypeDescriptor<T> type)
      • fieldValueGetters

        public java.util.List<org.apache.beam.sdk.schemas.FieldValueGetter> fieldValueGetters​(java.lang.Class<?> clazz,
                                                                                              org.apache.beam.sdk.schemas.Schema schema)
        Specified by:
        fieldValueGetters in class org.apache.beam.sdk.schemas.GetterBasedSchemaProvider
      • fromRowFunction

        public <T> org.apache.beam.sdk.transforms.SerializableFunction<org.apache.beam.sdk.values.Row,​T> fromRowFunction​(org.apache.beam.sdk.values.TypeDescriptor<T> type)
        Specified by:
        fromRowFunction in interface org.apache.beam.sdk.schemas.SchemaProvider
        Overrides:
        fromRowFunction in class org.apache.beam.sdk.schemas.GetterBasedSchemaProvider
      • fieldValueTypeInformations

        public java.util.List<org.apache.beam.sdk.schemas.FieldValueTypeInformation> fieldValueTypeInformations​(java.lang.Class<?> cls,
                                                                                                                org.apache.beam.sdk.schemas.Schema schema)
        Specified by:
        fieldValueTypeInformations in class org.apache.beam.sdk.schemas.GetterBasedSchemaProvider
      • schemaTypeCreator

        public org.apache.beam.sdk.schemas.SchemaUserTypeCreator schemaTypeCreator​(java.lang.Class<?> cls,
                                                                                   org.apache.beam.sdk.schemas.Schema schema)
        Specified by:
        schemaTypeCreator in class org.apache.beam.sdk.schemas.GetterBasedSchemaProvider