Class: Jruby::Coercion::Registry
- Inherits:
-
Object
- Object
- Jruby::Coercion::Registry
- Defined in:
- lib/jruby-coercion.rb
Class Attribute Summary collapse
-
.converter_registry ⇒ Object
readonly
Returns the value of attribute converter_registry.
Class Method Summary collapse
- .register_converter(ruby_type, java_type, callable = nil, &blk) ⇒ Object
- .registry_converts_class?(ruby_type) ⇒ Boolean
- .registry_converts_class_and_to?(ruby_type, java_type) ⇒ Boolean
Class Attribute Details
.converter_registry ⇒ Object (readonly)
Returns the value of attribute converter_registry.
39 40 41 |
# File 'lib/jruby-coercion.rb', line 39 def converter_registry @converter_registry end |
Class Method Details
.register_converter(ruby_type, java_type, callable = nil, &blk) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/jruby-coercion.rb', line 44 def self.register_converter(ruby_type, java_type, callable = nil, &blk) Thread.exclusive do callable ||= blk ruby_type_converter = (@converter_registry[ruby_type] ||= ::Java::JavaUtilConcurrent::ConcurrentHashMap.new) ruby_type_converter[java_type] = callable # Register alternative type java_class/ruby_class ruby_type_converter[::Jruby::Coercion.alternative_class(java_type)] = callable @converter_registry[ruby_type] = ruby_type_converter end end |
.registry_converts_class?(ruby_type) ⇒ Boolean
58 59 60 61 62 63 64 |
# File 'lib/jruby-coercion.rb', line 58 def self.registry_converts_class?(ruby_type) if !ruby_type.nil? && (class_level = converter_registry[ruby_type]) return class_level else false end end |
.registry_converts_class_and_to?(ruby_type, java_type) ⇒ Boolean
66 67 68 69 70 71 72 73 74 75 |
# File 'lib/jruby-coercion.rb', line 66 def self.registry_converts_class_and_to?(ruby_type, java_type) if (!java_type.nil? && (class_level = registry_converts_class?(ruby_type)) && (converter = class_level[java_type])) return converter else false end end |