package Ġcom . w ab rad sh aw . cl ap trap . generation . json čĊč Ċ import Ġcom . w ab rad sh aw . cl ap trap . generation .* č Ċ import Ġjava . util . function . Supplier čĊč Ċ /** čĊ Ġ* ĠA Ġbasic ĠD TO Ġclass Ġto Ġmake Ġit Ġeasier Ġto Ġload ĠTemplates Ġthrough ĠJSON . ĠComp licated Ġby Ġneeding Ġdifferent Ġclasses Ġfor čĊ Ġ*/ č Ċ abstract Ġclass ĠTemplate Mapping DTO < T Ġ: ĠTemplate >( private Ġval Ġid : ĠString , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġscript : ĠString , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġconstraints : ĠList < Constraint DTO >) Ġ{ čĊčĊĠĠĠ Ġabstract Ġfun Ġsupply ( id : ĠString , Ġconstraints : ĠList < Template Constraint >, Ġscript : ĠString ): ĠT čĊčĊĠĠĠ Ġfun Ġto Template (): ĠT Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġsupply ( id , Ġconstraints . map Ġ{ Ġit . to Constraint ()}, Ġscript ) čĊĠĠĠ Ġ} č Ċ } čĊč Ċ class ĠSetup Template Mapping DTO ( private Ġval Ġid : ĠString , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġscript : ĠString , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġconstraints : ĠList < Constraint DTO >) čĊĠĠĠ Ġ: ĠTemplate Mapping DTO < Setup Template >( id , Ġscript , Ġconstraints ) Ġ{ čĊčĊĠĠĠ Ġoverride Ġfun Ġsupply ( id : ĠString , Ġconstraints : ĠList < Template Constraint >, Ġscript : ĠString ): ĠSetup Template Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn ĠSetup Template ( id , Ġconstraints , Ġscript ); čĊĠĠĠ Ġ} č Ċ } čĊč Ċ class ĠP unch line Template Mapping DTO ( private Ġval Ġid : ĠString , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġscript : ĠString , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġconstraints : ĠList < Constraint DTO >) čĊĠĠĠ Ġ: ĠTemplate Mapping DTO < P unch line Template >( id , Ġscript , Ġconstraints ) Ġ{ čĊčĊĠĠĠ Ġoverride Ġfun Ġsupply ( id : ĠString , Ġconstraints : ĠList < Template Constraint >, Ġscript : ĠString ): ĠP unch line Template Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn ĠP unch line Template ( id , Ġconstraints , Ġscript ); čĊĠĠĠ Ġ} č Ċ } čĊč Ċ class ĠConstraint DTO ( private Ġval Ġtype : ĠTemplate Constraint Type , Ġprivate Ġval Ġarg : ĠString ){ čĊĠĠĠ Ġfun Ġto Constraint (): ĠTemplate Constraint Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn ĠTemplate Constraint ( type , Ġarg ) čĊĠĠĠ Ġ} č Ċ }