Module Kernel
In: lib/rcdk/java.rb

Methods

jrequire  

Public Instance methods

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.

[Source]

    # 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

[Validate]