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

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

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

RubyModule.setFlag介绍

暂无

代码示例

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

/**
 * Set whether this Java proxy class should try to keep its instances idempotent
 * and alive using the ObjectProxyCache.
 */
public void setCacheProxy(boolean cacheProxy) {
  setFlag(USER0_F, cacheProxy);
}

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

/**
 * Set whether this Java proxy class should try to keep its instances idempotent
 * and alive using the ObjectProxyCache.
 */
public void setCacheProxy(boolean cacheProxy) {
  setFlag(CACHEPROXY_F, cacheProxy);
}

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

/**
 * Set whether this Java proxy class should try to keep its instances idempotent
 * and alive using the ObjectProxyCache.
 */
public void setCacheProxy(boolean cacheProxy) {
  setFlag(CACHEPROXY_F, cacheProxy);
}

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

/**
 * Set whether this Java proxy class should try to keep its instances idempotent
 * and alive using the ObjectProxyCache.
 */
public void setCacheProxy(boolean cacheProxy) {
  setFlag(USER0_F, cacheProxy);
}

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

private RubyModule createNewRefinedModule(ThreadContext context, RubyModule moduleToRefine) {
  Ruby runtime = context.runtime;
  RubyModule newRefinement = new RubyModule(runtime);
  RubyClass superClass = refinementSuperclass(runtime, this, moduleToRefine);
  newRefinement.setSuperClass(superClass);
  newRefinement.setFlag(REFINED_MODULE_F, true);
  newRefinement.setFlag(NEEDSIMPL_F, false); // Refinement modules should not do implementer check
  newRefinement.refinedClass = moduleToRefine;
  newRefinement.definedAt = this;
  refinements.put(moduleToRefine, newRefinement);
  return newRefinement;
}

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

private RubyModule createNewRefinedModule(ThreadContext context, RubyModule moduleToRefine) {
  Ruby runtime = context.runtime;
  RubyModule newRefinement = new RubyModule(runtime);
  RubyClass superClass = refinementSuperclass(runtime, this, moduleToRefine);
  newRefinement.setSuperClass(superClass);
  newRefinement.setFlag(REFINED_MODULE_F, true);
  newRefinement.setFlag(NEEDSIMPL_F, false); // Refinement modules should not do implementer check
  newRefinement.refinedClass = moduleToRefine;
  newRefinement.definedAt = this;
  refinements.put(moduleToRefine, newRefinement);
  return newRefinement;
}

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

private static RubyModule getAlreadyRefinementWrapper(RubyModule cref, RubyModule klass, RubyModule module) {
  RubyModule c, superclass = klass;
  // Our storage cubby in cref for all known refinements
  if (cref.refinements == Collections.EMPTY_MAP) {
    cref.refinements = new HashMap<>();
  } else {
    if (cref.getFlag(OMOD_SHARED)) {
      cref.refinements = new HashMap<>(cref.refinements);
      cref.setFlag(OMOD_SHARED, false);
    }
    if ((c = cref.refinements.get(klass)) != null) {
      superclass = c;
      while (c != null && c instanceof IncludedModule) {
        if (c.getMetaClass() == module) {
          /* already used refinement */
          return null;
        }
        c = c.getSuperClass();
      }
    }
  }
  return superclass;
}

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

private static RubyModule getAlreadyRefinementWrapper(RubyModule cref, RubyModule klass, RubyModule module) {
  RubyModule c, superclass = klass;
  // Our storage cubby in cref for all known refinements
  if (cref.refinements == Collections.EMPTY_MAP) {
    cref.refinements = new HashMap<>();
  } else {
    if (cref.getFlag(OMOD_SHARED)) {
      cref.refinements = new HashMap<>(cref.refinements);
      cref.setFlag(OMOD_SHARED, false);
    }
    if ((c = cref.refinements.get(klass)) != null) {
      superclass = c;
      while (c != null && c instanceof IncludedModule) {
        if (c.getMetaClass() == module) {
          /* already used refinement */
          return null;
        }
        c = c.getSuperClass();
      }
    }
  }
  return superclass;
}

代码示例来源: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);
  }

代码示例来源: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-complete

private void addActivatedRefinement(ThreadContext context, RubyModule moduleToRefine, RubyModule refinement) {
//        RubyClass superClass = getAlreadyActivatedRefinementWrapper(classWeAreRefining, refinement);
//        if (superClass == null) return; // already been refined and added to refinementwrapper
    RubyClass superClass = null;
    RubyClass c = activatedRefinements.get(moduleToRefine);
    if (c != null) {
      superClass = c;
      while (c != null && c.isIncluded()) {
        if (((IncludedModuleWrapper)c).getNonIncludedClass() == refinement) {
          /* already used refinement */
          return;
        }
        c = c.getSuperClass();
      }
    }
    refinement.setFlag(IS_OVERLAID_F, true);
    IncludedModuleWrapper iclass = new IncludedModuleWrapper(context.runtime, superClass, refinement);
    c = iclass;
    c.refinedClass = moduleToRefine;
    for (refinement = refinement.getSuperClass(); refinement != null; refinement = refinement.getSuperClass()) {
      refinement.setFlag(IS_OVERLAID_F, true);
      c.setSuperClass(new IncludedModuleWrapper(context.runtime, c.getSuperClass(), refinement));
      c = c.getSuperClass();
      c.refinedClass = moduleToRefine;
    }
    activatedRefinements.put(moduleToRefine, iclass);
  }

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

private void addActivatedRefinement(ThreadContext context, RubyModule moduleToRefine, RubyModule refinement) {
//        RubyClass superClass = getAlreadyActivatedRefinementWrapper(classWeAreRefining, refinement);
//        if (superClass == null) return; // already been refined and added to refinementwrapper
    RubyClass superClass = null;
    RubyClass c = activatedRefinements.get(moduleToRefine);
    if (c != null) {
      superClass = c;
      while (c != null && c.isIncluded()) {
        if (((IncludedModuleWrapper)c).getNonIncludedClass() == refinement) {
          /* already used refinement */
          return;
        }
        c = c.getSuperClass();
      }
    }
    refinement.setFlag(IS_OVERLAID_F, true);
    IncludedModuleWrapper iclass = new IncludedModuleWrapper(context.runtime, superClass, refinement);
    c = iclass;
    c.refinedClass = moduleToRefine;
    for (refinement = refinement.getSuperClass(); refinement != null; refinement = refinement.getSuperClass()) {
      refinement.setFlag(IS_OVERLAID_F, true);
      c.setSuperClass(new IncludedModuleWrapper(context.runtime, c.getSuperClass(), refinement));
      c = c.getSuperClass();
      c.refinedClass = moduleToRefine;
    }
    activatedRefinements.put(moduleToRefine, iclass);
  }

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

/** separate path for MetaClass construction
 *
 */
protected RubyModule(Ruby runtime, RubyClass metaClass, boolean objectSpace) {
  super(runtime, metaClass, objectSpace);
  id = runtime.allocModuleId();
  runtime.addModule(this);
  // if (parent == null) parent = runtime.getObject();
  setFlag(NEEDSIMPL_F, !isClass());
  updateGeneration(runtime);
  if (runtime.getInstanceConfig().isProfiling()) {
    cacheEntryFactory = new ProfilingCacheEntryFactory(runtime, NormalCacheEntryFactory);
  } else {
    cacheEntryFactory = NormalCacheEntryFactory;
  }
  // set up an invalidator for use in new optimization strategies
  methodInvalidator = OptoFactory.newMethodInvalidator(this);
}

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

/** separate path for MetaClass construction
 *
 */
protected RubyModule(Ruby runtime, RubyClass metaClass, boolean objectSpace) {
  super(runtime, metaClass, objectSpace);
  id = runtime.allocModuleId();
  runtime.addModule(this);
  // if (parent == null) parent = runtime.getObject();
  setFlag(NEEDSIMPL_F, !isClass());
  updateGeneration(runtime);
  if (runtime.getInstanceConfig().isProfiling()) {
    cacheEntryFactory = new ProfilingCacheEntryFactory(runtime, NormalCacheEntryFactory);
  } else {
    cacheEntryFactory = NormalCacheEntryFactory;
  }
  // set up an invalidator for use in new optimization strategies
  methodInvalidator = OptoFactory.newMethodInvalidator(this);
}

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

/** separate path for MetaClass construction
 * 
 */
protected RubyModule(Ruby runtime, RubyClass metaClass, boolean objectSpace) {
  super(runtime, metaClass, objectSpace);
  id = runtime.allocModuleId();
  runtime.addModule(this);
  // if (parent == null) parent = runtime.getObject();
  setFlag(USER7_F, !isClass());
  generationObject = generation = runtime.getNextModuleGeneration();
  if (runtime.getInstanceConfig().isProfiling()) {
    cacheEntryFactory = new ProfilingCacheEntryFactory(NormalCacheEntryFactory);
  } else {
    cacheEntryFactory = NormalCacheEntryFactory;
  }
  
  // set up an invalidator for use in new optimization strategies
  methodInvalidator = OptoFactory.newMethodInvalidator(this);
}

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

/** separate path for MetaClass construction
 * 
 */
protected RubyModule(Ruby runtime, RubyClass metaClass, boolean objectSpace) {
  super(runtime, metaClass, objectSpace);
  id = runtime.allocModuleId();
  runtime.addModule(this);
  // if (parent == null) parent = runtime.getObject();
  setFlag(USER7_F, !isClass());
  generationObject = generation = runtime.getNextModuleGeneration();
  if (runtime.getInstanceConfig().isProfiling()) {
    cacheEntryFactory = new ProfilingCacheEntryFactory(NormalCacheEntryFactory);
  } else {
    cacheEntryFactory = NormalCacheEntryFactory;
  }
  
  // set up an invalidator for use in new optimization strategies
  methodInvalidator = OptoFactory.newMethodInvalidator(this);
}

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

module.setFlag(RubyObject.USER7_F, false); //Kernel is the only Module that doesn't need an implementor

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

module.setFlag(RubyObject.USER7_F, false); //Kernel is the only Module that doesn't need an implementor

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

public static RubyModule createKernelModule(Ruby runtime) {
  RubyModule module = runtime.defineModule("Kernel");
  runtime.setKernel(module);
  module.defineAnnotatedMethods(RubyKernel.class);
  module.setFlag(RubyModule.NEEDSIMPL_F, false); //Kernel is the only normal Module that doesn't need an implementor
  runtime.setPrivateMethodMissing(new MethodMissingMethod(module, PRIVATE, CallType.NORMAL));
  runtime.setProtectedMethodMissing(new MethodMissingMethod(module, PROTECTED, CallType.NORMAL));
  runtime.setVariableMethodMissing(new MethodMissingMethod(module, PUBLIC, CallType.VARIABLE));
  runtime.setSuperMethodMissing(new MethodMissingMethod(module, PUBLIC, CallType.SUPER));
  runtime.setNormalMethodMissing(new MethodMissingMethod(module, PUBLIC, CallType.NORMAL));
  if (runtime.getInstanceConfig().isAssumeLoop()) {
    module.defineAnnotatedMethods(LoopMethods.class);
  }
  recacheBuiltinMethods(runtime);
  return module;
}

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

public static RubyModule createKernelModule(Ruby runtime) {
  RubyModule module = runtime.defineModule("Kernel");
  runtime.setKernel(module);
  module.defineAnnotatedMethods(RubyKernel.class);
  module.setFlag(RubyModule.NEEDSIMPL_F, false); //Kernel is the only normal Module that doesn't need an implementor
  runtime.setPrivateMethodMissing(new MethodMissingMethod(module, PRIVATE, CallType.NORMAL));
  runtime.setProtectedMethodMissing(new MethodMissingMethod(module, PROTECTED, CallType.NORMAL));
  runtime.setVariableMethodMissing(new MethodMissingMethod(module, PUBLIC, CallType.VARIABLE));
  runtime.setSuperMethodMissing(new MethodMissingMethod(module, PUBLIC, CallType.SUPER));
  runtime.setNormalMethodMissing(new MethodMissingMethod(module, PUBLIC, CallType.NORMAL));
  if (runtime.getInstanceConfig().isAssumeLoop()) {
    module.defineAnnotatedMethods(LoopMethods.class);
  }
  recacheBuiltinMethods(runtime);
  return module;
}

相关文章

微信公众号

最新文章

更多

RubyModule类方法