org.jruby.Ruby.getJavaProxyClassFactory()方法的使用及代码示例

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

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

Ruby.getJavaProxyClassFactory介绍

暂无

代码示例

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

public static JavaProxyClass getProxyClass(Ruby runtime, Class superClass,
    Class[] interfaces, Set names) throws InvocationTargetException {
  Ruby save = runtimeTLS.get();
  runtimeTLS.set(runtime);
  try {
    ClassLoader loader = runtime.getJRubyClassLoader();
    
    return runtime.getJavaProxyClassFactory().newProxyClass(runtime, loader, null, superClass, interfaces, names);
  } finally {
    runtimeTLS.set(save);
  }
}

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

public static JavaProxyClass getProxyClass(Ruby runtime, Class superClass,
    Class[] interfaces, Set names) throws InvocationTargetException {
  Ruby save = runtimeTLS.get();
  runtimeTLS.set(runtime);
  try {
    ClassLoader loader = runtime.getJRubyClassLoader();
    
    return runtime.getJavaProxyClassFactory().newProxyClass(runtime, loader, null, superClass, interfaces, names);
  } finally {
    runtimeTLS.set(save);
  }
}

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

/**
 * Returns a new (generated) proxy class based on arguments.
 * @param runtime
 * @param superClass
 * @param interfaces
 * @param names
 * @return proxy class
 * @throws InvocationTargetException
 */
public static JavaProxyClass newProxyClass(final Ruby runtime, Class superClass,
  Class[] interfaces, Set<String> names) throws InvocationTargetException {
  if (superClass == null) superClass = Object.class;
  if (interfaces == null) interfaces = EMPTY_CLASS_ARRAY;
  if (names == null) names = Collections.EMPTY_SET; // so we can assume names != null
  // NOTE: currently we regenerate proxy classes when a Ruby method is added on the type
  JavaSupport.ProxyClassKey classKey = JavaSupport.ProxyClassKey.getInstance(superClass, interfaces, names);
  JavaProxyClass proxyClass = JavaSupportImpl.fetchJavaProxyClass(runtime, classKey);
  if ( proxyClass != null ) return proxyClass;
  final ClassLoader loader = runtime.getJRubyClassLoader();
  proxyClass = runtime.getJavaProxyClassFactory().genProxyClass(runtime, (ClassDefiningClassLoader) loader, null, superClass, interfaces, names);
  return JavaSupportImpl.saveJavaProxyClass(runtime, classKey, proxyClass);
}

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

/**
 * Returns a new (generated) proxy class based on arguments.
 * @param runtime
 * @param superClass
 * @param interfaces
 * @param names
 * @return proxy class
 * @throws InvocationTargetException
 */
public static JavaProxyClass newProxyClass(final Ruby runtime, Class superClass,
  Class[] interfaces, Set<String> names) throws InvocationTargetException {
  if (superClass == null) superClass = Object.class;
  if (interfaces == null) interfaces = EMPTY_CLASS_ARRAY;
  if (names == null) names = Collections.EMPTY_SET; // so we can assume names != null
  // NOTE: currently we regenerate proxy classes when a Ruby method is added on the type
  JavaSupport.ProxyClassKey classKey = JavaSupport.ProxyClassKey.getInstance(superClass, interfaces, names);
  JavaProxyClass proxyClass = JavaSupportImpl.fetchJavaProxyClass(runtime, classKey);
  if ( proxyClass != null ) return proxyClass;
  final ClassLoader loader = runtime.getJRubyClassLoader();
  proxyClass = runtime.getJavaProxyClassFactory().genProxyClass(runtime, (ClassDefiningClassLoader) loader, null, superClass, interfaces, names);
  return JavaSupportImpl.saveJavaProxyClass(runtime, classKey, proxyClass);
}

相关文章

微信公众号

最新文章

更多

Ruby类方法