/* Ċ Ġ* ĠCopyright ĠOpen Search ĠContributors Ċ Ġ* ĠSPDX - License - Identifier : ĠApache - 2 . 0 Ċ Ġ*/ Ċ Ċ package Ġorg . opense arch . alert ing . action Ċ Ċ import Ġorg . opense arch . action . Action Response Ċ import Ġorg . opense arch . alert ing . model . destination . Destination Ċ import Ġorg . opense arch . common . io . stream . Stream Input Ċ import Ġorg . opense arch . common . io . stream . Stream Output Ċ import Ġorg . opense arch . common . x content . To X Content Ċ import Ġorg . opense arch . common . x content . To X Content Object Ċ import Ġorg . opense arch . common . x content . X Content Builder Ċ import Ġorg . opense arch . rest . Rest Status Ċ import Ġjava . io . IOException Ċ Ċ class ĠGet Dest inations Response Ġ: ĠAction Response , ĠTo X Content Object Ġ{ ĊĠĠĠ Ġvar Ġstatus : ĠRest Status ĊĠĠĠ Ġ// Ġtotal Dest inations Ġis Ġnot Ġthe Ġsame Ġas Ġthe Ġsize Ġof Ġdest inations Ġbecause Ġthere Ġcan Ġbe Ġ 3 0 Ġdest inations Ġfrom Ġthe Ġrequest , Ġbut ĊĠĠĠ Ġ// Ġthe Ġrequest Ġonly Ġasked Ġfor Ġ 5 Ġdest inations , Ġso Ġtotal Dest inations Ġwill Ġbe Ġ 3 0 , Ġbut Ġalerts Ġwill Ġonly Ġcontain Ġ 5 Ġdest inations ĊĠĠĠ Ġvar Ġtotal Dest inations : ĠInt ? ĊĠĠĠ Ġvar Ġdest inations : ĠList < Destination > ĊĊĠĠĠ Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġstatus : ĠRest Status , ĊĠĠĠĠĠĠĠ Ġtotal Dest inations : ĠInt ?, ĊĠĠĠĠĠĠĠ Ġdest inations : ĠList < Destination > ĊĠĠĠ Ġ) Ġ: Ġsuper () Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . status Ġ= Ġstatus ĊĠĠĠĠĠĠĠ Ġthis . total Dest inations Ġ= Ġtotal Dest inations ĊĠĠĠĠĠĠĠ Ġthis . dest inations Ġ= Ġdest inations ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġconstructor ( sin : ĠStream Input ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . status Ġ= Ġsin . read Enum ( Rest Status :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġdest inations Ġ= Ġmutable ListOf < Destination >() ĊĠĠĠĠĠĠĠ Ġthis . total Dest inations Ġ= Ġsin . read Optional Int () ĊĠĠĠĠĠĠĠ Ġvar Ġcurrent Size Ġ= Ġsin . readInt () ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġcurrent Size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdest inations . add ( Destination . read From ( sin )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthis . dest inations Ġ= Ġdest inations ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġoverride Ġfun ĠwriteTo ( out : ĠStream Output ) Ġ{ ĊĠĠĠĠĠĠĠ Ġout . write Enum ( status ) ĊĠĠĠĠĠĠĠ Ġout . write Optional Int ( total Dest inations ) ĊĠĠĠĠĠĠĠ Ġout . writeInt ( dest inations . size ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( destination Ġin Ġdest inations ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdestination . writeTo ( out ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġoverride Ġfun Ġto X Content ( builder : ĠX Content Builder , Ġparams : ĠTo X Content . Params ): ĠX Content Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġbuilder . start Object () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. field (" total Dest inations ", Ġtotal Dest inations ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. field (" dest inations ", Ġdest inations ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbuilder . end Object () ĊĠĠĠ Ġ} Ċ } Ċ