org.camunda.bpm.engine.impl.variable.serializer
Class AbstractObjectValueSerializer

java.lang.Object
  extended by org.camunda.bpm.engine.impl.variable.serializer.AbstractTypedValueSerializer<T>
      extended by org.camunda.bpm.engine.impl.variable.serializer.AbstractSerializableValueSerializer<org.camunda.bpm.engine.variable.value.ObjectValue>
          extended by 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

Field Summary
 
Fields inherited from class org.camunda.bpm.engine.impl.variable.serializer.AbstractSerializableValueSerializer
serializationDataFormat
 
Fields inherited from class org.camunda.bpm.engine.impl.variable.serializer.AbstractTypedValueSerializer
BINARY_VALUE_TYPES, valueType
 
Constructor Summary
AbstractObjectValueSerializer(String serializationDataFormat)
           
 
Method Summary
 org.camunda.bpm.engine.variable.value.ObjectValue convertToTypedValue(org.camunda.bpm.engine.variable.impl.value.UntypedValueImpl untypedValue)
          Returns a typed value for the provided untyped value.
protected  org.camunda.bpm.engine.variable.value.ObjectValue createDeserializedValue(Object deserializedObject, String serializedStringValue, ValueFields valueFields)
           
protected  org.camunda.bpm.engine.variable.value.ObjectValue createSerializedValue(String serializedStringValue, ValueFields valueFields)
           
protected abstract  Object deserializeFromByteArray(byte[] object, String objectTypeName)
          Deserialize the object from a byte array.
protected  Object deserializeFromByteArray(byte[] object, ValueFields valueFields)
          Deserialize the object from a byte array.
protected  String getObjectTypeName(org.camunda.bpm.engine.variable.value.ObjectValue value, ValueFields valueFields)
           
protected abstract  String getTypeNameForDeserialized(Object deserializedObject)
          Returns the type name for the deserialized object.
 boolean isMutableValue(org.camunda.bpm.engine.variable.value.ObjectValue typedValue)
           
protected abstract  boolean isSerializationTextBased()
          Return true if the serialization is text based.
protected  String readObjectNameFromFields(ValueFields valueFields)
           
protected abstract  byte[] serializeToByteArray(Object deserializedObject)
          Implementations must return a byte[] representation of the provided object.
protected  void updateTypedValue(org.camunda.bpm.engine.variable.value.ObjectValue value, String serializedStringValue)
           
protected  void writeToValueFields(org.camunda.bpm.engine.variable.value.ObjectValue value, ValueFields valueFields, byte[] serializedValue)
           
 
Methods inherited from class org.camunda.bpm.engine.impl.variable.serializer.AbstractSerializableValueSerializer
canSerializeValue, canWriteValue, getSerializationDataformat, getSerializedBytesValue, getSerializedStringValue, readSerializedValueFromFields, readValue, writeValue
 
Methods inherited from class org.camunda.bpm.engine.impl.variable.serializer.AbstractTypedValueSerializer
canHandle, getType
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.camunda.bpm.engine.impl.variable.serializer.TypedValueSerializer
getName
 

Constructor Detail

AbstractObjectValueSerializer

public AbstractObjectValueSerializer(String serializationDataFormat)
Method Detail

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)
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)
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>


Copyright © 2015 camunda services GmbH. All rights reserved.