AjTypeImpl.smali
.class public Lorg/aspectj/internal/lang/reflect/AjTypeImpl;
.super Ljava/lang/Object;
.source "AjTypeImpl.java"
# interfaces
.implements Lorg/aspectj/lang/reflect/AjType;
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">",
"Ljava/lang/Object;",
"Lorg/aspectj/lang/reflect/AjType<",
"TT;>;"
}
.end annotation
# static fields
.field private static final ajcMagic:Ljava/lang/String; = "ajc$"
# instance fields
.field private advice:[Lorg/aspectj/lang/reflect/Advice;
.field private clazz:Ljava/lang/Class;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Class<",
"TT;>;"
}
.end annotation
.end field
.field private declaredAdvice:[Lorg/aspectj/lang/reflect/Advice;
.field private declaredITDCons:[Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;
.field private declaredITDFields:[Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;
.field private declaredITDMethods:[Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
.field private declaredPointcuts:[Lorg/aspectj/lang/reflect/Pointcut;
.field private itdCons:[Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;
.field private itdFields:[Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;
.field private itdMethods:[Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
.field private pointcuts:[Lorg/aspectj/lang/reflect/Pointcut;
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>(Ljava/lang/Class;)V
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"TT;>;)V"
}
.end annotation
.line 81
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
.local p1, "fromClass":Ljava/lang/Class;, "Ljava/lang/Class<TT;>;"
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 70
const/4 v0, 0x0
iput-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->declaredPointcuts:[Lorg/aspectj/lang/reflect/Pointcut;
.line 71
iput-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->pointcuts:[Lorg/aspectj/lang/reflect/Pointcut;
.line 72
iput-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->declaredAdvice:[Lorg/aspectj/lang/reflect/Advice;
.line 73
iput-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->advice:[Lorg/aspectj/lang/reflect/Advice;
.line 74
iput-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->declaredITDMethods:[Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
.line 75
iput-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->itdMethods:[Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
.line 76
iput-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->declaredITDFields:[Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;
.line 77
iput-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->itdFields:[Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;
.line 78
iput-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->itdCons:[Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;
.line 79
iput-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->declaredITDCons:[Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;
.line 82
iput-object p1, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
.line 83
return-void
.end method
.method private addAnnotationStyleDeclareParents(Ljava/util/List;)V
.registers 11
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Lorg/aspectj/lang/reflect/DeclareParents;",
">;)V"
}
.end annotation
.line 956
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
.local p1, "toList":Ljava/util/List;, "Ljava/util/List<Lorg/aspectj/lang/reflect/DeclareParents;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getDeclaredFields()[Ljava/lang/reflect/Field;
move-result-object v0
.local v0, "arr$":[Ljava/lang/reflect/Field;
array-length v1, v0
.local v1, "len$":I
const/4 v2, 0x0
.local v2, "i$":I
:goto_8
if-ge v2, v1, :cond_3f
aget-object v3, v0, v2
.line 957
.local v3, "f":Ljava/lang/reflect/Field;
const-class v4, Lorg/aspectj/lang/annotation/DeclareParents;
invoke-virtual {v3, v4}, Ljava/lang/reflect/Field;->isAnnotationPresent(Ljava/lang/Class;)Z
move-result v4
if-eqz v4, :cond_3c
.line 958
invoke-virtual {v3}, Ljava/lang/reflect/Field;->getType()Ljava/lang/Class;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/Class;->isInterface()Z
move-result v4
if-nez v4, :cond_1f
goto :goto_3c
.line 959
:cond_1f
const-class v4, Lorg/aspectj/lang/annotation/DeclareParents;
invoke-virtual {v3, v4}, Ljava/lang/reflect/Field;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v4
check-cast v4, Lorg/aspectj/lang/annotation/DeclareParents;
.line 960
.local v4, "ann":Lorg/aspectj/lang/annotation/DeclareParents;
invoke-virtual {v3}, Ljava/lang/reflect/Field;->getType()Ljava/lang/Class;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v5
.line 961
.local v5, "parentType":Ljava/lang/String;
new-instance v6, Lorg/aspectj/internal/lang/reflect/DeclareParentsImpl;
invoke-interface {v4}, Lorg/aspectj/lang/annotation/DeclareParents;->value()Ljava/lang/String;
move-result-object v7
const/4 v8, 0x0
invoke-direct {v6, v7, v5, v8, p0}, Lorg/aspectj/internal/lang/reflect/DeclareParentsImpl;-><init>(Ljava/lang/String;Ljava/lang/String;ZLorg/aspectj/lang/reflect/AjType;)V
.line 967
.local v6, "decp":Lorg/aspectj/internal/lang/reflect/DeclareParentsImpl;
invoke-interface {p1, v6}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 956
.end local v3 # "f":Ljava/lang/reflect/Field;
.end local v4 # "ann":Lorg/aspectj/lang/annotation/DeclareParents;
.end local v5 # "parentType":Ljava/lang/String;
.end local v6 # "decp":Lorg/aspectj/internal/lang/reflect/DeclareParentsImpl;
:cond_3c
:goto_3c
add-int/lit8 v2, v2, 0x1
goto :goto_8
.line 970
.end local v0 # "arr$":[Ljava/lang/reflect/Field;
.end local v1 # "len$":I
.end local v2 # "i$":I
:cond_3f
return-void
.end method
.method private addAnnotationStyleITDFields(Ljava/util/List;Z)V
.registers 3
.param p2, "publicOnly" # Z
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;",
">;Z)V"
}
.end annotation
.line 685
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
.local p1, "toList":Ljava/util/List;, "Ljava/util/List<Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;>;"
return-void
.end method
.method private addAnnotationStyleITDMethods(Ljava/util/List;Z)V
.registers 16
.param p2, "publicOnly" # Z
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;",
">;Z)V"
}
.end annotation
.line 662
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
.local p1, "toList":Ljava/util/List;, "Ljava/util/List<Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;>;"
invoke-virtual {p0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->isAspect()Z
move-result v0
if-eqz v0, :cond_66
.line 663
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getDeclaredFields()[Ljava/lang/reflect/Field;
move-result-object v0
.local v0, "arr$":[Ljava/lang/reflect/Field;
array-length v1, v0
.local v1, "len$":I
const/4 v2, 0x0
.local v2, "i$":I
:goto_e
if-ge v2, v1, :cond_66
aget-object v3, v0, v2
.line 664
.local v3, "f":Ljava/lang/reflect/Field;
invoke-virtual {v3}, Ljava/lang/reflect/Field;->getType()Ljava/lang/Class;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/Class;->isInterface()Z
move-result v4
if-nez v4, :cond_1d
goto :goto_63
.line 665
:cond_1d
const-class v4, Lorg/aspectj/lang/annotation/DeclareParents;
invoke-virtual {v3, v4}, Ljava/lang/reflect/Field;->isAnnotationPresent(Ljava/lang/Class;)Z
move-result v4
if-eqz v4, :cond_63
.line 666
const-class v4, Lorg/aspectj/lang/annotation/DeclareParents;
.line 667
.local v4, "decPAnnClass":Ljava/lang/Class;, "Ljava/lang/Class<Lorg/aspectj/lang/annotation/DeclareParents;>;"
invoke-virtual {v3, v4}, Ljava/lang/reflect/Field;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v5
check-cast v5, Lorg/aspectj/lang/annotation/DeclareParents;
.line 668
.local v5, "decPAnn":Lorg/aspectj/lang/annotation/DeclareParents;
invoke-interface {v5}, Lorg/aspectj/lang/annotation/DeclareParents;->defaultImpl()Ljava/lang/Class;
move-result-object v6
if-ne v6, v4, :cond_34
goto :goto_63
.line 669
:cond_34
invoke-virtual {v3}, Ljava/lang/reflect/Field;->getType()Ljava/lang/Class;
move-result-object v6
invoke-virtual {v6}, Ljava/lang/Class;->getDeclaredMethods()[Ljava/lang/reflect/Method;
move-result-object v6
.local v6, "arr$":[Ljava/lang/reflect/Method;
array-length v7, v6
.local v7, "len$":I
const/4 v8, 0x0
.local v8, "i$":I
:goto_3e
if-ge v8, v7, :cond_63
aget-object v9, v6, v8
.line 670
.local v9, "itdM":Ljava/lang/reflect/Method;
invoke-virtual {v9}, Ljava/lang/reflect/Method;->getModifiers()I
move-result v10
invoke-static {v10}, Ljava/lang/reflect/Modifier;->isPublic(I)Z
move-result v10
if-nez v10, :cond_4f
if-eqz p2, :cond_4f
goto :goto_60
.line 671
:cond_4f
new-instance v10, Lorg/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl;
invoke-virtual {v3}, Ljava/lang/reflect/Field;->getType()Ljava/lang/Class;
move-result-object v11
invoke-static {v11}, Lorg/aspectj/lang/reflect/AjTypeSystem;->getAjType(Ljava/lang/Class;)Lorg/aspectj/lang/reflect/AjType;
move-result-object v11
const/4 v12, 0x1
invoke-direct {v10, p0, v11, v9, v12}, Lorg/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl;-><init>(Lorg/aspectj/lang/reflect/AjType;Lorg/aspectj/lang/reflect/AjType;Ljava/lang/reflect/Method;I)V
.line 675
.local v10, "itdm":Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
invoke-interface {p1, v10}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 669
.end local v9 # "itdM":Ljava/lang/reflect/Method;
.end local v10 # "itdm":Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
:goto_60
add-int/lit8 v8, v8, 0x1
goto :goto_3e
.line 663
.end local v3 # "f":Ljava/lang/reflect/Field;
.end local v4 # "decPAnnClass":Ljava/lang/Class;, "Ljava/lang/Class<Lorg/aspectj/lang/annotation/DeclareParents;>;"
.end local v5 # "decPAnn":Lorg/aspectj/lang/annotation/DeclareParents;
.end local v6 # "arr$":[Ljava/lang/reflect/Method;
.end local v7 # "len$":I
.end local v8 # "i$":I
:cond_63
:goto_63
add-int/lit8 v2, v2, 0x1
goto :goto_e
.line 680
.end local v0 # "arr$":[Ljava/lang/reflect/Field;
.end local v1 # "len$":I
.end local v2 # "i$":I
:cond_66
return-void
.end method
.method private asAdvice(Ljava/lang/reflect/Method;)Lorg/aspectj/lang/reflect/Advice;
.registers 10
.param p1, "method" # Ljava/lang/reflect/Method;
.line 533
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
invoke-virtual {p1}, Ljava/lang/reflect/Method;->getAnnotations()[Ljava/lang/annotation/Annotation;
move-result-object v0
array-length v0, v0
const/4 v1, 0x0
if-nez v0, :cond_9
return-object v1
.line 534
:cond_9
const-class v0, Lorg/aspectj/lang/annotation/Before;
invoke-virtual {p1, v0}, Ljava/lang/reflect/Method;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v0
check-cast v0, Lorg/aspectj/lang/annotation/Before;
.line 535
.local v0, "beforeAnn":Lorg/aspectj/lang/annotation/Before;
if-eqz v0, :cond_1f
new-instance v1, Lorg/aspectj/internal/lang/reflect/AdviceImpl;
invoke-interface {v0}, Lorg/aspectj/lang/annotation/Before;->value()Ljava/lang/String;
move-result-object v2
sget-object v3, Lorg/aspectj/lang/reflect/AdviceKind;->BEFORE:Lorg/aspectj/lang/reflect/AdviceKind;
invoke-direct {v1, p1, v2, v3}, Lorg/aspectj/internal/lang/reflect/AdviceImpl;-><init>(Ljava/lang/reflect/Method;Ljava/lang/String;Lorg/aspectj/lang/reflect/AdviceKind;)V
return-object v1
.line 536
:cond_1f
const-class v2, Lorg/aspectj/lang/annotation/After;
invoke-virtual {p1, v2}, Ljava/lang/reflect/Method;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v2
check-cast v2, Lorg/aspectj/lang/annotation/After;
.line 537
.local v2, "afterAnn":Lorg/aspectj/lang/annotation/After;
if-eqz v2, :cond_35
new-instance v1, Lorg/aspectj/internal/lang/reflect/AdviceImpl;
invoke-interface {v2}, Lorg/aspectj/lang/annotation/After;->value()Ljava/lang/String;
move-result-object v3
sget-object v4, Lorg/aspectj/lang/reflect/AdviceKind;->AFTER:Lorg/aspectj/lang/reflect/AdviceKind;
invoke-direct {v1, p1, v3, v4}, Lorg/aspectj/internal/lang/reflect/AdviceImpl;-><init>(Ljava/lang/reflect/Method;Ljava/lang/String;Lorg/aspectj/lang/reflect/AdviceKind;)V
return-object v1
.line 538
:cond_35
const-class v3, Lorg/aspectj/lang/annotation/AfterReturning;
invoke-virtual {p1, v3}, Ljava/lang/reflect/Method;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v3
check-cast v3, Lorg/aspectj/lang/annotation/AfterReturning;
.line 539
.local v3, "afterReturningAnn":Lorg/aspectj/lang/annotation/AfterReturning;
if-eqz v3, :cond_5b
.line 540
invoke-interface {v3}, Lorg/aspectj/lang/annotation/AfterReturning;->pointcut()Ljava/lang/String;
move-result-object v1
.line 541
.local v1, "pcExpr":Ljava/lang/String;
const-string v4, ""
invoke-virtual {v1, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_4f
invoke-interface {v3}, Lorg/aspectj/lang/annotation/AfterReturning;->value()Ljava/lang/String;
move-result-object v1
.line 542
:cond_4f
new-instance v4, Lorg/aspectj/internal/lang/reflect/AdviceImpl;
sget-object v5, Lorg/aspectj/lang/reflect/AdviceKind;->AFTER_RETURNING:Lorg/aspectj/lang/reflect/AdviceKind;
invoke-interface {v3}, Lorg/aspectj/lang/annotation/AfterReturning;->returning()Ljava/lang/String;
move-result-object v6
invoke-direct {v4, p1, v1, v5, v6}, Lorg/aspectj/internal/lang/reflect/AdviceImpl;-><init>(Ljava/lang/reflect/Method;Ljava/lang/String;Lorg/aspectj/lang/reflect/AdviceKind;Ljava/lang/String;)V
return-object v4
.line 544
.end local v1 # "pcExpr":Ljava/lang/String;
:cond_5b
const-class v4, Lorg/aspectj/lang/annotation/AfterThrowing;
invoke-virtual {p1, v4}, Ljava/lang/reflect/Method;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v4
check-cast v4, Lorg/aspectj/lang/annotation/AfterThrowing;
.line 545
.local v4, "afterThrowingAnn":Lorg/aspectj/lang/annotation/AfterThrowing;
if-eqz v4, :cond_7b
.line 546
invoke-interface {v4}, Lorg/aspectj/lang/annotation/AfterThrowing;->pointcut()Ljava/lang/String;
move-result-object v1
.line 547
.restart local v1 # "pcExpr":Ljava/lang/String;
if-nez v1, :cond_6f
invoke-interface {v4}, Lorg/aspectj/lang/annotation/AfterThrowing;->value()Ljava/lang/String;
move-result-object v1
.line 548
:cond_6f
new-instance v5, Lorg/aspectj/internal/lang/reflect/AdviceImpl;
sget-object v6, Lorg/aspectj/lang/reflect/AdviceKind;->AFTER_THROWING:Lorg/aspectj/lang/reflect/AdviceKind;
invoke-interface {v4}, Lorg/aspectj/lang/annotation/AfterThrowing;->throwing()Ljava/lang/String;
move-result-object v7
invoke-direct {v5, p1, v1, v6, v7}, Lorg/aspectj/internal/lang/reflect/AdviceImpl;-><init>(Ljava/lang/reflect/Method;Ljava/lang/String;Lorg/aspectj/lang/reflect/AdviceKind;Ljava/lang/String;)V
return-object v5
.line 550
.end local v1 # "pcExpr":Ljava/lang/String;
:cond_7b
const-class v5, Lorg/aspectj/lang/annotation/Around;
invoke-virtual {p1, v5}, Ljava/lang/reflect/Method;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v5
check-cast v5, Lorg/aspectj/lang/annotation/Around;
.line 551
.local v5, "aroundAnn":Lorg/aspectj/lang/annotation/Around;
if-eqz v5, :cond_91
new-instance v1, Lorg/aspectj/internal/lang/reflect/AdviceImpl;
invoke-interface {v5}, Lorg/aspectj/lang/annotation/Around;->value()Ljava/lang/String;
move-result-object v6
sget-object v7, Lorg/aspectj/lang/reflect/AdviceKind;->AROUND:Lorg/aspectj/lang/reflect/AdviceKind;
invoke-direct {v1, p1, v6, v7}, Lorg/aspectj/internal/lang/reflect/AdviceImpl;-><init>(Ljava/lang/reflect/Method;Ljava/lang/String;Lorg/aspectj/lang/reflect/AdviceKind;)V
return-object v1
.line 552
:cond_91
return-object v1
.end method
.method private asPointcut(Ljava/lang/reflect/Method;)Lorg/aspectj/lang/reflect/Pointcut;
.registers 12
.param p1, "method" # Ljava/lang/reflect/Method;
.line 424
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
const-class v0, Lorg/aspectj/lang/annotation/Pointcut;
invoke-virtual {p1, v0}, Ljava/lang/reflect/Method;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v0
check-cast v0, Lorg/aspectj/lang/annotation/Pointcut;
.line 425
.local v0, "pcAnn":Lorg/aspectj/lang/annotation/Pointcut;
if-eqz v0, :cond_4d
.line 426
invoke-virtual {p1}, Ljava/lang/reflect/Method;->getName()Ljava/lang/String;
move-result-object v1
.line 427
.local v1, "name":Ljava/lang/String;
const-string v2, "ajc$"
invoke-virtual {v1, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_34
.line 429
const-string v2, "$$"
invoke-virtual {v1, v2}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I
move-result v2
.line 430
.local v2, "nameStart":I
add-int/lit8 v3, v2, 0x2
invoke-virtual {v1}, Ljava/lang/String;->length()I
move-result v4
invoke-virtual {v1, v3, v4}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v1
.line 431
const-string v3, "$"
invoke-virtual {v1, v3}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I
move-result v3
.line 432
.local v3, "nextDollar":I
const/4 v4, -0x1
if-eq v3, v4, :cond_34
const/4 v4, 0x0
invoke-virtual {v1, v4, v3}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v1
.line 434
.end local v2 # "nameStart":I
.end local v3 # "nextDollar":I
:cond_34
new-instance v2, Lorg/aspectj/internal/lang/reflect/PointcutImpl;
invoke-interface {v0}, Lorg/aspectj/lang/annotation/Pointcut;->value()Ljava/lang/String;
move-result-object v6
invoke-virtual {p1}, Ljava/lang/reflect/Method;->getDeclaringClass()Ljava/lang/Class;
move-result-object v3
invoke-static {v3}, Lorg/aspectj/lang/reflect/AjTypeSystem;->getAjType(Ljava/lang/Class;)Lorg/aspectj/lang/reflect/AjType;
move-result-object v8
invoke-interface {v0}, Lorg/aspectj/lang/annotation/Pointcut;->argNames()Ljava/lang/String;
move-result-object v9
move-object v4, v2
move-object v5, v1
move-object v7, p1
invoke-direct/range {v4 .. v9}, Lorg/aspectj/internal/lang/reflect/PointcutImpl;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/reflect/Method;Lorg/aspectj/lang/reflect/AjType;Ljava/lang/String;)V
return-object v2
.line 436
.end local v1 # "name":Ljava/lang/String;
:cond_4d
const/4 v1, 0x0
return-object v1
.end method
.method private getAdvice(Ljava/util/Set;)[Lorg/aspectj/lang/reflect/Advice;
.registers 8
.param p1, "ofAdviceTypes" # Ljava/util/Set;
.line 492
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->advice:[Lorg/aspectj/lang/reflect/Advice;
if-nez v0, :cond_7
invoke-direct {p0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->initAdvice()V
.line 493
:cond_7
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 494
.local v0, "adviceList":Ljava/util/List;, "Ljava/util/List<Lorg/aspectj/lang/reflect/Advice;>;"
iget-object v1, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->advice:[Lorg/aspectj/lang/reflect/Advice;
.local v1, "arr$":[Lorg/aspectj/lang/reflect/Advice;
array-length v2, v1
.local v2, "len$":I
const/4 v3, 0x0
.local v3, "i$":I
:goto_10
if-ge v3, v2, :cond_24
aget-object v4, v1, v3
.line 495
.local v4, "a":Lorg/aspectj/lang/reflect/Advice;
invoke-interface {v4}, Lorg/aspectj/lang/reflect/Advice;->getKind()Lorg/aspectj/lang/reflect/AdviceKind;
move-result-object v5
invoke-interface {p1, v5}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z
move-result v5
if-eqz v5, :cond_21
invoke-interface {v0, v4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 494
.end local v4 # "a":Lorg/aspectj/lang/reflect/Advice;
:cond_21
add-int/lit8 v3, v3, 0x1
goto :goto_10
.line 497
.end local v1 # "arr$":[Lorg/aspectj/lang/reflect/Advice;
.end local v2 # "len$":I
.end local v3 # "i$":I
:cond_24
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v1
new-array v1, v1, [Lorg/aspectj/lang/reflect/Advice;
.line 498
.local v1, "ret":[Lorg/aspectj/lang/reflect/Advice;
invoke-interface {v0, v1}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
.line 499
return-object v1
.end method
.method private getDeclaredAdvice(Ljava/util/Set;)[Lorg/aspectj/lang/reflect/Advice;
.registers 8
.param p1, "ofAdviceTypes" # Ljava/util/Set;
.line 467
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->declaredAdvice:[Lorg/aspectj/lang/reflect/Advice;
if-nez v0, :cond_7
invoke-direct {p0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->initDeclaredAdvice()V
.line 468
:cond_7
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 469
.local v0, "adviceList":Ljava/util/List;, "Ljava/util/List<Lorg/aspectj/lang/reflect/Advice;>;"
iget-object v1, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->declaredAdvice:[Lorg/aspectj/lang/reflect/Advice;
.local v1, "arr$":[Lorg/aspectj/lang/reflect/Advice;
array-length v2, v1
.local v2, "len$":I
const/4 v3, 0x0
.local v3, "i$":I
:goto_10
if-ge v3, v2, :cond_24
aget-object v4, v1, v3
.line 470
.local v4, "a":Lorg/aspectj/lang/reflect/Advice;
invoke-interface {v4}, Lorg/aspectj/lang/reflect/Advice;->getKind()Lorg/aspectj/lang/reflect/AdviceKind;
move-result-object v5
invoke-interface {p1, v5}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z
move-result v5
if-eqz v5, :cond_21
invoke-interface {v0, v4}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 469
.end local v4 # "a":Lorg/aspectj/lang/reflect/Advice;
:cond_21
add-int/lit8 v3, v3, 0x1
goto :goto_10
.line 472
.end local v1 # "arr$":[Lorg/aspectj/lang/reflect/Advice;
.end local v2 # "len$":I
.end local v3 # "i$":I
:cond_24
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v1
new-array v1, v1, [Lorg/aspectj/lang/reflect/Advice;
.line 473
.local v1, "ret":[Lorg/aspectj/lang/reflect/Advice;
invoke-interface {v0, v1}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
.line 474
return-object v1
.end method
.method private initAdvice()V
.registers 8
.line 503
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getMethods()[Ljava/lang/reflect/Method;
move-result-object v0
.line 504
.local v0, "methods":[Ljava/lang/reflect/Method;
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
.line 505
.local v1, "adviceList":Ljava/util/List;, "Ljava/util/List<Lorg/aspectj/lang/reflect/Advice;>;"
move-object v2, v0
.local v2, "arr$":[Ljava/lang/reflect/Method;
array-length v3, v2
.local v3, "len$":I
const/4 v4, 0x0
.local v4, "i$":I
:goto_e
if-ge v4, v3, :cond_1e
aget-object v5, v2, v4
.line 506
.local v5, "method":Ljava/lang/reflect/Method;
invoke-direct {p0, v5}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->asAdvice(Ljava/lang/reflect/Method;)Lorg/aspectj/lang/reflect/Advice;
move-result-object v6
.line 507
.local v6, "advice":Lorg/aspectj/lang/reflect/Advice;
if-eqz v6, :cond_1b
invoke-interface {v1, v6}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 505
.end local v5 # "method":Ljava/lang/reflect/Method;
.end local v6 # "advice":Lorg/aspectj/lang/reflect/Advice;
:cond_1b
add-int/lit8 v4, v4, 0x1
goto :goto_e
.line 509
.end local v2 # "arr$":[Ljava/lang/reflect/Method;
.end local v3 # "len$":I
.end local v4 # "i$":I
:cond_1e
invoke-interface {v1}, Ljava/util/List;->size()I
move-result v2
new-array v2, v2, [Lorg/aspectj/lang/reflect/Advice;
iput-object v2, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->advice:[Lorg/aspectj/lang/reflect/Advice;
.line 510
invoke-interface {v1, v2}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
.line 511
return-void
.end method
.method private initDeclaredAdvice()V
.registers 8
.line 478
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getDeclaredMethods()[Ljava/lang/reflect/Method;
move-result-object v0
.line 479
.local v0, "methods":[Ljava/lang/reflect/Method;
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
.line 480
.local v1, "adviceList":Ljava/util/List;, "Ljava/util/List<Lorg/aspectj/lang/reflect/Advice;>;"
move-object v2, v0
.local v2, "arr$":[Ljava/lang/reflect/Method;
array-length v3, v2
.local v3, "len$":I
const/4 v4, 0x0
.local v4, "i$":I
:goto_e
if-ge v4, v3, :cond_1e
aget-object v5, v2, v4
.line 481
.local v5, "method":Ljava/lang/reflect/Method;
invoke-direct {p0, v5}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->asAdvice(Ljava/lang/reflect/Method;)Lorg/aspectj/lang/reflect/Advice;
move-result-object v6
.line 482
.local v6, "advice":Lorg/aspectj/lang/reflect/Advice;
if-eqz v6, :cond_1b
invoke-interface {v1, v6}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 480
.end local v5 # "method":Ljava/lang/reflect/Method;
.end local v6 # "advice":Lorg/aspectj/lang/reflect/Advice;
:cond_1b
add-int/lit8 v4, v4, 0x1
goto :goto_e
.line 484
.end local v2 # "arr$":[Ljava/lang/reflect/Method;
.end local v3 # "len$":I
.end local v4 # "i$":I
:cond_1e
invoke-interface {v1}, Ljava/util/List;->size()I
move-result v2
new-array v2, v2, [Lorg/aspectj/lang/reflect/Advice;
iput-object v2, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->declaredAdvice:[Lorg/aspectj/lang/reflect/Advice;
.line 485
invoke-interface {v1, v2}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
.line 486
return-void
.end method
.method private isReallyAMethod(Ljava/lang/reflect/Method;)Z
.registers 5
.param p1, "method" # Ljava/lang/reflect/Method;
.line 358
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
invoke-virtual {p1}, Ljava/lang/reflect/Method;->getName()Ljava/lang/String;
move-result-object v0
const-string v1, "ajc$"
invoke-virtual {v0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
const/4 v1, 0x0
if-eqz v0, :cond_e
return v1
.line 359
:cond_e
invoke-virtual {p1}, Ljava/lang/reflect/Method;->getAnnotations()[Ljava/lang/annotation/Annotation;
move-result-object v0
array-length v0, v0
const/4 v2, 0x1
if-nez v0, :cond_17
return v2
.line 360
:cond_17
const-class v0, Lorg/aspectj/lang/annotation/Pointcut;
invoke-virtual {p1, v0}, Ljava/lang/reflect/Method;->isAnnotationPresent(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_20
return v1
.line 361
:cond_20
const-class v0, Lorg/aspectj/lang/annotation/Before;
invoke-virtual {p1, v0}, Ljava/lang/reflect/Method;->isAnnotationPresent(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_29
return v1
.line 362
:cond_29
const-class v0, Lorg/aspectj/lang/annotation/After;
invoke-virtual {p1, v0}, Ljava/lang/reflect/Method;->isAnnotationPresent(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_32
return v1
.line 363
:cond_32
const-class v0, Lorg/aspectj/lang/annotation/AfterReturning;
invoke-virtual {p1, v0}, Ljava/lang/reflect/Method;->isAnnotationPresent(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_3b
return v1
.line 364
:cond_3b
const-class v0, Lorg/aspectj/lang/annotation/AfterThrowing;
invoke-virtual {p1, v0}, Ljava/lang/reflect/Method;->isAnnotationPresent(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_44
return v1
.line 365
:cond_44
const-class v0, Lorg/aspectj/lang/annotation/Around;
invoke-virtual {p1, v0}, Ljava/lang/reflect/Method;->isAnnotationPresent(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_4d
return v1
.line 366
:cond_4d
return v2
.end method
.method private toAjTypeArray([Ljava/lang/Class;)[Lorg/aspectj/lang/reflect/AjType;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"([",
"Ljava/lang/Class<",
"*>;)[",
"Lorg/aspectj/lang/reflect/AjType<",
"*>;"
}
.end annotation
.line 1162
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
.local p1, "classes":[Ljava/lang/Class;, "[Ljava/lang/Class<*>;"
array-length v0, p1
new-array v0, v0, [Lorg/aspectj/lang/reflect/AjType;
.line 1163
.local v0, "ajtypes":[Lorg/aspectj/lang/reflect/AjType;, "[Lorg/aspectj/lang/reflect/AjType<*>;"
const/4 v1, 0x0
.local v1, "i":I
:goto_4
array-length v2, v0
if-ge v1, v2, :cond_12
.line 1164
aget-object v2, p1, v1
invoke-static {v2}, Lorg/aspectj/lang/reflect/AjTypeSystem;->getAjType(Ljava/lang/Class;)Lorg/aspectj/lang/reflect/AjType;
move-result-object v2
aput-object v2, v0, v1
.line 1163
add-int/lit8 v1, v1, 0x1
goto :goto_4
.line 1166
.end local v1 # "i":I
:cond_12
return-object v0
.end method
.method private toClassArray([Lorg/aspectj/lang/reflect/AjType;)[Ljava/lang/Class;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"([",
"Lorg/aspectj/lang/reflect/AjType<",
"*>;)[",
"Ljava/lang/Class<",
"*>;"
}
.end annotation
.line 1170
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
.local p1, "ajTypes":[Lorg/aspectj/lang/reflect/AjType;, "[Lorg/aspectj/lang/reflect/AjType<*>;"
array-length v0, p1
new-array v0, v0, [Ljava/lang/Class;
.line 1171
.local v0, "classes":[Ljava/lang/Class;, "[Ljava/lang/Class<*>;"
const/4 v1, 0x0
.local v1, "i":I
:goto_4
array-length v2, v0
if-ge v1, v2, :cond_12
.line 1172
aget-object v2, p1, v1
invoke-interface {v2}, Lorg/aspectj/lang/reflect/AjType;->getJavaClass()Ljava/lang/Class;
move-result-object v2
aput-object v2, v0, v1
.line 1171
add-int/lit8 v1, v1, 0x1
goto :goto_4
.line 1174
.end local v1 # "i":I
:cond_12
return-object v0
.end method
# virtual methods
.method public equals(Ljava/lang/Object;)Z
.registers 5
.param p1, "obj" # Ljava/lang/Object;
.line 1151
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
instance-of v0, p1, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;
if-nez v0, :cond_6
const/4 v0, 0x0
return v0
.line 1152
:cond_6
move-object v0, p1
check-cast v0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;
.line 1153
.local v0, "other":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;
iget-object v1, v0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
iget-object v2, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v1, v2}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v1
return v1
.end method
.method public getAdvice(Ljava/lang/String;)Lorg/aspectj/lang/reflect/Advice;
.registers 7
.param p1, "name" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/aspectj/lang/reflect/NoSuchAdviceException;
}
.end annotation
.line 515
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
const-string v0, ""
invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_2b
.line 516
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->advice:[Lorg/aspectj/lang/reflect/Advice;
if-nez v0, :cond_f
invoke-direct {p0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->initAdvice()V
.line 517
:cond_f
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->advice:[Lorg/aspectj/lang/reflect/Advice;
.local v0, "arr$":[Lorg/aspectj/lang/reflect/Advice;
array-length v1, v0
.local v1, "len$":I
const/4 v2, 0x0
.local v2, "i$":I
:goto_13
if-ge v2, v1, :cond_25
aget-object v3, v0, v2
.line 518
.local v3, "a":Lorg/aspectj/lang/reflect/Advice;
invoke-interface {v3}, Lorg/aspectj/lang/reflect/Advice;->getName()Ljava/lang/String;
move-result-object v4
invoke-virtual {v4, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_22
return-object v3
.line 517
.end local v3 # "a":Lorg/aspectj/lang/reflect/Advice;
:cond_22
add-int/lit8 v2, v2, 0x1
goto :goto_13
.line 520
.end local v0 # "arr$":[Lorg/aspectj/lang/reflect/Advice;
.end local v1 # "len$":I
.end local v2 # "i$":I
:cond_25
new-instance v0, Lorg/aspectj/lang/reflect/NoSuchAdviceException;
invoke-direct {v0, p1}, Lorg/aspectj/lang/reflect/NoSuchAdviceException;-><init>(Ljava/lang/String;)V
throw v0
.line 515
:cond_2b
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string v1, "use getAdvice(AdviceType...) instead for un-named advice"
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
goto :goto_34
:goto_33
throw v0
:goto_34
goto :goto_33
.end method
.method public varargs getAdvice([Lorg/aspectj/lang/reflect/AdviceKind;)[Lorg/aspectj/lang/reflect/Advice;
.registers 4
.param p1, "ofType" # [Lorg/aspectj/lang/reflect/AdviceKind;
.line 454
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
array-length v0, p1
if-nez v0, :cond_a
.line 455
const-class v0, Lorg/aspectj/lang/reflect/AdviceKind;
invoke-static {v0}, Ljava/util/EnumSet;->allOf(Ljava/lang/Class;)Ljava/util/EnumSet;
move-result-object v0
.local v0, "types":Ljava/util/Set;, "Ljava/util/Set<Lorg/aspectj/lang/reflect/AdviceKind;>;"
goto :goto_17
.line 457
.end local v0 # "types":Ljava/util/Set;, "Ljava/util/Set<Lorg/aspectj/lang/reflect/AdviceKind;>;"
:cond_a
const-class v0, Lorg/aspectj/lang/reflect/AdviceKind;
invoke-static {v0}, Ljava/util/EnumSet;->noneOf(Ljava/lang/Class;)Ljava/util/EnumSet;
move-result-object v0
.line 458
.restart local v0 # "types":Ljava/util/Set;, "Ljava/util/Set<Lorg/aspectj/lang/reflect/AdviceKind;>;"
invoke-static {p1}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object v1
invoke-interface {v0, v1}, Ljava/util/Set;->addAll(Ljava/util/Collection;)Z
.line 460
:goto_17
invoke-direct {p0, v0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->getAdvice(Ljava/util/Set;)[Lorg/aspectj/lang/reflect/Advice;
move-result-object v1
return-object v1
.end method
.method public getAjTypes()[Lorg/aspectj/lang/reflect/AjType;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"()[",
"Lorg/aspectj/lang/reflect/AjType<",
"*>;"
}
.end annotation
.line 219
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getClasses()[Ljava/lang/Class;
move-result-object v0
.line 220
.local v0, "classes":[Ljava/lang/Class;
invoke-direct {p0, v0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->toAjTypeArray([Ljava/lang/Class;)[Lorg/aspectj/lang/reflect/AjType;
move-result-object v1
return-object v1
.end method
.method public getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"<A::",
"Ljava/lang/annotation/Annotation;",
">(",
"Ljava/lang/Class<",
"TA;>;)TA;"
}
.end annotation
.line 198
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
.local p1, "annotationType":Ljava/lang/Class;, "Ljava/lang/Class<TA;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0, p1}, Ljava/lang/Class;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v0
return-object v0
.end method
.method public getAnnotations()[Ljava/lang/annotation/Annotation;
.registers 2
.line 205
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getAnnotations()[Ljava/lang/annotation/Annotation;
move-result-object v0
return-object v0
.end method
.method public varargs getConstructor([Lorg/aspectj/lang/reflect/AjType;)Ljava/lang/reflect/Constructor;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"([",
"Lorg/aspectj/lang/reflect/AjType<",
"*>;)",
"Ljava/lang/reflect/Constructor;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/NoSuchMethodException;
}
.end annotation
.line 235
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
.local p1, "parameterTypes":[Lorg/aspectj/lang/reflect/AjType;, "[Lorg/aspectj/lang/reflect/AjType<*>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-direct {p0, p1}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->toClassArray([Lorg/aspectj/lang/reflect/AjType;)[Ljava/lang/Class;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/Class;->getConstructor([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
move-result-object v0
return-object v0
.end method
.method public getConstructors()[Ljava/lang/reflect/Constructor;
.registers 2
.line 242
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getConstructors()[Ljava/lang/reflect/Constructor;
move-result-object v0
return-object v0
.end method
.method public getDeclareAnnotations()[Lorg/aspectj/lang/reflect/DeclareAnnotation;
.registers 17
.line 1000
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 1001
.local v0, "decAs":Ljava/util/List;, "Ljava/util/List<Lorg/aspectj/lang/reflect/DeclareAnnotation;>;"
move-object/from16 v7, p0
iget-object v1, v7, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v1}, Ljava/lang/Class;->getDeclaredMethods()[Ljava/lang/reflect/Method;
move-result-object v8
.local v8, "arr$":[Ljava/lang/reflect/Method;
array-length v9, v8
.local v9, "len$":I
const/4 v1, 0x0
move v10, v1
.local v10, "i$":I
:goto_10
if-ge v10, v9, :cond_5b
aget-object v11, v8, v10
.line 1002
.local v11, "method":Ljava/lang/reflect/Method;
const-class v1, Lorg/aspectj/internal/lang/annotation/ajcDeclareAnnotation;
invoke-virtual {v11, v1}, Ljava/lang/reflect/Method;->isAnnotationPresent(Ljava/lang/Class;)Z
move-result v1
if-eqz v1, :cond_58
.line 1003
const-class v1, Lorg/aspectj/internal/lang/annotation/ajcDeclareAnnotation;
invoke-virtual {v11, v1}, Ljava/lang/reflect/Method;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v1
move-object v12, v1
check-cast v12, Lorg/aspectj/internal/lang/annotation/ajcDeclareAnnotation;
.line 1005
.local v12, "decAnn":Lorg/aspectj/internal/lang/annotation/ajcDeclareAnnotation;
const/4 v1, 0x0
.line 1006
.local v1, "targetAnnotation":Ljava/lang/annotation/Annotation;
invoke-virtual {v11}, Ljava/lang/reflect/Method;->getAnnotations()[Ljava/lang/annotation/Annotation;
move-result-object v13
.line 1007
.local v13, "anns":[Ljava/lang/annotation/Annotation;
move-object v2, v13
.local v2, "arr$":[Ljava/lang/annotation/Annotation;
array-length v3, v2
.local v3, "len$":I
const/4 v4, 0x0
.local v4, "i$":I
:goto_2d
if-ge v4, v3, :cond_3f
aget-object v5, v2, v4
.line 1008
.local v5, "ann":Ljava/lang/annotation/Annotation;
invoke-interface {v5}, Ljava/lang/annotation/Annotation;->annotationType()Ljava/lang/Class;
move-result-object v6
const-class v14, Lorg/aspectj/internal/lang/annotation/ajcDeclareAnnotation;
if-eq v6, v14, :cond_3c
.line 1010
move-object v1, v5
.line 1011
move-object v14, v1
goto :goto_40
.line 1007
.end local v5 # "ann":Ljava/lang/annotation/Annotation;
:cond_3c
add-int/lit8 v4, v4, 0x1
goto :goto_2d
:cond_3f
move-object v14, v1
.line 1014
.end local v1 # "targetAnnotation":Ljava/lang/annotation/Annotation;
.end local v2 # "arr$":[Ljava/lang/annotation/Annotation;
.end local v3 # "len$":I
.end local v4 # "i$":I
.local v14, "targetAnnotation":Ljava/lang/annotation/Annotation;
:goto_40
new-instance v15, Lorg/aspectj/internal/lang/reflect/DeclareAnnotationImpl;
invoke-interface {v12}, Lorg/aspectj/internal/lang/annotation/ajcDeclareAnnotation;->kind()Ljava/lang/String;
move-result-object v3
invoke-interface {v12}, Lorg/aspectj/internal/lang/annotation/ajcDeclareAnnotation;->pattern()Ljava/lang/String;
move-result-object v4
invoke-interface {v12}, Lorg/aspectj/internal/lang/annotation/ajcDeclareAnnotation;->annotation()Ljava/lang/String;
move-result-object v6
move-object v1, v15
move-object/from16 v2, p0
move-object v5, v14
invoke-direct/range {v1 .. v6}, Lorg/aspectj/internal/lang/reflect/DeclareAnnotationImpl;-><init>(Lorg/aspectj/lang/reflect/AjType;Ljava/lang/String;Ljava/lang/String;Ljava/lang/annotation/Annotation;Ljava/lang/String;)V
.line 1021
.local v1, "da":Lorg/aspectj/internal/lang/reflect/DeclareAnnotationImpl;
invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 1001
.end local v1 # "da":Lorg/aspectj/internal/lang/reflect/DeclareAnnotationImpl;
.end local v11 # "method":Ljava/lang/reflect/Method;
.end local v12 # "decAnn":Lorg/aspectj/internal/lang/annotation/ajcDeclareAnnotation;
.end local v13 # "anns":[Ljava/lang/annotation/Annotation;
.end local v14 # "targetAnnotation":Ljava/lang/annotation/Annotation;
:cond_58
add-int/lit8 v10, v10, 0x1
goto :goto_10
.line 1024
.end local v8 # "arr$":[Ljava/lang/reflect/Method;
.end local v9 # "len$":I
.end local v10 # "i$":I
:cond_5b
invoke-virtual/range {p0 .. p0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->getSupertype()Lorg/aspectj/lang/reflect/AjType;
move-result-object v1
invoke-interface {v1}, Lorg/aspectj/lang/reflect/AjType;->isAspect()Z
move-result v1
if-eqz v1, :cond_74
.line 1025
invoke-virtual/range {p0 .. p0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->getSupertype()Lorg/aspectj/lang/reflect/AjType;
move-result-object v1
invoke-interface {v1}, Lorg/aspectj/lang/reflect/AjType;->getDeclareAnnotations()[Lorg/aspectj/lang/reflect/DeclareAnnotation;
move-result-object v1
invoke-static {v1}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object v1
invoke-interface {v0, v1}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z
.line 1027
:cond_74
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v1
new-array v1, v1, [Lorg/aspectj/lang/reflect/DeclareAnnotation;
.line 1028
.local v1, "ret":[Lorg/aspectj/lang/reflect/DeclareAnnotation;
invoke-interface {v0, v1}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
.line 1029
return-object v1
.end method
.method public getDeclareErrorOrWarnings()[Lorg/aspectj/lang/reflect/DeclareErrorOrWarning;
.registers 11
.line 893
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 894
.local v0, "deows":Ljava/util/List;, "Ljava/util/List<Lorg/aspectj/lang/reflect/DeclareErrorOrWarning;>;"
iget-object v1, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v1}, Ljava/lang/Class;->getDeclaredFields()[Ljava/lang/reflect/Field;
move-result-object v1
.local v1, "arr$":[Ljava/lang/reflect/Field;
array-length v2, v1
.local v2, "len$":I
const/4 v3, 0x0
.local v3, "i$":I
:goto_d
if-ge v3, v2, :cond_8a
aget-object v4, v1, v3
.line 896
.local v4, "field":Ljava/lang/reflect/Field;
:try_start_11
const-class v5, Lorg/aspectj/lang/annotation/DeclareWarning;
invoke-virtual {v4, v5}, Ljava/lang/reflect/Field;->isAnnotationPresent(Ljava/lang/Class;)Z
move-result v5
const/4 v6, 0x0
if-eqz v5, :cond_4a
.line 897
const-class v5, Lorg/aspectj/lang/annotation/DeclareWarning;
invoke-virtual {v4, v5}, Ljava/lang/reflect/Field;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v5
check-cast v5, Lorg/aspectj/lang/annotation/DeclareWarning;
.line 898
.local v5, "dw":Lorg/aspectj/lang/annotation/DeclareWarning;
invoke-virtual {v4}, Ljava/lang/reflect/Field;->getModifiers()I
move-result v7
invoke-static {v7}, Ljava/lang/reflect/Modifier;->isPublic(I)Z
move-result v7
if-eqz v7, :cond_82
invoke-virtual {v4}, Ljava/lang/reflect/Field;->getModifiers()I
move-result v7
invoke-static {v7}, Ljava/lang/reflect/Modifier;->isStatic(I)Z
move-result v7
if-eqz v7, :cond_82
.line 899
invoke-virtual {v4, v6}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v6
check-cast v6, Ljava/lang/String;
.line 900
.local v6, "message":Ljava/lang/String;
new-instance v7, Lorg/aspectj/internal/lang/reflect/DeclareErrorOrWarningImpl;
invoke-interface {v5}, Lorg/aspectj/lang/annotation/DeclareWarning;->value()Ljava/lang/String;
move-result-object v8
const/4 v9, 0x0
invoke-direct {v7, v8, v6, v9, p0}, Lorg/aspectj/internal/lang/reflect/DeclareErrorOrWarningImpl;-><init>(Ljava/lang/String;Ljava/lang/String;ZLorg/aspectj/lang/reflect/AjType;)V
.line 901
.local v7, "deow":Lorg/aspectj/internal/lang/reflect/DeclareErrorOrWarningImpl;
invoke-interface {v0, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_82
.line 903
.end local v5 # "dw":Lorg/aspectj/lang/annotation/DeclareWarning;
.end local v6 # "message":Ljava/lang/String;
.end local v7 # "deow":Lorg/aspectj/internal/lang/reflect/DeclareErrorOrWarningImpl;
:cond_4a
const-class v5, Lorg/aspectj/lang/annotation/DeclareError;
invoke-virtual {v4, v5}, Ljava/lang/reflect/Field;->isAnnotationPresent(Ljava/lang/Class;)Z
move-result v5
if-eqz v5, :cond_82
.line 904
const-class v5, Lorg/aspectj/lang/annotation/DeclareError;
invoke-virtual {v4, v5}, Ljava/lang/reflect/Field;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v5
check-cast v5, Lorg/aspectj/lang/annotation/DeclareError;
.line 905
.local v5, "de":Lorg/aspectj/lang/annotation/DeclareError;
invoke-virtual {v4}, Ljava/lang/reflect/Field;->getModifiers()I
move-result v7
invoke-static {v7}, Ljava/lang/reflect/Modifier;->isPublic(I)Z
move-result v7
if-eqz v7, :cond_86
invoke-virtual {v4}, Ljava/lang/reflect/Field;->getModifiers()I
move-result v7
invoke-static {v7}, Ljava/lang/reflect/Modifier;->isStatic(I)Z
move-result v7
if-eqz v7, :cond_86
.line 906
invoke-virtual {v4, v6}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v6
check-cast v6, Ljava/lang/String;
.line 907
.restart local v6 # "message":Ljava/lang/String;
new-instance v7, Lorg/aspectj/internal/lang/reflect/DeclareErrorOrWarningImpl;
invoke-interface {v5}, Lorg/aspectj/lang/annotation/DeclareError;->value()Ljava/lang/String;
move-result-object v8
const/4 v9, 0x1
invoke-direct {v7, v8, v6, v9, p0}, Lorg/aspectj/internal/lang/reflect/DeclareErrorOrWarningImpl;-><init>(Ljava/lang/String;Ljava/lang/String;ZLorg/aspectj/lang/reflect/AjType;)V
.line 908
.restart local v7 # "deow":Lorg/aspectj/internal/lang/reflect/DeclareErrorOrWarningImpl;
invoke-interface {v0, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
:try_end_81
.catch Ljava/lang/IllegalArgumentException; {:try_start_11 .. :try_end_81} :catch_85
.catch Ljava/lang/IllegalAccessException; {:try_start_11 .. :try_end_81} :catch_83
goto :goto_86
.line 903
.end local v5 # "de":Lorg/aspectj/lang/annotation/DeclareError;
.end local v6 # "message":Ljava/lang/String;
.end local v7 # "deow":Lorg/aspectj/internal/lang/reflect/DeclareErrorOrWarningImpl;
:cond_82
:goto_82
goto :goto_86
.line 913
:catch_83
move-exception v5
goto :goto_87
.line 911
:catch_85
move-exception v5
.line 915
:cond_86
:goto_86
nop
.line 894
.end local v4 # "field":Ljava/lang/reflect/Field;
:goto_87
add-int/lit8 v3, v3, 0x1
goto :goto_d
.line 917
.end local v1 # "arr$":[Ljava/lang/reflect/Field;
.end local v2 # "len$":I
.end local v3 # "i$":I
:cond_8a
iget-object v1, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v1}, Ljava/lang/Class;->getDeclaredMethods()[Ljava/lang/reflect/Method;
move-result-object v1
.local v1, "arr$":[Ljava/lang/reflect/Method;
array-length v2, v1
.restart local v2 # "len$":I
const/4 v3, 0x0
.restart local v3 # "i$":I
:goto_92
if-ge v3, v2, :cond_bd
aget-object v4, v1, v3
.line 918
.local v4, "method":Ljava/lang/reflect/Method;
const-class v5, Lorg/aspectj/internal/lang/annotation/ajcDeclareEoW;
invoke-virtual {v4, v5}, Ljava/lang/reflect/Method;->isAnnotationPresent(Ljava/lang/Class;)Z
move-result v5
if-eqz v5, :cond_ba
.line 919
const-class v5, Lorg/aspectj/internal/lang/annotation/ajcDeclareEoW;
invoke-virtual {v4, v5}, Ljava/lang/reflect/Method;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v5
check-cast v5, Lorg/aspectj/internal/lang/annotation/ajcDeclareEoW;
.line 920
.local v5, "deowAnn":Lorg/aspectj/internal/lang/annotation/ajcDeclareEoW;
new-instance v6, Lorg/aspectj/internal/lang/reflect/DeclareErrorOrWarningImpl;
invoke-interface {v5}, Lorg/aspectj/internal/lang/annotation/ajcDeclareEoW;->pointcut()Ljava/lang/String;
move-result-object v7
invoke-interface {v5}, Lorg/aspectj/internal/lang/annotation/ajcDeclareEoW;->message()Ljava/lang/String;
move-result-object v8
invoke-interface {v5}, Lorg/aspectj/internal/lang/annotation/ajcDeclareEoW;->isError()Z
move-result v9
invoke-direct {v6, v7, v8, v9, p0}, Lorg/aspectj/internal/lang/reflect/DeclareErrorOrWarningImpl;-><init>(Ljava/lang/String;Ljava/lang/String;ZLorg/aspectj/lang/reflect/AjType;)V
.line 921
.local v6, "deow":Lorg/aspectj/lang/reflect/DeclareErrorOrWarning;
invoke-interface {v0, v6}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 917
.end local v4 # "method":Ljava/lang/reflect/Method;
.end local v5 # "deowAnn":Lorg/aspectj/internal/lang/annotation/ajcDeclareEoW;
.end local v6 # "deow":Lorg/aspectj/lang/reflect/DeclareErrorOrWarning;
:cond_ba
add-int/lit8 v3, v3, 0x1
goto :goto_92
.line 924
.end local v1 # "arr$":[Ljava/lang/reflect/Method;
.end local v2 # "len$":I
.end local v3 # "i$":I
:cond_bd
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v1
new-array v1, v1, [Lorg/aspectj/lang/reflect/DeclareErrorOrWarning;
.line 925
.local v1, "ret":[Lorg/aspectj/lang/reflect/DeclareErrorOrWarning;
invoke-interface {v0, v1}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
.line 926
return-object v1
.end method
.method public getDeclareParents()[Lorg/aspectj/lang/reflect/DeclareParents;
.registers 11
.line 933
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 934
.local v0, "decps":Ljava/util/List;, "Ljava/util/List<Lorg/aspectj/lang/reflect/DeclareParents;>;"
iget-object v1, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v1}, Ljava/lang/Class;->getDeclaredMethods()[Ljava/lang/reflect/Method;
move-result-object v1
.local v1, "arr$":[Ljava/lang/reflect/Method;
array-length v2, v1
.local v2, "len$":I
const/4 v3, 0x0
.local v3, "i$":I
:goto_d
if-ge v3, v2, :cond_38
aget-object v4, v1, v3
.line 935
.local v4, "method":Ljava/lang/reflect/Method;
const-class v5, Lorg/aspectj/internal/lang/annotation/ajcDeclareParents;
invoke-virtual {v4, v5}, Ljava/lang/reflect/Method;->isAnnotationPresent(Ljava/lang/Class;)Z
move-result v5
if-eqz v5, :cond_35
.line 936
const-class v5, Lorg/aspectj/internal/lang/annotation/ajcDeclareParents;
invoke-virtual {v4, v5}, Ljava/lang/reflect/Method;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v5
check-cast v5, Lorg/aspectj/internal/lang/annotation/ajcDeclareParents;
.line 937
.local v5, "decPAnn":Lorg/aspectj/internal/lang/annotation/ajcDeclareParents;
new-instance v6, Lorg/aspectj/internal/lang/reflect/DeclareParentsImpl;
invoke-interface {v5}, Lorg/aspectj/internal/lang/annotation/ajcDeclareParents;->targetTypePattern()Ljava/lang/String;
move-result-object v7
invoke-interface {v5}, Lorg/aspectj/internal/lang/annotation/ajcDeclareParents;->parentTypes()Ljava/lang/String;
move-result-object v8
invoke-interface {v5}, Lorg/aspectj/internal/lang/annotation/ajcDeclareParents;->isExtends()Z
move-result v9
invoke-direct {v6, v7, v8, v9, p0}, Lorg/aspectj/internal/lang/reflect/DeclareParentsImpl;-><init>(Ljava/lang/String;Ljava/lang/String;ZLorg/aspectj/lang/reflect/AjType;)V
.line 943
.local v6, "decp":Lorg/aspectj/internal/lang/reflect/DeclareParentsImpl;
invoke-interface {v0, v6}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 934
.end local v4 # "method":Ljava/lang/reflect/Method;
.end local v5 # "decPAnn":Lorg/aspectj/internal/lang/annotation/ajcDeclareParents;
.end local v6 # "decp":Lorg/aspectj/internal/lang/reflect/DeclareParentsImpl;
:cond_35
add-int/lit8 v3, v3, 0x1
goto :goto_d
.line 946
.end local v1 # "arr$":[Ljava/lang/reflect/Method;
.end local v2 # "len$":I
.end local v3 # "i$":I
:cond_38
invoke-direct {p0, v0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->addAnnotationStyleDeclareParents(Ljava/util/List;)V
.line 947
invoke-virtual {p0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->getSupertype()Lorg/aspectj/lang/reflect/AjType;
move-result-object v1
invoke-interface {v1}, Lorg/aspectj/lang/reflect/AjType;->isAspect()Z
move-result v1
if-eqz v1, :cond_54
.line 948
invoke-virtual {p0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->getSupertype()Lorg/aspectj/lang/reflect/AjType;
move-result-object v1
invoke-interface {v1}, Lorg/aspectj/lang/reflect/AjType;->getDeclareParents()[Lorg/aspectj/lang/reflect/DeclareParents;
move-result-object v1
invoke-static {v1}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object v1
invoke-interface {v0, v1}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z
.line 950
:cond_54
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v1
new-array v1, v1, [Lorg/aspectj/lang/reflect/DeclareParents;
.line 951
.local v1, "ret":[Lorg/aspectj/lang/reflect/DeclareParents;
invoke-interface {v0, v1}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
.line 952
return-object v1
.end method
.method public getDeclarePrecedence()[Lorg/aspectj/lang/reflect/DeclarePrecedence;
.registers 9
.line 1036
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 1039
.local v0, "decps":Ljava/util/List;, "Ljava/util/List<Lorg/aspectj/lang/reflect/DeclarePrecedence;>;"
iget-object v1, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
const-class v2, Lorg/aspectj/lang/annotation/DeclarePrecedence;
invoke-virtual {v1, v2}, Ljava/lang/Class;->isAnnotationPresent(Ljava/lang/Class;)Z
move-result v1
if-eqz v1, :cond_25
.line 1040
iget-object v1, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
const-class v2, Lorg/aspectj/lang/annotation/DeclarePrecedence;
invoke-virtual {v1, v2}, Ljava/lang/Class;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v1
check-cast v1, Lorg/aspectj/lang/annotation/DeclarePrecedence;
.line 1042
.local v1, "ann":Lorg/aspectj/lang/annotation/DeclarePrecedence;
new-instance v2, Lorg/aspectj/internal/lang/reflect/DeclarePrecedenceImpl;
invoke-interface {v1}, Lorg/aspectj/lang/annotation/DeclarePrecedence;->value()Ljava/lang/String;
move-result-object v3
invoke-direct {v2, v3, p0}, Lorg/aspectj/internal/lang/reflect/DeclarePrecedenceImpl;-><init>(Ljava/lang/String;Lorg/aspectj/lang/reflect/AjType;)V
.line 1046
.local v2, "decp":Lorg/aspectj/internal/lang/reflect/DeclarePrecedenceImpl;
invoke-interface {v0, v2}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 1050
.end local v1 # "ann":Lorg/aspectj/lang/annotation/DeclarePrecedence;
.end local v2 # "decp":Lorg/aspectj/internal/lang/reflect/DeclarePrecedenceImpl;
:cond_25
iget-object v1, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v1}, Ljava/lang/Class;->getDeclaredMethods()[Ljava/lang/reflect/Method;
move-result-object v1
.local v1, "arr$":[Ljava/lang/reflect/Method;
array-length v2, v1
.local v2, "len$":I
const/4 v3, 0x0
.local v3, "i$":I
:goto_2d
if-ge v3, v2, :cond_50
aget-object v4, v1, v3
.line 1051
.local v4, "method":Ljava/lang/reflect/Method;
const-class v5, Lorg/aspectj/internal/lang/annotation/ajcDeclarePrecedence;
invoke-virtual {v4, v5}, Ljava/lang/reflect/Method;->isAnnotationPresent(Ljava/lang/Class;)Z
move-result v5
if-eqz v5, :cond_4d
.line 1052
const-class v5, Lorg/aspectj/internal/lang/annotation/ajcDeclarePrecedence;
invoke-virtual {v4, v5}, Ljava/lang/reflect/Method;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v5
check-cast v5, Lorg/aspectj/internal/lang/annotation/ajcDeclarePrecedence;
.line 1053
.local v5, "decPAnn":Lorg/aspectj/internal/lang/annotation/ajcDeclarePrecedence;
new-instance v6, Lorg/aspectj/internal/lang/reflect/DeclarePrecedenceImpl;
invoke-interface {v5}, Lorg/aspectj/internal/lang/annotation/ajcDeclarePrecedence;->value()Ljava/lang/String;
move-result-object v7
invoke-direct {v6, v7, p0}, Lorg/aspectj/internal/lang/reflect/DeclarePrecedenceImpl;-><init>(Ljava/lang/String;Lorg/aspectj/lang/reflect/AjType;)V
.line 1057
.local v6, "decp":Lorg/aspectj/internal/lang/reflect/DeclarePrecedenceImpl;
invoke-interface {v0, v6}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 1050
.end local v4 # "method":Ljava/lang/reflect/Method;
.end local v5 # "decPAnn":Lorg/aspectj/internal/lang/annotation/ajcDeclarePrecedence;
.end local v6 # "decp":Lorg/aspectj/internal/lang/reflect/DeclarePrecedenceImpl;
:cond_4d
add-int/lit8 v3, v3, 0x1
goto :goto_2d
.line 1060
.end local v1 # "arr$":[Ljava/lang/reflect/Method;
.end local v2 # "len$":I
.end local v3 # "i$":I
:cond_50
invoke-virtual {p0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->getSupertype()Lorg/aspectj/lang/reflect/AjType;
move-result-object v1
invoke-interface {v1}, Lorg/aspectj/lang/reflect/AjType;->isAspect()Z
move-result v1
if-eqz v1, :cond_69
.line 1061
invoke-virtual {p0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->getSupertype()Lorg/aspectj/lang/reflect/AjType;
move-result-object v1
invoke-interface {v1}, Lorg/aspectj/lang/reflect/AjType;->getDeclarePrecedence()[Lorg/aspectj/lang/reflect/DeclarePrecedence;
move-result-object v1
invoke-static {v1}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object v1
invoke-interface {v0, v1}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z
.line 1063
:cond_69
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v1
new-array v1, v1, [Lorg/aspectj/lang/reflect/DeclarePrecedence;
.line 1064
.local v1, "ret":[Lorg/aspectj/lang/reflect/DeclarePrecedence;
invoke-interface {v0, v1}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
.line 1065
return-object v1
.end method
.method public getDeclareSofts()[Lorg/aspectj/lang/reflect/DeclareSoft;
.registers 10
.line 976
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 977
.local v0, "decs":Ljava/util/List;, "Ljava/util/List<Lorg/aspectj/lang/reflect/DeclareSoft;>;"
iget-object v1, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v1}, Ljava/lang/Class;->getDeclaredMethods()[Ljava/lang/reflect/Method;
move-result-object v1
.local v1, "arr$":[Ljava/lang/reflect/Method;
array-length v2, v1
.local v2, "len$":I
const/4 v3, 0x0
.local v3, "i$":I
:goto_d
if-ge v3, v2, :cond_34
aget-object v4, v1, v3
.line 978
.local v4, "method":Ljava/lang/reflect/Method;
const-class v5, Lorg/aspectj/internal/lang/annotation/ajcDeclareSoft;
invoke-virtual {v4, v5}, Ljava/lang/reflect/Method;->isAnnotationPresent(Ljava/lang/Class;)Z
move-result v5
if-eqz v5, :cond_31
.line 979
const-class v5, Lorg/aspectj/internal/lang/annotation/ajcDeclareSoft;
invoke-virtual {v4, v5}, Ljava/lang/reflect/Method;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v5
check-cast v5, Lorg/aspectj/internal/lang/annotation/ajcDeclareSoft;
.line 980
.local v5, "decSAnn":Lorg/aspectj/internal/lang/annotation/ajcDeclareSoft;
new-instance v6, Lorg/aspectj/internal/lang/reflect/DeclareSoftImpl;
invoke-interface {v5}, Lorg/aspectj/internal/lang/annotation/ajcDeclareSoft;->pointcut()Ljava/lang/String;
move-result-object v7
invoke-interface {v5}, Lorg/aspectj/internal/lang/annotation/ajcDeclareSoft;->exceptionType()Ljava/lang/String;
move-result-object v8
invoke-direct {v6, p0, v7, v8}, Lorg/aspectj/internal/lang/reflect/DeclareSoftImpl;-><init>(Lorg/aspectj/lang/reflect/AjType;Ljava/lang/String;Ljava/lang/String;)V
.line 985
.local v6, "ds":Lorg/aspectj/internal/lang/reflect/DeclareSoftImpl;
invoke-interface {v0, v6}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 977
.end local v4 # "method":Ljava/lang/reflect/Method;
.end local v5 # "decSAnn":Lorg/aspectj/internal/lang/annotation/ajcDeclareSoft;
.end local v6 # "ds":Lorg/aspectj/internal/lang/reflect/DeclareSoftImpl;
:cond_31
add-int/lit8 v3, v3, 0x1
goto :goto_d
.line 988
.end local v1 # "arr$":[Ljava/lang/reflect/Method;
.end local v2 # "len$":I
.end local v3 # "i$":I
:cond_34
invoke-virtual {p0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->getSupertype()Lorg/aspectj/lang/reflect/AjType;
move-result-object v1
invoke-interface {v1}, Lorg/aspectj/lang/reflect/AjType;->isAspect()Z
move-result v1
if-eqz v1, :cond_4d
.line 989
invoke-virtual {p0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->getSupertype()Lorg/aspectj/lang/reflect/AjType;
move-result-object v1
invoke-interface {v1}, Lorg/aspectj/lang/reflect/AjType;->getDeclareSofts()[Lorg/aspectj/lang/reflect/DeclareSoft;
move-result-object v1
invoke-static {v1}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object v1
invoke-interface {v0, v1}, Ljava/util/List;->addAll(Ljava/util/Collection;)Z
.line 991
:cond_4d
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v1
new-array v1, v1, [Lorg/aspectj/lang/reflect/DeclareSoft;
.line 992
.local v1, "ret":[Lorg/aspectj/lang/reflect/DeclareSoft;
invoke-interface {v0, v1}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
.line 993
return-object v1
.end method
.method public getDeclaredAdvice(Ljava/lang/String;)Lorg/aspectj/lang/reflect/Advice;
.registers 7
.param p1, "name" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/aspectj/lang/reflect/NoSuchAdviceException;
}
.end annotation
.line 524
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
const-string v0, ""
invoke-virtual {p1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_2b
.line 525
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->declaredAdvice:[Lorg/aspectj/lang/reflect/Advice;
if-nez v0, :cond_f
invoke-direct {p0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->initDeclaredAdvice()V
.line 526
:cond_f
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->declaredAdvice:[Lorg/aspectj/lang/reflect/Advice;
.local v0, "arr$":[Lorg/aspectj/lang/reflect/Advice;
array-length v1, v0
.local v1, "len$":I
const/4 v2, 0x0
.local v2, "i$":I
:goto_13
if-ge v2, v1, :cond_25
aget-object v3, v0, v2
.line 527
.local v3, "a":Lorg/aspectj/lang/reflect/Advice;
invoke-interface {v3}, Lorg/aspectj/lang/reflect/Advice;->getName()Ljava/lang/String;
move-result-object v4
invoke-virtual {v4, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_22
return-object v3
.line 526
.end local v3 # "a":Lorg/aspectj/lang/reflect/Advice;
:cond_22
add-int/lit8 v2, v2, 0x1
goto :goto_13
.line 529
.end local v0 # "arr$":[Lorg/aspectj/lang/reflect/Advice;
.end local v1 # "len$":I
.end local v2 # "i$":I
:cond_25
new-instance v0, Lorg/aspectj/lang/reflect/NoSuchAdviceException;
invoke-direct {v0, p1}, Lorg/aspectj/lang/reflect/NoSuchAdviceException;-><init>(Ljava/lang/String;)V
throw v0
.line 524
:cond_2b
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string v1, "use getAdvice(AdviceType...) instead for un-named advice"
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
goto :goto_34
:goto_33
throw v0
:goto_34
goto :goto_33
.end method
.method public varargs getDeclaredAdvice([Lorg/aspectj/lang/reflect/AdviceKind;)[Lorg/aspectj/lang/reflect/Advice;
.registers 4
.param p1, "ofType" # [Lorg/aspectj/lang/reflect/AdviceKind;
.line 443
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
array-length v0, p1
if-nez v0, :cond_a
.line 444
const-class v0, Lorg/aspectj/lang/reflect/AdviceKind;
invoke-static {v0}, Ljava/util/EnumSet;->allOf(Ljava/lang/Class;)Ljava/util/EnumSet;
move-result-object v0
.local v0, "types":Ljava/util/Set;, "Ljava/util/Set<Lorg/aspectj/lang/reflect/AdviceKind;>;"
goto :goto_17
.line 446
.end local v0 # "types":Ljava/util/Set;, "Ljava/util/Set<Lorg/aspectj/lang/reflect/AdviceKind;>;"
:cond_a
const-class v0, Lorg/aspectj/lang/reflect/AdviceKind;
invoke-static {v0}, Ljava/util/EnumSet;->noneOf(Ljava/lang/Class;)Ljava/util/EnumSet;
move-result-object v0
.line 447
.restart local v0 # "types":Ljava/util/Set;, "Ljava/util/Set<Lorg/aspectj/lang/reflect/AdviceKind;>;"
invoke-static {p1}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object v1
invoke-interface {v0, v1}, Ljava/util/Set;->addAll(Ljava/util/Collection;)Z
.line 449
:goto_17
invoke-direct {p0, v0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->getDeclaredAdvice(Ljava/util/Set;)[Lorg/aspectj/lang/reflect/Advice;
move-result-object v1
return-object v1
.end method
.method public getDeclaredAjTypes()[Lorg/aspectj/lang/reflect/AjType;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"()[",
"Lorg/aspectj/lang/reflect/AjType<",
"*>;"
}
.end annotation
.line 227
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getDeclaredClasses()[Ljava/lang/Class;
move-result-object v0
.line 228
.local v0, "classes":[Ljava/lang/Class;
invoke-direct {p0, v0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->toAjTypeArray([Ljava/lang/Class;)[Lorg/aspectj/lang/reflect/AjType;
move-result-object v1
return-object v1
.end method
.method public getDeclaredAnnotations()[Ljava/lang/annotation/Annotation;
.registers 2
.line 212
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getDeclaredAnnotations()[Ljava/lang/annotation/Annotation;
move-result-object v0
return-object v0
.end method
.method public varargs getDeclaredConstructor([Lorg/aspectj/lang/reflect/AjType;)Ljava/lang/reflect/Constructor;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"([",
"Lorg/aspectj/lang/reflect/AjType<",
"*>;)",
"Ljava/lang/reflect/Constructor;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/NoSuchMethodException;
}
.end annotation
.line 249
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
.local p1, "parameterTypes":[Lorg/aspectj/lang/reflect/AjType;, "[Lorg/aspectj/lang/reflect/AjType<*>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-direct {p0, p1}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->toClassArray([Lorg/aspectj/lang/reflect/AjType;)[Ljava/lang/Class;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/Class;->getDeclaredConstructor([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
move-result-object v0
return-object v0
.end method
.method public getDeclaredConstructors()[Ljava/lang/reflect/Constructor;
.registers 2
.line 256
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getDeclaredConstructors()[Ljava/lang/reflect/Constructor;
move-result-object v0
return-object v0
.end method
.method public getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;
.registers 5
.param p1, "name" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/NoSuchFieldException;
}
.end annotation
.line 263
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0, p1}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v0
.line 264
.local v0, "f":Ljava/lang/reflect/Field;
invoke-virtual {v0}, Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
move-result-object v1
const-string v2, "ajc$"
invoke-virtual {v1, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v1
if-nez v1, :cond_13
.line 265
return-object v0
.line 264
:cond_13
new-instance v1, Ljava/lang/NoSuchFieldException;
invoke-direct {v1, p1}, Ljava/lang/NoSuchFieldException;-><init>(Ljava/lang/String;)V
throw v1
.end method
.method public getDeclaredFields()[Ljava/lang/reflect/Field;
.registers 9
.line 272
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getDeclaredFields()[Ljava/lang/reflect/Field;
move-result-object v0
.line 273
.local v0, "fields":[Ljava/lang/reflect/Field;
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
.line 274
.local v1, "filteredFields":Ljava/util/List;, "Ljava/util/List<Ljava/lang/reflect/Field;>;"
move-object v2, v0
.local v2, "arr$":[Ljava/lang/reflect/Field;
array-length v3, v2
.local v3, "len$":I
const/4 v4, 0x0
.local v4, "i$":I
:goto_e
if-ge v4, v3, :cond_34
aget-object v5, v2, v4
.line 275
.local v5, "field":Ljava/lang/reflect/Field;
invoke-virtual {v5}, Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
move-result-object v6
const-string v7, "ajc$"
invoke-virtual {v6, v7}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v6
if-nez v6, :cond_31
const-class v6, Lorg/aspectj/lang/annotation/DeclareWarning;
invoke-virtual {v5, v6}, Ljava/lang/reflect/Field;->isAnnotationPresent(Ljava/lang/Class;)Z
move-result v6
if-nez v6, :cond_31
const-class v6, Lorg/aspectj/lang/annotation/DeclareError;
invoke-virtual {v5, v6}, Ljava/lang/reflect/Field;->isAnnotationPresent(Ljava/lang/Class;)Z
move-result v6
if-nez v6, :cond_31
.line 278
invoke-interface {v1, v5}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 274
.end local v5 # "field":Ljava/lang/reflect/Field;
:cond_31
add-int/lit8 v4, v4, 0x1
goto :goto_e
.line 280
.end local v2 # "arr$":[Ljava/lang/reflect/Field;
.end local v3 # "len$":I
.end local v4 # "i$":I
:cond_34
invoke-interface {v1}, Ljava/util/List;->size()I
move-result v2
new-array v2, v2, [Ljava/lang/reflect/Field;
.line 281
.local v2, "ret":[Ljava/lang/reflect/Field;
invoke-interface {v1, v2}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
.line 282
return-object v2
.end method
.method public varargs getDeclaredITDConstructor(Lorg/aspectj/lang/reflect/AjType;[Lorg/aspectj/lang/reflect/AjType;)Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;
.registers 13
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lorg/aspectj/lang/reflect/AjType<",
"*>;[",
"Lorg/aspectj/lang/reflect/AjType<",
"*>;)",
"Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/NoSuchMethodException;
}
.end annotation
.line 693
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
.local p1, "target":Lorg/aspectj/lang/reflect/AjType;, "Lorg/aspectj/lang/reflect/AjType<*>;"
.local p2, "parameterTypes":[Lorg/aspectj/lang/reflect/AjType;, "[Lorg/aspectj/lang/reflect/AjType<*>;"
invoke-virtual {p0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->getDeclaredITDConstructors()[Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;
move-result-object v0
.line 694
.local v0, "itdcs":[Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;
move-object v1, v0
.local v1, "arr$":[Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;
array-length v2, v1
.local v2, "len$":I
const/4 v3, 0x0
.local v3, "i$":I
:goto_7
if-ge v3, v2, :cond_35
aget-object v4, v1, v3
.line 696
.local v4, "itdc":Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;
:try_start_b
invoke-interface {v4}, Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;->getTargetType()Lorg/aspectj/lang/reflect/AjType;
move-result-object v5
.line 697
.local v5, "itdTarget":Lorg/aspectj/lang/reflect/AjType;, "Lorg/aspectj/lang/reflect/AjType<*>;"
invoke-virtual {v5, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v6
if-eqz v6, :cond_30
.line 698
invoke-interface {v4}, Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;->getParameterTypes()[Lorg/aspectj/lang/reflect/AjType;
move-result-object v6
.line 699
.local v6, "ptypes":[Lorg/aspectj/lang/reflect/AjType;, "[Lorg/aspectj/lang/reflect/AjType<*>;"
array-length v7, v6
array-length v8, p2
if-ne v7, v8, :cond_30
.line 700
const/4 v7, 0x0
.local v7, "i":I
:goto_1e
array-length v8, v6
if-ge v7, v8, :cond_2f
.line 701
aget-object v8, v6, v7
aget-object v9, p2, v7
invoke-virtual {v8, v9}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v8
:try_end_29
.catch Ljava/lang/ClassNotFoundException; {:try_start_b .. :try_end_29} :catch_31
if-nez v8, :cond_2c
.line 702
goto :goto_32
.line 700
:cond_2c
add-int/lit8 v7, v7, 0x1
goto :goto_1e
.line 704
.end local v7 # "i":I
:cond_2f
return-object v4
.line 709
.end local v5 # "itdTarget":Lorg/aspectj/lang/reflect/AjType;, "Lorg/aspectj/lang/reflect/AjType<*>;"
.end local v6 # "ptypes":[Lorg/aspectj/lang/reflect/AjType;, "[Lorg/aspectj/lang/reflect/AjType<*>;"
:cond_30
goto :goto_32
.line 707
:catch_31
move-exception v5
.line 694
.end local v4 # "itdc":Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;
:goto_32
add-int/lit8 v3, v3, 0x1
goto :goto_7
.line 711
.end local v1 # "arr$":[Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;
.end local v2 # "len$":I
.end local v3 # "i$":I
:cond_35
new-instance v1, Ljava/lang/NoSuchMethodException;
invoke-direct {v1}, Ljava/lang/NoSuchMethodException;-><init>()V
goto :goto_3c
:goto_3b
throw v1
:goto_3c
goto :goto_3b
.end method
.method public getDeclaredITDConstructors()[Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;
.registers 11
.line 718
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->declaredITDCons:[Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;
if-nez v0, :cond_51
.line 719
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 720
.local v0, "itdcs":Ljava/util/List;, "Ljava/util/List<Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;>;"
iget-object v1, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v1}, Ljava/lang/Class;->getDeclaredMethods()[Ljava/lang/reflect/Method;
move-result-object v1
.line 721
.local v1, "baseMethods":[Ljava/lang/reflect/Method;
move-object v2, v1
.local v2, "arr$":[Ljava/lang/reflect/Method;
array-length v3, v2
.local v3, "len$":I
const/4 v4, 0x0
.local v4, "i$":I
:goto_12
if-ge v4, v3, :cond_46
aget-object v5, v2, v4
.line 722
.local v5, "m":Ljava/lang/reflect/Method;
invoke-virtual {v5}, Ljava/lang/reflect/Method;->getName()Ljava/lang/String;
move-result-object v6
const-string v7, "ajc$postInterConstructor"
invoke-virtual {v6, v7}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v6
if-nez v6, :cond_23
goto :goto_43
.line 723
:cond_23
const-class v6, Lorg/aspectj/internal/lang/annotation/ajcITD;
invoke-virtual {v5, v6}, Ljava/lang/reflect/Method;->isAnnotationPresent(Ljava/lang/Class;)Z
move-result v6
if-eqz v6, :cond_43
.line 724
const-class v6, Lorg/aspectj/internal/lang/annotation/ajcITD;
invoke-virtual {v5, v6}, Ljava/lang/reflect/Method;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v6
check-cast v6, Lorg/aspectj/internal/lang/annotation/ajcITD;
.line 725
.local v6, "ann":Lorg/aspectj/internal/lang/annotation/ajcITD;
new-instance v7, Lorg/aspectj/internal/lang/reflect/InterTypeConstructorDeclarationImpl;
invoke-interface {v6}, Lorg/aspectj/internal/lang/annotation/ajcITD;->targetType()Ljava/lang/String;
move-result-object v8
invoke-interface {v6}, Lorg/aspectj/internal/lang/annotation/ajcITD;->modifiers()I
move-result v9
invoke-direct {v7, p0, v8, v9, v5}, Lorg/aspectj/internal/lang/reflect/InterTypeConstructorDeclarationImpl;-><init>(Lorg/aspectj/lang/reflect/AjType;Ljava/lang/String;ILjava/lang/reflect/Method;)V
.line 727
.local v7, "itdc":Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;
invoke-interface {v0, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 721
.end local v5 # "m":Ljava/lang/reflect/Method;
.end local v6 # "ann":Lorg/aspectj/internal/lang/annotation/ajcITD;
.end local v7 # "itdc":Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;
:cond_43
:goto_43
add-int/lit8 v4, v4, 0x1
goto :goto_12
.line 730
.end local v2 # "arr$":[Ljava/lang/reflect/Method;
.end local v3 # "len$":I
.end local v4 # "i$":I
:cond_46
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v2
new-array v2, v2, [Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;
iput-object v2, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->declaredITDCons:[Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;
.line 731
invoke-interface {v0, v2}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
.line 733
.end local v0 # "itdcs":Ljava/util/List;, "Ljava/util/List<Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;>;"
.end local v1 # "baseMethods":[Ljava/lang/reflect/Method;
:cond_51
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->declaredITDCons:[Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;
return-object v0
.end method
.method public getDeclaredITDField(Ljava/lang/String;Lorg/aspectj/lang/reflect/AjType;)Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;
.registers 10
.param p1, "name" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Lorg/aspectj/lang/reflect/AjType<",
"*>;)",
"Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/NoSuchFieldException;
}
.end annotation
.line 789
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
.local p2, "target":Lorg/aspectj/lang/reflect/AjType;, "Lorg/aspectj/lang/reflect/AjType<*>;"
invoke-virtual {p0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->getDeclaredITDFields()[Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;
move-result-object v0
.line 790
.local v0, "itdfs":[Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;
move-object v1, v0
.local v1, "arr$":[Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;
array-length v2, v1
.local v2, "len$":I
const/4 v3, 0x0
.local v3, "i$":I
:goto_7
if-ge v3, v2, :cond_25
aget-object v4, v1, v3
.line 791
.local v4, "itdf":Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;
invoke-interface {v4}, Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;->getName()Ljava/lang/String;
move-result-object v5
invoke-virtual {v5, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v5
if-eqz v5, :cond_22
.line 793
:try_start_15
invoke-interface {v4}, Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;->getTargetType()Lorg/aspectj/lang/reflect/AjType;
move-result-object v5
.line 794
.local v5, "itdTarget":Lorg/aspectj/lang/reflect/AjType;, "Lorg/aspectj/lang/reflect/AjType<*>;"
invoke-virtual {v5, p2}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v6
:try_end_1d
.catch Ljava/lang/ClassNotFoundException; {:try_start_15 .. :try_end_1d} :catch_21
if-eqz v6, :cond_20
return-object v4
.line 797
.end local v5 # "itdTarget":Lorg/aspectj/lang/reflect/AjType;, "Lorg/aspectj/lang/reflect/AjType<*>;"
:cond_20
goto :goto_22
.line 795
:catch_21
move-exception v5
.line 790
.end local v4 # "itdf":Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;
:cond_22
:goto_22
add-int/lit8 v3, v3, 0x1
goto :goto_7
.line 800
.end local v1 # "arr$":[Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;
.end local v2 # "len$":I
.end local v3 # "i$":I
:cond_25
new-instance v1, Ljava/lang/NoSuchFieldException;
invoke-direct {v1, p1}, Ljava/lang/NoSuchFieldException;-><init>(Ljava/lang/String;)V
goto :goto_2c
:goto_2b
throw v1
:goto_2c
goto :goto_2b
.end method
.method public getDeclaredITDFields()[Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;
.registers 21
.line 807
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
move-object/from16 v8, p0
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
move-object v9, v0
.line 808
.local v9, "itdfs":Ljava/util/List;, "Ljava/util/List<Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;>;"
iget-object v0, v8, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->declaredITDFields:[Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;
if-nez v0, :cond_b4
.line 809
iget-object v0, v8, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getDeclaredMethods()[Ljava/lang/reflect/Method;
move-result-object v10
.line 810
.local v10, "baseMethods":[Ljava/lang/reflect/Method;
move-object v11, v10
.local v11, "arr$":[Ljava/lang/reflect/Method;
array-length v12, v11
.local v12, "len$":I
const/4 v0, 0x0
move v13, v0
.local v13, "i$":I
:goto_16
if-ge v13, v12, :cond_a5
aget-object v14, v11, v13
.line 811
.local v14, "m":Ljava/lang/reflect/Method;
const-class v0, Lorg/aspectj/internal/lang/annotation/ajcITD;
invoke-virtual {v14, v0}, Ljava/lang/reflect/Method;->isAnnotationPresent(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_a1
.line 812
invoke-virtual {v14}, Ljava/lang/reflect/Method;->getName()Ljava/lang/String;
move-result-object v0
const-string v1, "ajc$interFieldInit"
invoke-virtual {v0, v1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
if-nez v0, :cond_30
goto/16 :goto_a1
.line 813
:cond_30
const-class v0, Lorg/aspectj/internal/lang/annotation/ajcITD;
invoke-virtual {v14, v0}, Ljava/lang/reflect/Method;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v0
move-object v15, v0
check-cast v15, Lorg/aspectj/internal/lang/annotation/ajcITD;
.line 814
.local v15, "ann":Lorg/aspectj/internal/lang/annotation/ajcITD;
invoke-virtual {v14}, Ljava/lang/reflect/Method;->getName()Ljava/lang/String;
move-result-object v7
.line 815
.local v7, "interFieldInitMethodName":Ljava/lang/String;
const-string v0, "FieldInit"
const-string v1, "FieldGetDispatch"
invoke-virtual {v7, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
move-result-object v6
.line 818
.local v6, "interFieldGetDispatchMethodName":Ljava/lang/String;
:try_start_45
iget-object v0, v8, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v14}, Ljava/lang/reflect/Method;->getParameterTypes()[Ljava/lang/Class;
move-result-object v1
invoke-virtual {v0, v6, v1}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v0
.line 819
.local v0, "dispatch":Ljava/lang/reflect/Method;
new-instance v16, Lorg/aspectj/internal/lang/reflect/InterTypeFieldDeclarationImpl;
invoke-interface {v15}, Lorg/aspectj/internal/lang/annotation/ajcITD;->targetType()Ljava/lang/String;
move-result-object v3
invoke-interface {v15}, Lorg/aspectj/internal/lang/annotation/ajcITD;->modifiers()I
move-result v4
invoke-interface {v15}, Lorg/aspectj/internal/lang/annotation/ajcITD;->name()Ljava/lang/String;
move-result-object v5
invoke-virtual {v0}, Ljava/lang/reflect/Method;->getReturnType()Ljava/lang/Class;
move-result-object v1
invoke-static {v1}, Lorg/aspectj/lang/reflect/AjTypeSystem;->getAjType(Ljava/lang/Class;)Lorg/aspectj/lang/reflect/AjType;
move-result-object v17
invoke-virtual {v0}, Ljava/lang/reflect/Method;->getGenericReturnType()Ljava/lang/reflect/Type;
move-result-object v18
:try_end_69
.catch Ljava/lang/NoSuchMethodException; {:try_start_45 .. :try_end_69} :catch_81
move-object/from16 v1, v16
move-object/from16 v2, p0
move-object/from16 v19, v6
.end local v6 # "interFieldGetDispatchMethodName":Ljava/lang/String;
.local v19, "interFieldGetDispatchMethodName":Ljava/lang/String;
move-object/from16 v6, v17
move-object/from16 v17, v7
.end local v7 # "interFieldInitMethodName":Ljava/lang/String;
.local v17, "interFieldInitMethodName":Ljava/lang/String;
move-object/from16 v7, v18
:try_start_75
invoke-direct/range {v1 .. v7}, Lorg/aspectj/internal/lang/reflect/InterTypeFieldDeclarationImpl;-><init>(Lorg/aspectj/lang/reflect/AjType;Ljava/lang/String;ILjava/lang/String;Lorg/aspectj/lang/reflect/AjType;Ljava/lang/reflect/Type;)V
move-object/from16 v1, v16
.line 823
.local v1, "itdf":Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;
invoke-interface {v9, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
:try_end_7d
.catch Ljava/lang/NoSuchMethodException; {:try_start_75 .. :try_end_7d} :catch_7f
.line 826
nop
.end local v0 # "dispatch":Ljava/lang/reflect/Method;
.end local v1 # "itdf":Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;
goto :goto_a1
.line 824
:catch_7f
move-exception v0
goto :goto_86
.end local v17 # "interFieldInitMethodName":Ljava/lang/String;
.end local v19 # "interFieldGetDispatchMethodName":Ljava/lang/String;
.restart local v6 # "interFieldGetDispatchMethodName":Ljava/lang/String;
.restart local v7 # "interFieldInitMethodName":Ljava/lang/String;
:catch_81
move-exception v0
move-object/from16 v19, v6
move-object/from16 v17, v7
.line 825
.end local v6 # "interFieldGetDispatchMethodName":Ljava/lang/String;
.end local v7 # "interFieldInitMethodName":Ljava/lang/String;
.local v0, "nsmEx":Ljava/lang/NoSuchMethodException;
.restart local v17 # "interFieldInitMethodName":Ljava/lang/String;
.restart local v19 # "interFieldGetDispatchMethodName":Ljava/lang/String;
:goto_86
new-instance v1, Ljava/lang/IllegalStateException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Can\'t find field get dispatch method for "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v14}, Ljava/lang/reflect/Method;->getName()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v1
.line 810
.end local v0 # "nsmEx":Ljava/lang/NoSuchMethodException;
.end local v14 # "m":Ljava/lang/reflect/Method;
.end local v15 # "ann":Lorg/aspectj/internal/lang/annotation/ajcITD;
.end local v17 # "interFieldInitMethodName":Ljava/lang/String;
.end local v19 # "interFieldGetDispatchMethodName":Ljava/lang/String;
:cond_a1
:goto_a1
add-int/lit8 v13, v13, 0x1
goto/16 :goto_16
.line 829
.end local v11 # "arr$":[Ljava/lang/reflect/Method;
.end local v12 # "len$":I
.end local v13 # "i$":I
:cond_a5
const/4 v0, 0x0
invoke-direct {v8, v9, v0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->addAnnotationStyleITDFields(Ljava/util/List;Z)V
.line 830
invoke-interface {v9}, Ljava/util/List;->size()I
move-result v0
new-array v0, v0, [Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;
iput-object v0, v8, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->declaredITDFields:[Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;
.line 831
invoke-interface {v9, v0}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
.line 833
.end local v10 # "baseMethods":[Ljava/lang/reflect/Method;
:cond_b4
iget-object v0, v8, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->declaredITDFields:[Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;
return-object v0
.end method
.method public varargs getDeclaredITDMethod(Ljava/lang/String;Lorg/aspectj/lang/reflect/AjType;[Lorg/aspectj/lang/reflect/AjType;)Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
.registers 14
.param p1, "name" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Lorg/aspectj/lang/reflect/AjType<",
"*>;[",
"Lorg/aspectj/lang/reflect/AjType<",
"*>;)",
"Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/NoSuchMethodException;
}
.end annotation
.line 560
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
.local p2, "target":Lorg/aspectj/lang/reflect/AjType;, "Lorg/aspectj/lang/reflect/AjType<*>;"
.local p3, "parameterTypes":[Lorg/aspectj/lang/reflect/AjType;, "[Lorg/aspectj/lang/reflect/AjType<*>;"
invoke-virtual {p0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->getDeclaredITDMethods()[Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
move-result-object v0
.line 561
.local v0, "itdms":[Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
move-object v1, v0
.local v1, "arr$":[Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
array-length v2, v1
.local v2, "len$":I
const/4 v3, 0x0
.local v3, "i$":I
:goto_7
if-ge v3, v2, :cond_40
aget-object v4, v1, v3
.line 563
.local v4, "itdm":Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
:try_start_b
invoke-interface {v4}, Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;->getName()Ljava/lang/String;
move-result-object v5
invoke-virtual {v5, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v5
if-nez v5, :cond_16
goto :goto_3d
.line 564
:cond_16
invoke-interface {v4}, Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;->getTargetType()Lorg/aspectj/lang/reflect/AjType;
move-result-object v5
.line 565
.local v5, "itdTarget":Lorg/aspectj/lang/reflect/AjType;, "Lorg/aspectj/lang/reflect/AjType<*>;"
invoke-virtual {v5, p2}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v6
if-eqz v6, :cond_3b
.line 566
invoke-interface {v4}, Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;->getParameterTypes()[Lorg/aspectj/lang/reflect/AjType;
move-result-object v6
.line 567
.local v6, "ptypes":[Lorg/aspectj/lang/reflect/AjType;, "[Lorg/aspectj/lang/reflect/AjType<*>;"
array-length v7, v6
array-length v8, p3
if-ne v7, v8, :cond_3b
.line 568
const/4 v7, 0x0
.local v7, "i":I
:goto_29
array-length v8, v6
if-ge v7, v8, :cond_3a
.line 569
aget-object v8, v6, v7
aget-object v9, p3, v7
invoke-virtual {v8, v9}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v8
:try_end_34
.catch Ljava/lang/ClassNotFoundException; {:try_start_b .. :try_end_34} :catch_3c
if-nez v8, :cond_37
.line 570
goto :goto_3d
.line 568
:cond_37
add-int/lit8 v7, v7, 0x1
goto :goto_29
.line 572
.end local v7 # "i":I
:cond_3a
return-object v4
.line 577
.end local v5 # "itdTarget":Lorg/aspectj/lang/reflect/AjType;, "Lorg/aspectj/lang/reflect/AjType<*>;"
.end local v6 # "ptypes":[Lorg/aspectj/lang/reflect/AjType;, "[Lorg/aspectj/lang/reflect/AjType<*>;"
:cond_3b
goto :goto_3d
.line 575
:catch_3c
move-exception v5
.line 561
.end local v4 # "itdm":Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
:goto_3d
add-int/lit8 v3, v3, 0x1
goto :goto_7
.line 579
.end local v1 # "arr$":[Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
.end local v2 # "len$":I
.end local v3 # "i$":I
:cond_40
new-instance v1, Ljava/lang/NoSuchMethodException;
invoke-direct {v1, p1}, Ljava/lang/NoSuchMethodException;-><init>(Ljava/lang/String;)V
goto :goto_47
:goto_46
throw v1
:goto_47
goto :goto_46
.end method
.method public getDeclaredITDMethods()[Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
.registers 15
.line 586
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->declaredITDMethods:[Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
if-nez v0, :cond_5d
.line 587
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 588
.local v0, "itdms":Ljava/util/List;, "Ljava/util/List<Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;>;"
iget-object v1, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v1}, Ljava/lang/Class;->getDeclaredMethods()[Ljava/lang/reflect/Method;
move-result-object v1
.line 589
.local v1, "baseMethods":[Ljava/lang/reflect/Method;
move-object v2, v1
.local v2, "arr$":[Ljava/lang/reflect/Method;
array-length v3, v2
.local v3, "len$":I
const/4 v4, 0x0
.local v4, "i$":I
:goto_12
if-ge v4, v3, :cond_4e
aget-object v11, v2, v4
.line 590
.local v11, "m":Ljava/lang/reflect/Method;
invoke-virtual {v11}, Ljava/lang/reflect/Method;->getName()Ljava/lang/String;
move-result-object v5
const-string v6, "ajc$interMethodDispatch1$"
invoke-virtual {v5, v6}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v5
if-nez v5, :cond_23
goto :goto_4b
.line 591
:cond_23
const-class v5, Lorg/aspectj/internal/lang/annotation/ajcITD;
invoke-virtual {v11, v5}, Ljava/lang/reflect/Method;->isAnnotationPresent(Ljava/lang/Class;)Z
move-result v5
if-eqz v5, :cond_4b
.line 592
const-class v5, Lorg/aspectj/internal/lang/annotation/ajcITD;
invoke-virtual {v11, v5}, Ljava/lang/reflect/Method;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v5
move-object v12, v5
check-cast v12, Lorg/aspectj/internal/lang/annotation/ajcITD;
.line 593
.local v12, "ann":Lorg/aspectj/internal/lang/annotation/ajcITD;
new-instance v13, Lorg/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl;
invoke-interface {v12}, Lorg/aspectj/internal/lang/annotation/ajcITD;->targetType()Ljava/lang/String;
move-result-object v7
invoke-interface {v12}, Lorg/aspectj/internal/lang/annotation/ajcITD;->modifiers()I
move-result v8
invoke-interface {v12}, Lorg/aspectj/internal/lang/annotation/ajcITD;->name()Ljava/lang/String;
move-result-object v9
move-object v5, v13
move-object v6, p0
move-object v10, v11
invoke-direct/range {v5 .. v10}, Lorg/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl;-><init>(Lorg/aspectj/lang/reflect/AjType;Ljava/lang/String;ILjava/lang/String;Ljava/lang/reflect/Method;)V
.line 597
.local v5, "itdm":Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
invoke-interface {v0, v5}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 589
.end local v5 # "itdm":Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
.end local v11 # "m":Ljava/lang/reflect/Method;
.end local v12 # "ann":Lorg/aspectj/internal/lang/annotation/ajcITD;
:cond_4b
:goto_4b
add-int/lit8 v4, v4, 0x1
goto :goto_12
.line 600
.end local v2 # "arr$":[Ljava/lang/reflect/Method;
.end local v3 # "len$":I
.end local v4 # "i$":I
:cond_4e
const/4 v2, 0x0
invoke-direct {p0, v0, v2}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->addAnnotationStyleITDMethods(Ljava/util/List;Z)V
.line 601
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v2
new-array v2, v2, [Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
iput-object v2, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->declaredITDMethods:[Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
.line 602
invoke-interface {v0, v2}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
.line 604
.end local v0 # "itdms":Ljava/util/List;, "Ljava/util/List<Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;>;"
.end local v1 # "baseMethods":[Ljava/lang/reflect/Method;
:cond_5d
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->declaredITDMethods:[Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
return-object v0
.end method
.method public varargs getDeclaredMethod(Ljava/lang/String;[Lorg/aspectj/lang/reflect/AjType;)Ljava/lang/reflect/Method;
.registers 5
.param p1, "name" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"[",
"Lorg/aspectj/lang/reflect/AjType<",
"*>;)",
"Ljava/lang/reflect/Method;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/NoSuchMethodException;
}
.end annotation
.line 315
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
.local p2, "parameterTypes":[Lorg/aspectj/lang/reflect/AjType;, "[Lorg/aspectj/lang/reflect/AjType<*>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-direct {p0, p2}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->toClassArray([Lorg/aspectj/lang/reflect/AjType;)[Ljava/lang/Class;
move-result-object v1
invoke-virtual {v0, p1, v1}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v0
.line 316
.local v0, "m":Ljava/lang/reflect/Method;
invoke-direct {p0, v0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->isReallyAMethod(Ljava/lang/reflect/Method;)Z
move-result v1
if-eqz v1, :cond_11
.line 317
return-object v0
.line 316
:cond_11
new-instance v1, Ljava/lang/NoSuchMethodException;
invoke-direct {v1, p1}, Ljava/lang/NoSuchMethodException;-><init>(Ljava/lang/String;)V
throw v1
.end method
.method public getDeclaredMethods()[Ljava/lang/reflect/Method;
.registers 8
.line 333
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getDeclaredMethods()[Ljava/lang/reflect/Method;
move-result-object v0
.line 334
.local v0, "methods":[Ljava/lang/reflect/Method;
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
.line 335
.local v1, "filteredMethods":Ljava/util/List;, "Ljava/util/List<Ljava/lang/reflect/Method;>;"
move-object v2, v0
.local v2, "arr$":[Ljava/lang/reflect/Method;
array-length v3, v2
.local v3, "len$":I
const/4 v4, 0x0
.local v4, "i$":I
:goto_e
if-ge v4, v3, :cond_1e
aget-object v5, v2, v4
.line 336
.local v5, "method":Ljava/lang/reflect/Method;
invoke-direct {p0, v5}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->isReallyAMethod(Ljava/lang/reflect/Method;)Z
move-result v6
if-eqz v6, :cond_1b
invoke-interface {v1, v5}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 335
.end local v5 # "method":Ljava/lang/reflect/Method;
:cond_1b
add-int/lit8 v4, v4, 0x1
goto :goto_e
.line 338
.end local v2 # "arr$":[Ljava/lang/reflect/Method;
.end local v3 # "len$":I
.end local v4 # "i$":I
:cond_1e
invoke-interface {v1}, Ljava/util/List;->size()I
move-result v2
new-array v2, v2, [Ljava/lang/reflect/Method;
.line 339
.local v2, "ret":[Ljava/lang/reflect/Method;
invoke-interface {v1, v2}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
.line 340
return-object v2
.end method
.method public getDeclaredPointcut(Ljava/lang/String;)Lorg/aspectj/lang/reflect/Pointcut;
.registers 8
.param p1, "name" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/aspectj/lang/reflect/NoSuchPointcutException;
}
.end annotation
.line 373
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
invoke-virtual {p0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->getDeclaredPointcuts()[Lorg/aspectj/lang/reflect/Pointcut;
move-result-object v0
.line 374
.local v0, "pcs":[Lorg/aspectj/lang/reflect/Pointcut;
move-object v1, v0
.local v1, "arr$":[Lorg/aspectj/lang/reflect/Pointcut;
array-length v2, v1
.local v2, "len$":I
const/4 v3, 0x0
.local v3, "i$":I
:goto_7
if-ge v3, v2, :cond_19
aget-object v4, v1, v3
.line 375
.local v4, "pc":Lorg/aspectj/lang/reflect/Pointcut;
invoke-interface {v4}, Lorg/aspectj/lang/reflect/Pointcut;->getName()Ljava/lang/String;
move-result-object v5
invoke-virtual {v5, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v5
if-eqz v5, :cond_16
return-object v4
.line 374
.end local v4 # "pc":Lorg/aspectj/lang/reflect/Pointcut;
:cond_16
add-int/lit8 v3, v3, 0x1
goto :goto_7
.line 376
.end local v1 # "arr$":[Lorg/aspectj/lang/reflect/Pointcut;
.end local v2 # "len$":I
.end local v3 # "i$":I
:cond_19
new-instance v1, Lorg/aspectj/lang/reflect/NoSuchPointcutException;
invoke-direct {v1, p1}, Lorg/aspectj/lang/reflect/NoSuchPointcutException;-><init>(Ljava/lang/String;)V
goto :goto_20
:goto_1f
throw v1
:goto_20
goto :goto_1f
.end method
.method public getDeclaredPointcuts()[Lorg/aspectj/lang/reflect/Pointcut;
.registers 8
.line 393
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->declaredPointcuts:[Lorg/aspectj/lang/reflect/Pointcut;
if-eqz v0, :cond_5
return-object v0
.line 394
:cond_5
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 395
.local v0, "pointcuts":Ljava/util/List;, "Ljava/util/List<Lorg/aspectj/lang/reflect/Pointcut;>;"
iget-object v1, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v1}, Ljava/lang/Class;->getDeclaredMethods()[Ljava/lang/reflect/Method;
move-result-object v1
.line 396
.local v1, "methods":[Ljava/lang/reflect/Method;
move-object v2, v1
.local v2, "arr$":[Ljava/lang/reflect/Method;
array-length v3, v2
.local v3, "len$":I
const/4 v4, 0x0
.local v4, "i$":I
:goto_13
if-ge v4, v3, :cond_23
aget-object v5, v2, v4
.line 397
.local v5, "method":Ljava/lang/reflect/Method;
invoke-direct {p0, v5}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->asPointcut(Ljava/lang/reflect/Method;)Lorg/aspectj/lang/reflect/Pointcut;
move-result-object v6
.line 398
.local v6, "pc":Lorg/aspectj/lang/reflect/Pointcut;
if-eqz v6, :cond_20
invoke-interface {v0, v6}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 396
.end local v5 # "method":Ljava/lang/reflect/Method;
.end local v6 # "pc":Lorg/aspectj/lang/reflect/Pointcut;
:cond_20
add-int/lit8 v4, v4, 0x1
goto :goto_13
.line 400
.end local v2 # "arr$":[Ljava/lang/reflect/Method;
.end local v3 # "len$":I
.end local v4 # "i$":I
:cond_23
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v2
new-array v2, v2, [Lorg/aspectj/lang/reflect/Pointcut;
.line 401
.local v2, "ret":[Lorg/aspectj/lang/reflect/Pointcut;
invoke-interface {v0, v2}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
.line 402
iput-object v2, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->declaredPointcuts:[Lorg/aspectj/lang/reflect/Pointcut;
.line 403
return-object v2
.end method
.method public getDeclaringType()Lorg/aspectj/lang/reflect/AjType;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lorg/aspectj/lang/reflect/AjType<",
"*>;"
}
.end annotation
.line 159
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getDeclaringClass()Ljava/lang/Class;
move-result-object v0
.line 160
.local v0, "dec":Ljava/lang/Class;
if-eqz v0, :cond_e
new-instance v1, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;
invoke-direct {v1, v0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;-><init>(Ljava/lang/Class;)V
goto :goto_f
:cond_e
const/4 v1, 0x0
:goto_f
return-object v1
.end method
.method public getEnclosingConstructor()Ljava/lang/reflect/Constructor;
.registers 2
.line 144
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getEnclosingConstructor()Ljava/lang/reflect/Constructor;
move-result-object v0
return-object v0
.end method
.method public getEnclosingMethod()Ljava/lang/reflect/Method;
.registers 2
.line 137
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getEnclosingMethod()Ljava/lang/reflect/Method;
move-result-object v0
return-object v0
.end method
.method public getEnclosingType()Lorg/aspectj/lang/reflect/AjType;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lorg/aspectj/lang/reflect/AjType<",
"*>;"
}
.end annotation
.line 151
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getEnclosingClass()Ljava/lang/Class;
move-result-object v0
.line 152
.local v0, "enc":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
if-eqz v0, :cond_e
new-instance v1, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;
invoke-direct {v1, v0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;-><init>(Ljava/lang/Class;)V
goto :goto_f
:cond_e
const/4 v1, 0x0
:goto_f
return-object v1
.end method
.method public getEnumConstants()[Ljava/lang/Object;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()[TT;"
}
.end annotation
.line 1072
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getEnumConstants()[Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public getField(Ljava/lang/String;)Ljava/lang/reflect/Field;
.registers 5
.param p1, "name" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/NoSuchFieldException;
}
.end annotation
.line 289
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0, p1}, Ljava/lang/Class;->getField(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v0
.line 290
.local v0, "f":Ljava/lang/reflect/Field;
invoke-virtual {v0}, Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
move-result-object v1
const-string v2, "ajc$"
invoke-virtual {v1, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v1
if-nez v1, :cond_13
.line 291
return-object v0
.line 290
:cond_13
new-instance v1, Ljava/lang/NoSuchFieldException;
invoke-direct {v1, p1}, Ljava/lang/NoSuchFieldException;-><init>(Ljava/lang/String;)V
throw v1
.end method
.method public getFields()[Ljava/lang/reflect/Field;
.registers 9
.line 298
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getFields()[Ljava/lang/reflect/Field;
move-result-object v0
.line 299
.local v0, "fields":[Ljava/lang/reflect/Field;
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
.line 300
.local v1, "filteredFields":Ljava/util/List;, "Ljava/util/List<Ljava/lang/reflect/Field;>;"
move-object v2, v0
.local v2, "arr$":[Ljava/lang/reflect/Field;
array-length v3, v2
.local v3, "len$":I
const/4 v4, 0x0
.local v4, "i$":I
:goto_e
if-ge v4, v3, :cond_34
aget-object v5, v2, v4
.line 301
.local v5, "field":Ljava/lang/reflect/Field;
invoke-virtual {v5}, Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
move-result-object v6
const-string v7, "ajc$"
invoke-virtual {v6, v7}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v6
if-nez v6, :cond_31
const-class v6, Lorg/aspectj/lang/annotation/DeclareWarning;
invoke-virtual {v5, v6}, Ljava/lang/reflect/Field;->isAnnotationPresent(Ljava/lang/Class;)Z
move-result v6
if-nez v6, :cond_31
const-class v6, Lorg/aspectj/lang/annotation/DeclareError;
invoke-virtual {v5, v6}, Ljava/lang/reflect/Field;->isAnnotationPresent(Ljava/lang/Class;)Z
move-result v6
if-nez v6, :cond_31
.line 304
invoke-interface {v1, v5}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 300
.end local v5 # "field":Ljava/lang/reflect/Field;
:cond_31
add-int/lit8 v4, v4, 0x1
goto :goto_e
.line 306
.end local v2 # "arr$":[Ljava/lang/reflect/Field;
.end local v3 # "len$":I
.end local v4 # "i$":I
:cond_34
invoke-interface {v1}, Ljava/util/List;->size()I
move-result v2
new-array v2, v2, [Ljava/lang/reflect/Field;
.line 307
.local v2, "ret":[Ljava/lang/reflect/Field;
invoke-interface {v1, v2}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
.line 308
return-object v2
.end method
.method public getGenericSupertype()Ljava/lang/reflect/Type;
.registers 2
.line 130
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getGenericSuperclass()Ljava/lang/reflect/Type;
move-result-object v0
return-object v0
.end method
.method public varargs getITDConstructor(Lorg/aspectj/lang/reflect/AjType;[Lorg/aspectj/lang/reflect/AjType;)Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;
.registers 13
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lorg/aspectj/lang/reflect/AjType<",
"*>;[",
"Lorg/aspectj/lang/reflect/AjType<",
"*>;)",
"Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/NoSuchMethodException;
}
.end annotation
.line 741
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
.local p1, "target":Lorg/aspectj/lang/reflect/AjType;, "Lorg/aspectj/lang/reflect/AjType<*>;"
.local p2, "parameterTypes":[Lorg/aspectj/lang/reflect/AjType;, "[Lorg/aspectj/lang/reflect/AjType<*>;"
invoke-virtual {p0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->getITDConstructors()[Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;
move-result-object v0
.line 742
.local v0, "itdcs":[Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;
move-object v1, v0
.local v1, "arr$":[Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;
array-length v2, v1
.local v2, "len$":I
const/4 v3, 0x0
.local v3, "i$":I
:goto_7
if-ge v3, v2, :cond_35
aget-object v4, v1, v3
.line 744
.local v4, "itdc":Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;
:try_start_b
invoke-interface {v4}, Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;->getTargetType()Lorg/aspectj/lang/reflect/AjType;
move-result-object v5
.line 745
.local v5, "itdTarget":Lorg/aspectj/lang/reflect/AjType;, "Lorg/aspectj/lang/reflect/AjType<*>;"
invoke-virtual {v5, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v6
if-eqz v6, :cond_30
.line 746
invoke-interface {v4}, Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;->getParameterTypes()[Lorg/aspectj/lang/reflect/AjType;
move-result-object v6
.line 747
.local v6, "ptypes":[Lorg/aspectj/lang/reflect/AjType;, "[Lorg/aspectj/lang/reflect/AjType<*>;"
array-length v7, v6
array-length v8, p2
if-ne v7, v8, :cond_30
.line 748
const/4 v7, 0x0
.local v7, "i":I
:goto_1e
array-length v8, v6
if-ge v7, v8, :cond_2f
.line 749
aget-object v8, v6, v7
aget-object v9, p2, v7
invoke-virtual {v8, v9}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v8
:try_end_29
.catch Ljava/lang/ClassNotFoundException; {:try_start_b .. :try_end_29} :catch_31
if-nez v8, :cond_2c
.line 750
goto :goto_32
.line 748
:cond_2c
add-int/lit8 v7, v7, 0x1
goto :goto_1e
.line 752
.end local v7 # "i":I
:cond_2f
return-object v4
.line 757
.end local v5 # "itdTarget":Lorg/aspectj/lang/reflect/AjType;, "Lorg/aspectj/lang/reflect/AjType<*>;"
.end local v6 # "ptypes":[Lorg/aspectj/lang/reflect/AjType;, "[Lorg/aspectj/lang/reflect/AjType<*>;"
:cond_30
goto :goto_32
.line 755
:catch_31
move-exception v5
.line 742
.end local v4 # "itdc":Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;
:goto_32
add-int/lit8 v3, v3, 0x1
goto :goto_7
.line 759
.end local v1 # "arr$":[Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;
.end local v2 # "len$":I
.end local v3 # "i$":I
:cond_35
new-instance v1, Ljava/lang/NoSuchMethodException;
invoke-direct {v1}, Ljava/lang/NoSuchMethodException;-><init>()V
goto :goto_3c
:goto_3b
throw v1
:goto_3c
goto :goto_3b
.end method
.method public getITDConstructors()[Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;
.registers 11
.line 766
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->itdCons:[Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;
if-nez v0, :cond_5c
.line 767
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 768
.local v0, "itdcs":Ljava/util/List;, "Ljava/util/List<Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;>;"
iget-object v1, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v1}, Ljava/lang/Class;->getMethods()[Ljava/lang/reflect/Method;
move-result-object v1
.line 769
.local v1, "baseMethods":[Ljava/lang/reflect/Method;
move-object v2, v1
.local v2, "arr$":[Ljava/lang/reflect/Method;
array-length v3, v2
.local v3, "len$":I
const/4 v4, 0x0
.local v4, "i$":I
:goto_12
if-ge v4, v3, :cond_51
aget-object v5, v2, v4
.line 770
.local v5, "m":Ljava/lang/reflect/Method;
invoke-virtual {v5}, Ljava/lang/reflect/Method;->getName()Ljava/lang/String;
move-result-object v6
const-string v7, "ajc$postInterConstructor"
invoke-virtual {v6, v7}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v6
if-nez v6, :cond_23
goto :goto_4e
.line 771
:cond_23
const-class v6, Lorg/aspectj/internal/lang/annotation/ajcITD;
invoke-virtual {v5, v6}, Ljava/lang/reflect/Method;->isAnnotationPresent(Ljava/lang/Class;)Z
move-result v6
if-eqz v6, :cond_4e
.line 772
const-class v6, Lorg/aspectj/internal/lang/annotation/ajcITD;
invoke-virtual {v5, v6}, Ljava/lang/reflect/Method;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v6
check-cast v6, Lorg/aspectj/internal/lang/annotation/ajcITD;
.line 773
.local v6, "ann":Lorg/aspectj/internal/lang/annotation/ajcITD;
invoke-interface {v6}, Lorg/aspectj/internal/lang/annotation/ajcITD;->modifiers()I
move-result v7
invoke-static {v7}, Ljava/lang/reflect/Modifier;->isPublic(I)Z
move-result v7
if-nez v7, :cond_3e
goto :goto_4e
.line 774
:cond_3e
new-instance v7, Lorg/aspectj/internal/lang/reflect/InterTypeConstructorDeclarationImpl;
invoke-interface {v6}, Lorg/aspectj/internal/lang/annotation/ajcITD;->targetType()Ljava/lang/String;
move-result-object v8
invoke-interface {v6}, Lorg/aspectj/internal/lang/annotation/ajcITD;->modifiers()I
move-result v9
invoke-direct {v7, p0, v8, v9, v5}, Lorg/aspectj/internal/lang/reflect/InterTypeConstructorDeclarationImpl;-><init>(Lorg/aspectj/lang/reflect/AjType;Ljava/lang/String;ILjava/lang/reflect/Method;)V
.line 776
.local v7, "itdc":Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;
invoke-interface {v0, v7}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 769
.end local v5 # "m":Ljava/lang/reflect/Method;
.end local v6 # "ann":Lorg/aspectj/internal/lang/annotation/ajcITD;
.end local v7 # "itdc":Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;
:cond_4e
:goto_4e
add-int/lit8 v4, v4, 0x1
goto :goto_12
.line 779
.end local v2 # "arr$":[Ljava/lang/reflect/Method;
.end local v3 # "len$":I
.end local v4 # "i$":I
:cond_51
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v2
new-array v2, v2, [Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;
iput-object v2, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->itdCons:[Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;
.line 780
invoke-interface {v0, v2}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
.line 782
.end local v0 # "itdcs":Ljava/util/List;, "Ljava/util/List<Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;>;"
.end local v1 # "baseMethods":[Ljava/lang/reflect/Method;
:cond_5c
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->itdCons:[Lorg/aspectj/lang/reflect/InterTypeConstructorDeclaration;
return-object v0
.end method
.method public getITDField(Ljava/lang/String;Lorg/aspectj/lang/reflect/AjType;)Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;
.registers 10
.param p1, "name" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Lorg/aspectj/lang/reflect/AjType<",
"*>;)",
"Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/NoSuchFieldException;
}
.end annotation
.line 841
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
.local p2, "target":Lorg/aspectj/lang/reflect/AjType;, "Lorg/aspectj/lang/reflect/AjType<*>;"
invoke-virtual {p0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->getITDFields()[Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;
move-result-object v0
.line 842
.local v0, "itdfs":[Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;
move-object v1, v0
.local v1, "arr$":[Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;
array-length v2, v1
.local v2, "len$":I
const/4 v3, 0x0
.local v3, "i$":I
:goto_7
if-ge v3, v2, :cond_25
aget-object v4, v1, v3
.line 843
.local v4, "itdf":Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;
invoke-interface {v4}, Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;->getName()Ljava/lang/String;
move-result-object v5
invoke-virtual {v5, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v5
if-eqz v5, :cond_22
.line 845
:try_start_15
invoke-interface {v4}, Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;->getTargetType()Lorg/aspectj/lang/reflect/AjType;
move-result-object v5
.line 846
.local v5, "itdTarget":Lorg/aspectj/lang/reflect/AjType;, "Lorg/aspectj/lang/reflect/AjType<*>;"
invoke-virtual {v5, p2}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v6
:try_end_1d
.catch Ljava/lang/ClassNotFoundException; {:try_start_15 .. :try_end_1d} :catch_21
if-eqz v6, :cond_20
return-object v4
.line 849
.end local v5 # "itdTarget":Lorg/aspectj/lang/reflect/AjType;, "Lorg/aspectj/lang/reflect/AjType<*>;"
:cond_20
goto :goto_22
.line 847
:catch_21
move-exception v5
.line 842
.end local v4 # "itdf":Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;
:cond_22
:goto_22
add-int/lit8 v3, v3, 0x1
goto :goto_7
.line 852
.end local v1 # "arr$":[Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;
.end local v2 # "len$":I
.end local v3 # "i$":I
:cond_25
new-instance v1, Ljava/lang/NoSuchFieldException;
invoke-direct {v1, p1}, Ljava/lang/NoSuchFieldException;-><init>(Ljava/lang/String;)V
goto :goto_2c
:goto_2b
throw v1
:goto_2c
goto :goto_2b
.end method
.method public getITDFields()[Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;
.registers 21
.line 859
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
move-object/from16 v8, p0
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
move-object v9, v0
.line 860
.local v9, "itdfs":Ljava/util/List;, "Ljava/util/List<Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;>;"
iget-object v0, v8, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->itdFields:[Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;
if-nez v0, :cond_c1
.line 861
iget-object v0, v8, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getMethods()[Ljava/lang/reflect/Method;
move-result-object v10
.line 862
.local v10, "baseMethods":[Ljava/lang/reflect/Method;
move-object v11, v10
.local v11, "arr$":[Ljava/lang/reflect/Method;
array-length v12, v11
.local v12, "len$":I
const/4 v0, 0x0
move v13, v0
.local v13, "i$":I
:goto_16
if-ge v13, v12, :cond_b2
aget-object v14, v11, v13
.line 863
.local v14, "m":Ljava/lang/reflect/Method;
const-class v0, Lorg/aspectj/internal/lang/annotation/ajcITD;
invoke-virtual {v14, v0}, Ljava/lang/reflect/Method;->isAnnotationPresent(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_ae
.line 864
const-class v0, Lorg/aspectj/internal/lang/annotation/ajcITD;
invoke-virtual {v14, v0}, Ljava/lang/reflect/Method;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v0
move-object v15, v0
check-cast v15, Lorg/aspectj/internal/lang/annotation/ajcITD;
.line 865
.local v15, "ann":Lorg/aspectj/internal/lang/annotation/ajcITD;
invoke-virtual {v14}, Ljava/lang/reflect/Method;->getName()Ljava/lang/String;
move-result-object v0
const-string v1, "ajc$interFieldInit"
invoke-virtual {v0, v1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
if-nez v0, :cond_39
goto/16 :goto_ae
.line 866
:cond_39
invoke-interface {v15}, Lorg/aspectj/internal/lang/annotation/ajcITD;->modifiers()I
move-result v0
invoke-static {v0}, Ljava/lang/reflect/Modifier;->isPublic(I)Z
move-result v0
if-nez v0, :cond_44
goto :goto_ae
.line 867
:cond_44
invoke-virtual {v14}, Ljava/lang/reflect/Method;->getName()Ljava/lang/String;
move-result-object v7
.line 868
.local v7, "interFieldInitMethodName":Ljava/lang/String;
const-string v0, "FieldInit"
const-string v1, "FieldGetDispatch"
invoke-virtual {v7, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
move-result-object v6
.line 871
.local v6, "interFieldGetDispatchMethodName":Ljava/lang/String;
:try_start_50
invoke-virtual {v14}, Ljava/lang/reflect/Method;->getDeclaringClass()Ljava/lang/Class;
move-result-object v0
invoke-virtual {v14}, Ljava/lang/reflect/Method;->getParameterTypes()[Ljava/lang/Class;
move-result-object v1
invoke-virtual {v0, v6, v1}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v0
.line 872
.local v0, "dispatch":Ljava/lang/reflect/Method;
new-instance v16, Lorg/aspectj/internal/lang/reflect/InterTypeFieldDeclarationImpl;
invoke-interface {v15}, Lorg/aspectj/internal/lang/annotation/ajcITD;->targetType()Ljava/lang/String;
move-result-object v3
invoke-interface {v15}, Lorg/aspectj/internal/lang/annotation/ajcITD;->modifiers()I
move-result v4
invoke-interface {v15}, Lorg/aspectj/internal/lang/annotation/ajcITD;->name()Ljava/lang/String;
move-result-object v5
invoke-virtual {v0}, Ljava/lang/reflect/Method;->getReturnType()Ljava/lang/Class;
move-result-object v1
invoke-static {v1}, Lorg/aspectj/lang/reflect/AjTypeSystem;->getAjType(Ljava/lang/Class;)Lorg/aspectj/lang/reflect/AjType;
move-result-object v17
invoke-virtual {v0}, Ljava/lang/reflect/Method;->getGenericReturnType()Ljava/lang/reflect/Type;
move-result-object v18
:try_end_76
.catch Ljava/lang/NoSuchMethodException; {:try_start_50 .. :try_end_76} :catch_8e
move-object/from16 v1, v16
move-object/from16 v2, p0
move-object/from16 v19, v6
.end local v6 # "interFieldGetDispatchMethodName":Ljava/lang/String;
.local v19, "interFieldGetDispatchMethodName":Ljava/lang/String;
move-object/from16 v6, v17
move-object/from16 v17, v7
.end local v7 # "interFieldInitMethodName":Ljava/lang/String;
.local v17, "interFieldInitMethodName":Ljava/lang/String;
move-object/from16 v7, v18
:try_start_82
invoke-direct/range {v1 .. v7}, Lorg/aspectj/internal/lang/reflect/InterTypeFieldDeclarationImpl;-><init>(Lorg/aspectj/lang/reflect/AjType;Ljava/lang/String;ILjava/lang/String;Lorg/aspectj/lang/reflect/AjType;Ljava/lang/reflect/Type;)V
move-object/from16 v1, v16
.line 876
.local v1, "itdf":Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;
invoke-interface {v9, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
:try_end_8a
.catch Ljava/lang/NoSuchMethodException; {:try_start_82 .. :try_end_8a} :catch_8c
.line 879
nop
.end local v0 # "dispatch":Ljava/lang/reflect/Method;
.end local v1 # "itdf":Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;
goto :goto_ae
.line 877
:catch_8c
move-exception v0
goto :goto_93
.end local v17 # "interFieldInitMethodName":Ljava/lang/String;
.end local v19 # "interFieldGetDispatchMethodName":Ljava/lang/String;
.restart local v6 # "interFieldGetDispatchMethodName":Ljava/lang/String;
.restart local v7 # "interFieldInitMethodName":Ljava/lang/String;
:catch_8e
move-exception v0
move-object/from16 v19, v6
move-object/from16 v17, v7
.line 878
.end local v6 # "interFieldGetDispatchMethodName":Ljava/lang/String;
.end local v7 # "interFieldInitMethodName":Ljava/lang/String;
.local v0, "nsmEx":Ljava/lang/NoSuchMethodException;
.restart local v17 # "interFieldInitMethodName":Ljava/lang/String;
.restart local v19 # "interFieldGetDispatchMethodName":Ljava/lang/String;
:goto_93
new-instance v1, Ljava/lang/IllegalStateException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Can\'t find field get dispatch method for "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v14}, Ljava/lang/reflect/Method;->getName()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v1
.line 862
.end local v0 # "nsmEx":Ljava/lang/NoSuchMethodException;
.end local v14 # "m":Ljava/lang/reflect/Method;
.end local v15 # "ann":Lorg/aspectj/internal/lang/annotation/ajcITD;
.end local v17 # "interFieldInitMethodName":Ljava/lang/String;
.end local v19 # "interFieldGetDispatchMethodName":Ljava/lang/String;
:cond_ae
:goto_ae
add-int/lit8 v13, v13, 0x1
goto/16 :goto_16
.line 882
.end local v11 # "arr$":[Ljava/lang/reflect/Method;
.end local v12 # "len$":I
.end local v13 # "i$":I
:cond_b2
const/4 v0, 0x1
invoke-direct {v8, v9, v0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->addAnnotationStyleITDFields(Ljava/util/List;Z)V
.line 883
invoke-interface {v9}, Ljava/util/List;->size()I
move-result v0
new-array v0, v0, [Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;
iput-object v0, v8, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->itdFields:[Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;
.line 884
invoke-interface {v9, v0}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
.line 886
.end local v10 # "baseMethods":[Ljava/lang/reflect/Method;
:cond_c1
iget-object v0, v8, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->itdFields:[Lorg/aspectj/lang/reflect/InterTypeFieldDeclaration;
return-object v0
.end method
.method public varargs getITDMethod(Ljava/lang/String;Lorg/aspectj/lang/reflect/AjType;[Lorg/aspectj/lang/reflect/AjType;)Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
.registers 14
.param p1, "name" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Lorg/aspectj/lang/reflect/AjType<",
"*>;[",
"Lorg/aspectj/lang/reflect/AjType<",
"*>;)",
"Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/NoSuchMethodException;
}
.end annotation
.line 613
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
.local p2, "target":Lorg/aspectj/lang/reflect/AjType;, "Lorg/aspectj/lang/reflect/AjType<*>;"
.local p3, "parameterTypes":[Lorg/aspectj/lang/reflect/AjType;, "[Lorg/aspectj/lang/reflect/AjType<*>;"
invoke-virtual {p0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->getITDMethods()[Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
move-result-object v0
.line 614
.local v0, "itdms":[Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
move-object v1, v0
.local v1, "arr$":[Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
array-length v2, v1
.local v2, "len$":I
const/4 v3, 0x0
.local v3, "i$":I
:goto_7
if-ge v3, v2, :cond_40
aget-object v4, v1, v3
.line 616
.local v4, "itdm":Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
:try_start_b
invoke-interface {v4}, Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;->getName()Ljava/lang/String;
move-result-object v5
invoke-virtual {v5, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v5
if-nez v5, :cond_16
goto :goto_3d
.line 617
:cond_16
invoke-interface {v4}, Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;->getTargetType()Lorg/aspectj/lang/reflect/AjType;
move-result-object v5
.line 618
.local v5, "itdTarget":Lorg/aspectj/lang/reflect/AjType;, "Lorg/aspectj/lang/reflect/AjType<*>;"
invoke-virtual {v5, p2}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v6
if-eqz v6, :cond_3b
.line 619
invoke-interface {v4}, Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;->getParameterTypes()[Lorg/aspectj/lang/reflect/AjType;
move-result-object v6
.line 620
.local v6, "ptypes":[Lorg/aspectj/lang/reflect/AjType;, "[Lorg/aspectj/lang/reflect/AjType<*>;"
array-length v7, v6
array-length v8, p3
if-ne v7, v8, :cond_3b
.line 621
const/4 v7, 0x0
.local v7, "i":I
:goto_29
array-length v8, v6
if-ge v7, v8, :cond_3a
.line 622
aget-object v8, v6, v7
aget-object v9, p3, v7
invoke-virtual {v8, v9}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v8
:try_end_34
.catch Ljava/lang/ClassNotFoundException; {:try_start_b .. :try_end_34} :catch_3c
if-nez v8, :cond_37
.line 623
goto :goto_3d
.line 621
:cond_37
add-int/lit8 v7, v7, 0x1
goto :goto_29
.line 625
.end local v7 # "i":I
:cond_3a
return-object v4
.line 630
.end local v5 # "itdTarget":Lorg/aspectj/lang/reflect/AjType;, "Lorg/aspectj/lang/reflect/AjType<*>;"
.end local v6 # "ptypes":[Lorg/aspectj/lang/reflect/AjType;, "[Lorg/aspectj/lang/reflect/AjType<*>;"
:cond_3b
goto :goto_3d
.line 628
:catch_3c
move-exception v5
.line 614
.end local v4 # "itdm":Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
:goto_3d
add-int/lit8 v3, v3, 0x1
goto :goto_7
.line 632
.end local v1 # "arr$":[Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
.end local v2 # "len$":I
.end local v3 # "i$":I
:cond_40
new-instance v1, Ljava/lang/NoSuchMethodException;
invoke-direct {v1, p1}, Ljava/lang/NoSuchMethodException;-><init>(Ljava/lang/String;)V
goto :goto_47
:goto_46
throw v1
:goto_47
goto :goto_46
.end method
.method public getITDMethods()[Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
.registers 15
.line 639
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->itdMethods:[Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
if-nez v0, :cond_68
.line 640
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 641
.local v0, "itdms":Ljava/util/List;, "Ljava/util/List<Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;>;"
iget-object v1, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v1}, Ljava/lang/Class;->getDeclaredMethods()[Ljava/lang/reflect/Method;
move-result-object v1
.line 642
.local v1, "baseMethods":[Ljava/lang/reflect/Method;
move-object v2, v1
.local v2, "arr$":[Ljava/lang/reflect/Method;
array-length v3, v2
.local v3, "len$":I
const/4 v4, 0x0
.local v4, "i$":I
:goto_12
if-ge v4, v3, :cond_59
aget-object v11, v2, v4
.line 643
.local v11, "m":Ljava/lang/reflect/Method;
invoke-virtual {v11}, Ljava/lang/reflect/Method;->getName()Ljava/lang/String;
move-result-object v5
const-string v6, "ajc$interMethod$"
invoke-virtual {v5, v6}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v5
if-nez v5, :cond_23
goto :goto_56
.line 644
:cond_23
const-class v5, Lorg/aspectj/internal/lang/annotation/ajcITD;
invoke-virtual {v11, v5}, Ljava/lang/reflect/Method;->isAnnotationPresent(Ljava/lang/Class;)Z
move-result v5
if-eqz v5, :cond_56
.line 645
const-class v5, Lorg/aspectj/internal/lang/annotation/ajcITD;
invoke-virtual {v11, v5}, Ljava/lang/reflect/Method;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v5
move-object v12, v5
check-cast v12, Lorg/aspectj/internal/lang/annotation/ajcITD;
.line 646
.local v12, "ann":Lorg/aspectj/internal/lang/annotation/ajcITD;
invoke-interface {v12}, Lorg/aspectj/internal/lang/annotation/ajcITD;->modifiers()I
move-result v5
invoke-static {v5}, Ljava/lang/reflect/Modifier;->isPublic(I)Z
move-result v5
if-nez v5, :cond_3f
goto :goto_56
.line 647
:cond_3f
new-instance v13, Lorg/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl;
invoke-interface {v12}, Lorg/aspectj/internal/lang/annotation/ajcITD;->targetType()Ljava/lang/String;
move-result-object v7
invoke-interface {v12}, Lorg/aspectj/internal/lang/annotation/ajcITD;->modifiers()I
move-result v8
invoke-interface {v12}, Lorg/aspectj/internal/lang/annotation/ajcITD;->name()Ljava/lang/String;
move-result-object v9
move-object v5, v13
move-object v6, p0
move-object v10, v11
invoke-direct/range {v5 .. v10}, Lorg/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl;-><init>(Lorg/aspectj/lang/reflect/AjType;Ljava/lang/String;ILjava/lang/String;Ljava/lang/reflect/Method;)V
.line 651
.local v5, "itdm":Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
invoke-interface {v0, v5}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 642
.end local v5 # "itdm":Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
.end local v11 # "m":Ljava/lang/reflect/Method;
.end local v12 # "ann":Lorg/aspectj/internal/lang/annotation/ajcITD;
:cond_56
:goto_56
add-int/lit8 v4, v4, 0x1
goto :goto_12
.line 654
.end local v2 # "arr$":[Ljava/lang/reflect/Method;
.end local v3 # "len$":I
.end local v4 # "i$":I
:cond_59
const/4 v2, 0x1
invoke-direct {p0, v0, v2}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->addAnnotationStyleITDMethods(Ljava/util/List;Z)V
.line 655
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v2
new-array v2, v2, [Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
iput-object v2, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->itdMethods:[Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
.line 656
invoke-interface {v0, v2}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
.line 658
.end local v0 # "itdms":Ljava/util/List;, "Ljava/util/List<Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;>;"
.end local v1 # "baseMethods":[Ljava/lang/reflect/Method;
:cond_68
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->itdMethods:[Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
return-object v0
.end method
.method public getInterfaces()[Lorg/aspectj/lang/reflect/AjType;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"()[",
"Lorg/aspectj/lang/reflect/AjType<",
"*>;"
}
.end annotation
.line 103
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getInterfaces()[Ljava/lang/Class;
move-result-object v0
.line 104
.local v0, "baseInterfaces":[Ljava/lang/Class;, "[Ljava/lang/Class<*>;"
invoke-direct {p0, v0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->toAjTypeArray([Ljava/lang/Class;)[Lorg/aspectj/lang/reflect/AjType;
move-result-object v1
return-object v1
.end method
.method public getJavaClass()Ljava/lang/Class;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/lang/Class<",
"TT;>;"
}
.end annotation
.line 115
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
return-object v0
.end method
.method public varargs getMethod(Ljava/lang/String;[Lorg/aspectj/lang/reflect/AjType;)Ljava/lang/reflect/Method;
.registers 5
.param p1, "name" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"[",
"Lorg/aspectj/lang/reflect/AjType<",
"*>;)",
"Ljava/lang/reflect/Method;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/NoSuchMethodException;
}
.end annotation
.line 324
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
.local p2, "parameterTypes":[Lorg/aspectj/lang/reflect/AjType;, "[Lorg/aspectj/lang/reflect/AjType<*>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-direct {p0, p2}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->toClassArray([Lorg/aspectj/lang/reflect/AjType;)[Ljava/lang/Class;
move-result-object v1
invoke-virtual {v0, p1, v1}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v0
.line 325
.local v0, "m":Ljava/lang/reflect/Method;
invoke-direct {p0, v0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->isReallyAMethod(Ljava/lang/reflect/Method;)Z
move-result v1
if-eqz v1, :cond_11
.line 326
return-object v0
.line 325
:cond_11
new-instance v1, Ljava/lang/NoSuchMethodException;
invoke-direct {v1, p1}, Ljava/lang/NoSuchMethodException;-><init>(Ljava/lang/String;)V
throw v1
.end method
.method public getMethods()[Ljava/lang/reflect/Method;
.registers 8
.line 347
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getMethods()[Ljava/lang/reflect/Method;
move-result-object v0
.line 348
.local v0, "methods":[Ljava/lang/reflect/Method;
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
.line 349
.local v1, "filteredMethods":Ljava/util/List;, "Ljava/util/List<Ljava/lang/reflect/Method;>;"
move-object v2, v0
.local v2, "arr$":[Ljava/lang/reflect/Method;
array-length v3, v2
.local v3, "len$":I
const/4 v4, 0x0
.local v4, "i$":I
:goto_e
if-ge v4, v3, :cond_1e
aget-object v5, v2, v4
.line 350
.local v5, "method":Ljava/lang/reflect/Method;
invoke-direct {p0, v5}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->isReallyAMethod(Ljava/lang/reflect/Method;)Z
move-result v6
if-eqz v6, :cond_1b
invoke-interface {v1, v5}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 349
.end local v5 # "method":Ljava/lang/reflect/Method;
:cond_1b
add-int/lit8 v4, v4, 0x1
goto :goto_e
.line 352
.end local v2 # "arr$":[Ljava/lang/reflect/Method;
.end local v3 # "len$":I
.end local v4 # "i$":I
:cond_1e
invoke-interface {v1}, Ljava/util/List;->size()I
move-result v2
new-array v2, v2, [Ljava/lang/reflect/Method;
.line 353
.local v2, "ret":[Ljava/lang/reflect/Method;
invoke-interface {v1, v2}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
.line 354
return-object v2
.end method
.method public getModifiers()I
.registers 2
.line 111
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getModifiers()I
move-result v0
return v0
.end method
.method public getName()Ljava/lang/String;
.registers 2
.line 89
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public getPackage()Ljava/lang/Package;
.registers 2
.line 96
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getPackage()Ljava/lang/Package;
move-result-object v0
return-object v0
.end method
.method public getPerClause()Lorg/aspectj/lang/reflect/PerClause;
.registers 7
.line 164
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
invoke-virtual {p0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->isAspect()Z
move-result v0
if-eqz v0, :cond_e6
.line 165
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
const-class v1, Lorg/aspectj/lang/annotation/Aspect;
invoke-virtual {v0, v1}, Ljava/lang/Class;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v0
check-cast v0, Lorg/aspectj/lang/annotation/Aspect;
.line 166
.local v0, "aspectAnn":Lorg/aspectj/lang/annotation/Aspect;
invoke-interface {v0}, Lorg/aspectj/lang/annotation/Aspect;->value()Ljava/lang/String;
move-result-object v1
.line 167
.local v1, "perClause":Ljava/lang/String;
const-string v2, ""
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_37
.line 168
invoke-virtual {p0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->getSupertype()Lorg/aspectj/lang/reflect/AjType;
move-result-object v2
invoke-interface {v2}, Lorg/aspectj/lang/reflect/AjType;->isAspect()Z
move-result v2
if-eqz v2, :cond_2f
.line 169
invoke-virtual {p0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->getSupertype()Lorg/aspectj/lang/reflect/AjType;
move-result-object v2
invoke-interface {v2}, Lorg/aspectj/lang/reflect/AjType;->getPerClause()Lorg/aspectj/lang/reflect/PerClause;
move-result-object v2
return-object v2
.line 171
:cond_2f
new-instance v2, Lorg/aspectj/internal/lang/reflect/PerClauseImpl;
sget-object v3, Lorg/aspectj/lang/reflect/PerClauseKind;->SINGLETON:Lorg/aspectj/lang/reflect/PerClauseKind;
invoke-direct {v2, v3}, Lorg/aspectj/internal/lang/reflect/PerClauseImpl;-><init>(Lorg/aspectj/lang/reflect/PerClauseKind;)V
return-object v2
.line 172
:cond_37
const-string v2, "perthis("
invoke-virtual {v1, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v3
if-eqz v3, :cond_55
.line 173
new-instance v3, Lorg/aspectj/internal/lang/reflect/PointcutBasedPerClauseImpl;
sget-object v4, Lorg/aspectj/lang/reflect/PerClauseKind;->PERTHIS:Lorg/aspectj/lang/reflect/PerClauseKind;
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v2
invoke-virtual {v1}, Ljava/lang/String;->length()I
move-result v5
add-int/lit8 v5, v5, -0x1
invoke-virtual {v1, v2, v5}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v2
invoke-direct {v3, v4, v2}, Lorg/aspectj/internal/lang/reflect/PointcutBasedPerClauseImpl;-><init>(Lorg/aspectj/lang/reflect/PerClauseKind;Ljava/lang/String;)V
return-object v3
.line 174
:cond_55
const-string v2, "pertarget("
invoke-virtual {v1, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v3
if-eqz v3, :cond_73
.line 175
new-instance v3, Lorg/aspectj/internal/lang/reflect/PointcutBasedPerClauseImpl;
sget-object v4, Lorg/aspectj/lang/reflect/PerClauseKind;->PERTARGET:Lorg/aspectj/lang/reflect/PerClauseKind;
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v2
invoke-virtual {v1}, Ljava/lang/String;->length()I
move-result v5
add-int/lit8 v5, v5, -0x1
invoke-virtual {v1, v2, v5}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v2
invoke-direct {v3, v4, v2}, Lorg/aspectj/internal/lang/reflect/PointcutBasedPerClauseImpl;-><init>(Lorg/aspectj/lang/reflect/PerClauseKind;Ljava/lang/String;)V
return-object v3
.line 176
:cond_73
const-string v2, "percflow("
invoke-virtual {v1, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v3
if-eqz v3, :cond_91
.line 177
new-instance v3, Lorg/aspectj/internal/lang/reflect/PointcutBasedPerClauseImpl;
sget-object v4, Lorg/aspectj/lang/reflect/PerClauseKind;->PERCFLOW:Lorg/aspectj/lang/reflect/PerClauseKind;
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v2
invoke-virtual {v1}, Ljava/lang/String;->length()I
move-result v5
add-int/lit8 v5, v5, -0x1
invoke-virtual {v1, v2, v5}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v2
invoke-direct {v3, v4, v2}, Lorg/aspectj/internal/lang/reflect/PointcutBasedPerClauseImpl;-><init>(Lorg/aspectj/lang/reflect/PerClauseKind;Ljava/lang/String;)V
return-object v3
.line 178
:cond_91
const-string v2, "percflowbelow("
invoke-virtual {v1, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v3
if-eqz v3, :cond_af
.line 179
new-instance v3, Lorg/aspectj/internal/lang/reflect/PointcutBasedPerClauseImpl;
sget-object v4, Lorg/aspectj/lang/reflect/PerClauseKind;->PERCFLOWBELOW:Lorg/aspectj/lang/reflect/PerClauseKind;
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v2
invoke-virtual {v1}, Ljava/lang/String;->length()I
move-result v5
add-int/lit8 v5, v5, -0x1
invoke-virtual {v1, v2, v5}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v2
invoke-direct {v3, v4, v2}, Lorg/aspectj/internal/lang/reflect/PointcutBasedPerClauseImpl;-><init>(Lorg/aspectj/lang/reflect/PerClauseKind;Ljava/lang/String;)V
return-object v3
.line 180
:cond_af
const-string v2, "pertypewithin"
invoke-virtual {v1, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_cf
.line 181
new-instance v2, Lorg/aspectj/internal/lang/reflect/TypePatternBasedPerClauseImpl;
sget-object v3, Lorg/aspectj/lang/reflect/PerClauseKind;->PERTYPEWITHIN:Lorg/aspectj/lang/reflect/PerClauseKind;
const-string v4, "pertypewithin("
invoke-virtual {v4}, Ljava/lang/String;->length()I
move-result v4
invoke-virtual {v1}, Ljava/lang/String;->length()I
move-result v5
add-int/lit8 v5, v5, -0x1
invoke-virtual {v1, v4, v5}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v4
invoke-direct {v2, v3, v4}, Lorg/aspectj/internal/lang/reflect/TypePatternBasedPerClauseImpl;-><init>(Lorg/aspectj/lang/reflect/PerClauseKind;Ljava/lang/String;)V
return-object v2
.line 183
:cond_cf
new-instance v2, Ljava/lang/IllegalStateException;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "Per-clause not recognized: "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-direct {v2, v3}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v2
.line 186
.end local v0 # "aspectAnn":Lorg/aspectj/lang/annotation/Aspect;
.end local v1 # "perClause":Ljava/lang/String;
:cond_e6
const/4 v0, 0x0
return-object v0
.end method
.method public getPointcut(Ljava/lang/String;)Lorg/aspectj/lang/reflect/Pointcut;
.registers 8
.param p1, "name" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/aspectj/lang/reflect/NoSuchPointcutException;
}
.end annotation
.line 383
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
invoke-virtual {p0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->getPointcuts()[Lorg/aspectj/lang/reflect/Pointcut;
move-result-object v0
.line 384
.local v0, "pcs":[Lorg/aspectj/lang/reflect/Pointcut;
move-object v1, v0
.local v1, "arr$":[Lorg/aspectj/lang/reflect/Pointcut;
array-length v2, v1
.local v2, "len$":I
const/4 v3, 0x0
.local v3, "i$":I
:goto_7
if-ge v3, v2, :cond_19
aget-object v4, v1, v3
.line 385
.local v4, "pc":Lorg/aspectj/lang/reflect/Pointcut;
invoke-interface {v4}, Lorg/aspectj/lang/reflect/Pointcut;->getName()Ljava/lang/String;
move-result-object v5
invoke-virtual {v5, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v5
if-eqz v5, :cond_16
return-object v4
.line 384
.end local v4 # "pc":Lorg/aspectj/lang/reflect/Pointcut;
:cond_16
add-int/lit8 v3, v3, 0x1
goto :goto_7
.line 386
.end local v1 # "arr$":[Lorg/aspectj/lang/reflect/Pointcut;
.end local v2 # "len$":I
.end local v3 # "i$":I
:cond_19
new-instance v1, Lorg/aspectj/lang/reflect/NoSuchPointcutException;
invoke-direct {v1, p1}, Lorg/aspectj/lang/reflect/NoSuchPointcutException;-><init>(Ljava/lang/String;)V
goto :goto_20
:goto_1f
throw v1
:goto_20
goto :goto_1f
.end method
.method public getPointcuts()[Lorg/aspectj/lang/reflect/Pointcut;
.registers 8
.line 410
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->pointcuts:[Lorg/aspectj/lang/reflect/Pointcut;
if-eqz v0, :cond_5
return-object v0
.line 411
:cond_5
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 412
.local v0, "pcuts":Ljava/util/List;, "Ljava/util/List<Lorg/aspectj/lang/reflect/Pointcut;>;"
iget-object v1, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v1}, Ljava/lang/Class;->getMethods()[Ljava/lang/reflect/Method;
move-result-object v1
.line 413
.local v1, "methods":[Ljava/lang/reflect/Method;
move-object v2, v1
.local v2, "arr$":[Ljava/lang/reflect/Method;
array-length v3, v2
.local v3, "len$":I
const/4 v4, 0x0
.local v4, "i$":I
:goto_13
if-ge v4, v3, :cond_23
aget-object v5, v2, v4
.line 414
.local v5, "method":Ljava/lang/reflect/Method;
invoke-direct {p0, v5}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->asPointcut(Ljava/lang/reflect/Method;)Lorg/aspectj/lang/reflect/Pointcut;
move-result-object v6
.line 415
.local v6, "pc":Lorg/aspectj/lang/reflect/Pointcut;
if-eqz v6, :cond_20
invoke-interface {v0, v6}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 413
.end local v5 # "method":Ljava/lang/reflect/Method;
.end local v6 # "pc":Lorg/aspectj/lang/reflect/Pointcut;
:cond_20
add-int/lit8 v4, v4, 0x1
goto :goto_13
.line 417
.end local v2 # "arr$":[Ljava/lang/reflect/Method;
.end local v3 # "len$":I
.end local v4 # "i$":I
:cond_23
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v2
new-array v2, v2, [Lorg/aspectj/lang/reflect/Pointcut;
.line 418
.local v2, "ret":[Lorg/aspectj/lang/reflect/Pointcut;
invoke-interface {v0, v2}, Ljava/util/List;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
.line 419
iput-object v2, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->pointcuts:[Lorg/aspectj/lang/reflect/Pointcut;
.line 420
return-object v2
.end method
.method public getSupertype()Lorg/aspectj/lang/reflect/AjType;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lorg/aspectj/lang/reflect/AjType<",
"-TT;>;"
}
.end annotation
.line 122
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class;
move-result-object v0
.line 123
.local v0, "superclass":Ljava/lang/Class;, "Ljava/lang/Class<-TT;>;"
if-nez v0, :cond_a
const/4 v1, 0x0
goto :goto_f
:cond_a
new-instance v1, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;
invoke-direct {v1, v0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;-><init>(Ljava/lang/Class;)V
:goto_f
return-object v1
.end method
.method public getTypeParameters()[Ljava/lang/reflect/TypeVariable;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()[",
"Ljava/lang/reflect/TypeVariable<",
"Ljava/lang/Class<",
"TT;>;>;"
}
.end annotation
.line 1079
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->getTypeParameters()[Ljava/lang/reflect/TypeVariable;
move-result-object v0
return-object v0
.end method
.method public hashCode()I
.registers 2
.line 1158
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Object;->hashCode()I
move-result v0
return v0
.end method
.method public isAnnotationPresent(Ljava/lang/Class;)Z
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"+",
"Ljava/lang/annotation/Annotation;",
">;)Z"
}
.end annotation
.line 194
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
.local p1, "annotationType":Ljava/lang/Class;, "Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0, p1}, Ljava/lang/Class;->isAnnotationPresent(Ljava/lang/Class;)Z
move-result v0
return v0
.end method
.method public isArray()Z
.registers 2
.line 1121
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->isArray()Z
move-result v0
return v0
.end method
.method public isAspect()Z
.registers 3
.line 1135
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
const-class v1, Lorg/aspectj/lang/annotation/Aspect;
invoke-virtual {v0, v1}, Ljava/lang/Class;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v0
if-eqz v0, :cond_c
const/4 v0, 0x1
goto :goto_d
:cond_c
const/4 v0, 0x0
:goto_d
return v0
.end method
.method public isEnum()Z
.registers 2
.line 1086
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->isEnum()Z
move-result v0
return v0
.end method
.method public isInstance(Ljava/lang/Object;)Z
.registers 3
.param p1, "o" # Ljava/lang/Object;
.line 1093
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0, p1}, Ljava/lang/Class;->isInstance(Ljava/lang/Object;)Z
move-result v0
return v0
.end method
.method public isInterface()Z
.registers 2
.line 1100
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->isInterface()Z
move-result v0
return v0
.end method
.method public isLocalClass()Z
.registers 2
.line 1107
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->isLocalClass()Z
move-result v0
if-eqz v0, :cond_10
invoke-virtual {p0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->isAspect()Z
move-result v0
if-nez v0, :cond_10
const/4 v0, 0x1
goto :goto_11
:cond_10
const/4 v0, 0x0
:goto_11
return v0
.end method
.method public isMemberAspect()Z
.registers 2
.line 1142
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->isMemberClass()Z
move-result v0
if-eqz v0, :cond_10
invoke-virtual {p0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->isAspect()Z
move-result v0
if-eqz v0, :cond_10
const/4 v0, 0x1
goto :goto_11
:cond_10
const/4 v0, 0x0
:goto_11
return v0
.end method
.method public isMemberClass()Z
.registers 2
.line 1114
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->isMemberClass()Z
move-result v0
if-eqz v0, :cond_10
invoke-virtual {p0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->isAspect()Z
move-result v0
if-nez v0, :cond_10
const/4 v0, 0x1
goto :goto_11
:cond_10
const/4 v0, 0x0
:goto_11
return v0
.end method
.method public isPrimitive()Z
.registers 2
.line 1128
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
invoke-virtual {v0}, Ljava/lang/Class;->isPrimitive()Z
move-result v0
return v0
.end method
.method public isPrivileged()Z
.registers 3
.line 1146
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
invoke-virtual {p0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->isAspect()Z
move-result v0
if-eqz v0, :cond_12
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->clazz:Ljava/lang/Class;
const-class v1, Lorg/aspectj/internal/lang/annotation/ajcPrivileged;
invoke-virtual {v0, v1}, Ljava/lang/Class;->isAnnotationPresent(Ljava/lang/Class;)Z
move-result v0
if-eqz v0, :cond_12
const/4 v0, 0x1
goto :goto_13
:cond_12
const/4 v0, 0x0
:goto_13
return v0
.end method
.method public toString()Ljava/lang/String;
.registers 2
.line 1177
.local p0, "this":Lorg/aspectj/internal/lang/reflect/AjTypeImpl;, "Lorg/aspectj/internal/lang/reflect/AjTypeImpl<TT;>;"
invoke-virtual {p0}, Lorg/aspectj/internal/lang/reflect/AjTypeImpl;->getName()Ljava/lang/String;
move-result-object v0
return-object v0
.end method