public class org.jruby.java.invokers.StaticFieldGetter extends org.jruby.java.invokers.FieldMethodZero
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.jruby.java.invokers.StaticFieldGetter
super_class: org.jruby.java.invokers.FieldMethodZero
{
private boolean warnConstant;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
public void <init>(java.lang.String, org.jruby.RubyModule, java.lang.reflect.Field, boolean);
descriptor: (Ljava/lang/String;Lorg/jruby/RubyModule;Ljava/lang/reflect/Field;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
aload 3
invokespecial org.jruby.java.invokers.FieldMethodZero.<init>:(Ljava/lang/String;Lorg/jruby/RubyModule;Ljava/lang/reflect/Field;)V
1: aload 0
iload 4
putfield org.jruby.java.invokers.StaticFieldGetter.warnConstant:Z
2: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/java/invokers/StaticFieldGetter;
0 3 1 name Ljava/lang/String;
0 3 2 host Lorg/jruby/RubyModule;
0 3 3 field Ljava/lang/reflect/Field;
0 3 4 warnConstant Z
MethodParameters:
Name Flags
name
host
field
warnConstant
public final org.jruby.runtime.builtin.IRubyObject call(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.RubyModule, java.lang.String);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield org.jruby.java.invokers.StaticFieldGetter.warnConstant:Z
ifeq 3
1: aload 0
iconst_0
putfield org.jruby.java.invokers.StaticFieldGetter.warnConstant:Z
2: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getWarnings:()Lorg/jruby/common/RubyWarnings;
new java.lang.StringBuilder
dup
ldc "DEPRECATED: Accessing Java interface constant via accessor method. This behavior will go away in JRuby 9.3, please use constant-style A::B syntax for accessing '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield org.jruby.java.invokers.StaticFieldGetter.field:Ljava/lang/reflect/Field;
invokevirtual java.lang.reflect.Field.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.jruby.common.RubyWarnings.warning:(Ljava/lang/String;)V
3: StackMap locals:
StackMap stack:
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
getfield org.jruby.java.invokers.StaticFieldGetter.field:Ljava/lang/reflect/Field;
aconst_null
invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
invokestatic org.jruby.javasupport.JavaUtil.convertJavaToUsableRubyObject:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
4: areturn
5: StackMap locals:
StackMap stack: java.lang.IllegalAccessException
astore 5
start local 5 6: aload 0
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 5
invokevirtual org.jruby.java.invokers.StaticFieldGetter.handleGetException:(Lorg/jruby/Ruby;Ljava/lang/IllegalAccessException;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
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 7 0 this Lorg/jruby/java/invokers/StaticFieldGetter;
0 7 1 context Lorg/jruby/runtime/ThreadContext;
0 7 2 self Lorg/jruby/runtime/builtin/IRubyObject;
0 7 3 clazz Lorg/jruby/RubyModule;
0 7 4 name Ljava/lang/String;
6 7 5 ex Ljava/lang/IllegalAccessException;
Exception table:
from to target type
3 4 5 Class java.lang.IllegalAccessException
MethodParameters:
Name Flags
context
self
clazz
name
}
SourceFile: "StaticFieldGetter.java"