// ĠCopyright Ġ 2 0 1 7 ĠHP ĠDevelopment ĠCompany , ĠL . P . Ċ // ĠSPDX - License - Identifier : ĠMIT Ċ Ċ package Ġcom . hp . j ipp . encoding Ċ Ċ /** Ċ Ġ* ĠAn Ġ[ AttributeType ] Ġfor Ġa Ġ[ Text ] Ġvalue . Ċ Ġ* Ċ Ġ* ĠSee Ġ[ RFC 8 0 1 1 ĠSection Ġ 5 . 1 . 2 ]( https :// tools . ietf . org / html / rfc 8 0 1 1 # section - 5 . 1 . 2 ). Ċ Ġ*/ Ċ open Ġclass ĠText Type ( override Ġval Ġname : ĠString ) Ġ: ĠAttribute Type Impl < Text >( name , ĠText :: class . java ) Ġ{ ĊĠĠĠ Ġ/** ĠAn Ġ[ AttributeType ] Ġfor Ġmultiple Ġ[ Text ] Ġvalues . Ġ*/ ĊĠĠĠ Ġclass ĠSet ( name : ĠString ) Ġ: ĠText Type ( name ), ĠAttributeSet Type < Text > Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĠReturn Ġan Ġ[ Attribute ] Ġcontaining Ġ[ Text ] Ġof Ġvalues Ġgiven Ġ( without Ġlanguage ). Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġof ( value : ĠString , Ġvar arg Ġvalues : ĠString ) Ġ= Ġof (( listOf ( value ) Ġ+ Ġvalues ). map Ġ{ ĠText ( it ) Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ/** ĠReturn Ġan Ġ[ Attribute ] Ġcontaining Ġ[ Text ] Ġof Ġvalues Ġgiven Ġ( without Ġlanguage ). Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġof Strings ( values : ĠIterable < String >) Ġ= Ġof ( values . map Ġ{ ĠText ( it ) Ġ}) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġ" Text Type . Set ($ name )" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠReturn Ġan Ġ[ Attribute ] Ġof Ġa Ġ[ Text ] Ġfrom Ġ[ value ] Ġ( without Ġlanguage ). Ġ*/ ĊĠĠĠ Ġfun Ġof ( value : ĠString ) Ġ= Ġof ( Text ( value )) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcodec Ġ= ĠCodec ({ Ġit Ġ== ĠTag . text With Language Ġ|| Ġit Ġ== ĠTag . text Without Language Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ== ĠTag . text With Language ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġread Short () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlang Ġ= Ġread String () Ġ// ĠLang Ġcomes Ġfirst ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( readString (), Ġlang ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠText ( readString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . tag Ġ== ĠTag . text With Language ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwrite Short ( I pp Streams . string Length ( it . lang !! ) Ġ+ ĠI pp Streams . string Length ( it . value )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwrite StringValue ( it . lang ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwrite StringValue ( it . value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwrite StringValue ( it . value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ