public class org.jruby.java.proxies.JavaInterfaceTemplate
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.jruby.java.proxies.JavaInterfaceTemplate
super_class: java.lang.Object
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/java/proxies/JavaInterfaceTemplate;
public static org.jruby.RubyModule createJavaInterfaceTemplateModule(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyModule;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
astore 1
start local 1 1: aload 1
ldc "JavaInterfaceTemplate"
invokevirtual org.jruby.Ruby.defineModule:(Ljava/lang/String;)Lorg/jruby/RubyModule;
astore 2
start local 2 2: aload 2
invokevirtual org.jruby.RubyModule.getSingletonClass:()Lorg/jruby/RubyClass;
astore 3
start local 3 3: aload 3
aload 0
ldc "java_class"
invokevirtual org.jruby.RubyClass.addReadAttribute:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;)V
4: aload 3
ldc Lorg/jruby/java/proxies/JavaInterfaceTemplate;
invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
5: aload 2
ldc Lorg/jruby/java/proxies/JavaProxy$ClassMethods;
invokevirtual org.jruby.RubyModule.defineAnnotatedMethods:(Ljava/lang/Class;)V
6: aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 context Lorg/jruby/runtime/ThreadContext;
1 7 1 runtime Lorg/jruby/Ruby;
2 7 2 JavaInterfaceTemplate Lorg/jruby/RubyModule;
3 7 3 singleton Lorg/jruby/RubyClass;
MethodParameters:
Name Flags
context
public static org.jruby.runtime.builtin.IRubyObject implement(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 2
instanceof org.jruby.RubyModule
ifne 3
1: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
astore 3
start local 3 2: aload 3
aload 2
aload 3
invokevirtual org.jruby.Ruby.getModule:()Lorg/jruby/RubyClass;
invokevirtual org.jruby.Ruby.newTypeError:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 3 3: StackMap locals:
StackMap stack:
aload 2
checkcast org.jruby.RubyModule
astore 3
start local 3 4: aload 1
invokestatic org.jruby.java.proxies.JavaInterfaceTemplate.getJavaClassForInterface:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/JavaClass;
astore 4
start local 4 5: aload 4
invokevirtual org.jruby.javasupport.JavaClass.javaClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getMethods:()[Ljava/lang/reflect/Method;
astore 5
start local 5 6: new org.jruby.java.proxies.JavaInterfaceTemplate$DummyMethodImpl
dup
aload 3
invokespecial org.jruby.java.proxies.JavaInterfaceTemplate$DummyMethodImpl.<init>:(Lorg/jruby/RubyModule;)V
astore 6
start local 6 7: iconst_0
istore 7
start local 7 8: goto 14
9: StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.RubyModule org.jruby.javasupport.JavaClass java.lang.reflect.Method[] org.jruby.internal.runtime.methods.DynamicMethod int
StackMap stack:
aload 5
iload 7
aaload
astore 8
start local 8 10: aload 8
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
astore 9
start local 9 11: aload 3
aload 9
invokevirtual org.jruby.RubyModule.searchMethod:(Ljava/lang/String;)Lorg/jruby/internal/runtime/methods/DynamicMethod;
invokevirtual org.jruby.internal.runtime.methods.DynamicMethod.isUndefined:()Z
ifeq 13
12: aload 3
aload 9
aload 6
invokevirtual org.jruby.RubyModule.addMethod:(Ljava/lang/String;Lorg/jruby/internal/runtime/methods/DynamicMethod;)V
end local 9 end local 8 13: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
14: iload 7
aload 5
arraylength
if_icmplt 9
end local 7 15: aload 0
getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 context Lorg/jruby/runtime/ThreadContext;
0 16 1 self Lorg/jruby/runtime/builtin/IRubyObject;
0 16 2 clazz Lorg/jruby/runtime/builtin/IRubyObject;
2 3 3 runtime Lorg/jruby/Ruby;
4 16 3 targetModule Lorg/jruby/RubyModule;
5 16 4 javaClass Lorg/jruby/javasupport/JavaClass;
6 16 5 javaInstanceMethods [Ljava/lang/reflect/Method;
7 16 6 dummyMethodImpl Lorg/jruby/internal/runtime/methods/DynamicMethod;
8 15 7 i I
10 13 8 javaMethod Ljava/lang/reflect/Method;
11 13 9 name Ljava/lang/String;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
org.jruby.anno.JRubyMethod(visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
MethodParameters:
Name Flags
context
self
clazz
public static org.jruby.runtime.builtin.IRubyObject append_features(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
instanceof org.jruby.RubyClass
ifeq 3
1: aload 0
aload 1
aload 2
checkcast org.jruby.RubyClass
invokestatic org.jruby.java.proxies.JavaInterfaceTemplate.appendFeaturesToClass:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;)V
2: goto 7
3: StackMap locals:
StackMap stack:
aload 2
instanceof org.jruby.RubyModule
ifeq 6
4: aload 0
aload 1
aload 2
checkcast org.jruby.RubyModule
invokestatic org.jruby.java.proxies.JavaInterfaceTemplate.appendFeaturesToModule:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;)V
5: goto 7
6: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
new java.lang.StringBuilder
dup
ldc "received "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ", expected Class/Module"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
7: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
aload 3
invokestatic org.jruby.runtime.Helpers.invokeSuper:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 context Lorg/jruby/runtime/ThreadContext;
0 8 1 self Lorg/jruby/runtime/builtin/IRubyObject;
0 8 2 clazz Lorg/jruby/runtime/builtin/IRubyObject;
0 8 3 block Lorg/jruby/runtime/Block;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(frame = true)
MethodParameters:
Name Flags
context
self
clazz
block
private static void appendFeaturesToClass(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyClass);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
astore 3
start local 3 1: aload 2
aload 3
invokestatic org.jruby.java.proxies.JavaInterfaceTemplate.checkAlreadyReified:(Lorg/jruby/RubyClass;Lorg/jruby/Ruby;)V
2: aload 1
invokestatic org.jruby.java.proxies.JavaInterfaceTemplate.getJavaClassForInterface:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/JavaClass;
astore 4
start local 4 3: aload 2
ldc "@java_interfaces"
invokevirtual org.jruby.RubyClass.hasInstanceVariable:(Ljava/lang/String;)Z
ifne 8
4: aload 3
aload 4
invokestatic org.jruby.RubyArray.newArray:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
astore 5
start local 5 5: aload 2
ldc "@java_interfaces"
aload 5
invokevirtual org.jruby.RubyClass.setInstanceVariable:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
pop
6: aload 0
aload 2
invokestatic org.jruby.java.proxies.JavaInterfaceTemplate.initInterfaceImplMethods:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyClass;)V
7: goto 11
end local 5 8: StackMap locals: org.jruby.Ruby org.jruby.javasupport.JavaClass
StackMap stack:
aload 2
ldc "@java_interfaces"
invokevirtual org.jruby.RubyClass.getInstanceVariable:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
checkcast org.jruby.RubyArray
astore 5
start local 5 9: aload 5
invokevirtual org.jruby.RubyArray.isFrozen:()Z
ifne 11
aload 5
aload 0
aload 4
invokevirtual org.jruby.RubyArray.includes:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Z
ifne 11
10: aload 5
aload 4
invokevirtual org.jruby.RubyArray.append:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
pop
11: StackMap locals: org.jruby.RubyArray
StackMap stack:
return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 context Lorg/jruby/runtime/ThreadContext;
0 12 1 self Lorg/jruby/runtime/builtin/IRubyObject;
0 12 2 clazz Lorg/jruby/RubyClass;
1 12 3 runtime Lorg/jruby/Ruby;
3 12 4 javaClass Lorg/jruby/javasupport/JavaClass;
5 8 5 javaInterfaces Lorg/jruby/RubyArray;
9 12 5 javaInterfaces Lorg/jruby/RubyArray;
MethodParameters:
Name Flags
context
self final
clazz final
private static void checkAlreadyReified(org.jruby.RubyClass, org.jruby.Ruby);
descriptor: (Lorg/jruby/RubyClass;Lorg/jruby/Ruby;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: getstatic org.jruby.javasupport.Java.NEW_STYLE_EXTENSION:Z
ifeq 1
aload 0
invokevirtual org.jruby.RubyClass.getReifiedClass:()Ljava/lang/Class;
ifnonnull 6
1: StackMap locals:
StackMap stack:
aload 0
ldc "@java_class"
invokevirtual org.jruby.RubyClass.hasInstanceVariable:(Ljava/lang/String;)Z
ifeq 4
2: aload 0
ldc "@java_class"
invokevirtual org.jruby.RubyClass.getInstanceVariable:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
ifeq 4
3: aload 0
invokevirtual org.jruby.RubyClass.getSingletonClass:()Lorg/jruby/RubyClass;
ldc "java_proxy_class"
iconst_0
invokevirtual org.jruby.RubyClass.isMethodBound:(Ljava/lang/String;Z)Z
ifeq 6
4: StackMap locals:
StackMap stack:
aload 0
ldc "@java_proxy_class"
invokevirtual org.jruby.RubyClass.hasInstanceVariable:(Ljava/lang/String;)Z
ifeq 7
5: aload 0
ldc "@java_proxy_class"
invokevirtual org.jruby.RubyClass.getInstanceVariable:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
ifeq 7
6: StackMap locals:
StackMap stack:
aload 1
ldc "can not add Java interface to existing Java class"
invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 clazz Lorg/jruby/RubyClass;
0 8 1 runtime Lorg/jruby/Ruby;
Exceptions:
throws org.jruby.exceptions.RaiseException
MethodParameters:
Name Flags
clazz final
runtime
private static void initInterfaceImplMethods(org.jruby.runtime.ThreadContext, org.jruby.RubyClass);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyClass;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=4, args_size=2
start local 0 start local 1 0: aload 1
ldc "__jcreate!"
iconst_0
invokevirtual org.jruby.RubyClass.isMethodBound:(Ljava/lang/String;Z)Z
ifne 12
aload 1
ldc "__jcreate_meta!"
iconst_0
invokevirtual org.jruby.RubyClass.isMethodBound:(Ljava/lang/String;Z)Z
ifne 12
1: aload 1
invokevirtual org.jruby.RubyClass.getSingletonClass:()Lorg/jruby/RubyClass;
astore 2
start local 2 2: aload 2
aload 0
ldc "java_interfaces"
invokevirtual org.jruby.RubyClass.addReadAttribute:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;)V
3: getstatic org.jruby.javasupport.Java.NEW_STYLE_EXTENSION:Z
ifne 4
aload 1
invokevirtual org.jruby.RubyClass.getSuperClass:()Lorg/jruby/RubyClass;
invokevirtual org.jruby.RubyClass.getRealClass:()Lorg/jruby/RubyClass;
ldc "@java_class"
invokevirtual org.jruby.RubyClass.hasInstanceVariable:(Ljava/lang/String;)Z
ifne 5
4: StackMap locals: org.jruby.RubyClass
StackMap stack:
getstatic org.jruby.RubyInstanceConfig.INTERFACES_USE_PROXY:Z
ifeq 9
5: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.jruby.RubyClass.getAllocator:()Lorg/jruby/runtime/ObjectAllocator;
astore 3
start local 3 6: aload 1
new org.jruby.java.proxies.JavaInterfaceTemplate$1
dup
aload 3
invokespecial org.jruby.java.proxies.JavaInterfaceTemplate$1.<init>:(Lorg/jruby/runtime/ObjectAllocator;)V
invokevirtual org.jruby.RubyClass.setAllocator:(Lorg/jruby/runtime/ObjectAllocator;)V
7: aload 1
ldc "__jcreate!"
new org.jruby.java.proxies.JavaInterfaceTemplate$InterfaceProxyFactory
dup
aload 1
ldc "__jcreate!"
invokespecial org.jruby.java.proxies.JavaInterfaceTemplate$InterfaceProxyFactory.<init>:(Lorg/jruby/RubyClass;Ljava/lang/String;)V
invokevirtual org.jruby.RubyClass.addMethod:(Ljava/lang/String;Lorg/jruby/internal/runtime/methods/DynamicMethod;)V
end local 3 8: goto 10
9: StackMap locals:
StackMap stack:
aload 1
invokestatic org.jruby.java.proxies.JavaInterfaceTemplate.addRealImplClassNew:(Lorg/jruby/RubyClass;)V
10: StackMap locals:
StackMap stack:
aload 1
ldc "__jcreate_meta!"
new org.jruby.java.proxies.JavaInterfaceTemplate$InterfaceProxyFactory
dup
aload 1
ldc "__jcreate_meta!"
invokespecial org.jruby.java.proxies.JavaInterfaceTemplate$InterfaceProxyFactory.<init>:(Lorg/jruby/RubyClass;Ljava/lang/String;)V
invokevirtual org.jruby.RubyClass.addMethod:(Ljava/lang/String;Lorg/jruby/internal/runtime/methods/DynamicMethod;)V
11: aload 1
ldc "java_class"
new org.jruby.java.proxies.JavaInterfaceTemplate$JavaClassAccessor
dup
aload 1
invokespecial org.jruby.java.proxies.JavaInterfaceTemplate$JavaClassAccessor.<init>:(Lorg/jruby/RubyClass;)V
invokevirtual org.jruby.RubyClass.addMethod:(Ljava/lang/String;Lorg/jruby/internal/runtime/methods/DynamicMethod;)V
end local 2 12: StackMap locals:
StackMap stack:
aload 1
ldc "implement"
iconst_0
invokevirtual org.jruby.RubyClass.isMethodBound:(Ljava/lang/String;Z)Z
ifne 16
13: aload 1
invokevirtual org.jruby.RubyClass.getSingletonClass:()Lorg/jruby/RubyClass;
astore 2
start local 2 14: aload 2
ldc "implement"
new org.jruby.java.proxies.JavaInterfaceTemplate$2
dup
aload 1
getstatic org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;
ldc "implement"
invokespecial org.jruby.java.proxies.JavaInterfaceTemplate$2.<init>:(Lorg/jruby/RubyModule;Lorg/jruby/runtime/Visibility;Ljava/lang/String;)V
invokevirtual org.jruby.RubyClass.addMethod:(Ljava/lang/String;Lorg/jruby/internal/runtime/methods/DynamicMethod;)V
15: aload 2
ldc "implement_all"
new org.jruby.java.proxies.JavaInterfaceTemplate$3
dup
aload 1
getstatic org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;
ldc "implement_all"
invokespecial org.jruby.java.proxies.JavaInterfaceTemplate$3.<init>:(Lorg/jruby/RubyModule;Lorg/jruby/runtime/Visibility;Ljava/lang/String;)V
invokevirtual org.jruby.RubyClass.addMethod:(Ljava/lang/String;Lorg/jruby/internal/runtime/methods/DynamicMethod;)V
end local 2 16: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 context Lorg/jruby/runtime/ThreadContext;
0 17 1 clazz Lorg/jruby/RubyClass;
2 12 2 singleton Lorg/jruby/RubyClass;
6 8 3 proxyAllocator Lorg/jruby/runtime/ObjectAllocator;
14 16 2 singleton Lorg/jruby/RubyClass;
MethodParameters:
Name Flags
context
clazz final
public static void addRealImplClassNew(org.jruby.RubyClass);
descriptor: (Lorg/jruby/RubyClass;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
new org.jruby.java.proxies.JavaInterfaceTemplate$4
dup
invokespecial org.jruby.java.proxies.JavaInterfaceTemplate$4.<init>:()V
invokevirtual org.jruby.RubyClass.setAllocator:(Lorg/jruby/runtime/ObjectAllocator;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 clazz Lorg/jruby/RubyClass;
MethodParameters:
Name Flags
clazz final
private static org.jruby.runtime.builtin.IRubyObject newInterfaceProxy(org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
invokeinterface org.jruby.runtime.builtin.IRubyObject.getMetaClass:()Lorg/jruby/RubyClass;
astore 1
start local 1 1: aload 0
aload 1
invokestatic org.jruby.javasupport.Java.getInterfacesFromRubyClass:(Lorg/jruby/RubyClass;)[Ljava/lang/Class;
invokestatic org.jruby.javasupport.Java.newInterfaceImpl:(Lorg/jruby/runtime/builtin/IRubyObject;[Ljava/lang/Class;)Lorg/jruby/javasupport/JavaObject;
astore 2
start local 2 2: aload 0
aload 0
aload 2
invokestatic org.jruby.javasupport.JavaUtilities.set_java_object:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
pop
3: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 self Lorg/jruby/runtime/builtin/IRubyObject;
1 4 1 current Lorg/jruby/RubyClass;
2 4 2 newObject Lorg/jruby/javasupport/JavaObject;
MethodParameters:
Name Flags
self final
private static void appendFeaturesToModule(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyModule);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
astore 3
start local 3 1: aload 2
invokevirtual org.jruby.RubyModule.getInstanceVariables:()Lorg/jruby/runtime/builtin/InstanceVariables;
ldc "@java_class"
invokeinterface org.jruby.runtime.builtin.InstanceVariables.getInstanceVariable:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
astore 4
start local 4 2: aload 4
ifnull 4
aload 4
invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
ifeq 4
3: aload 3
ldc "can not add Java interface to existing Java interface"
invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
4: StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject
StackMap stack:
aload 2
dup
astore 5
monitorenter
5: aload 1
aload 2
invokestatic org.jruby.java.proxies.JavaInterfaceTemplate.initInterfaceModules:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Z
ifeq 9
6: aload 2
invokevirtual org.jruby.RubyModule.getSingletonClass:()Lorg/jruby/RubyClass;
astore 6
start local 6 7: aload 6
ldc "append_features"
new org.jruby.java.proxies.JavaInterfaceTemplate$AppendFeatures
dup
aload 6
invokespecial org.jruby.java.proxies.JavaInterfaceTemplate$AppendFeatures.<init>:(Lorg/jruby/RubyModule;)V
invokevirtual org.jruby.RubyClass.addMethod:(Ljava/lang/String;Lorg/jruby/internal/runtime/methods/DynamicMethod;)V
end local 6 8: goto 12
9: StackMap locals: org.jruby.RubyModule
StackMap stack:
aload 2
invokestatic org.jruby.java.proxies.JavaInterfaceTemplate.getInterfaceModules:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
astore 6
start local 6 10: aload 6
aload 0
aload 1
invokevirtual org.jruby.RubyArray.includes:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Z
ifne 12
11: aload 6
aload 1
invokevirtual org.jruby.RubyArray.append:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
pop
end local 6 12: StackMap locals:
StackMap stack:
aload 5
monitorexit
13: goto 16
StackMap locals:
StackMap stack: java.lang.Throwable
14: aload 5
monitorexit
15: athrow
16: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 context Lorg/jruby/runtime/ThreadContext;
0 17 1 self Lorg/jruby/runtime/builtin/IRubyObject;
0 17 2 module Lorg/jruby/RubyModule;
1 17 3 runtime Lorg/jruby/Ruby;
2 17 4 java_class Lorg/jruby/runtime/builtin/IRubyObject;
7 8 6 singleton Lorg/jruby/RubyClass;
10 12 6 interfaceModules Lorg/jruby/RubyArray;
Exception table:
from to target type
5 13 14 any
14 15 14 any
MethodParameters:
Name Flags
context
self final
module final
public static org.jruby.runtime.builtin.IRubyObject extended(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokeinterface org.jruby.runtime.builtin.IRubyObject.getSingletonClass:()Lorg/jruby/RubyClass;
astore 3
start local 3 1: aload 3
aload 0
aload 1
invokevirtual org.jruby.RubyClass.include:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyModule;
pop
2: aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 context Lorg/jruby/runtime/ThreadContext;
0 3 1 self Lorg/jruby/runtime/builtin/IRubyObject;
0 3 2 object Lorg/jruby/runtime/builtin/IRubyObject;
1 3 3 singleton Lorg/jruby/RubyClass;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
MethodParameters:
Name Flags
context
self
object
public static org.jruby.runtime.builtin.IRubyObject op_aref(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject[]);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokestatic org.jruby.java.proxies.JavaProxy.op_aref:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 context Lorg/jruby/runtime/ThreadContext;
0 1 1 self Lorg/jruby/runtime/builtin/IRubyObject;
0 1 2 args [Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"[]"}, rest = true)
MethodParameters:
Name Flags
context
self
args
public static org.jruby.runtime.builtin.IRubyObject impl(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject[], org.jruby.runtime.Block);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=19, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
astore 4
start local 4 1: aload 3
invokevirtual org.jruby.runtime.Block.isGiven:()Z
ifne 3
2: aload 4
ldc "block required to call #impl on a Java interface"
invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
3: StackMap locals: org.jruby.Ruby
StackMap stack:
iconst_1
istore 5
start local 5 4: aload 2
arraylength
ifne 6
aconst_null
astore 6
start local 6 5: goto 12
end local 6 6: StackMap locals: int
StackMap stack:
aload 2
arraylength
iconst_1
if_icmpne 10
aload 2
iconst_0
aaload
instanceof org.jruby.RubyBoolean
ifeq 10
7: aload 2
iconst_0
aaload
invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
istore 5
8: aconst_null
astore 6
start local 6 9: goto 12
end local 6 10: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.jruby.runtime.builtin.IRubyObject[].clone:()Ljava/lang/Object;
checkcast org.jruby.runtime.builtin.IRubyObject[]
astore 6
start local 6 11: aload 6
invokestatic java.util.Arrays.sort:([Ljava/lang/Object;)V
12: StackMap locals: org.jruby.runtime.builtin.IRubyObject[]
StackMap stack:
aload 4
aload 4
invokevirtual org.jruby.Ruby.getObject:()Lorg/jruby/RubyClass;
invokestatic org.jruby.RubyClass.newClass:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)Lorg/jruby/RubyClass;
astore 7
start local 7 13: aload 7
aload 0
aload 1
invokevirtual org.jruby.RubyClass.include:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyModule;
pop
14: new org.jruby.java.proxies.JavaInterfaceTemplate$BlockInterfaceImpl
dup
aload 7
aload 3
aload 6
invokespecial org.jruby.java.proxies.JavaInterfaceTemplate$BlockInterfaceImpl.<init>:(Lorg/jruby/RubyClass;Lorg/jruby/runtime/Block;[Lorg/jruby/runtime/builtin/IRubyObject;)V
astore 8
start local 8 15: aload 7
ldc "method_missing"
aload 8
invokevirtual org.jruby.RubyClass.addMethod:(Ljava/lang/String;Lorg/jruby/internal/runtime/methods/DynamicMethod;)V
16: aload 0
aload 1
checkcast org.jruby.RubyModule
invokestatic org.jruby.javasupport.JavaClass.getJavaClass:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyModule;)Ljava/lang/Class;
astore 9
start local 9 17: aload 6
ifnonnull 28
18: aload 9
invokevirtual java.lang.Class.getMethods:()[Ljava/lang/reflect/Method;
dup
astore 13
arraylength
istore 12
iconst_0
istore 11
goto 26
StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.Block org.jruby.Ruby int org.jruby.runtime.builtin.IRubyObject[] org.jruby.RubyClass org.jruby.java.proxies.JavaInterfaceTemplate$BlockInterfaceImpl java.lang.Class top int int java.lang.reflect.Method[]
StackMap stack:
19: aload 13
iload 11
aaload
astore 10
start local 10 20: aload 8
aload 10
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
invokevirtual org.jruby.java.proxies.JavaInterfaceTemplate$BlockInterfaceImpl.getConcreteMethod:(Ljava/lang/String;)Lorg/jruby/java/proxies/JavaInterfaceTemplate$BlockInterfaceImpl$ConcreteMethod;
astore 14
start local 14 21: aload 10
invokevirtual java.lang.reflect.Method.isBridge:()Z
ifne 25
aload 10
invokevirtual java.lang.reflect.Method.isSynthetic:()Z
ifeq 22
goto 25
22: StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.Block org.jruby.Ruby int org.jruby.runtime.builtin.IRubyObject[] org.jruby.RubyClass org.jruby.java.proxies.JavaInterfaceTemplate$BlockInterfaceImpl java.lang.Class java.lang.reflect.Method int int java.lang.reflect.Method[] org.jruby.java.proxies.JavaInterfaceTemplate$BlockInterfaceImpl$ConcreteMethod
StackMap stack:
aload 10
invokevirtual java.lang.reflect.Method.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
ifeq 23
goto 25
23: StackMap locals:
StackMap stack:
iload 5
ifne 24
aload 10
invokevirtual java.lang.reflect.Method.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isAbstract:(I)Z
ifne 24
goto 25
24: StackMap locals:
StackMap stack:
aload 7
aload 10
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
aload 14
invokevirtual org.jruby.RubyClass.addMethodInternal:(Ljava/lang/String;Lorg/jruby/internal/runtime/methods/DynamicMethod;)V
end local 14 end local 10 25: StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.Block org.jruby.Ruby int org.jruby.runtime.builtin.IRubyObject[] org.jruby.RubyClass org.jruby.java.proxies.JavaInterfaceTemplate$BlockInterfaceImpl java.lang.Class top int int java.lang.reflect.Method[]
StackMap stack:
iinc 11 1
StackMap locals:
StackMap stack:
26: iload 11
iload 12
if_icmplt 19
27: goto 46
28: StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.Block org.jruby.Ruby int org.jruby.runtime.builtin.IRubyObject[] org.jruby.RubyClass org.jruby.java.proxies.JavaInterfaceTemplate$BlockInterfaceImpl java.lang.Class
StackMap stack:
aload 9
invokevirtual java.lang.Class.getDeclaredMethods:()[Ljava/lang/reflect/Method;
astore 10
start local 10 29: aload 6
dup
astore 14
arraylength
istore 13
iconst_0
istore 12
goto 45
StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.Block org.jruby.Ruby int org.jruby.runtime.builtin.IRubyObject[] org.jruby.RubyClass org.jruby.java.proxies.JavaInterfaceTemplate$BlockInterfaceImpl java.lang.Class java.lang.reflect.Method[] top int int org.jruby.runtime.builtin.IRubyObject[]
StackMap stack:
30: aload 14
iload 12
aaload
astore 11
start local 11 31: aload 11
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
astore 15
start local 15 32: aload 8
aload 15
invokevirtual org.jruby.java.proxies.JavaInterfaceTemplate$BlockInterfaceImpl.getConcreteMethod:(Ljava/lang/String;)Lorg/jruby/java/proxies/JavaInterfaceTemplate$BlockInterfaceImpl$ConcreteMethod;
astore 16
start local 16 33: iconst_0
istore 17
start local 17 34: goto 42
35: StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.Block org.jruby.Ruby int org.jruby.runtime.builtin.IRubyObject[] org.jruby.RubyClass org.jruby.java.proxies.JavaInterfaceTemplate$BlockInterfaceImpl java.lang.Class java.lang.reflect.Method[] org.jruby.runtime.builtin.IRubyObject int int org.jruby.runtime.builtin.IRubyObject[] java.lang.String org.jruby.java.proxies.JavaInterfaceTemplate$BlockInterfaceImpl$ConcreteMethod int
StackMap stack:
aload 10
iload 17
aaload
astore 18
start local 18 36: aload 18
invokevirtual java.lang.reflect.Method.isBridge:()Z
ifne 41
aload 18
invokevirtual java.lang.reflect.Method.isSynthetic:()Z
ifeq 37
goto 41
37: StackMap locals: java.lang.reflect.Method
StackMap stack:
aload 18
invokevirtual java.lang.reflect.Method.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
ifeq 38
goto 41
38: StackMap locals:
StackMap stack:
aload 15
aload 10
iload 17
aaload
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 41
39: aload 7
aload 15
aload 16
invokevirtual org.jruby.RubyClass.addMethodInternal:(Ljava/lang/String;Lorg/jruby/internal/runtime/methods/DynamicMethod;)V
40: goto 44
end local 18 41: StackMap locals:
StackMap stack:
iinc 17 1
StackMap locals:
StackMap stack:
42: iload 17
aload 10
arraylength
if_icmplt 35
end local 17 43: aload 4
invokevirtual org.jruby.Ruby.getWarnings:()Lorg/jruby/common/RubyWarnings;
new java.lang.StringBuilder
dup
ldc "`"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 15
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' is not a declared method in interface "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 9
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.jruby.common.RubyWarnings.warn:(Ljava/lang/String;)V
end local 16 end local 15 end local 11 44: StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.Block org.jruby.Ruby int org.jruby.runtime.builtin.IRubyObject[] org.jruby.RubyClass org.jruby.java.proxies.JavaInterfaceTemplate$BlockInterfaceImpl java.lang.Class java.lang.reflect.Method[] top int int org.jruby.runtime.builtin.IRubyObject[]
StackMap stack:
iinc 12 1
StackMap locals:
StackMap stack:
45: iload 12
iload 13
if_icmplt 30
end local 10 46: StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.Block org.jruby.Ruby int org.jruby.runtime.builtin.IRubyObject[] org.jruby.RubyClass org.jruby.java.proxies.JavaInterfaceTemplate$BlockInterfaceImpl java.lang.Class
StackMap stack:
aload 7
aload 0
ldc "new"
invokevirtual org.jruby.RubyClass.callMethod:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 47 0 context Lorg/jruby/runtime/ThreadContext;
0 47 1 self Lorg/jruby/runtime/builtin/IRubyObject;
0 47 2 args [Lorg/jruby/runtime/builtin/IRubyObject;
0 47 3 implBlock Lorg/jruby/runtime/Block;
1 47 4 runtime Lorg/jruby/Ruby;
4 47 5 allMethods Z
5 6 6 methodNames [Lorg/jruby/runtime/builtin/IRubyObject;
9 10 6 methodNames [Lorg/jruby/runtime/builtin/IRubyObject;
11 47 6 methodNames [Lorg/jruby/runtime/builtin/IRubyObject;
13 47 7 implClass Lorg/jruby/RubyClass;
15 47 8 ifaceImpl Lorg/jruby/java/proxies/JavaInterfaceTemplate$BlockInterfaceImpl;
17 47 9 ifaceClass Ljava/lang/Class<*>;
20 25 10 method Ljava/lang/reflect/Method;
21 25 14 implMethod Lorg/jruby/java/proxies/JavaInterfaceTemplate$BlockInterfaceImpl$ConcreteMethod;
29 46 10 decMethods [Ljava/lang/reflect/Method;
31 44 11 methodName Lorg/jruby/runtime/builtin/IRubyObject;
32 44 15 name Ljava/lang/String;
33 44 16 implMethod Lorg/jruby/java/proxies/JavaInterfaceTemplate$BlockInterfaceImpl$ConcreteMethod;
34 43 17 i I
36 41 18 method Ljava/lang/reflect/Method;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"impl"}, rest = true)
MethodParameters:
Name Flags
context
self
args
implBlock final
private static org.jruby.javasupport.JavaClass getJavaClassForInterface(org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/javasupport/JavaClass;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface org.jruby.runtime.builtin.IRubyObject.getInstanceVariables:()Lorg/jruby/runtime/builtin/InstanceVariables;
ldc "@java_class"
invokeinterface org.jruby.runtime.builtin.InstanceVariables.getInstanceVariable:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
checkcast org.jruby.javasupport.JavaClass
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 module Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
module final
private static org.jruby.RubyArray getJavaInterfaces(org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface org.jruby.runtime.builtin.IRubyObject.getInstanceVariables:()Lorg/jruby/runtime/builtin/InstanceVariables;
ldc "@java_interfaces"
invokeinterface org.jruby.runtime.builtin.InstanceVariables.getInstanceVariable:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
checkcast org.jruby.RubyArray
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 clazz Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
clazz final
private static org.jruby.RubyArray getInterfaceModules(org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokeinterface org.jruby.runtime.builtin.IRubyObject.getInstanceVariables:()Lorg/jruby/runtime/builtin/InstanceVariables;
ldc "@java_interface_mods"
invokeinterface org.jruby.runtime.builtin.InstanceVariables.getInstanceVariable:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
checkcast org.jruby.RubyArray
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 module Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
module final
private static boolean initInterfaceModules(org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface org.jruby.runtime.builtin.IRubyObject.getInstanceVariables:()Lorg/jruby/runtime/builtin/InstanceVariables;
ldc "@java_interface_mods"
invokeinterface org.jruby.runtime.builtin.InstanceVariables.hasInstanceVariable:(Ljava/lang/String;)Z
ifne 4
1: aload 0
invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
aload 0
invokestatic org.jruby.RubyArray.newArray:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyArray;
astore 2
start local 2 2: aload 1
invokeinterface org.jruby.runtime.builtin.IRubyObject.getInstanceVariables:()Lorg/jruby/runtime/builtin/InstanceVariables;
ldc "@java_interface_mods"
aload 2
invokeinterface org.jruby.runtime.builtin.InstanceVariables.setInstanceVariable:(Ljava/lang/String;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
pop
3: iconst_1
ireturn
end local 2 4: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 self Lorg/jruby/runtime/builtin/IRubyObject;
0 5 1 module Lorg/jruby/runtime/builtin/IRubyObject;
2 4 2 interfaceMods Lorg/jruby/RubyArray;
MethodParameters:
Name Flags
self final
module final
}
SourceFile: "JavaInterfaceTemplate.java"
NestMembers:
org.jruby.java.proxies.JavaInterfaceTemplate$1 org.jruby.java.proxies.JavaInterfaceTemplate$2 org.jruby.java.proxies.JavaInterfaceTemplate$3 org.jruby.java.proxies.JavaInterfaceTemplate$4 org.jruby.java.proxies.JavaInterfaceTemplate$AppendFeatures org.jruby.java.proxies.JavaInterfaceTemplate$BlockInterfaceImpl org.jruby.java.proxies.JavaInterfaceTemplate$BlockInterfaceImpl$ConcreteMethod org.jruby.java.proxies.JavaInterfaceTemplate$DummyMethodImpl org.jruby.java.proxies.JavaInterfaceTemplate$InterfaceProxyFactory org.jruby.java.proxies.JavaInterfaceTemplate$JavaClassAccessor
InnerClasses:
org.jruby.java.proxies.JavaInterfaceTemplate$1
org.jruby.java.proxies.JavaInterfaceTemplate$2
org.jruby.java.proxies.JavaInterfaceTemplate$3
org.jruby.java.proxies.JavaInterfaceTemplate$4
private AppendFeatures = org.jruby.java.proxies.JavaInterfaceTemplate$AppendFeatures of org.jruby.java.proxies.JavaInterfaceTemplate
private final BlockInterfaceImpl = org.jruby.java.proxies.JavaInterfaceTemplate$BlockInterfaceImpl of org.jruby.java.proxies.JavaInterfaceTemplate
private final ConcreteMethod = org.jruby.java.proxies.JavaInterfaceTemplate$BlockInterfaceImpl$ConcreteMethod of org.jruby.java.proxies.JavaInterfaceTemplate$BlockInterfaceImpl
private DummyMethodImpl = org.jruby.java.proxies.JavaInterfaceTemplate$DummyMethodImpl of org.jruby.java.proxies.JavaInterfaceTemplate
private final InterfaceProxyFactory = org.jruby.java.proxies.JavaInterfaceTemplate$InterfaceProxyFactory of org.jruby.java.proxies.JavaInterfaceTemplate
private JavaClassAccessor = org.jruby.java.proxies.JavaInterfaceTemplate$JavaClassAccessor of org.jruby.java.proxies.JavaInterfaceTemplate
public ClassMethods = org.jruby.java.proxies.JavaProxy$ClassMethods of org.jruby.java.proxies.JavaProxy