class JavaClass::Dependencies::Graph

A graph contains a list of Node

Author

Peter Kofler

Public Class Methods

new() click to toggle source
# File lib/javaclass/dependencies/graph.rb, line 13
def initialize
  @nodes = []
end

Public Instance Methods

add(node) click to toggle source

Add a node to this graph.

# File lib/javaclass/dependencies/graph.rb, line 18
def add(node)
  @nodes << node
end
each_node(&block) click to toggle source

Iterate all nodes in this Graph and call block for each Node

# File lib/javaclass/dependencies/graph.rb, line 46
def each_node(&block)
  @nodes.each { |node| block.call(node) }
end
nodes_satisfying(dependency) click to toggle source

Find the nodes that satisfy the given dependency

# File lib/javaclass/dependencies/graph.rb, line 41
def nodes_satisfying(dependency)
  @nodes.find_all { |n| n.satisfies?(dependency) }
end
resolve_dependencies() click to toggle source

Iterates all nodes and fills the dependency fields of the Node.

# File lib/javaclass/dependencies/graph.rb, line 27
def resolve_dependencies
  @nodes.each do |node|
    puts "processing #{node}"

    node.outgoing_dependencies do |dependency|
      providers = nodes_satisfying(dependency.target)
      node.add_dependency(dependency, providers)
    end
    
    node.dependencies.values.each { |vals| vals.sort! }
  end
end
to_a() click to toggle source
# File lib/javaclass/dependencies/graph.rb, line 22
def to_a
  @nodes.dup
end