Code Duplication    Length = 15-15 lines in 3 locations

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

@@ 343-357 (lines=15) @@
340
     * @param \DOMElement $mapping Doctrine XML mapping
341
     * @return array
342
     */
343
    private function getDoctrineFields(\DOMElement $mapping)
344
    {
345
        $xpath = new \DOMXPath($mapping->ownerDocument);
346
        $xpath->registerNamespace('doctrine', 'http://doctrine-project.org/schemas/odm/doctrine-mongo-mapping');
347
348
        return array_map(
349
            function (\DOMElement $element) {
350
                return [
351
                    'name' => $element->getAttribute('fieldName'),
352
                    'type' => $element->getAttribute('type'),
353
                ];
354
            },
355
            iterator_to_array($xpath->query('doctrine:field', $mapping))
356
        );
357
    }
358
359
    /**
360
     * Get doctrine document embed-one fields
@@ 365-379 (lines=15) @@
362
     * @param \DOMElement $mapping Doctrine XML mapping
363
     * @return array
364
     */
365
    private function getDoctrineEmbedOneFields(\DOMElement $mapping)
366
    {
367
        $xpath = new \DOMXPath($mapping->ownerDocument);
368
        $xpath->registerNamespace('doctrine', 'http://doctrine-project.org/schemas/odm/doctrine-mongo-mapping');
369
370
        return array_map(
371
            function (\DOMElement $element) {
372
                return [
373
                    'name' => $element->getAttribute('field'),
374
                    'type' => $element->getAttribute('target-document'),
375
                ];
376
            },
377
            iterator_to_array($xpath->query('*[self::doctrine:embed-one or self::doctrine:reference-one]', $mapping))
378
        );
379
    }
380
381
    /**
382
     * Get doctrine document embed-many fields
@@ 387-401 (lines=15) @@
384
     * @param \DOMElement $mapping Doctrine XML mapping
385
     * @return array
386
     */
387
    private function getDoctrineEmbedManyFields(\DOMElement $mapping)
388
    {
389
        $xpath = new \DOMXPath($mapping->ownerDocument);
390
        $xpath->registerNamespace('doctrine', 'http://doctrine-project.org/schemas/odm/doctrine-mongo-mapping');
391
392
        return array_map(
393
            function (\DOMElement $element) {
394
                return [
395
                    'name' => $element->getAttribute('field'),
396
                    'type' => $element->getAttribute('target-document'),
397
                ];
398
            },
399
            iterator_to_array($xpath->query('*[self::doctrine:embed-many or self::doctrine:reference-many]', $mapping))
400
        );
401
    }
402
}
403