Class | JavaClass::Dependencies::Node |
In: |
lib/javaclass/dependencies/node.rb
|
Parent: | Object |
dependencies | [R] | |
name | [R] | |
size | [R] |
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
# File lib/javaclass/dependencies/node.rb, line 28 def ==(other) other.respond_to?(:name) && @name == other.name end
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 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
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