InterTypeMethodDeclarationImpl.smali
.class public Lorg/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl;
.super Lorg/aspectj/internal/lang/reflect/InterTypeDeclarationImpl;
.source "InterTypeMethodDeclarationImpl.java"
# interfaces
.implements Lorg/aspectj/lang/reflect/InterTypeMethodDeclaration;
# instance fields
.field private baseMethod:Ljava/lang/reflect/Method;
.field private exceptionTypes:[Lorg/aspectj/lang/reflect/AjType;
.annotation system Ldalvik/annotation/Signature;
value = {
"[",
"Lorg/aspectj/lang/reflect/AjType<",
"*>;"
}
.end annotation
.end field
.field private genericParameterTypes:[Ljava/lang/reflect/Type;
.field private genericReturnType:Ljava/lang/reflect/Type;
.field private name:Ljava/lang/String;
.field private parameterAdjustmentFactor:I
.field private parameterTypes:[Lorg/aspectj/lang/reflect/AjType;
.annotation system Ldalvik/annotation/Signature;
value = {
"[",
"Lorg/aspectj/lang/reflect/AjType<",
"*>;"
}
.end annotation
.end field
.field private returnType:Lorg/aspectj/lang/reflect/AjType;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lorg/aspectj/lang/reflect/AjType<",
"*>;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>(Lorg/aspectj/lang/reflect/AjType;Ljava/lang/String;ILjava/lang/String;Ljava/lang/reflect/Method;)V
.registers 7
.param p2, "target" # Ljava/lang/String;
.param p3, "mods" # I
.param p4, "name" # Ljava/lang/String;
.param p5, "itdInterMethod" # Ljava/lang/reflect/Method;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lorg/aspectj/lang/reflect/AjType<",
"*>;",
"Ljava/lang/String;",
"I",
"Ljava/lang/String;",
"Ljava/lang/reflect/Method;",
")V"
}
.end annotation
.line 45
.local p1, "decType":Lorg/aspectj/lang/reflect/AjType;, "Lorg/aspectj/lang/reflect/AjType<*>;"
invoke-direct {p0, p1, p2, p3}, Lorg/aspectj/internal/lang/reflect/InterTypeDeclarationImpl;-><init>(Lorg/aspectj/lang/reflect/AjType;Ljava/lang/String;I)V
.line 31
const/4 v0, 0x1
iput v0, p0, Lorg/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl;->parameterAdjustmentFactor:I
.line 46
iput-object p4, p0, Lorg/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl;->name:Ljava/lang/String;
.line 47
iput-object p5, p0, Lorg/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl;->baseMethod:Ljava/lang/reflect/Method;
.line 48
return-void
.end method
.method public constructor <init>(Lorg/aspectj/lang/reflect/AjType;Lorg/aspectj/lang/reflect/AjType;Ljava/lang/reflect/Method;I)V
.registers 6
.param p3, "base" # Ljava/lang/reflect/Method;
.param p4, "modifiers" # I
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lorg/aspectj/lang/reflect/AjType<",
"*>;",
"Lorg/aspectj/lang/reflect/AjType<",
"*>;",
"Ljava/lang/reflect/Method;",
"I)V"
}
.end annotation
.line 51
.local p1, "decType":Lorg/aspectj/lang/reflect/AjType;, "Lorg/aspectj/lang/reflect/AjType<*>;"
.local p2, "targetType":Lorg/aspectj/lang/reflect/AjType;, "Lorg/aspectj/lang/reflect/AjType<*>;"
invoke-direct {p0, p1, p2, p4}, Lorg/aspectj/internal/lang/reflect/InterTypeDeclarationImpl;-><init>(Lorg/aspectj/lang/reflect/AjType;Lorg/aspectj/lang/reflect/AjType;I)V
.line 31
const/4 v0, 0x1
iput v0, p0, Lorg/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl;->parameterAdjustmentFactor:I
.line 52
const/4 v0, 0x0
iput v0, p0, Lorg/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl;->parameterAdjustmentFactor:I
.line 53
invoke-virtual {p3}, Ljava/lang/reflect/Method;->getName()Ljava/lang/String;
move-result-object v0
iput-object v0, p0, Lorg/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl;->name:Ljava/lang/String;
.line 54
iput-object p3, p0, Lorg/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl;->baseMethod:Ljava/lang/reflect/Method;
.line 55
return-void
.end method
# virtual methods
.method public getExceptionTypes()[Lorg/aspectj/lang/reflect/AjType;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"()[",
"Lorg/aspectj/lang/reflect/AjType<",
"*>;"
}
.end annotation
.line 118
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl;->baseMethod:Ljava/lang/reflect/Method;
invoke-virtual {v0}, Ljava/lang/reflect/Method;->getExceptionTypes()[Ljava/lang/Class;
move-result-object v0
.line 119
.local v0, "baseTypes":[Ljava/lang/Class;, "[Ljava/lang/Class<*>;"
array-length v1, v0
new-array v1, v1, [Lorg/aspectj/lang/reflect/AjType;
.line 120
.local v1, "ret":[Lorg/aspectj/lang/reflect/AjType;, "[Lorg/aspectj/lang/reflect/AjType<*>;"
const/4 v2, 0x0
.local v2, "i":I
:goto_a
array-length v3, v0
if-ge v2, v3, :cond_18
.line 121
aget-object v3, v0, v2
invoke-static {v3}, Lorg/aspectj/lang/reflect/AjTypeSystem;->getAjType(Ljava/lang/Class;)Lorg/aspectj/lang/reflect/AjType;
move-result-object v3
aput-object v3, v1, v2
.line 120
add-int/lit8 v2, v2, 0x1
goto :goto_a
.line 123
.end local v2 # "i":I
:cond_18
return-object v1
.end method
.method public getGenericParameterTypes()[Ljava/lang/reflect/Type;
.registers 6
.line 98
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl;->baseMethod:Ljava/lang/reflect/Method;
invoke-virtual {v0}, Ljava/lang/reflect/Method;->getGenericParameterTypes()[Ljava/lang/reflect/Type;
move-result-object v0
.line 99
.local v0, "baseTypes":[Ljava/lang/reflect/Type;
array-length v1, v0
iget v2, p0, Lorg/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl;->parameterAdjustmentFactor:I
sub-int/2addr v1, v2
new-array v1, v1, [Lorg/aspectj/lang/reflect/AjType;
.line 100
.local v1, "ret":[Ljava/lang/reflect/Type;
iget v2, p0, Lorg/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl;->parameterAdjustmentFactor:I
.local v2, "i":I
:goto_e
array-length v3, v0
if-ge v2, v3, :cond_31
.line 101
aget-object v3, v0, v2
instance-of v3, v3, Ljava/lang/Class;
if-eqz v3, :cond_26
.line 102
iget v3, p0, Lorg/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl;->parameterAdjustmentFactor:I
sub-int v3, v2, v3
aget-object v4, v0, v2
check-cast v4, Ljava/lang/Class;
invoke-static {v4}, Lorg/aspectj/lang/reflect/AjTypeSystem;->getAjType(Ljava/lang/Class;)Lorg/aspectj/lang/reflect/AjType;
move-result-object v4
aput-object v4, v1, v3
goto :goto_2e
.line 104
:cond_26
iget v3, p0, Lorg/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl;->parameterAdjustmentFactor:I
sub-int v3, v2, v3
aget-object v4, v0, v2
aput-object v4, v1, v3
.line 100
:goto_2e
add-int/lit8 v2, v2, 0x1
goto :goto_e
.line 107
.end local v2 # "i":I
:cond_31
return-object v1
.end method
.method public getGenericReturnType()Ljava/lang/reflect/Type;
.registers 3
.line 75
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl;->baseMethod:Ljava/lang/reflect/Method;
invoke-virtual {v0}, Ljava/lang/reflect/Method;->getGenericReturnType()Ljava/lang/reflect/Type;
move-result-object v0
.line 76
.local v0, "gRet":Ljava/lang/reflect/Type;
instance-of v1, v0, Ljava/lang/Class;
if-eqz v1, :cond_12
.line 77
move-object v1, v0
check-cast v1, Ljava/lang/Class;
invoke-static {v1}, Lorg/aspectj/lang/reflect/AjTypeSystem;->getAjType(Ljava/lang/Class;)Lorg/aspectj/lang/reflect/AjType;
move-result-object v1
return-object v1
.line 79
:cond_12
return-object v0
.end method
.method public getName()Ljava/lang/String;
.registers 2
.line 61
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl;->name:Ljava/lang/String;
return-object v0
.end method
.method public getParameterTypes()[Lorg/aspectj/lang/reflect/AjType;
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"()[",
"Lorg/aspectj/lang/reflect/AjType<",
"*>;"
}
.end annotation
.line 86
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl;->baseMethod:Ljava/lang/reflect/Method;
invoke-virtual {v0}, Ljava/lang/reflect/Method;->getParameterTypes()[Ljava/lang/Class;
move-result-object v0
.line 87
.local v0, "baseTypes":[Ljava/lang/Class;, "[Ljava/lang/Class<*>;"
array-length v1, v0
iget v2, p0, Lorg/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl;->parameterAdjustmentFactor:I
sub-int/2addr v1, v2
new-array v1, v1, [Lorg/aspectj/lang/reflect/AjType;
.line 88
.local v1, "ret":[Lorg/aspectj/lang/reflect/AjType;, "[Lorg/aspectj/lang/reflect/AjType<*>;"
iget v2, p0, Lorg/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl;->parameterAdjustmentFactor:I
.local v2, "i":I
:goto_e
array-length v3, v0
if-ge v2, v3, :cond_20
.line 89
iget v3, p0, Lorg/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl;->parameterAdjustmentFactor:I
sub-int v3, v2, v3
aget-object v4, v0, v2
invoke-static {v4}, Lorg/aspectj/lang/reflect/AjTypeSystem;->getAjType(Ljava/lang/Class;)Lorg/aspectj/lang/reflect/AjType;
move-result-object v4
aput-object v4, v1, v3
.line 88
add-int/lit8 v2, v2, 0x1
goto :goto_e
.line 91
.end local v2 # "i":I
:cond_20
return-object v1
.end method
.method public getReturnType()Lorg/aspectj/lang/reflect/AjType;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lorg/aspectj/lang/reflect/AjType<",
"*>;"
}
.end annotation
.line 68
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl;->baseMethod:Ljava/lang/reflect/Method;
invoke-virtual {v0}, Ljava/lang/reflect/Method;->getReturnType()Ljava/lang/Class;
move-result-object v0
invoke-static {v0}, Lorg/aspectj/lang/reflect/AjTypeSystem;->getAjType(Ljava/lang/Class;)Lorg/aspectj/lang/reflect/AjType;
move-result-object v0
return-object v0
.end method
.method public getTypeParameters()[Ljava/lang/reflect/TypeVariable;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()[",
"Ljava/lang/reflect/TypeVariable<",
"Ljava/lang/reflect/Method;",
">;"
}
.end annotation
.line 114
iget-object v0, p0, Lorg/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl;->baseMethod:Ljava/lang/reflect/Method;
invoke-virtual {v0}, Ljava/lang/reflect/Method;->getTypeParameters()[Ljava/lang/reflect/TypeVariable;
move-result-object v0
return-object v0
.end method
.method public toString()Ljava/lang/String;
.registers 5
.line 127
new-instance v0, Ljava/lang/StringBuffer;
invoke-direct {v0}, Ljava/lang/StringBuffer;-><init>()V
.line 128
.local v0, "sb":Ljava/lang/StringBuffer;
invoke-virtual {p0}, Lorg/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl;->getModifiers()I
move-result v1
invoke-static {v1}, Ljava/lang/reflect/Modifier;->toString(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 129
const-string v1, " "
invoke-virtual {v0, v1}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 130
invoke-virtual {p0}, Lorg/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl;->getReturnType()Lorg/aspectj/lang/reflect/AjType;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 131
invoke-virtual {v0, v1}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 132
iget-object v1, p0, Lorg/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl;->targetTypeName:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 133
const-string v1, "."
invoke-virtual {v0, v1}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 134
invoke-virtual {p0}, Lorg/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl;->getName()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 135
const-string v1, "("
invoke-virtual {v0, v1}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 136
invoke-virtual {p0}, Lorg/aspectj/internal/lang/reflect/InterTypeMethodDeclarationImpl;->getParameterTypes()[Lorg/aspectj/lang/reflect/AjType;
move-result-object v1
.line 137
.local v1, "pTypes":[Lorg/aspectj/lang/reflect/AjType;, "[Lorg/aspectj/lang/reflect/AjType<*>;"
const/4 v2, 0x0
.local v2, "i":I
:goto_3e
array-length v3, v1
add-int/lit8 v3, v3, -0x1
if-ge v2, v3, :cond_54
.line 138
aget-object v3, v1, v2
invoke-virtual {v3}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v3
invoke-virtual {v0, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 139
const-string v3, ", "
invoke-virtual {v0, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 137
add-int/lit8 v2, v2, 0x1
goto :goto_3e
.line 141
.end local v2 # "i":I
:cond_54
array-length v2, v1
if-lez v2, :cond_63
.line 142
array-length v2, v1
add-int/lit8 v2, v2, -0x1
aget-object v2, v1, v2
invoke-virtual {v2}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 144
:cond_63
const-string v2, ")"
invoke-virtual {v0, v2}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 145
invoke-virtual {v0}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
move-result-object v2
return-object v2
.end method