/** * Resolves a Java class from a passed type parameter. * * Uisng the rules accepted by `to_java(type)` in Ruby land. * @param context * @param type * @return resolved type or null if resolution failed */ public static JavaClass resolveType(final ThreadContext context, final IRubyObject type) { if (type instanceof RubyString || type instanceof RubySymbol) { final Ruby runtime = context.runtime; final String className = type.toString(); JavaClass targetType = runtime.getJavaSupport().getNameClassMap().get(className); if ( targetType == null ) targetType = JavaClass.forNameVerbose(runtime, className); return targetType; } return resolveClassType(context, type); }
/** * Resolves a Java class from a passed type parameter. * * Uisng the rules accepted by `to_java(type)` in Ruby land. * @param context * @param type * @return resolved type or null if resolution failed */ public static JavaClass resolveType(final ThreadContext context, final IRubyObject type) { if (type instanceof RubyString || type instanceof RubySymbol) { final Ruby runtime = context.runtime; final String className = type.toString(); JavaClass targetType = runtime.getJavaSupport().getNameClassMap().get(className); if ( targetType == null ) targetType = JavaClass.forNameVerbose(runtime, className); return targetType; } return resolveClassType(context, type); }
private static JavaClass getTargetType(ThreadContext context, Ruby runtime, IRubyObject type) { JavaClass targetType; if (type instanceof RubyString || type instanceof RubySymbol) { targetType = runtime.getJavaSupport().getNameClassMap().get(type.asJavaString()); if (targetType == null) targetType = JavaClass.forNameVerbose(runtime, type.asJavaString()); } else if (type instanceof RubyModule && type.respondsTo("java_class")) { targetType = (JavaClass) Helpers.invoke(context, type, "java_class"); } else if (type instanceof JavaProxy) { if (((JavaProxy)type).getObject() instanceof Class) { targetType = JavaClass.get(runtime, (Class)((JavaProxy)type).getObject()); } else { throw runtime.newTypeError("not a valid target type: " + type); } } else { throw runtime.newTypeError("unable to convert to type: " + type); } return targetType; } }
private static JavaClass getTargetType(ThreadContext context, Ruby runtime, IRubyObject type) { JavaClass targetType; if (type instanceof RubyString || type instanceof RubySymbol) { targetType = runtime.getJavaSupport().getNameClassMap().get(type.asJavaString()); if (targetType == null) targetType = JavaClass.forNameVerbose(runtime, type.asJavaString()); } else if (type instanceof RubyModule && type.respondsTo("java_class")) { targetType = (JavaClass) Helpers.invoke(context, type, "java_class"); } else if (type instanceof JavaProxy) { if (((JavaProxy)type).getObject() instanceof Class) { targetType = JavaClass.get(runtime, (Class)((JavaProxy)type).getObject()); } else { throw runtime.newTypeError("not a valid target type: " + type); } } else { throw runtime.newTypeError("unable to convert to type: " + type); } return targetType; } }
addNameClassMappings(runtime, runtime.getJavaSupport().getNameClassMap());
addNameClassMappings(runtime, runtime.getJavaSupport().getNameClassMap());
addNameClassMappings(runtime, runtime.getJavaSupport().getNameClassMap());
addNameClassMappings(runtime, runtime.getJavaSupport().getNameClassMap());