@JRubyMethod public static IRubyObject to_java(ThreadContext context, final IRubyObject fromObject) { if ( fromObject instanceof RubyArray ) { final JavaClass targetType = context.runtime.getJavaSupport().getObjectJavaClass(); return targetType.javaArrayFromRubyArray(context, (RubyArray) fromObject); } return Java.getInstance(context.runtime, fromObject.toJava(Object.class)); }
@JRubyMethod public static IRubyObject to_java(ThreadContext context, final IRubyObject fromObject) { if ( fromObject instanceof RubyArray ) { final JavaClass targetType = context.runtime.getJavaSupport().getObjectJavaClass(); return targetType.javaArrayFromRubyArray(context, (RubyArray) fromObject); } return Java.getInstance(context.runtime, fromObject.toJava(Object.class)); }
@JRubyMethod public static IRubyObject to_java(ThreadContext context, IRubyObject fromObject) { if (fromObject instanceof RubyArray) { return context.runtime.getJavaSupport().getObjectJavaClass().javaArrayFromRubyArray(context, fromObject); } else { return Java.getInstance(context.runtime, fromObject.toJava(Object.class)); } }
@JRubyMethod public static IRubyObject to_java(ThreadContext context, IRubyObject fromObject) { if (fromObject instanceof RubyArray) { return context.runtime.getJavaSupport().getObjectJavaClass().javaArrayFromRubyArray(context, fromObject); } else { return Java.getInstance(context.runtime, fromObject.toJava(Object.class)); } }
public void load(Ruby runtime, boolean wrap) throws IOException { createJavaModule(runtime); RubyModule jpmt = runtime.defineModule("JavaPackageModuleTemplate"); jpmt.getSingletonClass().setSuperClass(new BlankSlateWrapper(runtime, jpmt.getMetaClass().getSuperClass(), runtime.getKernel())); runtime.getLoadService().require("jruby/java"); // rewite ArrayJavaProxy superclass to point at Object, so it inherits Object behaviors RubyClass ajp = runtime.getClass("ArrayJavaProxy"); ajp.setSuperClass(runtime.getJavaSupport().getObjectJavaClass().getProxyClass()); ajp.includeModule(runtime.getEnumerable()); RubyClassPathVariable.createClassPathVariable(runtime); runtime.setJavaProxyClassFactory(JavaProxyClassFactory.createFactory()); // modify ENV_JAVA to be a read/write version Map systemProps = new SystemPropertiesMap(); runtime.getObject().setConstantQuiet( "ENV_JAVA", new MapJavaProxy( runtime, (RubyClass)Java.getProxyClass(runtime, SystemPropertiesMap.class), systemProps)); }
public void load(Ruby runtime, boolean wrap) throws IOException { createJavaModule(runtime); RubyModule jpmt = runtime.defineModule("JavaPackageModuleTemplate"); jpmt.getSingletonClass().setSuperClass(new BlankSlateWrapper(runtime, jpmt.getMetaClass().getSuperClass(), runtime.getKernel())); runtime.getLoadService().require("jruby/java"); // rewite ArrayJavaProxy superclass to point at Object, so it inherits Object behaviors RubyClass ajp = runtime.getClass("ArrayJavaProxy"); ajp.setSuperClass(runtime.getJavaSupport().getObjectJavaClass().getProxyClass()); ajp.includeModule(runtime.getEnumerable()); RubyClassPathVariable.createClassPathVariable(runtime); runtime.setJavaProxyClassFactory(JavaProxyClassFactory.createFactory()); // modify ENV_JAVA to be a read/write version Map systemProps = new SystemPropertiesMap(); runtime.getObject().setConstantQuiet( "ENV_JAVA", new MapJavaProxy( runtime, (RubyClass)Java.getProxyClass(runtime, SystemPropertiesMap.class), systemProps)); }
@Override public void load(Ruby runtime, boolean wrap) { final RubyModule Java = createJavaModule(runtime); JavaPackage.createJavaPackageClass(runtime, Java); org.jruby.javasupport.ext.Kernel.define(runtime); org.jruby.javasupport.ext.JavaLang.define(runtime); org.jruby.javasupport.ext.JavaLangReflect.define(runtime); org.jruby.javasupport.ext.JavaUtil.define(runtime); org.jruby.javasupport.ext.JavaUtilRegex.define(runtime); org.jruby.javasupport.ext.JavaIo.define(runtime); org.jruby.javasupport.ext.JavaNet.define(runtime); // load Ruby parts of the 'java' library runtime.getLoadService().load("jruby/java.rb", false); // rewire ArrayJavaProxy superclass to point at Object, so it inherits Object behaviors final RubyClass ArrayJavaProxy = runtime.getClass("ArrayJavaProxy"); ArrayJavaProxy.setSuperClass(runtime.getJavaSupport().getObjectJavaClass().getProxyClass()); ArrayJavaProxy.includeModule(runtime.getEnumerable()); RubyClassPathVariable.createClassPathVariable(runtime); runtime.setJavaProxyClassFactory(JavaProxyClassFactory.createFactory()); // modify ENV_JAVA to be a read/write version final Map systemProperties = new SystemPropertiesMap(); RubyClass proxyClass = (RubyClass) getProxyClass(runtime, SystemPropertiesMap.class); runtime.getObject().setConstantQuiet("ENV_JAVA", new MapJavaProxy(runtime, proxyClass, systemProperties)); }
@Override public void load(Ruby runtime, boolean wrap) { final RubyModule Java = createJavaModule(runtime); JavaPackage.createJavaPackageClass(runtime, Java); org.jruby.javasupport.ext.Kernel.define(runtime); org.jruby.javasupport.ext.JavaLang.define(runtime); org.jruby.javasupport.ext.JavaLangReflect.define(runtime); org.jruby.javasupport.ext.JavaUtil.define(runtime); org.jruby.javasupport.ext.JavaUtilRegex.define(runtime); org.jruby.javasupport.ext.JavaIo.define(runtime); org.jruby.javasupport.ext.JavaNet.define(runtime); // load Ruby parts of the 'java' library runtime.getLoadService().load("jruby/java.rb", false); // rewire ArrayJavaProxy superclass to point at Object, so it inherits Object behaviors final RubyClass ArrayJavaProxy = runtime.getClass("ArrayJavaProxy"); ArrayJavaProxy.setSuperClass(runtime.getJavaSupport().getObjectJavaClass().getProxyClass()); ArrayJavaProxy.includeModule(runtime.getEnumerable()); RubyClassPathVariable.createClassPathVariable(runtime); runtime.setJavaProxyClassFactory(JavaProxyClassFactory.createFactory()); // modify ENV_JAVA to be a read/write version final Map systemProperties = new SystemPropertiesMap(); RubyClass proxyClass = (RubyClass) getProxyClass(runtime, SystemPropertiesMap.class); runtime.getObject().setConstantQuiet("ENV_JAVA", new MapJavaProxy(runtime, proxyClass, systemProperties)); }