| Conditions | 5 | 
| Paths | 3 | 
| Total Lines | 21 | 
| Code Lines | 13 | 
| Lines | 0 | 
| Ratio | 0 % | 
| Changes | 1 | ||
| Bugs | 0 | Features | 0 | 
| 1 | <?php  | 
            ||
| 25 | public function validateTemplate(mixed $value, Callback $rule, ValidationContext $validationContext): Result  | 
            ||
| 26 |     { | 
            ||
| 27 | /** @var self $dataSet */  | 
            ||
| 28 | $dataSet = $validationContext->getDataSet();  | 
            ||
| 29 | $result = new Result();  | 
            ||
| 30 | $templates = $dataSet->getTemplates();  | 
            ||
| 31 |         if ($templates === []) { | 
            ||
| 32 | return $result;  | 
            ||
| 33 | }  | 
            ||
| 34 |         if (!isset($templates[$value])) { | 
            ||
| 35 |             $result->addError('Invalid template selection.'); | 
            ||
| 36 |         } else { | 
            ||
| 37 | $templatePath = $templates[$value];  | 
            ||
| 38 |             foreach ($dataSet->requiredTemplates() as $template) { | 
            ||
| 39 |                 if (!is_file($dataSet->aliases->get($templatePath . '/' . $template))) { | 
            ||
| 40 |                     $result->addError("Unable to find the required code template file '$template'."); | 
            ||
| 41 | }  | 
            ||
| 42 | }  | 
            ||
| 43 | }  | 
            ||
| 44 | |||
| 45 | return $result;  | 
            ||
| 46 | }  | 
            ||
| 48 |