@Override public FileValue readValue(ValueFields valueFields, boolean deserializeValue) { FileValueBuilder builder = Variables.fileValue(valueFields.getTextValue()); if (valueFields.getByteArrayValue() != null) { builder.file(valueFields.getByteArrayValue()); } // to ensure the same array size all the time if (valueFields.getTextValue2() != null) { String[] split = Arrays.copyOf(valueFields.getTextValue2().split(MIMETYPE_ENCODING_SEPARATOR, NR_OF_VALUES_IN_TEXTFIELD2), NR_OF_VALUES_IN_TEXTFIELD2); String mimeType = returnNullIfEmptyString(split[0]); String encoding = returnNullIfEmptyString(split[1]); builder.mimeType(mimeType); builder.encoding(encoding); } return builder.create(); }
protected void writeToValueFields(ObjectValue value, ValueFields valueFields, byte[] serializedValue) { String objectTypeName = getObjectTypeName(value, valueFields); valueFields.setByteArrayValue(serializedValue); valueFields.setTextValue2(objectTypeName); }
public DoubleValue readValue(ValueFields valueFields) { return Variables.doubleValue(valueFields.getDoubleValue()); }
public void writeValue(IntegerValue variableValue, ValueFields valueFields) { Integer value = variableValue.getValue(); if (value!=null) { valueFields.setLongValue(((Integer) value).longValue()); valueFields.setTextValue(value.toString()); } else { valueFields.setLongValue(null); valueFields.setTextValue(null); } }
public ObjectValue readValue(ValueFields valueFields, boolean deserializeObjectValue) { if(valueFields.getTextValue() != null && valueFields.getTextValue2() != null) { Object jpaEntity = mappings.getJPAEntity(valueFields.getTextValue(), valueFields.getTextValue2()); return Variables.objectValue(jpaEntity).create(); } return Variables.objectValue(null).create(); }
@Override public void writeValue(FileValue value, ValueFields valueFields) { byte[] data = ((FileValueImpl) value).getByteArray(); valueFields.setByteArrayValue(data); valueFields.setTextValue(value.getFilename()); if (value.getMimeType() == null && value.getEncoding() != null) { valueFields.setTextValue2(MIMETYPE_ENCODING_SEPARATOR + value.getEncoding()); } else if (value.getMimeType() != null && value.getEncoding() == null) { valueFields.setTextValue2(value.getMimeType() + MIMETYPE_ENCODING_SEPARATOR); } else if (value.getMimeType() != null && value.getEncoding() != null) { valueFields.setTextValue2(value.getMimeType() + MIMETYPE_ENCODING_SEPARATOR + value.getEncoding()); } }
protected byte[] readSerializedValueFromFields(ValueFields valueFields) { return valueFields.getByteArrayValue(); }
public IntegerValue readValue(ValueFields valueFields) { Integer intValue = null; if(valueFields.getLongValue() != null) { intValue = Integer.valueOf(valueFields.getLongValue().intValue()); } return Variables.integerValue(intValue); }
public void writeValue(ObjectValue objectValue, ValueFields valueFields) { EntityManagerSession entityManagerSession = Context .getCommandContext() .getSession(EntityManagerSession.class); if (entityManagerSession == null) { throw new ProcessEngineException("Cannot set JPA variable: " + EntityManagerSession.class + " not configured"); } else { // Before we set the value we must flush all pending changes from the entitymanager // If we don't do this, in some cases the primary key will not yet be set in the object // which will cause exceptions down the road. entityManagerSession.flush(); } Object value = objectValue.getValue(); if(value != null) { String className = mappings.getJPAClassString(value); String idString = mappings.getJPAIdString(value); valueFields.setTextValue(className); valueFields.setTextValue2(idString); } else { valueFields.setTextValue(null); valueFields.setTextValue2(null); } }
protected void writeToValueFields(SpinValue value, ValueFields valueFields, byte[] serializedValue) { valueFields.setByteArrayValue(serializedValue); }
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); } }
protected String readObjectNameFromFields(ValueFields valueFields) { return valueFields.getTextValue2(); }
public StringValue readValue(ValueFields valueFields) { return Variables.stringValue(valueFields.getTextValue()); }
public void writeValue(DateValue typedValue, ValueFields valueFields) { Date dateValue = typedValue.getValue(); if (dateValue != null) { valueFields.setLongValue(dateValue.getTime()); } else { valueFields.setLongValue(null); } }
public void writeValue(DoubleValue value, ValueFields valueFields) { valueFields.setDoubleValue(value.getValue()); }
public void writeValue(StringValue variableValue, ValueFields valueFields) { valueFields.setTextValue(variableValue.getValue()); }
@Override public void writeValue(FileValue value, ValueFields valueFields) { byte[] data = ((FileValueImpl) value).getByteArray(); valueFields.setByteArrayValue(data); valueFields.setTextValue(value.getFilename()); if (value.getMimeType() == null && value.getEncoding() != null) { valueFields.setTextValue2(MIMETYPE_ENCODING_SEPARATOR + value.getEncoding()); } else if (value.getMimeType() != null && value.getEncoding() == null) { valueFields.setTextValue2(value.getMimeType() + MIMETYPE_ENCODING_SEPARATOR); } else if (value.getMimeType() != null && value.getEncoding() != null) { valueFields.setTextValue2(value.getMimeType() + MIMETYPE_ENCODING_SEPARATOR + value.getEncoding()); } }
public void writeValue(IntegerValue variableValue, ValueFields valueFields) { Integer value = variableValue.getValue(); if (value!=null) { valueFields.setLongValue(((Integer) value).longValue()); valueFields.setTextValue(value.toString()); } else { valueFields.setLongValue(null); valueFields.setTextValue(null); } }
public ObjectValue readValue(ValueFields valueFields, boolean deserializeObjectValue) { if(valueFields.getTextValue() != null && valueFields.getTextValue2() != null) { Object jpaEntity = mappings.getJPAEntity(valueFields.getTextValue(), valueFields.getTextValue2()); return Variables.objectValue(jpaEntity).create(); } return Variables.objectValue(null).create(); }
protected byte[] readSerializedValueFromFields(ValueFields valueFields) { return valueFields.getByteArrayValue(); }