/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠV lad im ir ĠS it nik ov Ġ< sit nik ov . vl ad im ir @ gmail . com > Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . github . aut ost yle . gradle Ċ Ċ import Ġcom . github . aut ost yle . Formatter Step Ċ import Ġcom . github . aut ost yle . extra . java . Ec lipse J dt Formatter Step Ċ import Ġcom . github . aut ost yle . gradle . ext . as Provision er Ċ import Ġcom . github . aut ost yle . gradle . ext . conv Ċ import Ġcom . github . aut ost yle . java . Google Java Format Step Ċ import Ġcom . github . aut ost yle . java . Import Order Step Ċ import Ġcom . github . aut ost yle . java . Remove Unused Imports Step Ċ import Ġorg . gradle . api . Action Ċ import Ġorg . gradle . api . Gradle Exception Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . plugins . Java Plugin Convention Ċ import Ġjavax . inject . Inject Ċ Ċ open Ġclass ĠJava Extension Ġ@ Inject Ġconstructor ( name : ĠString , Ġroot : ĠAut ost yle Extension ) Ġ: ĊĠĠĠ ĠBase Format Extension ( name , Ġroot ) Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġtarget . conv ( root . providers . provider Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjava Plugin Ġ= Ġproject . convention . find Plugin ( Java Plugin Convention :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠGradle Exception (" You Ġmust Ġapply Ġthe Ġjava Ġplugin Ġbefore Ġthe ĠAut ost yle Ġplugin Ġif Ġyou Ġare Ġusing Ġthe Ġjava Ġextension .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjava Plugin . source Sets . map Ġ{ Ġit . all Java Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġimport Order ( var arg Ġimport Order : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Step ( Import Order Step . for Java (). createFrom (* import Order )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠRemoves Ġany Ġunused Ġimports . Ġ Ġ*/ ĊĠĠĠ Ġfun Ġremove Unused Imports () Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Step ( Remove Unused Imports Step . create ( project . as Provision er ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġgoogle Java Format ( action : ĠAction < Google Java Format Config >) Ġ{ ĊĠĠĠĠĠĠĠ Ġgoogle Java Format ( Google Java Format Step . default Version (), Ġaction ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUses Ġthe Ġgiven Ġversion Ġof Ġ[ google - java - format ]( https :// github . com / google / google - java - format ) Ġto Ġformat Ġsource Ġcode . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠLimited Ġto Ġpublished Ġversions . Ġ ĠSee Ġ[ issue Ġ# 3 3 ]( https :// github . com / diff plug / spot less / issues / 3 3 # issuecomment - 2 5 2 3 1 5 0 9 5 ) ĊĠĠĠĠ Ġ* Ġfor Ġan Ġworkaround Ġfor Ġusing Ġsnapshot Ġversions . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ/** ĠUses Ġthe Ġ[ google - java - format ]( https :// github . com / google / google - java - format ) Ġjar Ġto Ġformat Ġsource Ġcode . Ġ Ġ*/ ĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġgoogle Java Format ( ĊĠĠĠĠĠĠĠ Ġversion : ĠString Ġ= ĠGoogle Java Format Step . default Version (), ĊĠĠĠĠĠĠĠ Ġaction : ĠAction < Google Java Format Config >? Ġ= Ġnull ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠGoogle Java Format Config ( version , Ġproject ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ?. execute ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Step ( it . create Step ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠGoogle Java Format Config Ġinternal Ġconstructor ( val Ġversion : ĠString , Ġval Ġproject : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġstyle : ĠString Ġ= ĠGoogle Java Format Step . default Style () ĊĊĠĠĠĠĠĠĠ Ġfun Ġstyle ( style : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . style Ġ= Ġstyle ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġao sp () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle (" AO SP ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġcreate Step (): ĠFormatter Step Ġ= ĠGoogle Java Format Step . create ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġversion , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyle , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . as Provision er () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġec lipse ( action : ĠAction < Ec lipse Config >) Ġ= ĊĠĠĠĠĠĠĠ Ġec lipse ( Ec lipse J dt Formatter Step . default Version (), Ġaction ) ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġec lipse ( ĊĠĠĠĠĠĠĠ Ġversion : ĠString Ġ= ĠEclipse J dt Formatter Step . default Version (), ĊĠĠĠĠĠĠĠ Ġaction : ĠAction < Ec lipse Config >? Ġ= Ġnull ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠEclipse Config ( version , Ġroot . project ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction ?. execute ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Step ( it . create Step ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠEclipse Config Ġinternal Ġconstructor ( version : ĠString , Ġproject : ĠProject ) Ġ: ĊĠĠĠĠĠĠĠ ĠEclipse Based Config ( version , Ġproject , Ġ{ ĠEclipse J dt Formatter Step . create Builder ( it ) Ġ}) Ċ } Ċ