/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 , ĠO ath ĠInc . Ċ Ġ* ĠLicensed Ġunder Ġthe Ġterms Ġof Ġthe ĠMIT ĠLicense . ĠSee ĠLICENSE . md Ġfile Ġin Ġproject Ġroot Ġfor Ġterms . Ċ Ġ*/ Ċ Ċ package Ġcom . a ol . mobile . sdk . ap itr acker . utils Ċ Ċ import Ġcom . a ol . mobile . sdk . ap itr acker . dto .* Ċ Ċ object ĠMarkdown Ġ{ ĊĠĠĠ Ġfun Ġrender ( implicit Namespaces : ĠList < String >, Ġapi Changes : ĠList < Class Record >): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmarkdown Ġ= Ġ"# ĠPublic ĠAPI Ġchanges \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi Changes . sorted By Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠClass Record . Removed Ġ-> Ġit . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠClass Record . New Ġ-> Ġit . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠClass Record . Modified Ġ-> Ġwhen Ġ( it . name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠName . Modified Ġ-> Ġit . name . old Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠName . Un touched Ġ-> Ġit . name . value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. join ToString ( separator Ġ= Ġ"\ n \ n ----- \ n \ n ") Ġ{ Ġit . render To Md () Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġimplicit Namespaces . distinct (). fold ( markdown ) Ġ{ Ġmd , Ġnamespace Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmd . replace ("$ namespace .", Ġ"") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval ĠList < Modifier >. mods Md ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġfilter Ġ{ Ġit Ġ! is ĠModifier . Un touched Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. join ToString ( separator Ġ= Ġ" Ġ") Ġ{ Ġit . md Ġ} ĊĊĠĠĠ Ġprivate Ġval ĠList < Method Record >. methods Md ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġif Ġ( isEmpty ()) ĠString () Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" #### ĠMethods \ n " Ġ+ Ġjoin ToString ( separator Ġ= Ġ"\ n \ n > Ġ", Ġprefix Ġ= Ġ"\ n \ n > Ġ", Ġpostfix Ġ= Ġ"\ n \ n ") Ġ{ Ġit . md Ġ} ĊĊĠĠĠ Ġprivate Ġval ĠList < Property Record >. props Md ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġif Ġ( isEmpty ()) ĠString () Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" #### ĠFields \ n " Ġ+ Ġjoin ToString ( separator Ġ= Ġ"\ n \ n > Ġ", Ġprefix Ġ= Ġ"\ n \ n > Ġ", Ġpostfix Ġ= Ġ"\ n \ n ") Ġ{ Ġit . md Ġ} ĊĊĠĠĠ Ġprivate Ġval ĠModifier . md ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠModifier . New Ġ-> Ġ"* $ name *" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠModifier . Removed Ġ-> Ġname ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠModifier . Un touched Ġ-> Ġname ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval ĠName . md ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠName . Modified Ġ-> Ġ" ~~ $ old Name ~~ Ġ-> Ġ* $ new Name *" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠName . Un touched Ġ-> Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval ĠProperty Record . md ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠProperty Record . New Ġ-> Ġ"* $ name *: Ġ** $ type ** " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠProperty Record . Removed Ġ-> Ġ" ~~ $ name : Ġ$ type ~~ " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval ĠProperty Record . raw Md ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠProperty Record . New Ġ-> Ġ"$ name : Ġ$ type " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠProperty Record . Removed Ġ-> Ġ"$ name : Ġ$ type " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval ĠMethod Record . New . args Md ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġargs . join ToString Ġ{ Ġit . md Ġ} ĊĊĠĠĠ Ġprivate Ġval ĠMethod Record . Removed . args Md ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġargs . join ToString Ġ{ Ġit . raw Md Ġ} ĊĊĠĠĠ Ġprivate Ġval ĠMethod Record . md ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠMethod Record . New Ġ-> Ġ"$ name ($ args Md ): Ġ** $ type ** " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠMethod Record . Removed Ġ-> Ġ" ~~ $ name ($ args Md ): Ġ$ type ~~ " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠClass Record . render To Md () Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠClass Record . Removed Ġ-> Ġ" ### ĠRE MOVED : Ġ~~ $ name ~~ \ n " ĊĊĠĠĠĠĠĠĠ Ġis ĠClass Record . New Ġ-> Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ### ĠNEW : Ġ${ modifiers . mods Md } Ġ$ name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ${ properties . props Md } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ${ methods . methods Md } """. trim Margin () ĊĊĠĠĠĠĠĠĠ Ġis ĠClass Record . Modified Ġ-> Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ### ĠCH ANG ED : Ġ${ modifiers . mods Md } Ġ${ name . md } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ${ properties . props Md } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| ${ methods . methods Md } """. trim Margin () ĊĠĠĠ Ġ} Ċ }