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

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

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

RubyModule.dup介绍

暂无

代码示例

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

RubyClass superClass = null;
if (clazz.isInterface()) {
  proxy = (RubyModule) runtime.getJavaSupport().getJavaInterfaceTemplate().dup();
} else {
  if (clazz.isArray()) {

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

RubyClass superClass = null;
if (clazz.isInterface()) {
  proxy = (RubyModule) runtime.getJavaSupport().getJavaInterfaceTemplate().dup();
} else {
  if (clazz.isArray()) {

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

private static RubyModule createPackageModule(RubyModule parent, String name, String packageString) {
  Ruby runtime = parent.getRuntime();
  RubyModule packageModule = (RubyModule) runtime.getJavaSupport().getPackageModuleTemplate().dup();
  packageModule.setInstanceVariable("@package_name", runtime.newString(
      packageString.length() > 0 ? packageString + '.' : packageString));
  // this is where we'll get connected when classes are opened using
  // package module syntax.
  packageModule.addClassProvider(JAVA_PACKAGE_CLASS_PROVIDER);
  parent.const_set(runtime.newSymbol(name), packageModule);
  MetaClass metaClass = (MetaClass) packageModule.getMetaClass();
  metaClass.setAttached(packageModule);
  return packageModule;
}
private static final Pattern CAMEL_CASE_PACKAGE_SPLITTER = Pattern.compile("([a-z][0-9]*)([A-Z])");

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

private static RubyModule createPackageModule(RubyModule parent, String name, String packageString) {
  Ruby runtime = parent.getRuntime();
  RubyModule packageModule = (RubyModule) runtime.getJavaSupport().getPackageModuleTemplate().dup();
  packageModule.setInstanceVariable("@package_name", runtime.newString(
      packageString.length() > 0 ? packageString + '.' : packageString));
  // this is where we'll get connected when classes are opened using
  // package module syntax.
  packageModule.addClassProvider(JAVA_PACKAGE_CLASS_PROVIDER);
  parent.const_set(runtime.newSymbol(name), packageModule);
  MetaClass metaClass = (MetaClass) packageModule.getMetaClass();
  metaClass.setAttached(packageModule);
  return packageModule;
}
private static final Pattern CAMEL_CASE_PACKAGE_SPLITTER = Pattern.compile("([a-z][0-9]*)([A-Z])");

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

public static RubyModule getInterfaceModule(Ruby runtime, JavaClass javaClass) {
  if (!javaClass.javaClass().isInterface()) {
    throw runtime.newArgumentError(javaClass.toString() + " is not an interface");
  }
  RubyModule interfaceModule;
  if ((interfaceModule = javaClass.getProxyModule()) != null) {
    return interfaceModule;
  }
  javaClass.lockProxy();
  try {
    if ((interfaceModule = javaClass.getProxyModule()) == null) {
      interfaceModule = (RubyModule) runtime.getJavaSupport().getJavaInterfaceTemplate().dup();
      interfaceModule.setInstanceVariable("@java_class", javaClass);
      javaClass.setupInterfaceModule(interfaceModule);
      // include any interfaces we extend
      Class<?>[] extended = javaClass.javaClass().getInterfaces();
      for (int i = extended.length; --i >= 0;) {
        JavaClass extendedClass = JavaClass.get(runtime, extended[i]);
        RubyModule extModule = getInterfaceModule(runtime, extendedClass);
        interfaceModule.includeModule(extModule);
      }
      addToJavaPackageModule(interfaceModule, javaClass);
    }
  } finally {
    javaClass.unlockProxy();
  }
  return interfaceModule;
}

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

public static RubyModule getInterfaceModule(Ruby runtime, JavaClass javaClass) {
  if (!javaClass.javaClass().isInterface()) {
    throw runtime.newArgumentError(javaClass.toString() + " is not an interface");
  }
  RubyModule interfaceModule;
  if ((interfaceModule = javaClass.getProxyModule()) != null) {
    return interfaceModule;
  }
  javaClass.lockProxy();
  try {
    if ((interfaceModule = javaClass.getProxyModule()) == null) {
      interfaceModule = (RubyModule) runtime.getJavaSupport().getJavaInterfaceTemplate().dup();
      interfaceModule.setInstanceVariable("@java_class", javaClass);
      javaClass.setupInterfaceModule(interfaceModule);
      // include any interfaces we extend
      Class<?>[] extended = javaClass.javaClass().getInterfaces();
      for (int i = extended.length; --i >= 0;) {
        JavaClass extendedClass = JavaClass.get(runtime, extended[i]);
        RubyModule extModule = getInterfaceModule(runtime, extendedClass);
        interfaceModule.includeModule(extModule);
      }
      addToJavaPackageModule(interfaceModule, javaClass);
    }
  } finally {
    javaClass.unlockProxy();
  }
  return interfaceModule;
}

相关文章

微信公众号

最新文章

更多

RubyModule类方法