public class com.sun.tools.hat.internal.oql.OQLEngine
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.sun.tools.hat.internal.oql.OQLEngine
super_class: java.lang.Object
{
private java.lang.Object engine;
descriptor: Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
private java.lang.reflect.Method evalMethod;
descriptor: Ljava/lang/reflect/Method;
flags: (0x0002) ACC_PRIVATE
private java.lang.reflect.Method invokeMethod;
descriptor: Ljava/lang/reflect/Method;
flags: (0x0002) ACC_PRIVATE
private com.sun.tools.hat.internal.model.Snapshot snapshot;
descriptor: Lcom/sun/tools/hat/internal/model/Snapshot;
flags: (0x0002) ACC_PRIVATE
private static boolean debug;
descriptor: Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static boolean oqlSupported;
descriptor: Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=4, args_size=0
0: ldc "javax.script.ScriptEngineManager"
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
astore 0
start local 0 1: aload 0
invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
astore 1
start local 1 2: aload 0
ldc "getEngineByName"
3: iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/String;
aastore
4: invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 2
start local 2 5: aload 2
aload 1
iconst_1
anewarray java.lang.Object
dup
iconst_0
ldc "js"
aastore
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
astore 3
start local 3 6: aload 3
ifnull 7
iconst_1
goto 8
StackMap locals: java.lang.Class java.lang.Object java.lang.reflect.Method java.lang.Object
StackMap stack:
7: iconst_0
StackMap locals:
StackMap stack: int
8: putstatic com.sun.tools.hat.internal.oql.OQLEngine.oqlSupported:Z
end local 3 end local 2 end local 1 end local 0 9: goto 12
StackMap locals:
StackMap stack: java.lang.Exception
10: pop
11: iconst_0
putstatic com.sun.tools.hat.internal.oql.OQLEngine.oqlSupported:Z
12: StackMap locals:
StackMap stack:
iconst_0
putstatic com.sun.tools.hat.internal.oql.OQLEngine.debug:Z
13: return
LocalVariableTable:
Start End Slot Name Signature
1 9 0 managerClass Ljava/lang/Class<*>;
2 9 1 manager Ljava/lang/Object;
5 9 2 getEngineMethod Ljava/lang/reflect/Method;
6 9 3 jse Ljava/lang/Object;
Exception table:
from to target type
0 9 10 Class java.lang.Exception
public static boolean isOQLSupported();
descriptor: ()Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic com.sun.tools.hat.internal.oql.OQLEngine.oqlSupported:Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
public void <init>(com.sun.tools.hat.internal.model.Snapshot);
descriptor: (Lcom/sun/tools/hat/internal/model/Snapshot;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: invokestatic com.sun.tools.hat.internal.oql.OQLEngine.isOQLSupported:()Z
ifne 3
2: new java.lang.UnsupportedOperationException
dup
ldc "OQL not supported"
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: com.sun.tools.hat.internal.oql.OQLEngine com.sun.tools.hat.internal.model.Snapshot
StackMap stack:
aload 0
aload 1
invokevirtual com.sun.tools.hat.internal.oql.OQLEngine.init:(Lcom/sun/tools/hat/internal/model/Snapshot;)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/tools/hat/internal/oql/OQLEngine;
0 5 1 snapshot Lcom/sun/tools/hat/internal/model/Snapshot;
MethodParameters:
Name Flags
snapshot
public synchronized void executeQuery(java.lang.String, com.sun.tools.hat.internal.oql.ObjectVisitor);
descriptor: (Ljava/lang/String;Lcom/sun/tools/hat/internal/oql/ObjectVisitor;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=8, locals=11, args_size=3
start local 0 start local 1 start local 2 0: new java.lang.StringBuilder
dup
ldc "query : "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.sun.tools.hat.internal.oql.OQLEngine.debugPrint:(Ljava/lang/String;)V
1: new java.util.StringTokenizer
dup
aload 1
invokespecial java.util.StringTokenizer.<init>:(Ljava/lang/String;)V
astore 3
start local 3 2: aload 3
invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
ifeq 11
3: aload 3
invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
astore 4
start local 4 4: aload 4
ldc "select"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 12
5: aload 0
aload 1
invokevirtual com.sun.tools.hat.internal.oql.OQLEngine.evalScript:(Ljava/lang/String;)Ljava/lang/Object;
astore 5
start local 5 6: aload 2
aload 5
invokeinterface com.sun.tools.hat.internal.oql.ObjectVisitor.visit:(Ljava/lang/Object;)Z
pop
end local 5 7: goto 10
StackMap locals: com.sun.tools.hat.internal.oql.OQLEngine java.lang.String com.sun.tools.hat.internal.oql.ObjectVisitor java.util.StringTokenizer java.lang.String
StackMap stack: java.lang.Exception
8: astore 5
start local 5 9: new com.sun.tools.hat.internal.oql.OQLException
dup
aload 5
invokespecial com.sun.tools.hat.internal.oql.OQLException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 5 10: StackMap locals:
StackMap stack:
return
end local 4 11: StackMap locals:
StackMap stack:
new com.sun.tools.hat.internal.oql.OQLException
dup
ldc "query syntax error: no 'select' clause"
invokespecial com.sun.tools.hat.internal.oql.OQLException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack:
ldc ""
astore 4
start local 4 13: iconst_0
istore 5
start local 5 14: goto 20
15: StackMap locals: java.lang.String int
StackMap stack:
aload 3
invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
astore 6
start local 6 16: aload 6
ldc "from"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 19
17: iconst_1
istore 5
18: goto 21
19: StackMap locals: java.lang.String
StackMap stack:
new java.lang.StringBuilder
dup
aload 4
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 4
end local 6 20: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
ifne 15
21: StackMap locals:
StackMap stack:
aload 4
ldc ""
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 23
22: new com.sun.tools.hat.internal.oql.OQLException
dup
ldc "query syntax error: 'select' expression can not be empty"
invokespecial com.sun.tools.hat.internal.oql.OQLException.<init>:(Ljava/lang/String;)V
athrow
23: StackMap locals:
StackMap stack:
aconst_null
astore 6
start local 6 24: iconst_0
istore 7
start local 7 25: aconst_null
astore 8
start local 8 26: aconst_null
astore 9
start local 9 27: iload 5
ifeq 54
28: aload 3
invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
ifeq 38
29: aload 3
invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
astore 10
start local 10 30: aload 10
ldc "instanceof"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 36
31: iconst_1
istore 7
32: aload 3
invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
ifne 34
33: new com.sun.tools.hat.internal.oql.OQLException
dup
ldc "no class name after 'instanceof'"
invokespecial com.sun.tools.hat.internal.oql.OQLException.<init>:(Ljava/lang/String;)V
athrow
34: StackMap locals: com.sun.tools.hat.internal.oql.OQLEngine java.lang.String com.sun.tools.hat.internal.oql.ObjectVisitor java.util.StringTokenizer java.lang.String int java.lang.String int java.lang.String java.lang.String java.lang.String
StackMap stack:
aload 3
invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
astore 6
35: goto 39
36: StackMap locals:
StackMap stack:
aload 10
astore 6
end local 10 37: goto 39
38: StackMap locals:
StackMap stack:
new com.sun.tools.hat.internal.oql.OQLException
dup
ldc "query syntax error: class name must follow 'from'"
invokespecial com.sun.tools.hat.internal.oql.OQLException.<init>:(Ljava/lang/String;)V
athrow
39: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
ifeq 53
40: aload 3
invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
astore 9
41: aload 9
ldc "where"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 43
42: new com.sun.tools.hat.internal.oql.OQLException
dup
ldc "query syntax error: identifier should follow class name"
invokespecial com.sun.tools.hat.internal.oql.OQLException.<init>:(Ljava/lang/String;)V
athrow
43: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
ifeq 54
44: aload 3
invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
astore 10
start local 10 45: aload 10
ldc "where"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 47
46: new com.sun.tools.hat.internal.oql.OQLException
dup
ldc "query syntax error: 'where' clause expected after 'from' clause"
invokespecial com.sun.tools.hat.internal.oql.OQLException.<init>:(Ljava/lang/String;)V
athrow
47: StackMap locals: java.lang.String
StackMap stack:
ldc ""
astore 8
48: goto 50
49: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
aload 8
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.util.StringTokenizer.nextToken:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 8
50: StackMap locals:
StackMap stack:
aload 3
invokevirtual java.util.StringTokenizer.hasMoreTokens:()Z
ifne 49
51: aload 8
ldc ""
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 54
52: new com.sun.tools.hat.internal.oql.OQLException
dup
ldc "query syntax error: 'where' clause cannot have empty expression"
invokespecial com.sun.tools.hat.internal.oql.OQLException.<init>:(Ljava/lang/String;)V
athrow
end local 10 53: StackMap locals:
StackMap stack:
new com.sun.tools.hat.internal.oql.OQLException
dup
ldc "query syntax error: identifier should follow class name"
invokespecial com.sun.tools.hat.internal.oql.OQLException.<init>:(Ljava/lang/String;)V
athrow
54: StackMap locals:
StackMap stack:
aload 0
new com.sun.tools.hat.internal.oql.OQLQuery
dup
aload 4
iload 7
aload 6
55: aload 9
aload 8
invokespecial com.sun.tools.hat.internal.oql.OQLQuery.<init>:(Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
aload 2
56: invokevirtual com.sun.tools.hat.internal.oql.OQLEngine.executeQuery:(Lcom/sun/tools/hat/internal/oql/OQLQuery;Lcom/sun/tools/hat/internal/oql/ObjectVisitor;)V
57: return
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 58 0 this Lcom/sun/tools/hat/internal/oql/OQLEngine;
0 58 1 query Ljava/lang/String;
0 58 2 visitor Lcom/sun/tools/hat/internal/oql/ObjectVisitor;
2 58 3 st Ljava/util/StringTokenizer;
4 11 4 first Ljava/lang/String;
6 7 5 res Ljava/lang/Object;
9 10 5 e Ljava/lang/Exception;
13 58 4 selectExpr Ljava/lang/String;
14 58 5 seenFrom Z
16 20 6 tok Ljava/lang/String;
24 58 6 className Ljava/lang/String;
25 58 7 isInstanceOf Z
26 58 8 whereExpr Ljava/lang/String;
27 58 9 identifier Ljava/lang/String;
30 37 10 tmp Ljava/lang/String;
45 53 10 tmp Ljava/lang/String;
Exception table:
from to target type
5 7 8 Class java.lang.Exception
Exceptions:
throws com.sun.tools.hat.internal.oql.OQLException
MethodParameters:
Name Flags
query
visitor
private void executeQuery(com.sun.tools.hat.internal.oql.OQLQuery, com.sun.tools.hat.internal.oql.ObjectVisitor);
descriptor: (Lcom/sun/tools/hat/internal/oql/OQLQuery;Lcom/sun/tools/hat/internal/oql/ObjectVisitor;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=12, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: aload 1
getfield com.sun.tools.hat.internal.oql.OQLQuery.className:Ljava/lang/String;
ifnull 5
2: aload 0
getfield com.sun.tools.hat.internal.oql.OQLEngine.snapshot:Lcom/sun/tools/hat/internal/model/Snapshot;
aload 1
getfield com.sun.tools.hat.internal.oql.OQLQuery.className:Ljava/lang/String;
invokevirtual com.sun.tools.hat.internal.model.Snapshot.findClass:(Ljava/lang/String;)Lcom/sun/tools/hat/internal/model/JavaClass;
astore 3
3: aload 3
ifnonnull 5
4: new com.sun.tools.hat.internal.oql.OQLException
dup
new java.lang.StringBuilder
dup
aload 1
getfield com.sun.tools.hat.internal.oql.OQLQuery.className:Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " is not found!"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial com.sun.tools.hat.internal.oql.OQLException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: com.sun.tools.hat.internal.model.JavaClass
StackMap stack:
new java.lang.StringBuffer
dup
invokespecial java.lang.StringBuffer.<init>:()V
astore 4
start local 4 6: aload 4
ldc "function __select__("
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
7: aload 1
getfield com.sun.tools.hat.internal.oql.OQLQuery.identifier:Ljava/lang/String;
ifnull 9
8: aload 4
aload 1
getfield com.sun.tools.hat.internal.oql.OQLQuery.identifier:Ljava/lang/String;
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
9: StackMap locals: java.lang.StringBuffer
StackMap stack:
aload 4
ldc ") { return "
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
10: aload 4
aload 1
getfield com.sun.tools.hat.internal.oql.OQLQuery.selectExpr:Ljava/lang/String;
bipush 10
bipush 32
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
11: aload 4
ldc "; }"
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
12: aload 4
invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
astore 5
start local 5 13: aload 5
invokestatic com.sun.tools.hat.internal.oql.OQLEngine.debugPrint:(Ljava/lang/String;)V
14: aconst_null
astore 6
start local 6 15: aload 1
getfield com.sun.tools.hat.internal.oql.OQLQuery.whereExpr:Ljava/lang/String;
ifnull 23
16: new java.lang.StringBuffer
dup
invokespecial java.lang.StringBuffer.<init>:()V
astore 4
17: aload 4
ldc "function __where__("
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
18: aload 4
aload 1
getfield com.sun.tools.hat.internal.oql.OQLQuery.identifier:Ljava/lang/String;
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
19: aload 4
ldc ") { return "
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
20: aload 4
aload 1
getfield com.sun.tools.hat.internal.oql.OQLQuery.whereExpr:Ljava/lang/String;
bipush 10
bipush 32
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
21: aload 4
ldc "; }"
invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
pop
22: aload 4
invokevirtual java.lang.StringBuffer.toString:()Ljava/lang/String;
astore 6
23: StackMap locals: java.lang.String java.lang.String
StackMap stack:
aload 6
invokestatic com.sun.tools.hat.internal.oql.OQLEngine.debugPrint:(Ljava/lang/String;)V
24: aload 0
getfield com.sun.tools.hat.internal.oql.OQLEngine.evalMethod:Ljava/lang/reflect/Method;
aload 0
getfield com.sun.tools.hat.internal.oql.OQLEngine.engine:Ljava/lang/Object;
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 5
aastore
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
pop
25: aload 6
ifnull 27
26: aload 0
getfield com.sun.tools.hat.internal.oql.OQLEngine.evalMethod:Ljava/lang/reflect/Method;
aload 0
getfield com.sun.tools.hat.internal.oql.OQLEngine.engine:Ljava/lang/Object;
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 6
aastore
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
pop
27: StackMap locals:
StackMap stack:
aload 1
getfield com.sun.tools.hat.internal.oql.OQLQuery.className:Ljava/lang/String;
ifnull 54
28: aload 3
aload 1
getfield com.sun.tools.hat.internal.oql.OQLQuery.isInstanceOf:Z
invokevirtual com.sun.tools.hat.internal.model.JavaClass.getInstances:(Z)Ljava/util/Enumeration;
astore 7
start local 7 29: goto 52
30: StackMap locals: java.util.Enumeration
StackMap stack:
aload 7
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast com.sun.tools.hat.internal.model.JavaHeapObject
astore 8
start local 8 31: iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
aload 8
invokevirtual com.sun.tools.hat.internal.oql.OQLEngine.wrapJavaObject:(Lcom/sun/tools/hat/internal/model/JavaHeapObject;)Ljava/lang/Object;
aastore
astore 9
start local 9 32: aload 6
ifnonnull 33
iconst_1
goto 34
StackMap locals: com.sun.tools.hat.internal.model.JavaHeapObject java.lang.Object[]
StackMap stack:
33: iconst_0
StackMap locals:
StackMap stack: int
34: istore 10
start local 10 35: iload 10
ifne 48
36: aload 0
ldc "__where__"
aload 9
invokevirtual com.sun.tools.hat.internal.oql.OQLEngine.call:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
astore 11
start local 11 37: aload 11
instanceof java.lang.Boolean
ifeq 40
38: aload 11
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
istore 10
39: goto 48
StackMap locals: int java.lang.Object
StackMap stack:
40: aload 11
instanceof java.lang.Number
ifeq 45
41: aload 11
checkcast java.lang.Number
invokevirtual java.lang.Number.intValue:()I
ifeq 42
iconst_1
goto 43
StackMap locals:
StackMap stack:
42: iconst_0
StackMap locals:
StackMap stack: int
43: istore 10
44: goto 48
45: StackMap locals:
StackMap stack:
aload 11
ifnull 46
iconst_1
goto 47
StackMap locals:
StackMap stack:
46: iconst_0
StackMap locals:
StackMap stack: int
47: istore 10
end local 11 48: StackMap locals:
StackMap stack:
iload 10
ifeq 52
49: aload 0
ldc "__select__"
aload 9
invokevirtual com.sun.tools.hat.internal.oql.OQLEngine.call:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
astore 11
start local 11 50: aload 2
aload 11
invokeinterface com.sun.tools.hat.internal.oql.ObjectVisitor.visit:(Ljava/lang/Object;)Z
ifeq 52
51: return
end local 11 end local 10 end local 9 end local 8 52: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 30
end local 7 53: goto 59
54: StackMap locals:
StackMap stack:
aload 0
ldc "__select__"
iconst_0
anewarray java.lang.Object
invokevirtual com.sun.tools.hat.internal.oql.OQLEngine.call:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
astore 7
start local 7 55: aload 2
aload 7
invokeinterface com.sun.tools.hat.internal.oql.ObjectVisitor.visit:(Ljava/lang/Object;)Z
pop
end local 7 56: goto 59
StackMap locals:
StackMap stack: java.lang.Exception
57: astore 7
start local 7 58: new com.sun.tools.hat.internal.oql.OQLException
dup
aload 7
invokespecial com.sun.tools.hat.internal.oql.OQLException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 7 59: StackMap locals:
StackMap stack:
return
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 60 0 this Lcom/sun/tools/hat/internal/oql/OQLEngine;
0 60 1 q Lcom/sun/tools/hat/internal/oql/OQLQuery;
0 60 2 visitor Lcom/sun/tools/hat/internal/oql/ObjectVisitor;
1 60 3 clazz Lcom/sun/tools/hat/internal/model/JavaClass;
6 60 4 buf Ljava/lang/StringBuffer;
13 60 5 selectCode Ljava/lang/String;
15 60 6 whereCode Ljava/lang/String;
29 53 7 objects Ljava/util/Enumeration;
31 52 8 obj Lcom/sun/tools/hat/internal/model/JavaHeapObject;
32 52 9 args [Ljava/lang/Object;
35 52 10 b Z
37 48 11 res Ljava/lang/Object;
50 52 11 select Ljava/lang/Object;
55 56 7 select Ljava/lang/Object;
58 59 7 e Ljava/lang/Exception;
Exception table:
from to target type
24 51 57 Class java.lang.Exception
52 56 57 Class java.lang.Exception
Exceptions:
throws com.sun.tools.hat.internal.oql.OQLException
MethodParameters:
Name Flags
q
visitor
public java.lang.Object evalScript(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.tools.hat.internal.oql.OQLEngine.evalMethod:Ljava/lang/reflect/Method;
aload 0
getfield com.sun.tools.hat.internal.oql.OQLEngine.engine:Ljava/lang/Object;
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/hat/internal/oql/OQLEngine;
0 1 1 script Ljava/lang/String;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
script
public java.lang.Object wrapJavaObject(com.sun.tools.hat.internal.model.JavaHeapObject);
descriptor: (Lcom/sun/tools/hat/internal/model/JavaHeapObject;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 0
ldc "wrapJavaObject"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokevirtual com.sun.tools.hat.internal.oql.OQLEngine.call:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/hat/internal/oql/OQLEngine;
0 1 1 obj Lcom/sun/tools/hat/internal/model/JavaHeapObject;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
obj
public java.lang.Object toHtml(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 0
ldc "toHtml"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokevirtual com.sun.tools.hat.internal.oql.OQLEngine.call:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/hat/internal/oql/OQLEngine;
0 1 1 obj Ljava/lang/Object;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
obj
public java.lang.Object call(java.lang.String, java.lang.Object[]);
descriptor: (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.sun.tools.hat.internal.oql.OQLEngine.invokeMethod:Ljava/lang/reflect/Method;
aload 0
getfield com.sun.tools.hat.internal.oql.OQLEngine.engine:Ljava/lang/Object;
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 2
aastore
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/hat/internal/oql/OQLEngine;
0 1 1 func Ljava/lang/String;
0 1 2 args [Ljava/lang/Object;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
func
args
private static void debugPrint(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic com.sun.tools.hat.internal.oql.OQLEngine.debug:Z
ifeq 1
getstatic java.lang.System.out:Ljava/io/PrintStream;
aload 0
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
1: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 msg Ljava/lang/String;
MethodParameters:
Name Flags
msg
private void init(com.sun.tools.hat.internal.model.Snapshot);
descriptor: (Lcom/sun/tools/hat/internal/model/Snapshot;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=11, locals=9, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield com.sun.tools.hat.internal.oql.OQLEngine.snapshot:Lcom/sun/tools/hat/internal/model/Snapshot;
1: ldc "javax.script.ScriptEngineManager"
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
astore 2
start local 2 2: aload 2
invokevirtual java.lang.Class.newInstance:()Ljava/lang/Object;
astore 3
start local 3 3: aload 2
ldc "getEngineByName"
4: iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/String;
aastore
5: invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 4
start local 4 6: aload 0
aload 4
aload 3
iconst_1
anewarray java.lang.Object
dup
iconst_0
ldc "js"
aastore
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
putfield com.sun.tools.hat.internal.oql.OQLEngine.engine:Ljava/lang/Object;
7: aload 0
invokevirtual com.sun.tools.hat.internal.oql.OQLEngine.getInitStream:()Ljava/io/InputStream;
astore 5
start local 5 8: ldc "javax.script.ScriptEngine"
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
astore 6
start local 6 9: aload 0
aload 6
ldc "eval"
10: iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/io/Reader;
aastore
11: invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
putfield com.sun.tools.hat.internal.oql.OQLEngine.evalMethod:Ljava/lang/reflect/Method;
12: aload 0
getfield com.sun.tools.hat.internal.oql.OQLEngine.evalMethod:Ljava/lang/reflect/Method;
aload 0
getfield com.sun.tools.hat.internal.oql.OQLEngine.engine:Ljava/lang/Object;
iconst_1
anewarray java.lang.Object
dup
iconst_0
new java.io.InputStreamReader
dup
aload 5
invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
aastore
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
pop
13: ldc "javax.script.Invocable"
invokestatic java.lang.Class.forName:(Ljava/lang/String;)Ljava/lang/Class;
astore 7
start local 7 14: aload 0
aload 6
ldc "eval"
15: iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/String;
aastore
16: invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
putfield com.sun.tools.hat.internal.oql.OQLEngine.evalMethod:Ljava/lang/reflect/Method;
17: aload 0
aload 7
ldc "invokeFunction"
18: iconst_2
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/String;
aastore
dup
iconst_1
ldc [Ljava/lang/Object;
aastore
19: invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
putfield com.sun.tools.hat.internal.oql.OQLEngine.invokeMethod:Ljava/lang/reflect/Method;
20: aload 6
ldc "put"
21: iconst_2
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/String;
aastore
dup
iconst_1
ldc Ljava/lang/Object;
aastore
22: invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 8
start local 8 23: aload 8
aload 0
getfield com.sun.tools.hat.internal.oql.OQLEngine.engine:Ljava/lang/Object;
iconst_2
anewarray java.lang.Object
dup
iconst_0
24: ldc "heap"
aastore
dup
iconst_1
aload 0
ldc "wrapHeapSnapshot"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokevirtual com.sun.tools.hat.internal.oql.OQLEngine.call:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
aastore
25: invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 26: goto 30
StackMap locals:
StackMap stack: java.lang.Exception
27: astore 2
start local 2 28: getstatic com.sun.tools.hat.internal.oql.OQLEngine.debug:Z
ifeq 29
aload 2
invokevirtual java.lang.Exception.printStackTrace:()V
29: StackMap locals: java.lang.Exception
StackMap stack:
new java.lang.RuntimeException
dup
aload 2
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 30: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lcom/sun/tools/hat/internal/oql/OQLEngine;
0 31 1 snapshot Lcom/sun/tools/hat/internal/model/Snapshot;
2 26 2 managerClass Ljava/lang/Class<*>;
3 26 3 manager Ljava/lang/Object;
6 26 4 getEngineMethod Ljava/lang/reflect/Method;
8 26 5 strm Ljava/io/InputStream;
9 26 6 engineClass Ljava/lang/Class<*>;
14 26 7 invocableClass Ljava/lang/Class<*>;
23 26 8 putMethod Ljava/lang/reflect/Method;
28 30 2 e Ljava/lang/Exception;
Exception table:
from to target type
1 26 27 Class java.lang.Exception
Exceptions:
throws java.lang.RuntimeException
MethodParameters:
Name Flags
snapshot
private java.io.InputStream getInitStream();
descriptor: ()Ljava/io/InputStream;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
ldc "/com/sun/tools/hat/resources/hat.js"
invokevirtual java.lang.Class.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/hat/internal/oql/OQLEngine;
}
SourceFile: "OQLEngine.java"