/** Ċ Ġ* ĠCopyright Ġ 1 & 1 ĠInternet ĠAG , Ġhttps :// github . com / 1 and 1 / Ċ Ġ* Ċ Ġ* Ġ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 Ġnet . one and one . goc d . pic od sl Ċ Ċ import Ġnet . one and one . goc d . pic od sl . dsl . G oc d Config Ċ Ċ object ĠConfig Registry Ġ: ĠHashSet < G oc d Config >() Ċ Ċ fun ĠG oc d Config . register (): ĠG oc d Config Ġ{ ĊĠĠĠ ĠConfig Registry . add ( this ) ĊĠĠĠ Ġreturn Ġthis Ċ } Ċ Ċ /** Ċ Ġ* ĠAll Ġderived Ġobjects Ġare Ġregistered Ċ Ġ* Ċ Ġ* Ġ``` Ċ Ġ* Ġobject ĠMy Pipeline Ġ: ĠRegistered G oc d Config (" my - pipeline ", Ġ{ Ċ Ġ* ĠĠĠ Ġpipelines Ġ{ Ċ Ġ* ĠĠĠĠĠ Ġ// Ġ... Ċ Ġ* ĠĠĠ Ġ} Ċ Ġ* Ġ}) Ċ Ġ* Ġ``` Ċ Ġ* Ġ@ see Ġnet . one and one . goc d . pic od sl . Generate P ipelines Kt Ċ Ġ*/ Ċ abstract Ġclass ĠRegistered G oc d Config ( init : ĠG oc d Config . () Ġ-> ĠUnit , Ġname : ĠString ? Ġ= Ġnull ) Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠG oc d Config ( name Ġ?: Ġthis . java Class . simple Name . to Hy phen Case ()). apply ( init ). finish (). register () ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠString . to Hy phen Case () Ġ= Ġthis . replace (" (? <= .) ([ A - Z ]) ". to Regex (), Ġ"- $ 1 "). toLowerCase ()