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

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

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

RubyClass.getSuperClass介绍

暂无

代码示例

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

@Override
protected RubyClass getSuperClass(RubyClass definingModule) {
  return definingModule.getSuperClass();
}

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

@Override
protected RubyClass getSuperClass(RubyClass definingModule) {
  return definingModule.getSuperClass();
}

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

public static Class<? extends IRubyObject> nearestReifiedClass(final RubyClass klass) {
  RubyClass current = klass;
  do {
    Class<? extends IRubyObject> reified = current.getReifiedClass();
    if ( reified != null ) return reified;
    current = current.getSuperClass();
  }
  while ( current != null );
  return null;
}

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

public static Class<? extends IRubyObject> nearestReifiedClass(final RubyClass klass) {
  RubyClass current = klass;
  do {
    Class<? extends IRubyObject> reified = current.getReifiedClass();
    if ( reified != null ) return reified;
    current = current.getSuperClass();
  }
  while ( current != null );
  return null;
}

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

private RubyClass classOf() {
  final RubyClass metaClass = getMetaClass();
  return metaClass instanceof MetaClass ? metaClass.getSuperClass() : metaClass;
}

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

private RubyClass classOf() {
  final RubyClass metaClass = getMetaClass();
  return metaClass instanceof MetaClass ? metaClass.getSuperClass() : metaClass;
}

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

@Override
protected RubyClass getSuperClass(RubyClass definingModule) {
  return definingModule.getMetaClass().getMetaClass().getSuperClass();
}

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

private static IRubyObject getInternalVariable(RubyClass type, String internedName) {
  RubyClass structClass = type.getRuntime().getStructClass();
  IRubyObject variable;
  while (type != null && type != structClass) {
    if ((variable = (IRubyObject)type.getInternalVariable(internedName)) != null) {
      return variable;
    }
    type = type.getSuperClass();
  }
  return type.getRuntime().getNil();
}

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

private static IRubyObject getInternalVariable(RubyClass type, String internedName) {
  RubyClass structClass = type.getRuntime().getStructClass();
  IRubyObject variable;
  while (type != null && type != structClass) {
    if ((variable = (IRubyObject)type.getInternalVariable(internedName)) != null) {
      return variable;
    }
    type = type.getSuperClass();
  }
  return type.getRuntime().getNil();
}

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

private static IRubyObject getInternalVariable(RubyClass type, String internedName) {
  RubyClass structClass = type.getRuntime().getStructClass();
  IRubyObject variable;
  while (type != null && type != structClass) {
    if ((variable = (IRubyObject)type.getInternalVariable(internedName)) != null) {
      return variable;
    }
    type = type.getSuperClass();
  }
  return type.getRuntime().getNil();
}

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

private static IRubyObject getInternalVariable(RubyClass type, String internedName) {
  RubyClass structClass = type.getRuntime().getStructClass();
  IRubyObject variable;
  while (type != null && type != structClass) {
    if ((variable = (IRubyObject)type.getInternalVariable(internedName)) != null) {
      return variable;
    }
    type = type.getSuperClass();
  }
  return type.getRuntime().getNil();
}

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

public static IRubyObject allocateProxy(Object javaObject, RubyClass clazz) {
  // Arrays are never stored in OPC
  if (clazz.getSuperClass() == clazz.getRuntime().getJavaSupport().getArrayProxyClass()) {
    return new ArrayJavaProxy(clazz.getRuntime(), clazz, javaObject, JavaUtil.getJavaConverter(javaObject.getClass().getComponentType()));
  }
  
  IRubyObject proxy = clazz.allocate();
  if (proxy instanceof JavaProxy) {
    ((JavaProxy)proxy).setObject(javaObject);
  } else {
    JavaObject wrappedObject = JavaObject.wrap(clazz.getRuntime(), javaObject);
    proxy.dataWrapStruct(wrappedObject);
  }
  return proxy;
}

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

private static void reifyWithAncestors(RubyClass klazz) {
    
    RubyClass realSuper = klazz.getSuperClass().getRealClass();

    if (realSuper.getReifiedClass() == null) reifyWithAncestors(realSuper);
    synchronized (klazz) {
      klazz.reify();
      klazz.setAllocator(new ReifyingAllocator(klazz.getReifiedClass()));
    }
  }
}

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

private static void reifyWithAncestors(RubyClass klazz) {
    
    RubyClass realSuper = klazz.getSuperClass().getRealClass();

    if (realSuper.getReifiedClass() == null) reifyWithAncestors(realSuper);
    synchronized (klazz) {
      klazz.reify();
      klazz.setAllocator(new ReifyingAllocator(klazz.getReifiedClass()));
    }
  }
}

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

private static void reifyWithAncestors(RubyClass klazz) {
    
    RubyClass realSuper = klazz.getSuperClass().getRealClass();

    if (realSuper.getReifiedClass() == null) reifyWithAncestors(realSuper);
    synchronized (klazz) {
      klazz.reify();
      klazz.setAllocator(new ReifyingAllocator(klazz.getReifiedClass()));
    }
  }
}

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

private static void reifyWithAncestors(RubyClass klazz) {
    
    RubyClass realSuper = klazz.getSuperClass().getRealClass();

    if (realSuper.getReifiedClass() == null) reifyWithAncestors(realSuper);
    synchronized (klazz) {
      klazz.reify();
      klazz.setAllocator(new ReifyingAllocator(klazz.getReifiedClass()));
    }
  }
}

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

private RubyClass getSuperSingletonMetaClass() {
  if (attached instanceof RubyClass) {
    RubyClass superClass = ((RubyClass) attached).getSuperClass();
    if (superClass != null) superClass = superClass.getRealClass();
    // #<Class:BasicObject>'s singleton class == Class.singleton_class
    if (superClass == null) return runtime.getClassClass().getSingletonClass();
    return superClass.getMetaClass().getSingletonClass();
  }
  return getSuperClass().getRealClass().getMetaClass(); // NOTE: is this correct?
}

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

private RubyClass getSuperSingletonMetaClass() {
  if (attached instanceof RubyClass) {
    RubyClass superClass = ((RubyClass) attached).getSuperClass();
    if (superClass != null) superClass = superClass.getRealClass();
    // #<Class:BasicObject>'s singleton class == Class.singleton_class
    if (superClass == null) return runtime.getClassClass().getSingletonClass();
    return superClass.getMetaClass().getSingletonClass();
  }
  return getSuperClass().getRealClass().getMetaClass(); // NOTE: is this correct?
}

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

@Override
public Object interpret(ThreadContext context, DynamicScope currDynScope, IRubyObject self, Object[] temp, Block aBlock) {
  IRubyObject[] args = prepareArguments(context, self, getCallArgs(), currDynScope, temp);
  Block block = prepareBlock(context, self, currDynScope, temp);
  String methodName = methAddr.getName();
  RubyModule definingModule = (RubyModule) getDefiningModule().retrieve(context, self, currDynScope, temp);
  RubyClass superClass = definingModule.getMetaClass().getSuperClass();
  DynamicMethod method = superClass != null ? superClass.searchMethod(methodName) : UndefinedMethod.INSTANCE;
  Object rVal = method.isUndefined() ? Helpers.callMethodMissing(context, self, method.getVisibility(), methodName, CallType.SUPER, args, block)
                    : method.call(context, self, superClass, methodName, args, block);
  return hasUnusedResult() ? null : rVal;
}

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

@Override
public Object interpret(ThreadContext context, DynamicScope currDynScope, IRubyObject self, Object[] temp, Block aBlock) {
  IRubyObject[] args = prepareArguments(context, self, getCallArgs(), currDynScope, temp);
  Block block = prepareBlock(context, self, currDynScope, temp);
  String methodName = methAddr.getName();
  RubyModule definingModule = (RubyModule) getDefiningModule().retrieve(context, self, currDynScope, temp);
  RubyClass superClass = definingModule.getMetaClass().getSuperClass();
  DynamicMethod method = superClass != null ? superClass.searchMethod(methodName) : UndefinedMethod.INSTANCE;
  Object rVal = method.isUndefined() ? Helpers.callMethodMissing(context, self, method.getVisibility(), methodName, CallType.SUPER, args, block)
                    : method.call(context, self, superClass, methodName, args, block);
  return hasUnusedResult() ? null : rVal;
}

相关文章

微信公众号

最新文章

更多

RubyClass类方法