package Ġcom . cook pad . android . plugin . license . task Ċ Ċ import Ġcom . cook pad . android . plugin . license . License Tools Plugin Extension Ċ import Ġcom . cook pad . android . plugin . license . data . Library Info Ċ import Ġcom . cook pad . android . plugin . license . extension . write License Json Ċ import Ġcom . cook pad . android . plugin . license . util . Yaml Utils Ċ import Ġcom . squareup . mos hi . Json Ċ import Ġcom . squareup . mos hi . Json Adapter Ċ import Ġcom . squareup . mos hi . Json Class Ċ import Ġcom . squareup . mos hi . M oshi Ċ import Ġcom . squareup . mos hi . Types Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . Task Ċ import Ġorg . gradle . internal . impl dep . com . google . common . annotations . Visible ForTesting Ċ Ċ object ĠGenerate License Json Ġ{ ĊĠĠĠ Ġfun Ġregister ( project : ĠProject ): ĠTask Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġproject . task (" generate License Json "). do Last Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġext Ġ= Ġproject . extensions . getBy Type ( License Tools Plugin Extension :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġyaml InfoList Ġ= ĠYaml Utils . load To Library Info ( project . file ( ext . licenses Yaml )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . write License Json ( yaml InfoList . toJson ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Visible ForTesting ĊĠĠĠ Ġfun ĠList < Library Info >. toJson (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġadapter : ĠJson Adapter < Library Info Wrapper > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠM oshi . Builder (). build (). adapter ( Library Info Wrapper :: class . java ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Not Ġ{ Ġit . skip Ġ?: Ġfalse Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLibrary Info Wrapper . Library Info Json ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġartifact Id Ġ= ĠLibrary Info Wrapper . Library Info Json . Artifact Id ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġit . artifactId . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgroup Ġ= Ġit . artifactId . group , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġversion Ġ= Ġit . artifactId . version ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotice Ġ= Ġit . notice , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcopyright Holder Ġ= Ġit . copyright Holder , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcopyright Statement Ġ= Ġit . get Copyright Statement (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlicense Ġ= Ġit . license , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlicense Url Ġ= Ġit . license Url , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnormalized License Ġ= Ġit . normalized License (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġyear Ġ= Ġit . year , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġit . url , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlibrary Name Ġ= Ġit . library Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. toList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ Ġadapter . toJson ( Library Info Wrapper ( libraries Ġ= Ġit )) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Json Class ( generate Adapter Ġ= Ġtrue ) ĊĠĠĠ Ġdata Ġclass ĠLibrary Info Wrapper ( ĊĠĠĠĠĠĠĠ Ġ@ Json ( name Ġ= Ġ" libraries ") ĊĠĠĠĠĠĠĠ Ġval Ġlibraries : ĠList < Library Info Json > ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Json Class ( generate Adapter Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġdata Ġclass ĠLibrary Info Json ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Json ( name Ġ= Ġ" artifactId ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġartifact Id : ĠArtifact Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Json ( name Ġ= Ġ" notice ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnotice : ĠString ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Json ( name Ġ= Ġ" copyright Holder ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcopyright Holder : ĠString ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Json ( name Ġ= Ġ" copyright Statement ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcopyright Statement : ĠString ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Json ( name Ġ= Ġ" license ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlicense : ĠString ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Json ( name Ġ= Ġ" license Url ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlicense Url : ĠString ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Json ( name Ġ= Ġ" normalized License ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnormalized License : ĠString ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Json ( name Ġ= Ġ" year ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġyear : ĠString ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Json ( name Ġ= Ġ" url ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl : ĠString ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Json ( name Ġ= Ġ" library Name ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlibrary Name : ĠString ? ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Json Class ( generate Adapter Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġclass ĠArtifact Id ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Json ( name Ġ= Ġ" name ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Json ( name Ġ= Ġ" group ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgroup : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Json ( name Ġ= Ġ" version ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġversion : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ