def _cast key, value
case key
when /Timeout$/
value.to_s =~ /^\d+$/ ? value.to_i : value.downcase.to_sym
when 'taskList'
value['name']
when 'childPolicy'
value.downcase.to_sym
when 'activityType'
name = value['name']
version = value['version']
@workflow_execution.domain.activity_types[name,version]
when 'workflowType'
name = value['name']
version = value['version']
@workflow_execution.domain.workflow_types[name,version]
when 'workflowExecution'
workflow_id = value['workflowId']
run_id = value['runId']
@workflow_execution.domain.workflow_executions[workflow_id, run_id]
else
case value
when Array then value.collect{|v| _cast(key,v) }
when Hash then Attributes.new(@workflow_execution, value)
else value
end
end
end