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

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

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

RubyModule.hasModuleInHierarchy介绍

暂无

代码示例

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

public void checkValidBindTargetFrom(ThreadContext context, RubyModule originModule) throws RaiseException {
  if (!this.hasModuleInHierarchy(originModule)) {
    if (originModule instanceof MetaClass) {
      throw context.runtime.newTypeError("can't bind singleton method to a different class");
    } else {
      throw context.runtime.newTypeError("bind argument must be an instance of " + originModule.getName());
    }
  }
}

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

public void checkValidBindTargetFrom(ThreadContext context, RubyModule originModule) throws RaiseException {
  if (!this.hasModuleInHierarchy(originModule)) {
    if (originModule instanceof MetaClass) {
      throw context.runtime.newTypeError("can't bind singleton method to a different class");
    } else {
      throw context.runtime.newTypeError("bind argument must be an instance of " + originModule.getName());
    }
  }
}

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

public void checkValidBindTargetFrom(ThreadContext context, RubyModule originModule) throws RaiseException {
  // Module methods can always be transplanted
  if (!originModule.isModule() && !hasModuleInHierarchy(originModule)) {
    if (originModule instanceof MetaClass) {
      throw context.runtime.newTypeError("can't bind singleton method to a different class");
    } else {
      throw context.runtime.newTypeError("bind argument must be an instance of " + originModule.getName());
    }
  }
}

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

public void checkValidBindTargetFrom(ThreadContext context, RubyModule originModule) throws RaiseException {
  // Module methods can always be transplanted
  if (!originModule.isModule() && !hasModuleInHierarchy(originModule)) {
    if (originModule instanceof MetaClass) {
      throw context.runtime.newTypeError("can't bind singleton method to a different class");
    } else {
      throw context.runtime.newTypeError("bind argument must be an instance of " + originModule.getName());
    }
  }
}

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

/**
 * Prepend a new module to this module or class.
 *
 * @param arg The module to include
 */
public synchronized void prependModule(IRubyObject arg) {
  assert arg != null;
  testFrozen("module");
  if (!(arg instanceof RubyModule)) {
    throw getRuntime().newTypeError("Wrong argument type " + arg.getMetaClass().getName() +
        " (expected Module).");
  }
  if (((RubyModule) arg).refinedClass != null) {
    throw getRuntime().newArgumentError("refinement module is not allowed");
  }
  RubyModule module = (RubyModule) arg;
  // Make sure the module we include does not already exist
  checkForCyclicInclude(module);
  if (hasModuleInHierarchy((RubyModule) arg)) {
    invalidateCacheDescendants();
    return;
  }
  infectBy(module);
  doPrependModule(module);
  invalidateCoreClasses();
  invalidateCacheDescendants();
  invalidateConstantCacheForModuleInclusion(module);
}

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

/**
 * Prepend a new module to this module or class.
 *
 * @param arg The module to include
 */
public synchronized void prependModule(IRubyObject arg) {
  assert arg != null;
  testFrozen("module");
  if (!(arg instanceof RubyModule)) {
    throw getRuntime().newTypeError("Wrong argument type " + arg.getMetaClass().getName() +
        " (expected Module).");
  }
  if (((RubyModule) arg).refinedClass != null) {
    throw getRuntime().newArgumentError("refinement module is not allowed");
  }
  RubyModule module = (RubyModule) arg;
  // Make sure the module we include does not already exist
  checkForCyclicInclude(module);
  if (hasModuleInHierarchy((RubyModule) arg)) {
    invalidateCacheDescendants();
    return;
  }
  infectBy(module);
  doPrependModule(module);
  invalidateCoreClasses();
  invalidateCacheDescendants();
  invalidateConstantCacheForModuleInclusion(module);
}

相关文章

微信公众号

最新文章

更多

RubyModule类方法