protected void writeToValueFields(ObjectValue value, ValueFields valueFields, byte[] serializedValue) { String objectTypeName = getObjectTypeName(value, valueFields); valueFields.setByteArrayValue(serializedValue); valueFields.setTextValue2(objectTypeName); }
protected Object deserializeFromByteArray(byte[] object, ValueFields valueFields) throws Exception { String objectTypeName = readObjectNameFromFields(valueFields); return deserializeFromByteArray(object, objectTypeName); }
protected String readObjectNameFromFields(ValueFields valueFields) { return valueFields.getTextValue2(); }
public VariableSerializers join(VariableSerializers other) { DefaultVariableSerializers copy = new DefaultVariableSerializers(); // "other" serializers override existing ones if their names match for (TypedValueSerializer<?> thisSerializer : serializerList) { TypedValueSerializer<?> serializer = other.getSerializerByName(thisSerializer.getName()); if (serializer == null) { serializer = thisSerializer; } copy.addSerializer(serializer); } // add all "other" serializers that did not exist before to the end of the list for (TypedValueSerializer<?> otherSerializer : other.getSerializers()) { if (!copy.serializerMap.containsKey(otherSerializer.getName())) { copy.addSerializer(otherSerializer); } } return copy; }
protected boolean isValuedImplicitlyUpdated() { if (cachedValue != null && isMutableValue(cachedValue)) { byte[] byteArray = valueFields.getByteArrayValue(); ValueFieldsImpl tempValueFields = new ValueFieldsImpl(); writeValue(cachedValue, tempValueFields); byte[] byteArrayAfter = tempValueFields.getByteArrayValue(); return !Arrays.equals(byteArray, byteArrayAfter); } return false; }
protected void initializeVariableSerializers(AbstractProcessApplication abstractProcessApplication) { VariableSerializers paVariableSerializers = abstractProcessApplication.getVariableSerializers(); if (paVariableSerializers == null) { paVariableSerializers = new DefaultVariableSerializers(); abstractProcessApplication.setVariableSerializers(paVariableSerializers); } for (TypedValueSerializer<?> serializer : lookupSpinSerializers(abstractProcessApplication.getProcessApplicationClassloader())) { paVariableSerializers.addSerializer(serializer); } }
protected String getObjectTypeName(ObjectValue value, ValueFields valueFields) { String objectTypeName = value.getObjectTypeName(); if (objectTypeName == null && !value.isDeserialized() && value.getValueSerialized() != null) { throw new ProcessEngineException("Cannot write serialized value for variable '" + valueFields.getName() + "': no 'objectTypeName' provided for non-null value."); } // update type name if the object is deserialized if (value.isDeserialized() && value.getValue() != null) { objectTypeName = getTypeNameForDeserialized(value.getValue()); } return objectTypeName; }
protected byte[] readSerializedValueFromFields(ValueFields valueFields) { return valueFields.getByteArrayValue(); }
protected void writeToValueFields(SpinValue value, ValueFields valueFields, byte[] serializedValue) { valueFields.setByteArrayValue(serializedValue); }
public PrimitiveValueType getType() { return (PrimitiveValueType) super.getType(); }
public TypedValueSerializer<?> findSerializerForValue(TypedValue value) { return findSerializerForValue(value, null); }
public abstract T readValue(ValueFields valueFields);
protected void writeToValueFields(ObjectValue value, ValueFields valueFields, byte[] serializedValue) { String objectTypeName = getObjectTypeName(value, valueFields); valueFields.setByteArrayValue(serializedValue); valueFields.setTextValue2(objectTypeName); }
protected boolean isValuedImplicitlyUpdated() { if (cachedValue != null && isMutableValue(cachedValue)) { byte[] byteArray = valueFields.getByteArrayValue(); ValueFieldsImpl tempValueFields = new ValueFieldsImpl(); writeValue(cachedValue, tempValueFields); byte[] byteArrayAfter = tempValueFields.getByteArrayValue(); return !Arrays.equals(byteArray, byteArrayAfter); } return false; }
protected Object deserializeFromByteArray(byte[] object, ValueFields valueFields) throws Exception { String objectTypeName = readObjectNameFromFields(valueFields); return deserializeFromByteArray(object, objectTypeName); }
protected String getObjectTypeName(ObjectValue value, ValueFields valueFields) { String objectTypeName = value.getObjectTypeName(); if (objectTypeName == null && !value.isDeserialized() && value.getValueSerialized() != null) { throw new ProcessEngineException("Cannot write serialized value for variable '" + valueFields.getName() + "': no 'objectTypeName' provided for non-null value."); } // update type name if the object is deserialized if (value.isDeserialized() && value.getValue() != null) { objectTypeName = getTypeNameForDeserialized(value.getValue()); } return objectTypeName; }
protected String readObjectNameFromFields(ValueFields valueFields) { return valueFields.getTextValue2(); }
protected byte[] readSerializedValueFromFields(ValueFields valueFields) { return valueFields.getByteArrayValue(); }
public PrimitiveValueType getType() { return (PrimitiveValueType) super.getType(); }
public TypedValueSerializer<?> findSerializerForValue(TypedValue value) { return findSerializerForValue(value, null); }