class JavaClass::Dependencies::Node
A node in a Graph
of dependencies. A node contains a map of dependencies (Edge
) to other nodes.
- Author
-
Peter Kofler
Attributes
dependencies[R]
name[R]
size[R]
Public Class Methods
new(name, size=0)
click to toggle source
attr_reader :incoming
# File lib/javaclass/dependencies/node.rb, line 13 def initialize(name, size=0) @name = name @size = size @dependencies = Hash.new([]) ### @incoming = Hash.new([]) end
Public Instance Methods
<=>(other)
click to toggle source
# File lib/javaclass/dependencies/node.rb, line 36 def <=>(other) @name <=> other.name end
==(other)
click to toggle source
# File lib/javaclass/dependencies/node.rb, line 28 def ==(other) other.respond_to?(:name) && @name == other.name end
add_dependencies(dependencies, providers)
click to toggle source
Add a list dependencies of provider .
# File lib/javaclass/dependencies/node.rb, line 57 def add_dependencies(dependencies, providers) dependencies.each do |dependency| add_dependency(dependency, providers) end end
add_dependency(dependency, providers)
click to toggle source
Add a dependency Edge
for a list of provider Node
.
# File lib/javaclass/dependencies/node.rb, line 41 def add_dependency(dependency, providers) if providers.size == 0 # external dependency, skip this elsif providers.size == 1 # add dependency to this provider provider = providers[0] # unless @dependencies[provider].include? dependency @dependencies[provider] = @dependencies[provider] + [dependency] ### provider.incoming[self] = provider.incoming[self] + [dependency] # end else warn "dependency to \"#{dependency}\" found more than once: #{providers.join(', ')}" end end
each_dependency_provider(&block)
click to toggle source
Iterate all providers of dependencies of this Node
and call block for each provider with its list of dependencies (Edge
).
# File lib/javaclass/dependencies/node.rb, line 64 def each_dependency_provider(&block) @dependencies.keys.each do |provider| block.call(provider, @dependencies[provider]) end end
each_edge(&block)
click to toggle source
Iterate all dependencies of this Node
and call block for each provider with each of its dependencies.
# File lib/javaclass/dependencies/node.rb, line 71 def each_edge(&block) each_dependency_provider do |provider, edges| edges.each do |edge| block.call(provider, edge) end end end
hash()
click to toggle source
# File lib/javaclass/dependencies/node.rb, line 32 def hash @name.hash end
to_s()
click to toggle source
# File lib/javaclass/dependencies/node.rb, line 20 def to_s if @size > 0 "#{@name} (#{@size.to_s})" else @name end end