Class TDeserializer

java.lang.Object
org.apache.thrift.TDeserializer

public class TDeserializer extends Object
Generic utility for easily deserializing objects from a byte array or Java String.
  • Constructor Details

    • TDeserializer

      public TDeserializer() throws TTransportException
      Create a new TDeserializer that uses the TBinaryProtocol by default.
      Throws:
      TTransportException - if there an error initializing the underlying transport.
    • TDeserializer

      public TDeserializer(TProtocolFactory protocolFactory) throws TTransportException
      Create a new TDeserializer. It will use the TProtocol specified by the factory that is passed in.
      Parameters:
      protocolFactory - Factory to create a protocol
      Throws:
      TTransportException - if there an error initializing the underlying transport.
    • TDeserializer

      public TDeserializer(Class<? extends TBase> thriftClass, Collection<String> fieldNames, ThriftFieldValueProcessor processor, TProtocolFactory protocolFactory) throws TTransportException
      Construct a new TDeserializer that supports partial deserialization that outputs instances of type controlled by the given processor.
      Parameters:
      thriftClass - a TBase derived class.
      fieldNames - list of fields to deserialize.
      processor - the Processor that handles deserialized field values.
      protocolFactory - the Factory to create a protocol.
      Throws:
      TTransportException
    • TDeserializer

      public TDeserializer(Class<? extends TBase> thriftClass, Collection<String> fieldNames, TProtocolFactory protocolFactory) throws TTransportException
      Construct a new TDeserializer that supports partial deserialization that outputs TBase instances.
      Parameters:
      thriftClass - a TBase derived class.
      fieldNames - list of fields to deserialize.
      protocolFactory - the Factory to create a protocol.
      Throws:
      TTransportException
  • Method Details

    • getMetadata

      public ThriftMetadata.ThriftStruct getMetadata()
      Gets the metadata used for partial deserialization.
      Returns:
      the metadata used for partial deserialization.
    • deserialize

      public void deserialize(TBase base, byte[] bytes) throws TException
      Deserialize the Thrift object from a byte array.
      Parameters:
      base - The object to read into
      bytes - The array to read from
      Throws:
      TException - if an error is encountered during deserialization.
    • deserialize

      public void deserialize(TBase base, byte[] bytes, int offset, int length) throws TException
      Deserialize the Thrift object from a byte array.
      Parameters:
      base - The object to read into
      bytes - The array to read from
      offset - The offset into bytes
      length - The length to read from bytes
      Throws:
      TException - if an error is encountered during deserialization.
    • deserialize

      public void deserialize(TBase base, String data, String charset) throws TException
      Deserialize the Thrift object from a Java string, using a specified character set for decoding.
      Parameters:
      base - The object to read into
      data - The string to read from
      charset - Valid JVM charset
      Throws:
      TException - if an error is encountered during deserialization.
    • partialDeserialize

      public void partialDeserialize(TBase tb, byte[] bytes, TFieldIdEnum fieldIdPathFirst, TFieldIdEnum... fieldIdPathRest) throws TException
      Deserialize only a single Thrift object (addressed by recursively using field id) from a byte record.
      Parameters:
      tb - The object to read into
      bytes - The serialized object to read from
      fieldIdPathFirst - First of the FieldId's that define a path tb
      fieldIdPathRest - The rest FieldId's that define a path tb
      Throws:
      TException - if an error is encountered during deserialization.
    • partialDeserializeBool

      public Boolean partialDeserializeBool(byte[] bytes, TFieldIdEnum fieldIdPathFirst, TFieldIdEnum... fieldIdPathRest) throws TException
      Deserialize only a boolean field (addressed by recursively using field id) from a byte record.
      Parameters:
      bytes - The serialized object to read from
      fieldIdPathFirst - First of the FieldId's that define a path to a boolean field
      fieldIdPathRest - The rest FieldId's that define a path to a boolean field
      Returns:
      the deserialized value.
      Throws:
      TException - if an error is encountered during deserialization.
    • partialDeserializeByte

      public Byte partialDeserializeByte(byte[] bytes, TFieldIdEnum fieldIdPathFirst, TFieldIdEnum... fieldIdPathRest) throws TException
      Deserialize only a byte field (addressed by recursively using field id) from a byte record.
      Parameters:
      bytes - The serialized object to read from
      fieldIdPathFirst - First of the FieldId's that define a path to a byte field
      fieldIdPathRest - The rest FieldId's that define a path to a byte field
      Returns:
      the deserialized value.
      Throws:
      TException - if an error is encountered during deserialization.
    • partialDeserializeDouble

      public Double partialDeserializeDouble(byte[] bytes, TFieldIdEnum fieldIdPathFirst, TFieldIdEnum... fieldIdPathRest) throws TException
      Deserialize only a double field (addressed by recursively using field id) from a byte record.
      Parameters:
      bytes - The serialized object to read from
      fieldIdPathFirst - First of the FieldId's that define a path to a double field
      fieldIdPathRest - The rest FieldId's that define a path to a double field
      Returns:
      the deserialized value.
      Throws:
      TException - if an error is encountered during deserialization.
    • partialDeserializeI16

      public Short partialDeserializeI16(byte[] bytes, TFieldIdEnum fieldIdPathFirst, TFieldIdEnum... fieldIdPathRest) throws TException
      Deserialize only an i16 field (addressed by recursively using field id) from a byte record.
      Parameters:
      bytes - The serialized object to read from
      fieldIdPathFirst - First of the FieldId's that define a path to an i16 field
      fieldIdPathRest - The rest FieldId's that define a path to an i16 field
      Returns:
      the deserialized value.
      Throws:
      TException - if an error is encountered during deserialization.
    • partialDeserializeI32

      public Integer partialDeserializeI32(byte[] bytes, TFieldIdEnum fieldIdPathFirst, TFieldIdEnum... fieldIdPathRest) throws TException
      Deserialize only an i32 field (addressed by recursively using field id) from a byte record.
      Parameters:
      bytes - The serialized object to read from
      fieldIdPathFirst - First of the FieldId's that define a path to an i32 field
      fieldIdPathRest - The rest FieldId's that define a path to an i32 field
      Returns:
      the deserialized value.
      Throws:
      TException - if an error is encountered during deserialization.
    • partialDeserializeI64

      public Long partialDeserializeI64(byte[] bytes, TFieldIdEnum fieldIdPathFirst, TFieldIdEnum... fieldIdPathRest) throws TException
      Deserialize only an i64 field (addressed by recursively using field id) from a byte record.
      Parameters:
      bytes - The serialized object to read from
      fieldIdPathFirst - First of the FieldId's that define a path to an i64 field
      fieldIdPathRest - The rest FieldId's that define a path to an i64 field
      Returns:
      the deserialized value.
      Throws:
      TException - if an error is encountered during deserialization.
    • partialDeserializeString

      public String partialDeserializeString(byte[] bytes, TFieldIdEnum fieldIdPathFirst, TFieldIdEnum... fieldIdPathRest) throws TException
      Deserialize only a string field (addressed by recursively using field id) from a byte record.
      Parameters:
      bytes - The serialized object to read from
      fieldIdPathFirst - First of the FieldId's that define a path to a string field
      fieldIdPathRest - The rest FieldId's that define a path to a string field
      Returns:
      the deserialized value.
      Throws:
      TException - if an error is encountered during deserialization.
    • partialDeserializeByteArray

      public ByteBuffer partialDeserializeByteArray(byte[] bytes, TFieldIdEnum fieldIdPathFirst, TFieldIdEnum... fieldIdPathRest) throws TException
      Deserialize only a binary field (addressed by recursively using field id) from a byte record.
      Parameters:
      bytes - The serialized object to read from
      fieldIdPathFirst - First of the FieldId's that define a path to a binary field
      fieldIdPathRest - The rest FieldId's that define a path to a binary field
      Returns:
      the deserialized value.
      Throws:
      TException - if an error is encountered during deserialization.
    • partialDeserializeSetFieldIdInUnion

      public Short partialDeserializeSetFieldIdInUnion(byte[] bytes, TFieldIdEnum fieldIdPathFirst, TFieldIdEnum... fieldIdPathRest) throws TException
      Deserialize only the id of the field set in a TUnion (addressed by recursively using field id) from a byte record.
      Parameters:
      bytes - The serialized object to read from
      fieldIdPathFirst - First of the FieldId's that define a path to a TUnion
      fieldIdPathRest - The rest FieldId's that define a path to a TUnion
      Returns:
      the deserialized value.
      Throws:
      TException - if an error is encountered during deserialization.
    • fromString

      public void fromString(TBase base, String data) throws TException
      Deserialize the Thrift object from a Java string, using the default JVM charset encoding.
      Parameters:
      base - The object to read into
      data - The string to read from
      Throws:
      TException - if an error is encountered during deserialization.
    • partialDeserializeObject

      public Object partialDeserializeObject(byte[] bytes) throws TException
      Partially deserializes the given serialized blob.
      Parameters:
      bytes - the serialized blob.
      Returns:
      deserialized instance.
      Throws:
      TException - if an error is encountered during deserialization.
    • partialDeserializeThriftObject

      public Object partialDeserializeThriftObject(TBase base, byte[] bytes, int offset, int length) throws TException
      Partially deserializes the given serialized blob into the given TBase instance.
      Parameters:
      base - the instance into which the given blob is deserialized.
      bytes - the serialized blob.
      offset - the blob is read starting at this offset.
      length - the size of blob read (in number of bytes).
      Returns:
      deserialized instance.
      Throws:
      TException - if an error is encountered during deserialization.
    • partialDeserializeObject

      public Object partialDeserializeObject(byte[] bytes, int offset, int length) throws TException
      Partially deserializes the given serialized blob.
      Parameters:
      bytes - the serialized blob.
      offset - the blob is read starting at this offset.
      length - the size of blob read (in number of bytes).
      Returns:
      deserialized instance.
      Throws:
      TException - if an error is encountered during deserialization.