package Ġai . flow storm . core . dialog ue . attribute Ċ Ċ import Ġai . flow storm . core . dialog ue . Abstract Dialog ue Ċ import Ġai . flow storm . core . type . Memory Mutable Set Ċ import Ġkotlin . reflect . K Property Ċ Ċ class ĠString Sequence Attribute Delegate ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġentities : ĠList < String >, ĊĠĠĠĠĠĠĠ Ġscope : ĠContext ual Attribute Delegate . Scope , ĊĠĠĠĠĠĠĠ Ġnamespace : Ġ(() Ġ-> ĠString ), ĊĠĠĠĠĠĠĠ Ġval Ġnext Value : Ġ( Sequence Attribute < String , ĠString >. () Ġ-> ĠString ?) Ċ ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġattribute Delegate Ġ= ĠContext ual Attribute Delegate ( scope , ĠMemory Mutable Set :: class , Ġnamespace ) Ġ{ ĠMemory Mutable Set < String >() Ġ} ĊĊĠĠĠ Ġoperator Ġfun ĠgetValue ( this Ref : ĠAbstract Dialog ue , Ġproperty : ĠK Property < *> ): ĠSequence Attribute < String , ĠString > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmem ories Ġ= Ġattribute Delegate . getValue ( this Ref , Ġproperty , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn Ġobject Ġ: ĠSequence Attribute < String , ĠString >( entities , Ġmem ories , Ġnext Value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġto Memory Value ( e : ĠString ) Ġ= Ġe ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }