Code Duplication    Length = 3-4 lines in 3 locations

src/Graviton/DocumentBundle/DependencyInjection/Compiler/Utils/DocumentMap.php 3 locations

@@ 494-496 (lines=3) @@
491
    ) {
492
        $result = [];
493
        foreach ($document->getFields() as $field) {
494
            if ($this->getFlatFieldCheckCallback($field, $callback)) {
495
                $result[$documentPrefix . $field->getFieldName()] = $exposedPrefix . $field->getExposedName();
496
            }
497
498
            if ($field instanceof ArrayField) {
499
                if ($this->getFlatFieldCheckCallback($field, $callback)) {
@@ 499-502 (lines=4) @@
496
            }
497
498
            if ($field instanceof ArrayField) {
499
                if ($this->getFlatFieldCheckCallback($field, $callback)) {
500
                    $result[$documentPrefix . $field->getFieldName() . '.0'] =
501
                        $exposedPrefix . $field->getExposedName() . '.0';
502
                }
503
            } elseif ($field instanceof EmbedOne) {
504
                $result = array_merge(
505
                    $result,
@@ 514-517 (lines=4) @@
511
                    )
512
                );
513
            } elseif ($field instanceof EmbedMany) {
514
                if ($this->getFlatFieldCheckCallback($field, $callback)) {
515
                    $result[$documentPrefix . $field->getFieldName() . '.0'] =
516
                        $exposedPrefix . $field->getExposedName() . '.0';
517
                }
518
                $result = array_merge(
519
                    $result,
520
                    $this->getFieldNamesFlat(