package Ġnet . mi lo sv asic . factory . component . docker Ċ Ċ import Ġnet . mi lo sv asic . factory . common . validation . Validation Ċ Ċ class ĠDocker Command Validator Ġ: ĠValidation < Docker Command Builder > Ġ{ ĊĊĠĠĠ Ġ@ Throws ( IllegalArgumentException :: class ) ĊĠĠĠ Ġoverride Ġfun Ġvalidate ( var arg Ġwhat : ĠDocker Command Builder ): ĠBoolean Ġ{ ĊĊĠĠĠĠĠĠĠ Ġwhat . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalidate ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( IllegalArgumentException :: class ) ĊĠĠĠ Ġprivate Ġfun Ġvalidate ( what : ĠDocker Command Builder ): ĠBoolean Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġwhat . getName () ĊĠĠĠĠĠĠĠ Ġval Ġimage Ġ= Ġwhat . getImage () ĊĠĠĠĠĠĠĠ Ġval Ġvolume Ġ= Ġwhat . get Volume () ĊĠĠĠĠĠĠĠ Ġval Ġcommand Ġ= Ġwhat . get Command () ĊĠĠĠĠĠĠĠ Ġval Ġrun Ġ= ĠDocker Command . RUN . obtain () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( volume . isNotEmpty () Ġ&& Ġcommand Ġ!= ĠDocker Command . RUN ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Volume Ġcan Ġbe Ġused Ġonly Ġwith Ġ'$ run ' Ġcommand ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( name . isNotEmpty () Ġ&& Ġcommand Ġ!= ĠDocker Command . RUN ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Container Ġname Ġcan Ġbe Ġused Ġonly Ġwith Ġ'$ run ' Ġcommand ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( image . isEmpty () Ġ&& Ġcommand Ġ== ĠDocker Command . RUN ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Cannot Ġ'$ run ' Ġwithout Ġimage Ġprovided ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} Ċ }