class CamTool::NodePresenceValidator

Attributes

destinations[R]
edges[R]
nodes[R]
sources[R]

Public Class Methods

new() click to toggle source
# File lib/camtool/node_presence_validator.rb, line 8
def initialize
  @edges = Hash.new
  @nodes = Hash.new
  @sources = Hash.new
  @destinations = Hash.new
end

Public Instance Methods

activity(k, v) click to toggle source
# File lib/camtool/node_presence_validator.rb, line 50
def activity k, v
  abort "activity is of wrong type:  #{v}." unless is_activity? k
  @nodes[k]=v
end
agent(k, v) click to toggle source
# File lib/camtool/node_presence_validator.rb, line 55
def agent k, v
  abort "agent is of wrong type:  #{v}." unless is_agent?(k) || v['prov:type']=='machine'
  @nodes[k]=v
end
entity(k, v) click to toggle source
# File lib/camtool/node_presence_validator.rb, line 45
def entity k, v
  abort "entity is of wrong type:  #{v}." unless is_entity? k
  @nodes[k]=v
end
used(k, v) click to toggle source
# File lib/camtool/node_presence_validator.rb, line 15
def used k, v
  @edges[k] = v
  @destinations[k] = v['prov:entity']
  @sources[k] = v['prov:activity']
end
validate() click to toggle source
# File lib/camtool/node_presence_validator.rb, line 60
def validate
  a = []
  @sources = @sources.sort_by { |k, v| @edges[k]['cf:id'].to_i }.to_h
  @sources.each do |k, v|
    puts "Could not find source #{v}\nin\n#{@edges[k]}" unless @nodes.has_key? v
    puts "destination:\n#{@destinations[k]}:#{@nodes[@destinations[k]]}\n\n" unless @nodes.has_key? v
    a << v unless @nodes.has_key? v
  end

  @destinations = @destinations.sort_by { |k, v| @edges[k]['cf:id'].to_i }.to_h
  @destinations.each do |k, v|
    puts "Could not find destination #{v}\nin\n#{@edges[k]}" unless @nodes.has_key? v
    puts "source:\n#{@sources[k]}:#{@nodes[@sources[k]]}\n\n" unless @nodes.has_key? v
    a << v unless @nodes.has_key? v
  end
  if !a.empty?
    puts "#{a.length} edge(s) with missing element."
    a = a.uniq
    puts "#{a.length} missing element(s).\n\n"
    a.each do |v|
      puts "Entity: "  unless !is_entity? v
      puts "Activity: "  unless !is_activity? v
      puts "Agent: "  unless !is_agent? v
      puts v
      puts "\n"
    end
    abort 'Verification failed. Missing verticies.'
  end
end
wasAssociatedWith(k, v) click to toggle source
# File lib/camtool/node_presence_validator.rb, line 39
def wasAssociatedWith k, v
  @edges[k] = v
  @destinations[k] = v['prov:agent']
  @sources[k] = v['prov:activity']
end
wasDerivedFrom(k, v) click to toggle source
# File lib/camtool/node_presence_validator.rb, line 27
def wasDerivedFrom k, v
  @edges[k] = v
  @destinations[k] = v['prov:generatedEntity']
  @sources[k] = v['prov:usedEntity']
end
wasGeneratedBy(k, v) click to toggle source
# File lib/camtool/node_presence_validator.rb, line 21
def wasGeneratedBy k, v
  @edges[k] = v
  @destinations[k] = v['prov:activity']
  @sources[k] = v['prov:entity']
end
wasInformedBy(k, v) click to toggle source
# File lib/camtool/node_presence_validator.rb, line 33
def wasInformedBy k, v
  @edges[k] = v
  @destinations[k] = v['prov:informant']
  @sources[k] = v['prov:informed']
end