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

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

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

RubyModule.defineAnnotatedMethod介绍

暂无

代码示例

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

public final boolean defineAnnotatedMethod(String name, List<JavaMethodDescriptor> methods, MethodFactory methodFactory) {
  JavaMethodDescriptor desc = methods.get(0);
  if (methods.size() == 1) {
    return defineAnnotatedMethod(name, desc, methodFactory);
  }
  DynamicMethod dynamicMethod = methodFactory.getAnnotatedMethod(this, methods, name);
  define(this, desc, name, dynamicMethod);
  return true;
}

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

public final boolean defineAnnotatedMethod(String name, List<JavaMethodDescriptor> methods, MethodFactory methodFactory) {
  JavaMethodDescriptor desc = methods.get(0);
  if (methods.size() == 1) {
    return defineAnnotatedMethod(name, desc, methodFactory);
  }
  DynamicMethod dynamicMethod = methodFactory.getAnnotatedMethod(this, methods, name);
  define(this, desc, name, dynamicMethod);
  return true;
}

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

public void defineAnnotatedMethod(Class clazz, String name) {
  // FIXME: This is probably not very efficient, since it loads all methods for each call
  boolean foundMethod = false;
  for (Method method : clazz.getDeclaredMethods()) {
    if (method.getName().equals(name) && defineAnnotatedMethod(method, MethodFactory.createFactory(getRuntime().getJRubyClassLoader()))) {
      foundMethod = true;
    }
  }
  if (!foundMethod) {
    throw new RuntimeException("No JRubyMethod present for method " + name + "on class " + clazz.getName());
  }
}

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

public void defineAnnotatedMethod(Class clazz, String name) {
  // FIXME: This is probably not very efficient, since it loads all methods for each call
  boolean foundMethod = false;
  for (Method method : clazz.getDeclaredMethods()) {
    if (method.getName().equals(name) && defineAnnotatedMethod(method, MethodFactory.createFactory(getRuntime().getJRubyClassLoader()))) {
      foundMethod = true;
    }
  }
  if (!foundMethod) {
    throw new RuntimeException("No JRubyMethod present for method " + name + "on class " + clazz.getName());
  }
}

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

public void defineAnnotatedMethod(Class clazz, String name) {
  // FIXME: This is probably not very efficient, since it loads all methods for each call
  boolean foundMethod = false;
  for (Method method : clazz.getDeclaredMethods()) {
    if (method.getName().equals(name) && defineAnnotatedMethod(method, MethodFactory.createFactory(getRuntime().getJRubyClassLoader()))) {
      foundMethod = true;
    }
  }
  if (!foundMethod) {
    throw new RuntimeException("No JRubyMethod present for method " + name + "on class " + clazz.getName());
  }
}

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

public void defineAnnotatedMethod(Class clazz, String name) {
  // FIXME: This is probably not very efficient, since it loads all methods for each call
  boolean foundMethod = false;
  for (Method method : clazz.getDeclaredMethods()) {
    if (method.getName().equals(name) && defineAnnotatedMethod(method, MethodFactory.createFactory(getRuntime().getJRubyClassLoader()))) {
      foundMethod = true;
    }
  }
  if (!foundMethod) {
    throw new RuntimeException("No JRubyMethod present for method " + name + "on class " + clazz.getName());
  }
}

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

public void populate(final RubyModule target, final Class clazz) {
  assert clazz == this.clazz : "populator for " + this.clazz + " used for " + clazz;
  // fallback on non-pregenerated logic
  // populate method index; this is done statically in generated code
  AnnotationHelper.populateMethodIndex(clumper.readGroups, MethodIndex::addMethodReadFieldsPacked);
  AnnotationHelper.populateMethodIndex(clumper.writeGroups, MethodIndex::addMethodWriteFieldsPacked);
  final Ruby runtime = target.getRuntime();
  final MethodFactory methodFactory = MethodFactory.createFactory(runtime.getJRubyClassLoader());
  for (Map.Entry<String, List<JavaMethodDescriptor>> entry : clumper.getStaticAnnotatedMethods().entrySet()) {
    final String name = entry.getKey();
    final List<JavaMethodDescriptor> methods = entry.getValue();
    target.defineAnnotatedMethod(name, methods, methodFactory);
    addBoundMethodsUnlessOmitted(runtime, name, methods);
  }
  for (Map.Entry<String, List<JavaMethodDescriptor>> entry : clumper.getAnnotatedMethods().entrySet()) {
    final String name = entry.getKey();
    final List<JavaMethodDescriptor> methods = entry.getValue();
    target.defineAnnotatedMethod(name, methods, methodFactory);
    addBoundMethodsUnlessOmitted(runtime, name, methods);
  }
}

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

public void populate(final RubyModule target, final Class clazz) {
  assert clazz == this.clazz : "populator for " + this.clazz + " used for " + clazz;
  // fallback on non-pregenerated logic
  // populate method index; this is done statically in generated code
  AnnotationHelper.populateMethodIndex(clumper.readGroups, MethodIndex::addMethodReadFieldsPacked);
  AnnotationHelper.populateMethodIndex(clumper.writeGroups, MethodIndex::addMethodWriteFieldsPacked);
  final Ruby runtime = target.getRuntime();
  final MethodFactory methodFactory = MethodFactory.createFactory(runtime.getJRubyClassLoader());
  for (Map.Entry<String, List<JavaMethodDescriptor>> entry : clumper.getStaticAnnotatedMethods().entrySet()) {
    final String name = entry.getKey();
    final List<JavaMethodDescriptor> methods = entry.getValue();
    target.defineAnnotatedMethod(name, methods, methodFactory);
    addBoundMethodsUnlessOmitted(runtime, name, methods);
  }
  for (Map.Entry<String, List<JavaMethodDescriptor>> entry : clumper.getAnnotatedMethods().entrySet()) {
    final String name = entry.getKey();
    final List<JavaMethodDescriptor> methods = entry.getValue();
    target.defineAnnotatedMethod(name, methods, methodFactory);
    addBoundMethodsUnlessOmitted(runtime, name, methods);
  }
}

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

clsmod.defineAnnotatedMethod(entry.getKey(), entry.getValue(), methodFactory);
for (JavaMethodDescriptor desc : entry.getValue()) {
  if (!desc.anno.omit()) runtime.addBoundMethod(desc.declaringClassName, desc.name, entry.getKey());
clsmod.defineAnnotatedMethod(entry.getKey(), entry.getValue(), methodFactory);
for (JavaMethodDescriptor desc : entry.getValue()) {
  if (!desc.anno.omit()) runtime.addBoundMethod(desc.declaringClassName, desc.name, entry.getKey());
clsmod.defineAnnotatedMethod(entry.getKey(), entry.getValue(), methodFactory);
for (JavaMethodDescriptor desc : entry.getValue()) {
  if (!desc.anno.omit()) runtime.addBoundMethod(desc.declaringClassName, desc.name, entry.getKey());
clsmod.defineAnnotatedMethod(entry.getKey(), entry.getValue(), methodFactory);
for (JavaMethodDescriptor desc : entry.getValue()) {
  if (!desc.anno.omit()) runtime.addBoundMethod(desc.declaringClassName, desc.name, entry.getKey());
clsmod.defineAnnotatedMethod(entry.getKey(), entry.getValue(), methodFactory);
for (JavaMethodDescriptor desc : entry.getValue()) {
  if (!desc.anno.omit()) runtime.addBoundMethod(desc.declaringClassName, desc.name, entry.getKey());
clsmod.defineAnnotatedMethod(entry.getKey(), entry.getValue(), methodFactory);
for (JavaMethodDescriptor desc : entry.getValue()) {
  if (!desc.anno.omit()) runtime.addBoundMethod(desc.declaringClassName, desc.name, entry.getKey());
clsmod.defineAnnotatedMethod(entry.getKey(), entry.getValue(), methodFactory);
for (JavaMethodDescriptor desc : entry.getValue()) {
  if (!desc.anno.omit()) runtime.addBoundMethod(desc.declaringClassName, desc.name, entry.getKey());
clsmod.defineAnnotatedMethod(entry.getKey(), entry.getValue(), methodFactory);

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

public boolean defineAnnotatedMethod(String name, List<JavaMethodDescriptor> methods, MethodFactory methodFactory) {
  JavaMethodDescriptor desc = methods.get(0);
  if (methods.size() == 1) {
    return defineAnnotatedMethod(name, desc, methodFactory);
  } else {
    CompatVersion compatVersion = getRuntime().getInstanceConfig().getCompatVersion();
    if (shouldBindMethod(compatVersion, desc.anno.compat())) {
      DynamicMethod dynamicMethod = methodFactory.getAnnotatedMethod(this, methods);
      define(this, desc, name, dynamicMethod);
    
      return true;
    }
    
    return false;
  }
}

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

clsmod.defineAnnotatedMethod(entry.getKey(), entry.getValue(), methodFactory);
for (JavaMethodDescriptor desc : entry.getValue()) {
  if (!desc.anno.omit()) runtime.addBoundMethod(desc.declaringClassName, desc.name, entry.getKey());
clsmod.defineAnnotatedMethod(entry.getKey(), entry.getValue(), methodFactory);
for (JavaMethodDescriptor desc : entry.getValue()) {
  if (!desc.anno.omit()) runtime.addBoundMethod(desc.declaringClassName, desc.name, entry.getKey());
clsmod.defineAnnotatedMethod(entry.getKey(), entry.getValue(), methodFactory);
for (JavaMethodDescriptor desc : entry.getValue()) {
  if (!desc.anno.omit()) runtime.addBoundMethod(desc.declaringClassName, desc.name, entry.getKey());
clsmod.defineAnnotatedMethod(entry.getKey(), entry.getValue(), methodFactory);
for (JavaMethodDescriptor desc : entry.getValue()) {
  if (!desc.anno.omit()) runtime.addBoundMethod(desc.declaringClassName, desc.name, entry.getKey());
clsmod.defineAnnotatedMethod(entry.getKey(), entry.getValue(), methodFactory);
for (JavaMethodDescriptor desc : entry.getValue()) {
  if (!desc.anno.omit()) runtime.addBoundMethod(desc.declaringClassName, desc.name, entry.getKey());
clsmod.defineAnnotatedMethod(entry.getKey(), entry.getValue(), methodFactory);
for (JavaMethodDescriptor desc : entry.getValue()) {
  if (!desc.anno.omit()) runtime.addBoundMethod(desc.declaringClassName, desc.name, entry.getKey());
clsmod.defineAnnotatedMethod(entry.getKey(), entry.getValue(), methodFactory);
for (JavaMethodDescriptor desc : entry.getValue()) {
  if (!desc.anno.omit()) runtime.addBoundMethod(desc.declaringClassName, desc.name, entry.getKey());
clsmod.defineAnnotatedMethod(entry.getKey(), entry.getValue(), methodFactory);

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

public boolean defineAnnotatedMethod(String name, List<JavaMethodDescriptor> methods, MethodFactory methodFactory) {
  JavaMethodDescriptor desc = methods.get(0);
  if (methods.size() == 1) {
    return defineAnnotatedMethod(name, desc, methodFactory);
  } else {
    CompatVersion compatVersion = getRuntime().getInstanceConfig().getCompatVersion();
    if (shouldBindMethod(compatVersion, desc.anno.compat())) {
      DynamicMethod dynamicMethod = methodFactory.getAnnotatedMethod(this, methods);
      define(this, desc, name, dynamicMethod);
    
      return true;
    }
    
    return false;
  }
}

相关文章

微信公众号

最新文章

更多

RubyModule类方法