/* Ċ Ġ* ĠUnless Ġexplicitly Ġstated Ġotherwise Ġall Ġfiles Ġin Ġthis Ġrepository Ġare Ġlicensed Ġunder Ġthe ĠApache ĠLicense ĠVersion Ġ 2 . 0 . Ċ Ġ* ĠThis Ġproduct Ġincludes Ġsoftware Ġdeveloped Ġat ĠDat adog Ġ( https :// www . datadog hq . com /). Ċ Ġ* ĠCopyright Ġ 2 0 1 6 - Present ĠDat adog , ĠInc . Ċ Ġ*/ Ċ Ċ package Ġcom . datadog . gradle . plugin . apis urface Ċ Ċ import Ġcom . datadog . gradle . config . task Config Ċ import Ġjava . io . File Ċ import Ġorg . gradle . api . Plugin Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . jetbrains . kotlin . gradle . tasks . Kotlin Compile Ċ Ċ class ĠApi Surface Plugin Ġ: ĠPlugin < Project > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġapply ( target : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsrc Dir Ġ= ĠFile ( target . project Dir , Ġ" src ") ĊĠĠĠĠĠĠĠ Ġval Ġsurface File Ġ= ĠFile ( target . project Dir , ĠFILE _ NAME ) ĊĊĠĠĠĠĠĠĠ Ġval Ġgenerate Task Ġ= Ġtarget . tasks ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. create ( TASK _ GEN _ API _ SURFACE , ĠGenerate Api Surface Task :: class . java ) ĊĠĠĠĠĠĠĠ Ġgenerate Task . src Dir Ġ= ĠFile ( src Dir , Ġ" main ") ĊĠĠĠĠĠĠĠ Ġgenerate Task . surface File Ġ= Ġsurface File ĊĠĠĠĠĠĠĠ Ġval Ġcheck Task Ġ= Ġtarget . tasks ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. create ( TASK _ CHECK _ API _ SURFACE , ĠCheck Api Surface Task :: class . java ) ĊĠĠĠĠĠĠĠ Ġcheck Task . surface File Ġ= Ġsurface File ĊĠĠĠĠĠĠĠ Ġcheck Task . depends On ( TASK _ GEN _ API _ SURFACE ) ĊĊĠĠĠĠĠĠĠ Ġtarget . task Config < Kotlin Compile > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinal ized By ( TASK _ GEN _ API _ SURFACE ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTASK _ GEN _ API _ SURFACE Ġ= Ġ" generate Api Surface " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTASK _ CHECK _ API _ SURFACE Ġ= Ġ" check Api Surface Changes " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠFILE _ NAME Ġ= Ġ" api Surface " ĊĠĠĠ Ġ} Ċ } Ċ