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