本文整理了Java中org.jruby.RubyModule.doIncludeModule
方法的一些代码示例,展示了RubyModule.doIncludeModule
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RubyModule.doIncludeModule
方法的具体详情如下:
包路径:org.jruby.RubyModule
类名称:RubyModule
方法名:doIncludeModule
[英]Include the given module and all related modules into the hierarchy above this module/class. Inspects the hierarchy to ensure the same module isn't included twice, and selects an appropriate insertion point for each incoming module.
[中]将给定模块和所有相关模块包含在此模块/类上方的层次结构中。检查层次结构以确保同一模块不会包含两次,并为每个传入模块选择适当的插入点。
代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby
/**
* Include a new module in this module or class.
*
* @param arg The module to include
*/
public synchronized void includeModule(IRubyObject arg) {
assert arg != null;
testFrozen("module");
if (!(arg instanceof RubyModule)) {
throw getRuntime().newTypeError("Wrong argument type " + arg.getMetaClass().getName() +
" (expected Module).");
}
RubyModule module = (RubyModule) arg;
// Make sure the module we include does not already exist
checkForCyclicInclude(module);
infectBy(module);
doIncludeModule(module);
invalidateCoreClasses();
invalidateCacheDescendants();
invalidateConstantCacheForModuleInclusion(module);
}
代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby
/**
* Include a new module in this module or class.
*
* @param arg The module to include
*/
public synchronized void includeModule(IRubyObject arg) {
assert arg != null;
testFrozen("module");
if (!(arg instanceof RubyModule)) {
throw getRuntime().newTypeError("Wrong argument type " + arg.getMetaClass().getName() +
" (expected Module).");
}
RubyModule module = (RubyModule) arg;
// Make sure the module we include does not already exist
checkForCyclicInclude(module);
infectBy(module);
doIncludeModule(module);
invalidateCoreClasses();
invalidateCacheDescendants();
invalidateConstantCacheForModuleInclusion(module);
}
代码示例来源:origin: org.jruby/jruby-core
/**
* Include a new module in this module or class.
*
* @param arg The module to include
*/
public synchronized void includeModule(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 (hasModuleInPrepends(((RubyModule)arg).getNonIncludedClass())) {
invalidateCacheDescendants();
return;
}
infectBy(module);
doIncludeModule(module);
invalidateCoreClasses();
invalidateCacheDescendants();
invalidateConstantCacheForModuleInclusion(module);
}
代码示例来源:origin: org.jruby/jruby-complete
/**
* Include a new module in this module or class.
*
* @param arg The module to include
*/
public synchronized void includeModule(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 (hasModuleInPrepends(((RubyModule)arg).getNonIncludedClass())) {
invalidateCacheDescendants();
return;
}
infectBy(module);
doIncludeModule(module);
invalidateCoreClasses();
invalidateCacheDescendants();
invalidateConstantCacheForModuleInclusion(module);
}
内容来源于网络,如有侵权,请联系作者删除!