Module: ICanHasJavaClass

Defined in:
lib/i_can_has_java_class.rb,
lib/i_can_has_java_class/version.rb

Constant Summary collapse

VERSION =
"0.0.1"

Class Method Summary collapse

Class Method Details

.java_class_defined?(class_string) ⇒ Boolean

Returns:

  • (Boolean)


5
6
7
8
# File 'lib/i_can_has_java_class.rb', line 5

def self.java_class_defined?(class_string)
  !!java_class_exists_in_class_loader?(class_string, ::JRuby.runtime.jruby_class_loader) ||
    !!java_class_exists_in_class_loader?(class_string, nil)
end

.java_class_exists_in_class_loader?(class_string, class_loader) ⇒ Boolean

Returns:

  • (Boolean)


10
11
12
13
14
15
16
17
18
# File 'lib/i_can_has_java_class.rb', line 10

def self.java_class_exists_in_class_loader?(class_string, class_loader)
  if class_loader
    return ::Java::JavaLang::Class.forName(class_string, false, class_loader)
  else
    return ::Java::JavaLang::Class.forName(class_string)
  end
rescue ::Java::JavaLang::ClassNotFoundException
  return false
end

.java_class_for(class_string) ⇒ Object



20
21
22
23
24
25
26
27
28
29
# File 'lib/i_can_has_java_class.rb', line 20

def self.java_class_for(class_string)
  case
  when (klass = java_class_exists_in_class_loader?(class_string, ::JRuby.runtime.jruby_class_loader)) then
    return klass
  when (klass = java_class_exists_in_class_loader?(class_string, nil)) then
    return klass
  else
    raise ::Java::JavaLang::ClassNotFoundException.new
  end
end