package Ġorg . apache . t inker pop . gre mlin . og m . reflection Ċ Ċ import Ġorg . apache . t inker pop . gre mlin . og m . elements . Edge Ċ import Ġorg . apache . t inker pop . gre mlin . og m . elements . Vertex Ċ import Ġorg . apache . t inker pop . gre mlin . og m . map pers . Property Bi Mapper Ċ import Ġorg . apache . t inker pop . gre mlin . og m . map pers . Serialized Property Ċ import Ġorg . apache . t inker pop . gre mlin . og m . steps . relationship . edge spec . Edge Spec Ċ import Ġkotlin . reflect . K Class Ċ Ċ /** Ċ Ġ* ĠAn Ġinterface Ġthat Ġdescribes Ġa Ġgraph 's Ġvertices , Ġedges , Ġobject Ġproperties , Ġscalar Ġproperties Ġand Ġis Ċ Ġ* Ġused Ġby Ġa ĠGraph Mapper Ġto Ġserialize / deserialize Ġthese Ġinstances Ġto / from Ġthe Ġgraph , Ġrespectively . Ċ Ġ*/ Ċ interface ĠGraph Description Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ĠVert ices ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġval Ġvertex Classes : ĠSet < K Class < out ĠVertex >> ĊĊĠĠĠ Ġfun Ġ< T Ġ: ĠVertex > Ġget Vertex Description ( vertex Class : ĠK Class < out ĠT >): ĠVertex Description < T > ĊĊĠĠĠ Ġval Ġvertex Labels : ĠSet < String > ĊĊĠĠĠ Ġfun Ġ< T Ġ: ĠVertex > Ġget Vertex Description ( vertex Label : ĠString ): ĠVertex Description < T > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠEd ges ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġval Ġedge Classes : ĠSet < K Class < out ĠEdge < Vertex , ĠVertex >>> ĊĊĠĠĠ Ġfun Ġ< FROM Ġ: ĠVertex , ĠTO Ġ: ĠVertex , ĠE Ġ: ĠEdge < FROM , ĠTO >> Ġget Edge Description ( edge Class : ĠK Class < out ĠE >): ĠEdge Description < FROM , ĠTO , ĠE > ĊĊĠĠĠ Ġval Ġedge Labels : ĠSet < String > ĊĊĠĠĠ Ġfun Ġ< FROM Ġ: ĠVertex , ĠTO Ġ: ĠVertex > Ġget Edge Spec ( edge Label : ĠString ): ĠEdge Spec < FROM , ĠTO > ĊĊĠĠĠ Ġfun Ġ< FROM Ġ: ĠVertex , ĠTO Ġ: ĠVertex , ĠE Ġ: ĠEdge < FROM , ĠTO >> Ġget Edge Description ( edge Label : ĠString ): ĠEdge Description < FROM , ĠTO , ĠE >? ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠNested ĠObjects ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġval Ġobject Property Classes : ĠSet < K Class < out ĠAny >> ĊĊĠĠĠ Ġfun Ġ< T Ġ: ĠAny > ĠgetObject Property Description ( object Property Class : ĠK Class < out ĠT >): ĠObject Description < T > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠScal ars ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġval Ġscalar Property Classes : ĠSet < K Class < out ĠAny >> ĊĊĠĠĠ Ġfun Ġ< T Ġ: ĠAny > Ġget Scalar Property Mapper ( scalar Class : ĠK Class < out ĠT >): ĠProperty Bi Mapper < T , ĠSerialized Property > Ċ } Ċ