Sha256: f6182aff2c942404f5fa0d5e16268b594614963c20c069c05e6bb1f5ee8e5a29

Contents?: true

Size: 1 KB

Versions: 2

Compression:

Stored size: 1 KB

Contents

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

  def process_composition(composition_hash)
    operator = org.mitre.cybox.core.OperatorTypeEnum.from_value(composition_hash[:operator].to_s.upcase)
    composition = Java::OrgMitreCyboxCore::ObservableCompositionType.new(:operator => operator)
    composition_hash[:items].each do |item|
      observable = item.kind_of?(org.mitre.cybox.core.ObservableType) ? item : self.class.new(:item => item)
      composition.add_observable(observable)
    end

    return composition
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ruby_stix-0.2.0-java lib/ruby_stix/api/observable.rb
ruby_stix-0.0.2-java lib/ruby_stix/api/observable.rb