Class: Operaton::Bpm::Client::Task::OrderingConfig

Inherits:
Object
  • Object
show all
Defined in:
lib/operaton/bpm/client/task/ordering_config.rb

Overview

Mirrors org.operaton.bpm.client.task.OrderingConfig

Defined Under Namespace

Modules: Direction, SortingField Classes: OrderingProperty

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ordering_properties) ⇒ OrderingConfig

Returns a new instance of OrderingConfig.



23
24
25
# File 'lib/operaton/bpm/client/task/ordering_config.rb', line 23

def initialize(ordering_properties)
  @ordering_properties = ordering_properties
end

Instance Attribute Details

#ordering_propertiesObject (readonly)

Returns the value of attribute ordering_properties.



21
22
23
# File 'lib/operaton/bpm/client/task/ordering_config.rb', line 21

def ordering_properties
  @ordering_properties
end

Class Method Details

.emptyObject



27
28
29
# File 'lib/operaton/bpm/client/task/ordering_config.rb', line 27

def self.empty
  new([])
end

Instance Method Details

#configure_direction_on_last_field(direction) ⇒ Object



35
36
37
38
39
40
# File 'lib/operaton/bpm/client/task/ordering_config.rb', line 35

def configure_direction_on_last_field(direction)
  last_configured_property = validate_and_get_last_configured_property
  raise logger.double_direction_config_exception unless last_configured_property.direction.nil?

  last_configured_property.direction = direction
end

#configure_field(field) ⇒ Object



31
32
33
# File 'lib/operaton/bpm/client/task/ordering_config.rb', line 31

def configure_field(field)
  ordering_properties << OrderingProperty.of(field, nil)
end

#to_sorting_dtosObject



46
47
48
# File 'lib/operaton/bpm/client/task/ordering_config.rb', line 46

def to_sorting_dtos
  ordering_properties.map { |property| SortingDto.from_ordering_property(property) }
end

#validate_ordering_propertiesObject



42
43
44
# File 'lib/operaton/bpm/client/task/ordering_config.rb', line 42

def validate_ordering_properties
  raise logger.missing_direction_exception if ordering_properties.any? { |p| p.direction.nil? }
end