Code Duplication    Length = 15-18 lines in 2 locations

src/Charcoal/Property/ModelStructureProperty.php 2 locations

@@ 531-548 (lines=18) @@
528
     * @return ArrayAccess|DescribableInterface|mixed
529
     * @throws UnexpectedValueException If the structure is invalid.
530
     */
531
    public function toModel($model = null)
532
    {
533
        if ($model) {
534
            $structure = $this->structureModelFactory()->create($model);
535
536
            if (!$structure instanceof ArrayAccess) {
537
                throw new UnexpectedValueException(sprintf(
538
                    'Structure [%s] must implement [%s]',
539
                    $model,
540
                    ArrayAccess::class
541
                ));
542
            }
543
544
            return $structure;
545
        }
546
547
        return $this->structureProto();
548
    }
549
550
    /**
551
     * PropertyInterface::save().
@@ 673-687 (lines=15) @@
670
     * @throws UnexpectedValueException If the structure is invalid.
671
     * @return ArrayAccess
672
     */
673
    private function createStructureModel()
674
    {
675
        $structClass = $this->getStructureModelClass();
676
        $structure   = $this->structureModelFactory()->create($structClass);
677
678
        if (!$structure instanceof ArrayAccess) {
679
            throw new UnexpectedValueException(sprintf(
680
                'Structure [%s] must implement [%s]',
681
                $structClass,
682
                ArrayAccess::class
683
            ));
684
        }
685
686
        return $structure;
687
    }
688
689
    /**
690
     * Create a data-model structure.