package Ġcom . tester um . model . resources . http . response . xml _ body Ċ Ċ import Ġcom . tester um . model . resources . http . response . xml _ body . functions . impl . XPath Xml Js Function Ċ import Ġj dk . n ash orn . api . script ing . Abstract JS Object Ċ import Ġj dk . n ash orn . api . script ing . JS Object Ċ import Ġorg . j dom 2 . Document Ċ import Ġorg . j dom 2 . Element Ċ import Ġorg . j dom 2 . input . SAX Builder Ċ import Ġorg . j dom 2 . located . Loc ated J DOM Factory Ċ Ċ type alias ĠXml Function Factory Ġ= Ġ( element : ĠElement ) Ġ-> ĠJS Object Ċ Ċ class ĠRoot Element Xml Js Object ( byteArray : ĠByteArray ) Ġ: ĠAbstract JS Object () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠXML _ FUNCTION _ FACTOR IES Ġ= Ġmap Of < String , ĠXml Function Factory >( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠXPath Xml Js Function . FUNCTION _ NAME Ġto Ġ{ Ġelement Ġ-> ĠXPath Xml Js Function ( element ) Ġ}, ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġroot Element : ĠElement Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġs ax Builder Ġ= ĠSAX Builder (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġj dom Factory Ġ= ĠLoc ated J DOM Factory () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdocument : ĠDocument Ġ= Ġs ax Builder . build ( byteArray . inputStream ()) ĊĊĠĠĠĠĠĠĠ Ġreturn @ lazy Ġdocument . root Element ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhas Member ( name : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( XML _ FUNCTION _ FACTOR IES . containsKey ( name )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġroot Element . name Ġ== Ġname ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Member ( name : ĠString ): ĠAny Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcreate Function Ġ= ĠXML _ FUNCTION _ FACTOR IES [ name ] ĊĠĠĠĠĠĠĠ Ġif Ġ( create Function Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcreate Function ( root Element ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( root Element . name Ġ!= Ġname ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException (" the Ġonly Ġvalid Ġroot Ġelement Ġname Ġis Ġ[ ${ root Element . name }], Ġbut Ġgot Ġ[$ name ]") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠElement Xml Js Object ( root Element ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Member ( name : ĠString ?, Ġvalue : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠUnsupportedOperationException (" it Ġis Ġnot Ġallowed Ġto Ġmodify Ġthe ĠXML Ġdocument ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġremove Member ( name : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠUnsupportedOperationException (" it Ġis Ġnot Ġallowed Ġto Ġmodify Ġthe ĠXML Ġdocument ") ĊĠĠĠ Ġ} Ċ Ċ } Ċ