本文整理了Java中org.jruby.RubyModule.getAlreadyRefinementWrapper
方法的一些代码示例,展示了RubyModule.getAlreadyRefinementWrapper
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RubyModule.getAlreadyRefinementWrapper
方法的具体详情如下:
包路径:org.jruby.RubyModule
类名称:RubyModule
方法名:getAlreadyRefinementWrapper
暂无
代码示例来源:origin: org.jruby/jruby-complete
private static void usingRefinement(Ruby runtime, RubyModule cref, RubyModule klass, RubyModule module) {
RubyModule superclass = getAlreadyRefinementWrapper(cref, klass, module);
if (superclass == null) return; // already been refined and added to refinementwrapper
module.setFlag(IS_OVERLAID_F, true);
superclass = refinementSuperclass(runtime, klass, module);
RubyModule c, iclass = new IncludedModuleWrapper(runtime, (RubyClass) superclass, module);
c = iclass;
c.refinedClass = klass;
// RCLASS_M_TBL(OBJ_WB_UNPROTECT(c)) =
// RCLASS_M_TBL(OBJ_WB_UNPROTECT(module)); /* TODO: check unprotecting */
for (module = module.getSuperClass(); module != null && module != klass; module = module.getSuperClass()) {
module.setFlag(IS_OVERLAID_F, true);
c.setSuperClass(new IncludedModuleWrapper(cref.getRuntime(), c.getSuperClass(), module));
c = c.getSuperClass();
c.refinedClass = klass;
}
cref.refinements.put(klass, iclass);
}
代码示例来源:origin: org.jruby/jruby-core
private static void usingRefinement(Ruby runtime, RubyModule cref, RubyModule klass, RubyModule module) {
RubyModule superclass = getAlreadyRefinementWrapper(cref, klass, module);
if (superclass == null) return; // already been refined and added to refinementwrapper
module.setFlag(IS_OVERLAID_F, true);
superclass = refinementSuperclass(runtime, klass, module);
RubyModule c, iclass = new IncludedModuleWrapper(runtime, (RubyClass) superclass, module);
c = iclass;
c.refinedClass = klass;
// RCLASS_M_TBL(OBJ_WB_UNPROTECT(c)) =
// RCLASS_M_TBL(OBJ_WB_UNPROTECT(module)); /* TODO: check unprotecting */
for (module = module.getSuperClass(); module != null && module != klass; module = module.getSuperClass()) {
module.setFlag(IS_OVERLAID_F, true);
c.setSuperClass(new IncludedModuleWrapper(cref.getRuntime(), c.getSuperClass(), module));
c = c.getSuperClass();
c.refinedClass = klass;
}
cref.refinements.put(klass, iclass);
}
内容来源于网络,如有侵权,请联系作者删除!