org.jruby.RubyModule.respondsTo()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(4.0k)|赞(0)|评价(0)|浏览(72)

本文整理了Java中org.jruby.RubyModule.respondsTo方法的一些代码示例,展示了RubyModule.respondsTo的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RubyModule.respondsTo方法的具体详情如下:
包路径:org.jruby.RubyModule
类名称:RubyModule
方法名:respondsTo

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)) {

相关文章

微信公众号

最新文章

更多

RubyModule类方法