| Module | Kernel |
| In: |
lib/rcdk/java.rb
|
Maps the packages and class name specified by qualified_class_name to a nested set of Ruby modules. The first letter of each module name is capitalized. For example, java.util.HashMap would become Java::Util::HashMap.
The first use of jrequire will render all subsequent calls to require_jar ineffective.
# File lib/rcdk/java.rb, line 65
65: def jrequire(qualified_class_name)
66: java_class = Rjb::import(qualified_class_name)
67: package_names = qualified_class_name.to_s.split('.')
68: java_class_name = package_names.delete(package_names.last)
69: new_module = self.class
70:
71: package_names.each do |package_name|
72: module_name = package_name.capitalize
73:
74: if !new_module.const_defined?(module_name)
75: new_module = new_module.const_set(module_name, Module.new)
76: else
77: new_module = new_module.const_get(module_name)
78: end
79: end
80:
81: return false if new_module.const_defined?(java_class_name)
82:
83: new_module.const_set(java_class_name, java_class)
84:
85: return true
86: end