本文整理了Java中org.jruby.RubyModule.respondsTo
方法的一些代码示例,展示了RubyModule.respondsTo
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RubyModule.respondsTo
方法的具体详情如下:
包路径:org.jruby.RubyModule
类名称:RubyModule
方法名:respondsTo
暂无
代码示例来源:origin: org.jruby/jruby-complete
/**
* Returns the (reified or proxied) Java class if the passed Ruby module/class has one.
* @param context
* @param type
* @return Java proxy class, Java reified class or nil
*/
public static IRubyObject java_class(final ThreadContext context, final RubyModule type) {
IRubyObject java_class = type.getInstanceVariable("@java_class");
if ( java_class == null ) { // || java_class.isNil()
if ( type.respondsTo("java_class") ) { // NOTE: quite bad since built-in Ruby classes will return
// a Ruby Java proxy for java.lang.Class while Java proxies will return a JavaClass instance !
java_class = Helpers.invoke(context, type, "java_class");
}
else java_class = context.nil; // we return != null (just like callMethod would)
}
return java_class;
}
代码示例来源:origin: org.jruby/jruby-core
/**
* Returns the (reified or proxied) Java class if the passed Ruby module/class has one.
* @param context
* @param type
* @return Java proxy class, Java reified class or nil
*/
public static IRubyObject java_class(final ThreadContext context, final RubyModule type) {
IRubyObject java_class = type.getInstanceVariable("@java_class");
if ( java_class == null ) { // || java_class.isNil()
if ( type.respondsTo("java_class") ) { // NOTE: quite bad since built-in Ruby classes will return
// a Ruby Java proxy for java.lang.Class while Java proxies will return a JavaClass instance !
java_class = Helpers.invoke(context, type, "java_class");
}
else java_class = context.nil; // we return != null (just like callMethod would)
}
return java_class;
}
代码示例来源:origin: org.jruby/jruby-complete
protected static void installClassClasses(final Class<?> javaClass, final RubyModule proxy) {
// setup constants for public inner classes
Class<?>[] classes = JavaClass.getDeclaredClasses(javaClass);
final Ruby runtime = proxy.getRuntime();
for ( int i = classes.length; --i >= 0; ) {
final Class<?> clazz = classes[i];
if ( javaClass != clazz.getDeclaringClass() ) continue;
// no non-public inner classes
if ( ! Modifier.isPublic(clazz.getModifiers()) ) continue;
final String simpleName = JavaClass.getSimpleName(clazz);
if ( simpleName.length() == 0 ) continue;
final RubyModule innerProxy = Java.getProxyClass(runtime, JavaClass.get(runtime, clazz));
if ( IdUtil.isConstant(simpleName) ) {
if (proxy.getConstantAt(simpleName) == null) {
proxy.const_set(runtime.newString(simpleName), innerProxy);
}
}
else { // lower-case name
if ( ! proxy.respondsTo(simpleName) ) {
// define a class method
proxy.getSingletonClass().addMethod(simpleName, new JavaMethod.JavaMethodZero(proxy.getSingletonClass(), PUBLIC, simpleName) {
@Override
public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name) {
return innerProxy;
}
});
}
}
}
}
代码示例来源:origin: org.jruby/jruby-core
protected static void installClassClasses(final Class<?> javaClass, final RubyModule proxy) {
// setup constants for public inner classes
Class<?>[] classes = JavaClass.getDeclaredClasses(javaClass);
final Ruby runtime = proxy.getRuntime();
for ( int i = classes.length; --i >= 0; ) {
final Class<?> clazz = classes[i];
if ( javaClass != clazz.getDeclaringClass() ) continue;
// no non-public inner classes
if ( ! Modifier.isPublic(clazz.getModifiers()) ) continue;
final String simpleName = JavaClass.getSimpleName(clazz);
if ( simpleName.length() == 0 ) continue;
final RubyModule innerProxy = Java.getProxyClass(runtime, JavaClass.get(runtime, clazz));
if ( IdUtil.isConstant(simpleName) ) {
if (proxy.getConstantAt(simpleName) == null) {
proxy.const_set(runtime.newString(simpleName), innerProxy);
}
}
else { // lower-case name
if ( ! proxy.respondsTo(simpleName) ) {
// define a class method
proxy.getSingletonClass().addMethod(simpleName, new JavaMethod.JavaMethodZero(proxy.getSingletonClass(), PUBLIC, simpleName) {
@Override
public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name) {
return innerProxy;
}
});
}
}
}
}
代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby
if (!proxy.respondsTo(simpleName)) {
代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby
if (!proxy.respondsTo(simpleName)) {
内容来源于网络,如有侵权,请联系作者删除!