Class: Java::OrgMitreStixIndicator::IndicatorType

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby_stix/api/indicator.rb

Instance Method Summary collapse

Instance Method Details

#item=(val) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/ruby_stix/api/indicator.rb', line 2

def item=(val)
  if val.kind_of?(org.mitre.cybox.core.ObservableType)
    self.observable = val
  elsif val.kind_of?(org.mitre.cybox.core.ObjectType)
    self.observable = org.mitre.cybox.core.ObservableType.new(:object => val)
  elsif val.kind_of?(org.mitre.cybox.core.EventType)
    self.observable = org.mitre.cybox.core.ObservableType.new(:event => val)
  elsif val.kind_of?(org.mitre.cybox.common.ObjectPropertiesType)
    self.observable = org.mitre.cybox.core.ObservableType.new(:object => org.mitre.cybox.core.ObjectType.new(:properties => val))
  elsif val.kind_of?(Hash) && val[:operator]
    self.composite_indicator_expression = process_composition(val)
  else
    raise "Unknown item type: #{val.class}"
  end
end

#process_composition(composition_hash) ⇒ Object



18
19
20
21
22
23
24
25
26
27
# File 'lib/ruby_stix/api/indicator.rb', line 18

def process_composition(composition_hash)
  operator = org.mitre.stix.indicator.OperatorTypeEnum.from_value(composition_hash[:operator].to_s.upcase)
  composition = org.mitre.stix.indicator.CompositeIndicatorExpressionType.new(:operator => operator)
  composition_hash[:items].each do |item|
    indicator = item.kind_of?(org.mitre.stix.common.IndicatorBaseType) ? item : self.class.new(:item => item)
    composition.add_indicator(indicator)
  end

  return composition
end