Module: Cheri::Java::Builder::Constants
- Defined in:
- lib/cheri/java/builder/util.rb
Overview
TODO: leftover from JRBuilder, rethink for Cheri
Defined Under Namespace
Classes: ConstRec
Constant Summary collapse
Class Method Summary collapse
- .resolve_ctor(clazz, args, constants) ⇒ Object
- .resolve_meth(clazz, method_name, args, constants) ⇒ Object
Class Method Details
.resolve_ctor(clazz, args, constants) ⇒ Object
208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 |
# File 'lib/cheri/java/builder/util.rb', line 208 def resolve_ctor(clazz,args,constants) return true if args.empty? # try the simple resolve first const_arr = simple_resolve(clazz,args) return true unless const_arr # check against constructor argument types argc = args.length key = "#{clazz.java_class.name}##{argc}" ctor_args = @method_cache[key] unless ctor_args ctor_args = [] clazz.java_class.constructors.each do |ctor| ctor_args << ctor.argument_types if ctor.arity == argc end @method_cache[key] = ctor_args end if ctor_args.empty? raise NoMethodError,"No constructor found for class '#{clazz.java_class.name} with argument count #{argc}" end arg_type_resolve(clazz,const_arr,ctor_args,args,constants) end |
.resolve_meth(clazz, method_name, args, constants) ⇒ Object
230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 |
# File 'lib/cheri/java/builder/util.rb', line 230 def resolve_meth(clazz,method_name,args,constants) return true if args.empty? # try the simple resolve first const_arr = simple_resolve(clazz,args) return true unless const_arr argc = args.length cased_method_name = Util.lcc(method_name) key = "#{clazz.java_class.name}##{cased_method_name}##{argc}" method_args = @method_cache[key] unless method_args method_args = [] clazz.java_class.java_instance_methods.each do |method| if method.arity == argc && method.name == cased_method_name method_args << method.argument_types end end @method_cache[key] = method_args end if method_args.empty? raise NoMethodError,"No method '#{method_name}' found in class '#{clazz.java_class.name} with argument count #{argc}" end arg_type_resolve(clazz,const_arr,method_args,args,constants) end |