public T readValue(ValueFields valueFields, boolean deserializeObjectValue) { byte[] serializedByteValue = readSerializedValueFromFields(valueFields); String serializedStringValue = getSerializedStringValue(serializedByteValue); if(deserializeObjectValue) { Object deserializedObject = null; if(serializedByteValue != null) { try { deserializedObject = deserializeFromByteArray(serializedByteValue, valueFields); } catch (Exception e) { throw new ProcessEngineException("Cannot deserialize object in variable '"+valueFields.getName()+"': "+e.getMessage(), e); } } T value = createDeserializedValue(deserializedObject, serializedStringValue, valueFields); return value; } else { return createSerializedValue(serializedStringValue, valueFields); } }
public void writeValue(T value, ValueFields valueFields) { String serializedStringValue = value.getValueSerialized(); byte[] serializedByteValue = null; if(value.isDeserialized()) { Object objectToSerialize = value.getValue(); if(objectToSerialize != null) { // serialize to byte array try { serializedByteValue = serializeToByteArray(objectToSerialize); serializedStringValue = getSerializedStringValue(serializedByteValue); } catch(Exception e) { throw new ProcessEngineException("Cannot serialize object in variable '"+valueFields.getName()+"': "+e.getMessage(), e); } } } else { if (serializedStringValue != null) { serializedByteValue = getSerializedBytesValue(serializedStringValue); } } // write value and type to fields. writeToValueFields(value, valueFields, serializedByteValue); // update the ObjectValue to keep it consistent with value fields. updateTypedValue(value, serializedStringValue); }
protected byte[] getSerializedBytesValue(String serializedStringValue) { if(serializedStringValue != null) { byte[] serializedByteValue = StringUtil.toByteArray(serializedStringValue); if (!isSerializationTextBased()) { serializedByteValue = Base64.decodeBase64(serializedByteValue); } return serializedByteValue; } else { return null; } }
protected boolean canWriteValue(TypedValue typedValue) { if (!(typedValue instanceof SerializableValue) && !(typedValue instanceof UntypedValueImpl)) { return false; } if (typedValue instanceof SerializableValue) { SerializableValue serializableValue = (SerializableValue) typedValue; String requestedDataFormat = serializableValue.getSerializationDataFormat(); if (!serializableValue.isDeserialized()) { // serialized object => dataformat must match return serializationDataFormat.equals(requestedDataFormat); } else { final boolean canSerialize = typedValue.getValue() == null || canSerializeValue(typedValue.getValue()); return canSerialize && (requestedDataFormat == null || serializationDataFormat.equals(requestedDataFormat)); } } else { return typedValue.getValue() == null || canSerializeValue(typedValue.getValue()); } }
protected boolean canWriteValue(TypedValue typedValue) { if (!(typedValue instanceof SerializableValue) && !(typedValue instanceof UntypedValueImpl)) { return false; } if (typedValue instanceof SerializableValue) { SerializableValue serializableValue = (SerializableValue) typedValue; String requestedDataFormat = serializableValue.getSerializationDataFormat(); if (!serializableValue.isDeserialized()) { // serialized object => dataformat must match return serializationDataFormat.equals(requestedDataFormat); } else { final boolean canSerialize = typedValue.getValue() == null || canSerializeValue(typedValue.getValue()); return canSerialize && (requestedDataFormat == null || serializationDataFormat.equals(requestedDataFormat)); } } else { return typedValue.getValue() == null || canSerializeValue(typedValue.getValue()); } }
public T readValue(ValueFields valueFields, boolean deserializeObjectValue) { byte[] serializedByteValue = readSerializedValueFromFields(valueFields); String serializedStringValue = getSerializedStringValue(serializedByteValue); if(deserializeObjectValue) { Object deserializedObject = null; if(serializedByteValue != null) { try { deserializedObject = deserializeFromByteArray(serializedByteValue, valueFields); } catch (Exception e) { throw new ProcessEngineException("Cannot deserialize object in variable '"+valueFields.getName()+"': "+e.getMessage(), e); } } T value = createDeserializedValue(deserializedObject, serializedStringValue, valueFields); return value; } else { return createSerializedValue(serializedStringValue, valueFields); } }
public void writeValue(T value, ValueFields valueFields) { String serializedStringValue = value.getValueSerialized(); byte[] serializedByteValue = null; if(value.isDeserialized()) { Object objectToSerialize = value.getValue(); if(objectToSerialize != null) { // serialize to byte array try { serializedByteValue = serializeToByteArray(objectToSerialize); serializedStringValue = getSerializedStringValue(serializedByteValue); } catch(Exception e) { throw new ProcessEngineException("Cannot serialize object in variable '"+valueFields.getName()+"': "+e.getMessage(), e); } } } else { if (serializedStringValue != null) { serializedByteValue = getSerializedBytesValue(serializedStringValue); } } // write value and type to fields. writeToValueFields(value, valueFields, serializedByteValue); // update the ObjectValue to keep it consistent with value fields. updateTypedValue(value, serializedStringValue); }
protected String getSerializedStringValue(byte[] serializedByteValue) { if(serializedByteValue != null) { if(!isSerializationTextBased()) { serializedByteValue = Base64.encodeBase64(serializedByteValue); } return StringUtil.fromBytes(serializedByteValue); } else { return null; } }
protected boolean canWriteValue(TypedValue typedValue) { if (!(typedValue instanceof SerializableValue) && !(typedValue instanceof UntypedValueImpl)) { return false; } if (typedValue instanceof SerializableValue) { SerializableValue serializableValue = (SerializableValue) typedValue; String requestedDataFormat = serializableValue.getSerializationDataFormat(); if (!serializableValue.isDeserialized()) { // serialized object => dataformat must match return serializationDataFormat.equals(requestedDataFormat); } else { final boolean canSerialize = typedValue.getValue() == null || canSerializeValue(typedValue.getValue()); return canSerialize && (requestedDataFormat == null || serializationDataFormat.equals(requestedDataFormat)); } } else { return typedValue.getValue() == null || canSerializeValue(typedValue.getValue()); } }
public T readValue(ValueFields valueFields, boolean deserializeObjectValue) { byte[] serializedByteValue = readSerializedValueFromFields(valueFields); String serializedStringValue = getSerializedStringValue(serializedByteValue); if(deserializeObjectValue) { Object deserializedObject = null; if(serializedByteValue != null) { try { deserializedObject = deserializeFromByteArray(serializedByteValue, valueFields); } catch (Exception e) { throw new ProcessEngineException("Cannot deserialize object in variable '"+valueFields.getName()+"': "+e.getMessage(), e); } } T value = createDeserializedValue(deserializedObject, serializedStringValue, valueFields); return value; } else { return createSerializedValue(serializedStringValue, valueFields); } }
public void writeValue(T value, ValueFields valueFields) { String serializedStringValue = value.getValueSerialized(); byte[] serializedByteValue = null; if(value.isDeserialized()) { Object objectToSerialize = value.getValue(); if(objectToSerialize != null) { // serialize to byte array try { serializedByteValue = serializeToByteArray(objectToSerialize); serializedStringValue = getSerializedStringValue(serializedByteValue); } catch(Exception e) { throw new ProcessEngineException("Cannot serialize object in variable '"+valueFields.getName()+"': "+e.getMessage(), e); } } } else { if (serializedStringValue != null) { serializedByteValue = getSerializedBytesValue(serializedStringValue); } } // write value and type to fields. writeToValueFields(value, valueFields, serializedByteValue); // update the ObjectValue to keep it consistent with value fields. updateTypedValue(value, serializedStringValue); }
protected String getSerializedStringValue(byte[] serializedByteValue) { if(serializedByteValue != null) { if(!isSerializationTextBased()) { serializedByteValue = Base64.encodeBase64(serializedByteValue); } return StringUtil.fromBytes(serializedByteValue); } else { return null; } }
protected byte[] getSerializedBytesValue(String serializedStringValue) { if(serializedStringValue != null) { byte[] serializedByteValue = StringUtil.toByteArray(serializedStringValue); if (!isSerializationTextBased()) { serializedByteValue = Base64.decodeBase64(serializedByteValue); } return serializedByteValue; } else { return null; } }
protected String getSerializedStringValue(byte[] serializedByteValue) { if(serializedByteValue != null) { if(!isSerializationTextBased()) { serializedByteValue = Base64.encodeBase64(serializedByteValue); } return StringUtil.fromBytes(serializedByteValue); } else { return null; } }
protected byte[] getSerializedBytesValue(String serializedStringValue) { if(serializedStringValue != null) { byte[] serializedByteValue = StringUtil.toByteArray(serializedStringValue); if (!isSerializationTextBased()) { serializedByteValue = Base64.decodeBase64(serializedByteValue); } return serializedByteValue; } else { return null; } }