public static RubyClass createJavaProxy(ThreadContext context) { final Ruby runtime = context.runtime; RubyClass JavaProxy = runtime.defineClass("JavaProxy", runtime.getObject(), ALLOCATOR); JavaProxy.getSingletonClass().addReadWriteAttribute(context, "java_class"); JavaProxy.defineAnnotatedMethods(JavaProxy.class); JavaProxy.includeModule(runtime.getModule("JavaProxyMethods")); return JavaProxy; }
public static RubyClass createJavaProxy(ThreadContext context) { final Ruby runtime = context.runtime; RubyClass JavaProxy = runtime.defineClass("JavaProxy", runtime.getObject(), ALLOCATOR); JavaProxy.getSingletonClass().addReadWriteAttribute(context, "java_class"); JavaProxy.defineAnnotatedMethods(JavaProxy.class); JavaProxy.includeModule(runtime.getModule("JavaProxyMethods")); return JavaProxy; }
public static RubyClass createJavaProxy(ThreadContext context) { Ruby runtime = context.runtime; RubyClass javaProxy = runtime.defineClass("JavaProxy", runtime.getObject(), new ObjectAllocator() { public IRubyObject allocate(Ruby runtime, RubyClass klazz) { return new JavaProxy(runtime, klazz); } }); RubyClass singleton = javaProxy.getSingletonClass(); singleton.addReadWriteAttribute(context, "java_class"); javaProxy.defineAnnotatedMethods(JavaProxy.class); javaProxy.includeModule(runtime.getModule("JavaProxyMethods")); return javaProxy; }
public static RubyClass createJavaProxy(ThreadContext context) { Ruby runtime = context.runtime; RubyClass javaProxy = runtime.defineClass("JavaProxy", runtime.getObject(), new ObjectAllocator() { public IRubyObject allocate(Ruby runtime, RubyClass klazz) { return new JavaProxy(runtime, klazz); } }); RubyClass singleton = javaProxy.getSingletonClass(); singleton.addReadWriteAttribute(context, "java_class"); javaProxy.defineAnnotatedMethods(JavaProxy.class); javaProxy.includeModule(runtime.getModule("JavaProxyMethods")); return javaProxy; }
private static void setupJavaSubclass(final ThreadContext context, final RubyClass subclass) { subclass.setInstanceVariable("@java_proxy_class", context.nil); // Subclasses of Java classes can safely use ivars, so we set this to silence warnings subclass.setCacheProxy(true); final RubyClass subclassSingleton = subclass.getSingletonClass(); subclassSingleton.addReadWriteAttribute(context, "java_proxy_class"); subclassSingleton.addMethod("java_interfaces", new JavaMethodZero(subclassSingleton, PUBLIC, "java_interfaces") { @Override public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name) { IRubyObject javaInterfaces = self.getInstanceVariables().getInstanceVariable("@java_interfaces"); if (javaInterfaces != null) return javaInterfaces.dup(); return context.nil; } }); subclass.addMethod("__jcreate!", new JCreateMethod(subclassSingleton)); }
private static void setupJavaSubclass(final ThreadContext context, final RubyClass subclass) { subclass.setInstanceVariable("@java_proxy_class", context.nil); // Subclasses of Java classes can safely use ivars, so we set this to silence warnings subclass.setCacheProxy(true); final RubyClass subclassSingleton = subclass.getSingletonClass(); subclassSingleton.addReadWriteAttribute(context, "java_proxy_class"); subclassSingleton.addMethod("java_interfaces", new JavaMethodZero(subclassSingleton, PUBLIC, "java_interfaces") { @Override public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name) { IRubyObject javaInterfaces = self.getInstanceVariables().getInstanceVariable("@java_interfaces"); if (javaInterfaces != null) return javaInterfaces.dup(); return context.nil; } }); subclass.addMethod("__jcreate!", new JCreateMethod(subclassSingleton)); }
cResolver.addReadWriteAttribute(ctx, "tags"); cParser.addReadWriteAttribute(ctx, "options"); cParser.addReadWriteAttribute(ctx, "resolver"); cParser.addReadWriteAttribute(ctx, "input"); cNode.addReadWriteAttribute(ctx, "emitter"); cNode.addReadWriteAttribute(ctx, "resolver"); cNode.addReadAttribute(ctx, "kind"); cNode.addReadAttribute(ctx, "type_id"); cPrivateType.addReadWriteAttribute(ctx, "type_id"); cPrivateType.addReadWriteAttribute(ctx, "value"); cDomainType.addReadWriteAttribute(ctx, "domain"); cDomainType.addReadWriteAttribute(ctx, "type_id"); cDomainType.addReadWriteAttribute(ctx, "value"); cYObject.addReadWriteAttribute(ctx, "class"); cYObject.addReadWriteAttribute(ctx, "ivars"); cBadAlias.addReadWriteAttribute(ctx, "name"); cBadAlias.includeModule(runtime.getComparable()); cOut.addReadWriteAttribute(ctx, "emitter"); cEmitter.addReadWriteAttribute(ctx, "level");
subclassSingleton.addReadWriteAttribute(context, "java_proxy_class"); subclassSingleton.addMethod("java_interfaces", new JavaMethodZero(subclassSingleton, PUBLIC) { @Override
subclassSingleton.addReadWriteAttribute(context, "java_proxy_class"); subclassSingleton.addMethod("java_interfaces", new JavaMethodZero(subclassSingleton, PUBLIC) { @Override