/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 - 2 0 2 2 ĠT omas z ĠB abi uk Ċ Ġ* Ċ Ġ* Ġ Ġ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 Ġeu . autom ate everything . domain . automation . blocks Ċ Ċ import Ġeu . autom ate everything . data . automation . State Ċ import Ġeu . autom ate everything . data . blocks . Raw Json Ċ import Ġeu . autom ate everything . domain . automation .* Ċ import Ġeu . autom ate everything . domain . configurable . State Device Configurable Ċ Ċ class ĠChange State Block Factory ( private Ġval Ġstate : ĠState ) Ġ: ĠStatement Block Factory Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġcategory Ġ= ĠCommon Block Categories . This Object ĊĊĠĠĠ Ġoverride Ġval Ġtype : ĠString Ġ= Ġ" change _ state _${ state . id }" ĊĊĠĠĠ Ġoverride Ġfun Ġbuild Block (): ĠRaw Json Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠRaw Json Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġ" type ": Ġ Ġ"$ type ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" colour ": Ġ${ category . color }, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" tooltip ": Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" help Url ": Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" message 0 ": Ġ"${ state . action !!. getValue ( it )} ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" previous Statement ": Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" next Statement ": Ġnull Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtransform ( ĊĠĠĠĠĠĠĠ Ġblock : ĠBlock , ĊĠĠĠĠĠĠĠ Ġnext : ĠStatement Node ?, ĊĠĠĠĠĠĠĠ Ġcontext : ĠAutomation Context , ĊĠĠĠĠĠĠĠ Ġtransformer : ĠBlock ly Transformer ĊĠĠĠ Ġ): ĠStatement Node Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( context . this Device Ġis ĠState Device Configurable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġevaluator Ġ= Ġcontext . automation Units Cache [ context . instance . id ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( evaluator Ġis ĠState Device Automation Unit Base ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠChange State Automation Node ( state . id , Ġevaluator , Ġnext ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠMal formed Block Exception ( block . type , Ġ" should Ġpoint Ġonly Ġto Ġa Ġstate Ġdevice ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġthrow ĠMal formed Block Exception ( block . type , Ġ" it 's Ġimpossible Ġto Ġconnect Ġthis Ġblock Ġwith Ġcorrect Ġ${ State Device Configurable :: class . java }") ĊĠĠĠ Ġ} Ċ }