Class AbstractObjectValueSerializer

java.lang.Object
org.camunda.bpm.engine.impl.variable.serializer.AbstractTypedValueSerializer<T>
org.camunda.bpm.engine.impl.variable.serializer.AbstractSerializableValueSerializer<org.camunda.bpm.engine.variable.value.ObjectValue>
org.camunda.bpm.engine.impl.variable.serializer.AbstractObjectValueSerializer
All Implemented Interfaces:
TypedValueSerializer<org.camunda.bpm.engine.variable.value.ObjectValue>
Direct Known Subclasses:
JavaObjectSerializer

public abstract class AbstractObjectValueSerializer extends AbstractSerializableValueSerializer<org.camunda.bpm.engine.variable.value.ObjectValue>
Abstract implementation of a TypedValueSerializer for ObjectValues.
Author:
Daniel Meyer
  • Constructor Details

    • AbstractObjectValueSerializer

      public AbstractObjectValueSerializer(String serializationDataFormat)
  • Method Details

    • convertToTypedValue

      public org.camunda.bpm.engine.variable.value.ObjectValue convertToTypedValue(org.camunda.bpm.engine.variable.impl.value.UntypedValueImpl untypedValue)
      Description copied from interface: TypedValueSerializer
      Returns a typed value for the provided untyped value. This is used on cases where the user sets an untyped value which is then detected to be handled by this TypedValueSerializer (by invocation of TypedValueSerializer.canHandle(TypedValue)).
      Parameters:
      untypedValue - the untyped value
      Returns:
      the corresponding typed value
    • writeToValueFields

      protected void writeToValueFields(org.camunda.bpm.engine.variable.value.ObjectValue value, ValueFields valueFields, byte[] serializedValue)
      Specified by:
      writeToValueFields in class AbstractSerializableValueSerializer<org.camunda.bpm.engine.variable.value.ObjectValue>
    • getObjectTypeName

      protected String getObjectTypeName(org.camunda.bpm.engine.variable.value.ObjectValue value, ValueFields valueFields)
    • updateTypedValue

      protected void updateTypedValue(org.camunda.bpm.engine.variable.value.ObjectValue value, String serializedStringValue)
      Specified by:
      updateTypedValue in class AbstractSerializableValueSerializer<org.camunda.bpm.engine.variable.value.ObjectValue>
    • createDeserializedValue

      protected org.camunda.bpm.engine.variable.value.ObjectValue createDeserializedValue(Object deserializedObject, String serializedStringValue, ValueFields valueFields, boolean asTransientValue)
      Specified by:
      createDeserializedValue in class AbstractSerializableValueSerializer<org.camunda.bpm.engine.variable.value.ObjectValue>
    • createSerializedValue

      protected org.camunda.bpm.engine.variable.value.ObjectValue createSerializedValue(String serializedStringValue, ValueFields valueFields, boolean asTransientValue)
      Specified by:
      createSerializedValue in class AbstractSerializableValueSerializer<org.camunda.bpm.engine.variable.value.ObjectValue>
    • readObjectNameFromFields

      protected String readObjectNameFromFields(ValueFields valueFields)
    • isMutableValue

      public boolean isMutableValue(org.camunda.bpm.engine.variable.value.ObjectValue typedValue)
      Specified by:
      isMutableValue in interface TypedValueSerializer<org.camunda.bpm.engine.variable.value.ObjectValue>
      Overrides:
      isMutableValue in class AbstractTypedValueSerializer<org.camunda.bpm.engine.variable.value.ObjectValue>
      Returns:
      whether values serialized by this serializer can be mutable and should be re-serialized if changed
    • getTypeNameForDeserialized

      protected abstract String getTypeNameForDeserialized(Object deserializedObject)
      Returns the type name for the deserialized object.
      Parameters:
      deserializedObject - . Guaranteed not to be null
      Returns:
      the type name fot the object.
    • serializeToByteArray

      protected abstract byte[] serializeToByteArray(Object deserializedObject) throws Exception
      Implementations must return a byte[] representation of the provided object. The object is guaranteed not to be null.
      Specified by:
      serializeToByteArray in class AbstractSerializableValueSerializer<org.camunda.bpm.engine.variable.value.ObjectValue>
      Parameters:
      deserializedObject - the object to serialize
      Returns:
      the byte array value of the object
      Throws:
      exception - in case the object cannot be serialized
      Exception
    • deserializeFromByteArray

      protected Object deserializeFromByteArray(byte[] object, ValueFields valueFields) throws Exception
      Description copied from class: AbstractSerializableValueSerializer
      Deserialize the object from a byte array.
      Specified by:
      deserializeFromByteArray in class AbstractSerializableValueSerializer<org.camunda.bpm.engine.variable.value.ObjectValue>
      Parameters:
      object - the object to deserialize
      valueFields - the value fields
      Returns:
      the deserialized object
      Throws:
      Exception
    • deserializeFromByteArray

      protected abstract Object deserializeFromByteArray(byte[] object, String objectTypeName) throws Exception
      Deserialize the object from a byte array.
      Parameters:
      object - the object to deserialize
      objectTypeName - the type name of the object to deserialize
      Returns:
      the deserialized object
      Throws:
      exception - in case the object cannot be deserialized
      Exception
    • isSerializationTextBased

      protected abstract boolean isSerializationTextBased()
      Return true if the serialization is text based. Return false otherwise
      Specified by:
      isSerializationTextBased in class AbstractSerializableValueSerializer<org.camunda.bpm.engine.variable.value.ObjectValue>