Code Duplication    Length = 8-10 lines in 4 locations

lib/Doctrine/ODM/MongoDB/SchemaManager.php 4 locations

@@ 300-307 (lines=8) @@
297
     * @param string $documentName
298
     * @throws \InvalidArgumentException
299
     */
300
    public function deleteDocumentIndexes($documentName)
301
    {
302
        $class = $this->dm->getClassMetadata($documentName);
303
        if ($class->isMappedSuperclass || $class->isEmbeddedDocument) {
304
            throw new \InvalidArgumentException('Cannot delete document indexes for mapped super classes or embedded documents.');
305
        }
306
        $this->dm->getDocumentCollection($documentName)->deleteIndexes();
307
    }
308
309
    /**
310
     * Create all the mapped document collections in the metadata factory.
@@ 370-379 (lines=10) @@
367
     * @param string $documentName
368
     * @throws \InvalidArgumentException
369
     */
370
    public function dropDocumentCollection($documentName)
371
    {
372
        $class = $this->dm->getClassMetadata($documentName);
373
        if ($class->isMappedSuperclass || $class->isEmbeddedDocument) {
374
            throw new \InvalidArgumentException('Cannot delete document indexes for mapped super classes or embedded documents.');
375
        }
376
        $this->dm->getDocumentDatabase($documentName)->dropCollection(
377
            $class->getCollection()
378
        );
379
    }
380
381
    /**
382
     * Drop all the mapped document databases in the metadata factory.
@@ 400-407 (lines=8) @@
397
     * @param string $documentName
398
     * @throws \InvalidArgumentException
399
     */
400
    public function dropDocumentDatabase($documentName)
401
    {
402
        $class = $this->dm->getClassMetadata($documentName);
403
        if ($class->isMappedSuperclass || $class->isEmbeddedDocument) {
404
            throw new \InvalidArgumentException('Cannot drop document database for mapped super classes or embedded documents.');
405
        }
406
        $this->dm->getDocumentDatabase($documentName)->drop();
407
    }
408
409
    /**
410
     * Create all the mapped document databases in the metadata factory.
@@ 428-435 (lines=8) @@
425
     * @param string $documentName
426
     * @throws \InvalidArgumentException
427
     */
428
    public function createDocumentDatabase($documentName)
429
    {
430
        $class = $this->dm->getClassMetadata($documentName);
431
        if ($class->isMappedSuperclass || $class->isEmbeddedDocument) {
432
            throw new \InvalidArgumentException('Cannot delete document indexes for mapped super classes or embedded documents.');
433
        }
434
        $this->dm->getDocumentDatabase($documentName)->execute("function() { return true; }");
435
    }
436
437
    /**
438
     * Determine if an index returned by MongoCollection::getIndexInfo() can be