/* Ċ Ġ* Ġ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 . configurable Ċ Ċ import Ġeu . autom ate everything . data . fields . FieldType Ċ import Ġeu . autom ate everything . data . fields . Port Reference Ċ import Ġeu . autom ate everything . data . fields . Instance Reference Ċ import Ġeu . autom ate everything . data . fields . Port Reference Type Ċ import Ġeu . autom ate everything . data . fields . Reference Ċ import Ġeu . autom ate everything . data . localization . Resource Ċ import Ġeu . autom ate everything . domain . hardware .* Ċ Ċ open Ġclass ĠReference Field < R Ġ: ĠReference >( type : ĠFieldType , Ġname : ĠString , Ġhint : ĠResource , Ġref : ĠR , Ġvar arg Ġvalidators : ĠValidator < String >) Ġ: ĊĠĠĠ ĠField Definition < String >( type , Ġname , Ġhint , Ġ 0 , Ġ"", ĊĠĠĠĠĠĠĠ ĠString :: class . java , ĠString FieldBuilder (), Ġref , Ġnull , Ġ* validators ) Ċ Ċ open Ġclass ĠPort Reference Field ( name : ĠString , Ġhint : ĠResource , Ġref : ĠPort Reference , Ġvar arg Ġvalidators : ĠValidator < String >) Ġ: ĊĠĠĠ ĠReference Field < Port Reference >( FieldType . Port Reference , Ġname , Ġhint , Ġref , Ġ* validators ) Ċ Ċ open Ġclass ĠInstance Reference Field ( name : ĠString , Ġhint : ĠResource , Ġref : ĠInstance Reference , Ġvar arg Ġvalidators : ĠValidator < String >) Ġ: ĊĠĠĠ ĠReference Field < Instance Reference >( FieldType . Instance Reference , Ġname , Ġhint , Ġref , Ġ* validators ) Ċ Ċ class ĠW att age Input Port Field ( name : ĠString , Ġhint : ĠResource , Ġvar arg Ġvalidators : ĠValidator < String >) Ġ: ĊĠĠĠ ĠPort Reference Field ( name , Ġhint , Ġ ĠPort Reference ( W att age :: class . java , ĠPort Reference Type . Input ), Ġ* validators ) Ċ Ċ class ĠBinary Input Port Field ( name : ĠString , Ġhint : ĠResource , Ġvar arg Ġvalidators : ĠValidator < String >) Ġ: ĊĠĠĠ ĠPort Reference Field ( name , Ġhint , Ġ ĠPort Reference ( Binary Input :: class . java , ĠPort Reference Type . Input ), Ġ* validators ) Ċ Ċ class ĠRelay Output Port Field ( name : ĠString , Ġhint : ĠResource , Ġvar arg Ġvalidators : ĠValidator < String >) Ġ: ĊĠĠĠ ĠPort Reference Field ( name , Ġhint , ĠPort Reference ( Relay :: class . java , ĠPort Reference Type . Output ), Ġ* validators ) Ċ Ċ class ĠPower Level Output Port Field ( name : ĠString , Ġhint : ĠResource , Ġvar arg Ġvalidators : ĠValidator < String >) Ġ: ĊĠĠĠ ĠPort Reference Field ( name , Ġhint , ĠPort Reference ( Power Level :: class . java , ĠPort Reference Type . Output ), Ġ* validators ) Ċ Ċ class ĠTemperature Input Port Field ( name : ĠString , Ġhint : ĠResource , Ġvar arg Ġvalidators : ĠValidator < String >) Ġ: ĊĠĠĠ ĠPort Reference Field ( name , Ġhint , ĠPort Reference ( Temperature :: class . java , ĠPort Reference Type . Input ), Ġ* validators ) Ċ Ċ class ĠHum idity Input Port Field ( name : ĠString , Ġhint : ĠResource , Ġvar arg Ġvalidators : ĠValidator < String >) Ġ: ĊĠĠĠ ĠPort Reference Field ( name , Ġhint , ĠPort Reference ( Hum idity :: class . java , ĠPort Reference Type . Input ), Ġ* validators ) Ċ