Class: Operaton::Bpm::Client::Variable::Impl::Mapper::FileValueMapper
- Inherits:
-
AbstractTypedValueMapper
- Object
- AbstractTypedValueMapper
- Operaton::Bpm::Client::Variable::Impl::Mapper::FileValueMapper
- Defined in:
- lib/operaton/bpm/client/variable/impl/mapper/file_value_mapper.rb
Overview
Mirrors org.operaton.bpm.client.variable.impl.mapper.FileValueMapper
Constant Summary collapse
- VALUE_INFO_FILE_NAME =
Engine::Variable::FileValueType::VALUE_INFO_FILE_NAME
- VALUE_INFO_FILE_MIME_TYPE =
Engine::Variable::FileValueType::VALUE_INFO_FILE_MIME_TYPE
- VALUE_INFO_FILE_ENCODING =
Engine::Variable::FileValueType::VALUE_INFO_FILE_ENCODING
Instance Attribute Summary
Attributes inherited from AbstractTypedValueMapper
Instance Method Summary collapse
- #convert_to_typed_value(_untyped_value) ⇒ Object
-
#initialize(engine_client) ⇒ FileValueMapper
constructor
A new instance of FileValueMapper.
- #read_value(typed_value_field, _deserialize_value = true) ⇒ Object
- #write_value(file_value, typed_value_field) ⇒ Object
Methods inherited from AbstractTypedValueMapper
#can_handle_typed_value, #can_handle_typed_value_field, #serialization_dataformat, #type
Methods included from ValueMapper
#can_handle_typed_value, #can_handle_typed_value_field, #serialization_dataformat, #type
Constructor Details
#initialize(engine_client) ⇒ FileValueMapper
Returns a new instance of FileValueMapper.
20 21 22 23 |
# File 'lib/operaton/bpm/client/variable/impl/mapper/file_value_mapper.rb', line 20 def initialize(engine_client) super(Engine::Variable::ValueType::FILE) @engine_client = engine_client end |
Instance Method Details
#convert_to_typed_value(_untyped_value) ⇒ Object
25 26 27 |
# File 'lib/operaton/bpm/client/variable/impl/mapper/file_value_mapper.rb', line 25 def convert_to_typed_value(_untyped_value) raise NotImplementedError, "Currently no automatic conversation from UntypedValue to FileValue" end |
#read_value(typed_value_field, _deserialize_value = true) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/operaton/bpm/client/variable/impl/mapper/file_value_mapper.rb', line 29 def read_value(typed_value_field, _deserialize_value = true) value_info = typed_value_field.value_info || {} filename = value_info[VALUE_INFO_FILE_NAME] file_value = Value::DeferredFileValueImpl.new(filename, @engine_client) mime_type = value_info[VALUE_INFO_FILE_MIME_TYPE] file_value.mime_type = mime_type if mime_type encoding = value_info[VALUE_INFO_FILE_ENCODING] file_value.encoding = encoding if encoding file_value end |
#write_value(file_value, typed_value_field) ⇒ Object
41 42 43 44 45 46 47 48 49 |
# File 'lib/operaton/bpm/client/variable/impl/mapper/file_value_mapper.rb', line 41 def write_value(file_value, typed_value_field) value_info = { VALUE_INFO_FILE_NAME => file_value.filename } value_info[VALUE_INFO_FILE_ENCODING] = file_value.encoding if file_value.encoding value_info[VALUE_INFO_FILE_MIME_TYPE] = file_value.mime_type if file_value.mime_type typed_value_field.value_info = value_info bytes = file_value.byte_array typed_value_field.value = Base64.strict_encode64(bytes) unless bytes.nil? end |