public class org.aspectj.weaver.patterns.PointcutEvaluationExpenseComparator implements java.util.Comparator<org.aspectj.weaver.patterns.Pointcut>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.aspectj.weaver.patterns.PointcutEvaluationExpenseComparator
super_class: java.lang.Object
{
private static final int MATCHES_NOTHING;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -1
private static final int WITHIN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int ATWITHIN;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int STATICINIT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final int ADVICEEXECUTION;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int HANDLER;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5
private static final int GET_OR_SET;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 6
private static final int WITHINCODE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 7
private static final int ATWITHINCODE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final int EXE_INIT_PREINIT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 9
private static final int CALL_WITH_DECLARING_TYPE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 10
private static final int THIS_OR_TARGET;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 11
private static final int CALL_WITHOUT_DECLARING_TYPE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 12
private static final int ANNOTATION;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 13
private static final int AT_THIS_OR_TARGET;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 14
private static final int ARGS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 15
private static final int AT_ARGS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 16
private static final int CFLOW;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 17
private static final int IF;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 18
private static final int OTHER;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 20
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/aspectj/weaver/patterns/PointcutEvaluationExpenseComparator;
public int compare(org.aspectj.weaver.patterns.Pointcut, org.aspectj.weaver.patterns.Pointcut);
descriptor: (Lorg/aspectj/weaver/patterns/Pointcut;Lorg/aspectj/weaver/patterns/Pointcut;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 2
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.aspectj.weaver.patterns.PointcutEvaluationExpenseComparator.getScore:(Lorg/aspectj/weaver/patterns/Pointcut;)I
aload 0
aload 2
invokevirtual org.aspectj.weaver.patterns.PointcutEvaluationExpenseComparator.getScore:(Lorg/aspectj/weaver/patterns/Pointcut;)I
isub
istore 3
start local 3 3: iload 3
ifne 11
4: aload 1
invokevirtual java.lang.Object.hashCode:()I
istore 4
start local 4 5: aload 2
invokevirtual java.lang.Object.hashCode:()I
istore 5
start local 5 6: iload 4
iload 5
if_icmpne 8
7: iconst_0
ireturn
8: StackMap locals: int int int
StackMap stack:
iload 4
iload 5
if_icmpge 10
9: iconst_m1
ireturn
10: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 5 end local 4 11: StackMap locals:
StackMap stack:
iload 3
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/aspectj/weaver/patterns/PointcutEvaluationExpenseComparator;
0 12 1 p1 Lorg/aspectj/weaver/patterns/Pointcut;
0 12 2 p2 Lorg/aspectj/weaver/patterns/Pointcut;
3 12 3 result I
5 11 4 p1code I
6 11 5 p2code I
MethodParameters:
Name Flags
p1
p2
private int getScore(org.aspectj.weaver.patterns.Pointcut);
descriptor: (Lorg/aspectj/weaver/patterns/Pointcut;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.aspectj.weaver.patterns.Pointcut.couldMatchKinds:()I
getstatic org.aspectj.weaver.Shadow.NO_SHADOW_KINDS_BITS:I
if_icmpne 2
1: iconst_m1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof org.aspectj.weaver.patterns.WithinPointcut
ifeq 4
3: iconst_1
ireturn
4: StackMap locals:
StackMap stack:
aload 1
instanceof org.aspectj.weaver.patterns.WithinAnnotationPointcut
ifeq 6
5: iconst_2
ireturn
6: StackMap locals:
StackMap stack:
aload 1
instanceof org.aspectj.weaver.patterns.KindedPointcut
ifeq 26
7: aload 1
checkcast org.aspectj.weaver.patterns.KindedPointcut
astore 2
start local 2 8: aload 2
invokevirtual org.aspectj.weaver.patterns.KindedPointcut.getKind:()Lorg/aspectj/weaver/Shadow$Kind;
astore 3
start local 3 9: aload 3
getstatic org.aspectj.weaver.Shadow.AdviceExecution:Lorg/aspectj/weaver/Shadow$Kind;
if_acmpne 11
10: iconst_4
ireturn
11: StackMap locals: org.aspectj.weaver.patterns.KindedPointcut org.aspectj.weaver.Shadow$Kind
StackMap stack:
aload 3
getstatic org.aspectj.weaver.Shadow.ConstructorCall:Lorg/aspectj/weaver/Shadow$Kind;
if_acmpeq 12
aload 3
getstatic org.aspectj.weaver.Shadow.MethodCall:Lorg/aspectj/weaver/Shadow$Kind;
if_acmpne 16
12: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.aspectj.weaver.patterns.KindedPointcut.getSignature:()Lorg/aspectj/weaver/patterns/SignaturePattern;
invokevirtual org.aspectj.weaver.patterns.SignaturePattern.getDeclaringType:()Lorg/aspectj/weaver/patterns/TypePattern;
astore 4
start local 4 13: aload 4
instanceof org.aspectj.weaver.patterns.AnyTypePattern
ifeq 15
14: bipush 12
ireturn
15: StackMap locals: org.aspectj.weaver.patterns.TypePattern
StackMap stack:
bipush 10
ireturn
end local 4 16: StackMap locals:
StackMap stack:
aload 3
getstatic org.aspectj.weaver.Shadow.ConstructorExecution:Lorg/aspectj/weaver/Shadow$Kind;
if_acmpeq 18
aload 3
getstatic org.aspectj.weaver.Shadow.MethodExecution:Lorg/aspectj/weaver/Shadow$Kind;
if_acmpeq 18
aload 3
getstatic org.aspectj.weaver.Shadow.Initialization:Lorg/aspectj/weaver/Shadow$Kind;
if_acmpeq 18
17: aload 3
getstatic org.aspectj.weaver.Shadow.PreInitialization:Lorg/aspectj/weaver/Shadow$Kind;
if_acmpne 19
18: StackMap locals:
StackMap stack:
bipush 9
ireturn
19: StackMap locals:
StackMap stack:
aload 3
getstatic org.aspectj.weaver.Shadow.ExceptionHandler:Lorg/aspectj/weaver/Shadow$Kind;
if_acmpne 21
20: iconst_5
ireturn
21: StackMap locals:
StackMap stack:
aload 3
getstatic org.aspectj.weaver.Shadow.FieldGet:Lorg/aspectj/weaver/Shadow$Kind;
if_acmpeq 22
aload 3
getstatic org.aspectj.weaver.Shadow.FieldSet:Lorg/aspectj/weaver/Shadow$Kind;
if_acmpne 23
22: StackMap locals:
StackMap stack:
bipush 6
ireturn
23: StackMap locals:
StackMap stack:
aload 3
getstatic org.aspectj.weaver.Shadow.StaticInitialization:Lorg/aspectj/weaver/Shadow$Kind;
if_acmpne 25
24: iconst_3
ireturn
25: StackMap locals:
StackMap stack:
bipush 20
ireturn
end local 3 end local 2 26: StackMap locals:
StackMap stack:
aload 1
instanceof org.aspectj.weaver.patterns.AnnotationPointcut
ifeq 28
27: bipush 13
ireturn
28: StackMap locals:
StackMap stack:
aload 1
instanceof org.aspectj.weaver.patterns.ArgsPointcut
ifeq 30
29: bipush 15
ireturn
30: StackMap locals:
StackMap stack:
aload 1
instanceof org.aspectj.weaver.patterns.ArgsAnnotationPointcut
ifeq 32
31: bipush 16
ireturn
32: StackMap locals:
StackMap stack:
aload 1
instanceof org.aspectj.weaver.patterns.CflowPointcut
ifne 33
aload 1
instanceof org.aspectj.weaver.patterns.ConcreteCflowPointcut
ifeq 34
33: StackMap locals:
StackMap stack:
bipush 17
ireturn
34: StackMap locals:
StackMap stack:
aload 1
instanceof org.aspectj.weaver.patterns.HandlerPointcut
ifeq 36
35: iconst_5
ireturn
36: StackMap locals:
StackMap stack:
aload 1
instanceof org.aspectj.weaver.patterns.IfPointcut
ifeq 38
37: bipush 18
ireturn
38: StackMap locals:
StackMap stack:
aload 1
instanceof org.aspectj.weaver.patterns.ThisOrTargetPointcut
ifeq 40
39: bipush 11
ireturn
40: StackMap locals:
StackMap stack:
aload 1
instanceof org.aspectj.weaver.patterns.ThisOrTargetAnnotationPointcut
ifeq 42
41: bipush 14
ireturn
42: StackMap locals:
StackMap stack:
aload 1
instanceof org.aspectj.weaver.patterns.WithincodePointcut
ifeq 44
43: bipush 7
ireturn
44: StackMap locals:
StackMap stack:
aload 1
instanceof org.aspectj.weaver.patterns.WithinCodeAnnotationPointcut
ifeq 46
45: bipush 8
ireturn
46: StackMap locals:
StackMap stack:
aload 1
instanceof org.aspectj.weaver.patterns.NotPointcut
ifeq 48
47: aload 0
aload 1
checkcast org.aspectj.weaver.patterns.NotPointcut
invokevirtual org.aspectj.weaver.patterns.NotPointcut.getNegatedPointcut:()Lorg/aspectj/weaver/patterns/Pointcut;
invokevirtual org.aspectj.weaver.patterns.PointcutEvaluationExpenseComparator.getScore:(Lorg/aspectj/weaver/patterns/Pointcut;)I
ireturn
48: StackMap locals:
StackMap stack:
aload 1
instanceof org.aspectj.weaver.patterns.AndPointcut
ifeq 54
49: aload 0
aload 1
checkcast org.aspectj.weaver.patterns.AndPointcut
invokevirtual org.aspectj.weaver.patterns.AndPointcut.getLeft:()Lorg/aspectj/weaver/patterns/Pointcut;
invokevirtual org.aspectj.weaver.patterns.PointcutEvaluationExpenseComparator.getScore:(Lorg/aspectj/weaver/patterns/Pointcut;)I
istore 2
start local 2 50: aload 0
aload 1
checkcast org.aspectj.weaver.patterns.AndPointcut
invokevirtual org.aspectj.weaver.patterns.AndPointcut.getRight:()Lorg/aspectj/weaver/patterns/Pointcut;
invokevirtual org.aspectj.weaver.patterns.PointcutEvaluationExpenseComparator.getScore:(Lorg/aspectj/weaver/patterns/Pointcut;)I
istore 3
start local 3 51: iload 2
iload 3
if_icmpge 53
52: iload 2
ireturn
53: StackMap locals: int int
StackMap stack:
iload 3
ireturn
end local 3 end local 2 54: StackMap locals:
StackMap stack:
aload 1
instanceof org.aspectj.weaver.patterns.OrPointcut
ifeq 60
55: aload 0
aload 1
checkcast org.aspectj.weaver.patterns.OrPointcut
invokevirtual org.aspectj.weaver.patterns.OrPointcut.getLeft:()Lorg/aspectj/weaver/patterns/Pointcut;
invokevirtual org.aspectj.weaver.patterns.PointcutEvaluationExpenseComparator.getScore:(Lorg/aspectj/weaver/patterns/Pointcut;)I
istore 2
start local 2 56: aload 0
aload 1
checkcast org.aspectj.weaver.patterns.OrPointcut
invokevirtual org.aspectj.weaver.patterns.OrPointcut.getRight:()Lorg/aspectj/weaver/patterns/Pointcut;
invokevirtual org.aspectj.weaver.patterns.PointcutEvaluationExpenseComparator.getScore:(Lorg/aspectj/weaver/patterns/Pointcut;)I
istore 3
start local 3 57: iload 2
iload 3
if_icmple 59
58: iload 2
ireturn
59: StackMap locals: int int
StackMap stack:
iload 3
ireturn
end local 3 end local 2 60: StackMap locals:
StackMap stack:
bipush 20
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 61 0 this Lorg/aspectj/weaver/patterns/PointcutEvaluationExpenseComparator;
0 61 1 p Lorg/aspectj/weaver/patterns/Pointcut;
8 26 2 kp Lorg/aspectj/weaver/patterns/KindedPointcut;
9 26 3 kind Lorg/aspectj/weaver/Shadow$Kind;
13 16 4 declaringTypePattern Lorg/aspectj/weaver/patterns/TypePattern;
50 54 2 leftScore I
51 54 3 rightScore I
56 60 2 leftScore I
57 60 3 rightScore I
MethodParameters:
Name Flags
p
public int compare(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)I
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
checkcast org.aspectj.weaver.patterns.Pointcut
aload 2
checkcast org.aspectj.weaver.patterns.Pointcut
invokevirtual org.aspectj.weaver.patterns.PointcutEvaluationExpenseComparator.compare:(Lorg/aspectj/weaver/patterns/Pointcut;Lorg/aspectj/weaver/patterns/Pointcut;)I
ireturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Ljava/lang/Object;Ljava/util/Comparator<Lorg/aspectj/weaver/patterns/Pointcut;>;
SourceFile: "PointcutEvaluationExpenseComparator.java"
InnerClasses:
public final Kind = org.aspectj.weaver.Shadow$Kind of org.aspectj.weaver.Shadow