def main
(args
: Array
[String
]): Unit
= { println(connect())
}
def calcIdInfo
(): IdInfo
= new IdInfo
def calcPwdInfo
(id
: IdInfo
): PasswordInfo
= new PasswordInfo
def calcConnInfo
(id
: IdInfo, pwd
: PasswordInfo
): ConnectionInfo
= new ConnectionInfo
def verify
(id
:IdInfo, pwd
: PasswordInfo, conn
: ConnectionInfo
): Unit
= ()
def connect
(): Option
[(IdInfo, PasswordInfo, ConnectionInfo
)] = { Some(calcIdInfo())
case ex
: IOException
=> None
}
idInfoOpt map (idInfo => {
Some(calcPwdInfo(idInfo))
case ex
: AuthorizationException
=> None
}
pwdInfoOpt map (pwdInfo => {
Some(calcConnInfo(idInfo, pwdInfo))
case ex
: IOException
=> None
}
connInfoOpt map (connInfo => {
verify(idInfo, pwdInfo, connInfo)
Some(idInfo, pwdInfo, connInfo)
case ex
: IOException
=> None
case ex
: AuthorizationException
=> None
}
}) getOrElse None
}) getOrElse None
}) getOrElse None
}
}
b2JqZWN0IE1haW4gewogIGRlZiBtYWluKGFyZ3M6IEFycmF5W1N0cmluZ10pOiBVbml0ID0gewogICAgcHJpbnRsbihjb25uZWN0KCkpCiAgfQogIAogIGNsYXNzIElkSW5mbwogIGNsYXNzIFBhc3N3b3JkSW5mbwogIGNsYXNzIENvbm5lY3Rpb25JbmZvCgogIGNsYXNzIElPRXhjZXB0aW9uIGV4dGVuZHMgUnVudGltZUV4Y2VwdGlvbgogIGNsYXNzIEF1dGhvcml6YXRpb25FeGNlcHRpb24gZXh0ZW5kcyBSdW50aW1lRXhjZXB0aW9uCgogIGRlZiBjYWxjSWRJbmZvKCk6IElkSW5mbyA9IG5ldyBJZEluZm8KICBkZWYgY2FsY1B3ZEluZm8oaWQ6IElkSW5mbyk6IFBhc3N3b3JkSW5mbyA9IG5ldyBQYXNzd29yZEluZm8KICBkZWYgY2FsY0Nvbm5JbmZvKGlkOiBJZEluZm8sIHB3ZDogUGFzc3dvcmRJbmZvKTogQ29ubmVjdGlvbkluZm8gPSBuZXcgQ29ubmVjdGlvbkluZm8KICBkZWYgdmVyaWZ5KGlkOklkSW5mbywgcHdkOiBQYXNzd29yZEluZm8sIGNvbm46IENvbm5lY3Rpb25JbmZvKTogVW5pdCA9ICgpCgogIGRlZiBjb25uZWN0KCk6IE9wdGlvblsoSWRJbmZvLCBQYXNzd29yZEluZm8sIENvbm5lY3Rpb25JbmZvKV0gPSB7CiAgICB2YWwgaWRJbmZvT3B0ID0gdHJ5IHsKICAgICAgU29tZShjYWxjSWRJbmZvKCkpCiAgICB9IGNhdGNoIHsKICAgICAgY2FzZSBleDogSU9FeGNlcHRpb24gPT4gTm9uZQogICAgfQogICAgICAKICAgIGlkSW5mb09wdCBtYXAgKGlkSW5mbyA9PiB7CiAgICAgIHZhbCBwd2RJbmZvT3B0ID0gdHJ5IHsKICAgICAgICBTb21lKGNhbGNQd2RJbmZvKGlkSW5mbykpCiAgICAgIH0gY2F0Y2ggewogICAgICAgIGNhc2UgZXg6IEF1dGhvcml6YXRpb25FeGNlcHRpb24gPT4gTm9uZQogICAgICB9CiAgICAgIAogICAgICBwd2RJbmZvT3B0IG1hcCAocHdkSW5mbyA9PiB7CiAgICAgICAgdmFsIGNvbm5JbmZvT3B0ID0gdHJ5IHsKICAgICAgICAgIFNvbWUoY2FsY0Nvbm5JbmZvKGlkSW5mbywgcHdkSW5mbykpCiAgICAgICAgfSBjYXRjaCB7CiAgICAgICAgICBjYXNlIGV4OiBJT0V4Y2VwdGlvbiA9PiBOb25lCiAgICAgICAgfQogICAgICAgIAogICAgICAgIGNvbm5JbmZvT3B0IG1hcCAoY29ubkluZm8gPT4gewogICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgdmVyaWZ5KGlkSW5mbywgcHdkSW5mbywgY29ubkluZm8pCiAgICAgICAgICAgIFNvbWUoaWRJbmZvLCBwd2RJbmZvLCBjb25uSW5mbykKICAgICAgICAgIH0gY2F0Y2ggewogICAgICAgICAgICBjYXNlIGV4OiBJT0V4Y2VwdGlvbiA9PiBOb25lCiAgICAgICAgICAgIGNhc2UgZXg6IEF1dGhvcml6YXRpb25FeGNlcHRpb24gPT4gTm9uZQogICAgICAgICAgfQogICAgICAgIH0pIGdldE9yRWxzZSBOb25lCiAgICAgIH0pIGdldE9yRWxzZSBOb25lCiAgICB9KSBnZXRPckVsc2UgTm9uZQogIH0KfQ==