/* Ċ Ġ* ĠCreated Ġby Ġshadow spark y Ġin Ġ 2 0 1 9 Ċ Ġ* Ċ Ġ*/ Ċ Ċ package Ġru . shadow spark y . client . mv vm . models Ċ Ċ import Ġru . shadow spark y . client . Logger Ċ import Ġru . shadow spark y . client . adb . AD B Device Ċ import Ġru . shadow spark y . client . adb . AD B Status Ċ import Ġru . shadow spark y . client . adb . AD B Worker Ċ import Ġru . shadow spark y . client . exceptions . AD B Devices NotFoundException Ċ import Ġru . shadow spark y . client . exceptions . AD B Missing Exception Ċ import Ġru . shadow spark y . client . exceptions . Forward Exception Ċ import Ġru . shadow spark y . client . exceptions . Missing Device Exception Ċ import Ġru . shadow spark y . client . objects . Injection Ċ import Ġru . shadow spark y . client . objects . Parser Ċ Ċ /** Ċ Ġ* ĠModel ĠÐ¸Ð· ĠMV VM ĠÐ´Ð»Ñı ĠÑĢÐ°Ð±Ð¾ÑĤ Ñĭ ĠÑģ ĠA DB Ċ Ġ* Ċ Ġ* Ġ@ property Ġa db ĠÐ¿Ð¾Ð´ ÑĢ Ð¾Ð± Ð½ ÐµÐµ : Ġ[ AD B Worker ] Ċ Ġ* Ġ@ property Ġlog ĠÐ¿Ð¾Ð´ ÑĢ Ð¾Ð± Ð½ ÐµÐµ : Ġ[ Logger ] Ċ Ġ*/ Ċ open Ġclass ĠA db Model Ġ{ ĊĠĠĠ Ġprivate Ġval Ġa db Ġ= ĠInjection . provide A db () ĊĠĠĠ Ġprivate Ġval Ġlog Ġ= ĠInjection . provide Logger () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠÐŀ ÑĤ Ð¿ÑĢÐ°Ð² ÐºÐ° ĠÐ·Ð°Ð¿ ÑĢÐ¾Ñģ Ð° ĠÐ½Ð° ĠÐ¿Ð¾Ð»ÑĥÑĩ ÐµÐ½Ð¸Ðµ ĠÑĥ ÑģÑĤÑĢ Ð¾Ð¹ ÑģÑĤÐ² ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ see Ġ[ AD B Worker . adb Devices ], Ġ[ Parser . str To Devices ] ĊĠĠĠĠ Ġ* Ġ@ return ĠÑģÐ¿Ð¸Ñģ Ð¾Ðº Ġ[ AD B Device ] ĠÑģ ĠÐ¿Ð¾Ð´ ÐºÐ»ÑİÑĩ ÐµÐ½ Ð½Ñĭ Ð¼Ð¸ ĠÑĥ ÑģÑĤÑĢ Ð¾Ð¹ ÑģÑĤÐ² Ð°Ð¼Ð¸ ĊĠĠĠĠ Ġ* Ġ@ exception ĠA DB Devices NotFoundException ĠÑģ ÑĢÐ°Ð ± Ð°ÑĤ ÑĭÐ² Ð°ÐµÑĤ , ĠÐµÑģÐ»Ð¸ ĠÐ¿Ð¾Ð´ ÐºÐ»ÑİÑĩ ÐµÐ½ Ð½ÑĭÐµ ĊĠĠĠĠ Ġ* ĠÑĥ ÑģÑĤÑĢ Ð¾Ð¹ ÑģÑĤÐ²Ð° ĠÐ¾ÑĤ Ñģ ÑĥÑĤ ÑģÑĤÐ² ÑĥÑİ ÑĤ ĊĠĠĠĠ Ġ* Ġ@ exception ĠA DB Missing Exception ĠÑģ ÑĢÐ°Ð ± Ð°ÑĤ ÑĭÐ² Ð°ÐµÑĤ , ĠÐµÑģÐ»Ð¸ ĠÐ½Ð° ĠÐºÐ¾Ð¼Ð¿ ÑĮ ÑİÑĤ ÐµÑĢ Ðµ ĊĠĠĠĠ Ġ* ĠÐ¿Ð¾Ð»ÑĮÐ·Ð¾Ð²Ð°ÑĤ ÐµÐ»Ñı ĠÐ½Ðµ ĠÑĥÑģÑĤÐ°Ð½Ð¾Ð² Ð»ÐµÐ½ ĠA DB ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġget Devices Request () Ġ: ĠArrayList < AD B Device > Ġ Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġa db . adb Devices () ĊĠĠĠĠĠĠĠ Ġif Ġ( request . status Ġ== ĠA DB Status . OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdevices Ġ= ĠParser . str To Devices ( request . info ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( devices . isEmpty ()) Ġthrow ĠA DB Devices NotFoundException () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdevices ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠA DB Missing Exception () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠÐŀ ÑĤ Ð¿ÑĢÐ°Ð² ÐºÐ° ĠÐ·Ð°Ð¿ ÑĢÐ¾Ñģ Ð° ĠÐ½Ð° ĠÐ¿ÐµÑĢ Ðµ Ð¾Ð¿ ÑĢÐµÐ´ÐµÐ» ÐµÐ½Ð¸Ðµ ĠÐ¿ Ð¾ÑĢ ÑĤÐ° ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġaddr ĠÐ´Ð°Ð½ Ð½ÑĭÐµ ĠÐ¾Ð± ĠÑĥ ÑģÑĤÑĢ Ð¾Ð¹ ÑģÑĤÐ² Ðµ ĊĠĠĠĠ Ġ* Ġ@ see Ġ[ Parser . str To Device ], Ġ[ AD B Worker . forward Port ] ĊĠĠĠĠ Ġ* Ġ@ return ĠÐ²Ñģ ÐµÐ³ Ð´Ð° Ġtrue ĊĠĠĠĠ Ġ* Ġ@ exception ĠForward Exception ĠÑģ ÑĢÐ°Ð ± Ð°ÑĤ Ñĭ Ð°ÐµÑĤ , ĠÐµÑģÐ»Ð¸ ĠÐ² Ð¾ ĠÐ²ÑĢÐµÐ¼ Ñı ĠÐ¿ÐµÑĢ Ðµ Ð¾Ð¿ ÑĢÐµÐ´ÐµÐ» ÐµÐ½Ð¸Ñı ĠÐ¿ Ð¾ÑĢ ÑĤÐ° ĠÐ¿ÑĢÐ¾ Ð¸Ð· Ð¾ ÑĪ Ð»Ð° ĠÐ¾ÑĪÐ¸Ð± ÐºÐ° ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġforward Port ( addr : ĠString ) Ġ: ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdevice Ġ= ĠParser . str To Device ( addr ) ĊĠĠĠĠĠĠĠ Ġif Ġ( device Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġa db . forward Port ( device . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result . status Ġ== ĠA DB Status . OK ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthrow ĠForward Exception () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠÐŁ ÑĢÐ¾Ð² ÐµÑĢ ÐºÐ° ĠÐ²ÑĭÐ± ÑĢÐ°Ð½ Ð½Ð¾Ð³Ð¾ ĠÑĥ ÑģÑĤÑĢ Ð¾Ð¹ ÑģÑĤÐ²Ð° ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġdevice ĠÐ´Ð°Ð½ Ð½ÑĭÐµ ĠÐ¾Ð± ĠÑĥ ÑģÑĤÑĢ Ð¾Ð¹ ÑģÑĤÐ² Ðµ ĊĠĠĠĠ Ġ* Ġ@ return ĠÐ´Ð°Ð½ Ð½ÑĭÐµ ĠÐ¾Ð± ĠÑĥ ÑģÑĤÑĢ Ð¾Ð¹ ÑģÑĤÐ² Ðµ ĊĠĠĠĠ Ġ* Ġ@ exception ĠMissing Device Exception ĠÑģ ÑĢÐ°Ð ± Ð°ÑĤ ÑĭÐ² Ð°ÐµÑĤ , ĠÐµÑģÐ»Ð¸ ĠÑĥ ÑģÑĤÑĢ Ð¾Ð¹ ÑģÑĤÐ² Ð¾ ĠÐ½Ðµ ĠÐ²ÑĭÐ± ÑĢÐ°Ð½ Ð¾ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcheck Device ( device : ĠString ?) Ġ= Ġdevice Ġ?: Ġthrow ĠMissing Device Exception () Ċ }