Class: Operaton::Bpm::Client::Topic::Impl::TopicSubscriptionBuilderImpl

Inherits:
Object
  • Object
show all
Includes:
TopicSubscriptionBuilder
Defined in:
lib/operaton/bpm/client/topic/impl/topic_subscription_builder_impl.rb

Overview

Mirrors org.operaton.bpm.client.topic.impl.TopicSubscriptionBuilderImpl

Constant Summary

Constants included from TopicSubscriptionBuilder

TopicSubscriptionBuilder::INTERFACE_METHODS

Instance Method Summary collapse

Constructor Details

#initialize(topic_name, topic_subscription_manager) ⇒ TopicSubscriptionBuilderImpl

Returns a new instance of TopicSubscriptionBuilderImpl.



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/operaton/bpm/client/topic/impl/topic_subscription_builder_impl.rb', line 16

def initialize(topic_name, topic_subscription_manager)
  @topic_name = topic_name
  # if not nil, no variables are retrieved by default
  @variable_names = nil
  @lock_duration = nil
  @topic_subscription_manager = topic_subscription_manager
  @local_variables = false
  @business_key = nil
  @process_definition_id = nil
  @process_definition_ids = nil
  @process_definition_key = nil
  @process_definition_keys = nil
  @process_definition_version_tag = nil
  @process_variables = nil
  @without_tenant_id = false
  @tenant_ids = nil
  @external_task_handler = nil
  @include_extension_properties = false
end

Instance Method Details

#business_key(business_key) ⇒ Object



58
59
60
61
# File 'lib/operaton/bpm/client/topic/impl/topic_subscription_builder_impl.rb', line 58

def business_key(business_key)
  @business_key = business_key
  self
end

#handler(external_task_handler = nil, &block) ⇒ Object

Accepts a handler object responding to #execute, any callable, or a block.



42
43
44
45
# File 'lib/operaton/bpm/client/topic/impl/topic_subscription_builder_impl.rb', line 42

def handler(external_task_handler = nil, &block)
  @external_task_handler = external_task_handler || block
  self
end

#include_extension_properties(include_extension_properties) ⇒ Object



119
120
121
122
# File 'lib/operaton/bpm/client/topic/impl/topic_subscription_builder_impl.rb', line 119

def include_extension_properties(include_extension_properties)
  @include_extension_properties = include_extension_properties
  self
end

#local_variables(local_variables) ⇒ Object



53
54
55
56
# File 'lib/operaton/bpm/client/topic/impl/topic_subscription_builder_impl.rb', line 53

def local_variables(local_variables)
  @local_variables = local_variables
  self
end

#lock_duration(lock_duration) ⇒ Object



36
37
38
39
# File 'lib/operaton/bpm/client/topic/impl/topic_subscription_builder_impl.rb', line 36

def lock_duration(lock_duration)
  @lock_duration = lock_duration
  self
end

#openObject



124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
# File 'lib/operaton/bpm/client/topic/impl/topic_subscription_builder_impl.rb', line 124

def open
  raise logger.topic_name_null_exception if @topic_name.nil?

  if !@lock_duration.nil? && @lock_duration <= 0
    raise logger.lock_duration_is_not_greater_than_zero_exception(@lock_duration)
  end

  raise logger.external_task_handler_null_exception if @external_task_handler.nil?

  subscription = TopicSubscriptionImpl.new(@topic_name, @lock_duration, @external_task_handler,
                                           @topic_subscription_manager, @variable_names, @business_key)
  subscription.process_definition_id = @process_definition_id if @process_definition_id
  subscription.process_definition_id_in = @process_definition_ids if @process_definition_ids
  subscription.process_definition_key = @process_definition_key if @process_definition_key
  subscription.process_definition_key_in = @process_definition_keys if @process_definition_keys
  subscription.without_tenant_id = @without_tenant_id if @without_tenant_id
  subscription.tenant_id_in = @tenant_ids if @tenant_ids
  subscription.process_definition_version_tag = @process_definition_version_tag if @process_definition_version_tag
  subscription.process_variables = @process_variables if @process_variables
  subscription.local_variables = @local_variables if @local_variables
  subscription.include_extension_properties = @include_extension_properties if @include_extension_properties

  @topic_subscription_manager.subscribe(subscription)
  subscription
end

#process_definition_id(process_definition_id) ⇒ Object



63
64
65
66
# File 'lib/operaton/bpm/client/topic/impl/topic_subscription_builder_impl.rb', line 63

def process_definition_id(process_definition_id)
  @process_definition_id = process_definition_id
  self
end

#process_definition_id_in(*process_definition_ids) ⇒ Object



68
69
70
71
72
# File 'lib/operaton/bpm/client/topic/impl/topic_subscription_builder_impl.rb', line 68

def process_definition_id_in(*process_definition_ids)
  ensure_not_nil(process_definition_ids, "processDefinitionIds")
  @process_definition_ids = process_definition_ids.flatten
  self
end

#process_definition_key(process_definition_key) ⇒ Object



74
75
76
77
# File 'lib/operaton/bpm/client/topic/impl/topic_subscription_builder_impl.rb', line 74

def process_definition_key(process_definition_key)
  @process_definition_key = process_definition_key
  self
end

#process_definition_key_in(*process_definition_keys) ⇒ Object



79
80
81
82
83
# File 'lib/operaton/bpm/client/topic/impl/topic_subscription_builder_impl.rb', line 79

def process_definition_key_in(*process_definition_keys)
  ensure_not_nil(process_definition_keys, "processDefinitionKeys")
  @process_definition_keys = process_definition_keys.flatten
  self
end

#process_definition_version_tag(process_definition_version_tag) ⇒ Object



85
86
87
88
89
# File 'lib/operaton/bpm/client/topic/impl/topic_subscription_builder_impl.rb', line 85

def process_definition_version_tag(process_definition_version_tag)
  ensure_not_nil(process_definition_version_tag, "processDefinitionVersionTag")
  @process_definition_version_tag = process_definition_version_tag
  self
end

#process_variable_equals(name, value) ⇒ Object



101
102
103
104
105
106
# File 'lib/operaton/bpm/client/topic/impl/topic_subscription_builder_impl.rb', line 101

def process_variable_equals(name, value)
  ensure_not_nil(name, "processVariableName")
  @process_variables ||= {}
  @process_variables[name] = value
  self
end

#process_variables_equals_in(process_variables) ⇒ Object



91
92
93
94
95
96
97
98
99
# File 'lib/operaton/bpm/client/topic/impl/topic_subscription_builder_impl.rb', line 91

def process_variables_equals_in(process_variables)
  ensure_not_nil(process_variables, "processVariables")
  @process_variables ||= {}
  process_variables.each do |name, value|
    ensure_not_nil(name, "processVariableName")
    @process_variables[name] = value
  end
  self
end

#tenant_id_in(*tenant_ids) ⇒ Object



113
114
115
116
117
# File 'lib/operaton/bpm/client/topic/impl/topic_subscription_builder_impl.rb', line 113

def tenant_id_in(*tenant_ids)
  ensure_not_nil(tenant_ids, "tenantIds")
  @tenant_ids = tenant_ids.flatten
  self
end

#variables(*variable_names) ⇒ Object



47
48
49
50
51
# File 'lib/operaton/bpm/client/topic/impl/topic_subscription_builder_impl.rb', line 47

def variables(*variable_names)
  ensure_not_nil(variable_names, "variableNames")
  @variable_names = variable_names.flatten
  self
end

#without_tenant_idObject



108
109
110
111
# File 'lib/operaton/bpm/client/topic/impl/topic_subscription_builder_impl.rb', line 108

def without_tenant_id
  @without_tenant_id = true
  self
end