Class: JavaClass::ClassFile::References
- Inherits:
-
Object
- Object
- JavaClass::ClassFile::References
- Defined in:
- lib/javaclass/classfile/references.rb
Overview
Container class for list of all classes, methods and fields referenced by this class. This information is derived from the constant pool, no analysis.
- Author
-
Peter Kofler
Instance Method Summary collapse
-
#initialize(pool, classidx) ⇒ References
constructor
Create a references container with the constant pool and skip references to index classidx which is the host class itself.
-
#referenced_fields(includeown = false) ⇒ Object
Return the constants referring to fields (Constants::ConstantField).
-
#referenced_methods(includeown = false) ⇒ Object
Return the constants referring to methods (Constants::ConstantMethod) in classes or interfaces.
-
#used_classes ⇒ Object
Return the list of all constants containing class names of all used classes.
Constructor Details
#initialize(pool, classidx) ⇒ References
Create a references container with the constant pool and skip references to index classidx which is the host class itself.
12 13 14 15 |
# File 'lib/javaclass/classfile/references.rb', line 12 def initialize(pool, classidx) @constant_pool = pool @class_idx = classidx end |
Instance Method Details
#referenced_fields(includeown = false) ⇒ Object
Return the constants referring to fields (Constants::ConstantField). If includeown is true
then fields of this class are returned also.
19 20 21 22 23 |
# File 'lib/javaclass/classfile/references.rb', line 19 def referenced_fields(includeown=false) @constant_pool.find(ConstantPool::FIELD_TAG).find_all do |field| includeown || field.class_index != @class_idx end end |
#referenced_methods(includeown = false) ⇒ Object
Return the constants referring to methods (Constants::ConstantMethod) in classes or interfaces. If includeown is true
then methods of this class are returned also.
27 28 29 30 31 |
# File 'lib/javaclass/classfile/references.rb', line 27 def referenced_methods(includeown=false) @constant_pool.find(ConstantPool::METHOD_TAG, ConstantPool::INTERFACE_METHOD_TAG).find_all do |method| includeown || method.class_index != @class_idx end end |
#used_classes ⇒ Object
Return the list of all constants containing class names of all used classes.
34 35 36 37 38 |
# File 'lib/javaclass/classfile/references.rb', line 34 def used_classes @constant_pool.find(ConstantPool::CLASS_TAG).find_all do |cl| cl.class_name != @constant_pool[@class_idx].to_s end end |