本文整理了Java中org.jruby.RubyClass.getInstanceVariables
方法的一些代码示例,展示了RubyClass.getInstanceVariables
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RubyClass.getInstanceVariables
方法的具体详情如下:
包路径:org.jruby.RubyClass
类名称: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());
内容来源于网络,如有侵权,请联系作者删除!