org.jruby.RubyClass.getInstanceVariables()方法的使用及代码示例

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

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

RubyClass.getInstanceVariables介绍

暂无

代码示例

代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby

public static Class[] getInterfacesFromRubyClass(RubyClass klass) {
  Set<Class> interfaces = new HashSet<Class>();
  // walk all superclasses aggregating interfaces
  while (klass != null) {
    IRubyObject maybeInterfaces = klass.getInstanceVariables().getInstanceVariable("@java_interfaces");
    if (maybeInterfaces instanceof RubyArray) {
      RubyArray moreInterfaces = (RubyArray)maybeInterfaces;
      if (!moreInterfaces.isFrozen()) moreInterfaces.setFrozen(true);
      interfaces.addAll(moreInterfaces);
    }
    klass = klass.getSuperClass();
  }
  return interfaces.toArray(new Class[interfaces.size()]);
}

代码示例来源:origin: org.jruby/jruby-complete

@SuppressWarnings("unchecked")
public static Class[] getInterfacesFromRubyClass(RubyClass klass) {
  Set<Class> interfaces = new HashSet<Class>();
  // walk all superclasses aggregating interfaces
  while (klass != null) {
    IRubyObject maybeInterfaces = klass.getInstanceVariables().getInstanceVariable("@java_interfaces");
    if (maybeInterfaces instanceof RubyArray) {
      final RubyArray moreInterfaces = (RubyArray) maybeInterfaces;
      if ( ! moreInterfaces.isFrozen() ) moreInterfaces.setFrozen(true);
      interfaces.addAll(moreInterfaces);
    }
    klass = klass.getSuperClass();
  }
  return interfaces.toArray(new Class[interfaces.size()]);
}

代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby

public static Class[] getInterfacesFromRubyClass(RubyClass klass) {
  Set<Class> interfaces = new HashSet<Class>();
  // walk all superclasses aggregating interfaces
  while (klass != null) {
    IRubyObject maybeInterfaces = klass.getInstanceVariables().getInstanceVariable("@java_interfaces");
    if (maybeInterfaces instanceof RubyArray) {
      RubyArray moreInterfaces = (RubyArray)maybeInterfaces;
      if (!moreInterfaces.isFrozen()) moreInterfaces.setFrozen(true);
      interfaces.addAll(moreInterfaces);
    }
    klass = klass.getSuperClass();
  }
  return interfaces.toArray(new Class[interfaces.size()]);
}

代码示例来源:origin: org.jruby/jruby-core

@SuppressWarnings("unchecked")
public static Class[] getInterfacesFromRubyClass(RubyClass klass) {
  Set<Class> interfaces = new HashSet<Class>();
  // walk all superclasses aggregating interfaces
  while (klass != null) {
    IRubyObject maybeInterfaces = klass.getInstanceVariables().getInstanceVariable("@java_interfaces");
    if (maybeInterfaces instanceof RubyArray) {
      final RubyArray moreInterfaces = (RubyArray) maybeInterfaces;
      if ( ! moreInterfaces.isFrozen() ) moreInterfaces.setFrozen(true);
      interfaces.addAll(moreInterfaces);
    }
    klass = klass.getSuperClass();
  }
  return interfaces.toArray(new Class[interfaces.size()]);
}

代码示例来源:origin: org.jenkins-ci/jruby-xstream

/**
 * Given {@link JavaProxy} instance, which represents an instance of a Ruby class that
 * extends from a Java type, return {@link JavaProxyClass}, which encapsulates a generated
 * Java subtype that JRuby uses to represent this Ruby object.
 */
private JavaProxyClass getProxyClass(JavaProxy original) {
  // taken from org.jruby.javasupport.Java. needs to be factored out from there
  IRubyObject proxyClass = original.getMetaClass().getInstanceVariables().fastGetInstanceVariable("@java_proxy_class");
  if (proxyClass == null || proxyClass.isNil()) {
    proxyClass = JavaProxyClass.get_with_class(original, original.getMetaClass());
    original.getMetaClass().getInstanceVariables().fastSetInstanceVariable("@java_proxy_class", proxyClass);
  }
  return (JavaProxyClass)proxyClass;
}

代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby

@Override
  public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject arg) {
    // TODO: WRONG - get interfaces from class
    if (arg.respondsTo("java_object")) {
      IRubyObject interfaces = self.getMetaClass().getInstanceVariables().getInstanceVariable("@java_interfaces");
      assert interfaces instanceof RubyArray : "interface list was not an array";
      return context.runtime.newBoolean(((RubyArray) interfaces).op_diff(
          ((JavaClass) ((JavaObject) arg.dataGetStruct()).java_class()).interfaces()).equals(RubyArray.newArray(context.runtime)));
    } else {
      return Helpers.invoke(context, self, "old_eqq", arg);
    }
  }
});

代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby

@Override
public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject[] args) {
  IRubyObject proxyClass = self.getMetaClass().getInstanceVariables().getInstanceVariable("@java_proxy_class");
  if (proxyClass == null || proxyClass.isNil()) {
    proxyClass = JavaProxyClass.get_with_class(self, self.getMetaClass());
    self.getMetaClass().getInstanceVariables().setInstanceVariable("@java_proxy_class", proxyClass);

代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby

@Override
  public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject arg) {
    // TODO: WRONG - get interfaces from class
    if (arg.respondsTo("java_object")) {
      IRubyObject interfaces = self.getMetaClass().getInstanceVariables().getInstanceVariable("@java_interfaces");
      assert interfaces instanceof RubyArray : "interface list was not an array";
      return context.runtime.newBoolean(((RubyArray) interfaces).op_diff(
          ((JavaClass) ((JavaObject) arg.dataGetStruct()).java_class()).interfaces()).equals(RubyArray.newArray(context.runtime)));
    } else {
      return Helpers.invoke(context, self, "old_eqq", arg);
    }
  }
});

代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby

@Override
public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject[] args) {
  IRubyObject proxyClass = self.getMetaClass().getInstanceVariables().getInstanceVariable("@java_proxy_class");
  if (proxyClass == null || proxyClass.isNil()) {
    proxyClass = JavaProxyClass.get_with_class(self, self.getMetaClass());
    self.getMetaClass().getInstanceVariables().setInstanceVariable("@java_proxy_class", proxyClass);

代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby

rubySubclass.getInstanceVariables().setInstanceVariable("@java_proxy_class", runtime.getNil());

代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby

rubySubclass.getInstanceVariables().setInstanceVariable("@java_proxy_class", runtime.getNil());

相关文章

微信公众号

最新文章

更多

RubyClass类方法