Class BaseBinaryEncoderBuilder

java.lang.Object
io.fury.builder.CodecBuilder
io.fury.format.encoder.BaseBinaryEncoderBuilder
Direct Known Subclasses:
ArrayEncoderBuilder, MapEncoderBuilder, RowEncoderBuilder

public abstract class BaseBinaryEncoderBuilder extends CodecBuilder
Base encoder builder for Row, ArrayData and MapData.
Author:
chaokunyang
  • Field Details

    • REFERENCES_NAME

      protected static final String REFERENCES_NAME
      See Also:
    • SCHEMA_TYPE

      protected static final com.google.common.reflect.TypeToken<org.apache.arrow.vector.types.pojo.Schema> SCHEMA_TYPE
    • ARROW_FIELD_TYPE

      protected static final com.google.common.reflect.TypeToken<org.apache.arrow.vector.types.pojo.Field> ARROW_FIELD_TYPE
    • schemaTypeToken

      protected static com.google.common.reflect.TypeToken<org.apache.arrow.vector.types.pojo.Schema> schemaTypeToken
    • writerTypeToken

      protected static com.google.common.reflect.TypeToken<BinaryWriter> writerTypeToken
    • rowWriterTypeToken

      protected static com.google.common.reflect.TypeToken<BinaryRowWriter> rowWriterTypeToken
    • arrayWriterTypeToken

      protected static com.google.common.reflect.TypeToken<BinaryArrayWriter> arrayWriterTypeToken
    • rowTypeToken

      protected static com.google.common.reflect.TypeToken<Row> rowTypeToken
    • binaryRowTypeToken

      protected static com.google.common.reflect.TypeToken<BinaryRow> binaryRowTypeToken
    • binaryArrayTypeToken

      protected static com.google.common.reflect.TypeToken<BinaryArray> binaryArrayTypeToken
    • arrayWriterMap

      protected final Map<com.google.common.reflect.TypeToken<?>,Expression.Reference> arrayWriterMap
    • beanEncoderMap

      protected final Map<com.google.common.reflect.TypeToken<?>,Expression.Reference> beanEncoderMap
    • rowWriterMap

      protected final Map<com.google.common.reflect.TypeToken<?>,Expression.Reference> rowWriterMap
  • Constructor Details

    • BaseBinaryEncoderBuilder

      public BaseBinaryEncoderBuilder(CodegenContext context, Class<?> beanClass)
    • BaseBinaryEncoderBuilder

      public BaseBinaryEncoderBuilder(CodegenContext context, com.google.common.reflect.TypeToken<?> beanType)
  • Method Details

    • codecClassName

      public String codecClassName(Class<?> beanClass)
    • codecClassName

      public String codecClassName(Class<?> beanClass, String prefix)
    • codecSuffix

      protected String codecSuffix()
    • codecQualifiedClassName

      public String codecQualifiedClassName(Class<?> beanClass)
    • codecQualifiedClassName

      public String codecQualifiedClassName(Class<?> beanClass, String prefix)
    • serializeFor

      protected Expression serializeFor(Expression ordinal, Expression inputObject, Expression writer, com.google.common.reflect.TypeToken<?> typeToken, Expression arrowField)
      Return an expression for serializing an object of given type to row format representation. The inputObject will be written to position ordinal of row/array using given writer
    • serializeForArray

      protected Expression serializeForArray(Expression inputObject, Expression writer, com.google.common.reflect.TypeToken<?> typeToken, Expression arrowField)
      Returns an expression to write iterable inputObject of type typeToken as BinaryArray using given writer.
    • serializeForArray

      protected Expression serializeForArray(Expression inputObject, Expression writer, com.google.common.reflect.TypeToken<?> typeToken, Expression arrowField, boolean reuse)
    • getOrCreateArrayWriter

      protected Expression.Reference getOrCreateArrayWriter(com.google.common.reflect.TypeToken<?> typeToken, Expression arrayDataType, Expression writer)
      Get or create an ArrayWriter for given type and use writer as parent writer.
    • getOrCreateArrayWriter

      protected Expression.Reference getOrCreateArrayWriter(com.google.common.reflect.TypeToken<?> typeToken, Expression arrayDataType, Expression writer, boolean reuse)
    • serializeForMap

      protected Expression serializeForMap(Expression ordinal, Expression writer, Expression inputObject, com.google.common.reflect.TypeToken<?> typeToken, Expression arrowField)
      Returns an expression to write map inputObject to position ordinal of row/array using given writer.
    • serializeForBean

      protected Expression serializeForBean(Expression ordinal, Expression writer, Expression inputObject, com.google.common.reflect.TypeToken<?> typeToken, Expression structField)
      Returns an expression to write bean inputObject to position ordinal of row/array using given writer.
    • serializeForObject

      protected Expression serializeForObject(Expression ordinal, Expression writer, Expression inputObject)
      Return an expression to serialize opaque inputObject as binary using fury . When deserialization, using fury to deserialize sliced MemoryBuffer. See BinaryUtils.getElemAccessMethodName(TypeToken), Getters.getBuffer(int)
    • setValueOrNull

      protected Expression setValueOrNull(Expression writer, Expression ordinal, Expression inputObject, Expression value)
    • deserializeFor

      protected Expression deserializeFor(Expression value, com.google.common.reflect.TypeToken<?> typeToken)
      Returns an expression that deserialize value as a java object of type typeToken.
    • deserializeForBean

      protected Expression deserializeForBean(Expression row, com.google.common.reflect.TypeToken<?> typeToken)
      Returns an expression that deserialize row as a java bean of type typeToken .
    • deserializeForMap

      protected Expression deserializeForMap(Expression mapData, com.google.common.reflect.TypeToken<?> typeToken)
      Returns an expression that deserialize mapData as a java map.
    • deserializeForCollection

      protected Expression deserializeForCollection(Expression arrayData, com.google.common.reflect.TypeToken<?> typeToken)
      Returns an expression that deserialize arrayData as a java collection.
    • newCollection

      protected Expression newCollection(com.google.common.reflect.TypeToken<?> typeToken)
      Create a java collection. Create a ArrayList if typeToken is super class of ArrayList; Create a HashSet if typeToken is super class of HashSet; Create an instance of typeToken otherwise.
    • newMap

      protected Expression newMap(com.google.common.reflect.TypeToken<?> typeToken)
      Create a java map. Create a HashMap if typeToken is super class of HashMap; Create an instance of typeToken otherwise.
    • deserializeForMultiDimensionArray

      protected Expression deserializeForMultiDimensionArray(Expression arrayData, Expression rootJavaArray, int numDimensions, com.google.common.reflect.TypeToken<?> typeToken, Expression[] indexes)
      Returns an expression to deserialize multi-array from arrayData, and set value to rootJavaArray.
    • deserializeForArray

      protected Expression deserializeForArray(Expression arrayData, com.google.common.reflect.TypeToken<?> typeToken)
    • deserializeForObject

      protected Expression deserializeForObject(Expression value, com.google.common.reflect.TypeToken<?> typeToken)
      Using fury to deserialize sliced MemoryBuffer. see BinaryUtils.getElemAccessMethodName(TypeToken), Getters.getBuffer(int)