| @@ 116-135 (lines=20) @@ | ||
| 113 | * |
|
| 114 | * @throws \Nnx\FormComparator\Comparator\Exception\IncorrectElementTypeException |
|
| 115 | */ |
|
| 116 | protected function validateElementType(ElementInterface $sourceElement, ElementInterface $targetElement) |
|
| 117 | { |
|
| 118 | $baseType = ElementInterface::class; |
|
| 119 | if ($sourceElement instanceof Collection) { |
|
| 120 | $baseType = Collection::class; |
|
| 121 | } elseif ($sourceElement instanceof FieldsetInterface) { |
|
| 122 | $baseType = FieldsetInterface::class; |
|
| 123 | } |
|
| 124 | ||
| 125 | if (!$targetElement instanceof $baseType) { |
|
| 126 | $targetElementName = $targetElement->getName(); |
|
| 127 | $targetElementClass = get_class($targetElement); |
|
| 128 | $errMsg = sprintf( |
|
| 129 | 'Element %s not implement %s', |
|
| 130 | is_string($targetElementName) ? sprintf('%s(%s)', $targetElementName, $targetElementClass) : $targetElementClass, |
|
| 131 | $baseType |
|
| 132 | ); |
|
| 133 | throw new Exception\IncorrectElementTypeException($errMsg); |
|
| 134 | } |
|
| 135 | } |
|
| 136 | ||
| 137 | /** |
|
| 138 | * Элемент который сравнивают |
|
| @@ 111-130 (lines=20) @@ | ||
| 108 | * |
|
| 109 | * @throws \Nnx\FormComparator\Comparator\Exception\IncorrectElementTypeException |
|
| 110 | */ |
|
| 111 | protected function validateElementType(ElementInterface $sourceElement, ElementInterface $targetElement) |
|
| 112 | { |
|
| 113 | $baseType = ElementInterface::class; |
|
| 114 | if ($sourceElement instanceof Collection) { |
|
| 115 | $baseType = Collection::class; |
|
| 116 | } elseif ($sourceElement instanceof FieldsetInterface) { |
|
| 117 | $baseType = FieldsetInterface::class; |
|
| 118 | } |
|
| 119 | ||
| 120 | if (!$targetElement instanceof $baseType) { |
|
| 121 | $targetElementName = $targetElement->getName(); |
|
| 122 | $targetElementClass = get_class($targetElement); |
|
| 123 | $errMsg = sprintf( |
|
| 124 | 'Element %s not implement %s', |
|
| 125 | is_string($targetElementName) ? sprintf('%s(%s)', $targetElementName, $targetElementClass) : $targetElementClass, |
|
| 126 | $baseType |
|
| 127 | ); |
|
| 128 | throw new Exception\IncorrectElementTypeException($errMsg); |
|
| 129 | } |
|
| 130 | } |
|
| 131 | ||
| 132 | /** |
|
| 133 | * Подготавливает список изменнные элементов для двух Fieldset'ов формы |
|