Class: JavaClass::Dependencies::ClassNode

Inherits:
Node show all
Defined in:
lib/javaclass/dependencies/class_node.rb

Overview

A concrete Node which contains a ClassFile and its dependencies. This models a Node as a Java class.

Author

Peter Kofler

Instance Attribute Summary

Attributes inherited from Node

#dependencies, #name, #size

Instance Method Summary collapse

Methods inherited from Node

#<=>, #==, #add_dependencies, #add_dependency, #each_dependency_provider, #each_edge, #hash, #to_s

Constructor Details

#initialize(java_class) ⇒ ClassNode

Returns a new instance of ClassNode.



12
13
14
15
# File 'lib/javaclass/dependencies/class_node.rb', line 12

def initialize(java_class)
  super(java_class.to_classname)
  @java_class = java_class
end

Instance Method Details

#outgoing_dependenciesObject

Iterate on a list of Edge dependencies this node has.



18
19
20
21
22
23
24
# File 'lib/javaclass/dependencies/class_node.rb', line 18

def outgoing_dependencies
  @java_class.imported_3rd_party_types.each do |import|
      yield Edge.new(@java_class.to_classname, import.to_classname)
  end
  # later iterate all types/fields/methods and create an edge from the method to the target type.
  # So Edges make sense and multiplicity in dependencies is possible. 
end

#satisfies?(class_name) ⇒ Boolean

Does this Node satisfy the dependency to class_name ?

Returns:

  • (Boolean)


27
28
29
30
# File 'lib/javaclass/dependencies/class_node.rb', line 27

def satisfies?(class_name)
  @java_class.to_classname == class_name.to_classname
  # later class name will be a full qualified class#method or field name.
end