Code Duplication    Length = 14-16 lines in 4 locations

src/PhpSpreadsheet/Reader/Xls/Escher.php 4 locations

@@ 200-213 (lines=14) @@
197
    /**
198
     * Read DggContainer record (Drawing Group Container).
199
     */
200
    private function readDggContainer()
201
    {
202
        $length = Xls::getInt4d($this->data, $this->pos + 4);
203
        $recordData = substr($this->data, $this->pos + 8, $length);
204
205
        // move stream pointer to next record
206
        $this->pos += 8 + $length;
207
208
        // record is a container, read contents
209
        $dggContainer = new DggContainer();
210
        $this->object->setDggContainer($dggContainer);
211
        $reader = new self($dggContainer);
212
        $reader->load($recordData);
213
    }
214
215
    /**
216
     * Read Dgg record (Drawing Group).
@@ 230-243 (lines=14) @@
227
    /**
228
     * Read BstoreContainer record (Blip Store Container).
229
     */
230
    private function readBstoreContainer()
231
    {
232
        $length = Xls::getInt4d($this->data, $this->pos + 4);
233
        $recordData = substr($this->data, $this->pos + 8, $length);
234
235
        // move stream pointer to next record
236
        $this->pos += 8 + $length;
237
238
        // record is a container, read contents
239
        $bstoreContainer = new BstoreContainer();
240
        $this->object->setBstoreContainer($bstoreContainer);
241
        $reader = new self($bstoreContainer);
242
        $reader->load($recordData);
243
    }
244
245
    /**
246
     * Read BSE record.
@@ 444-457 (lines=14) @@
441
    /**
442
     * Read DgContainer record (Drawing Container).
443
     */
444
    private function readDgContainer()
445
    {
446
        $length = Xls::getInt4d($this->data, $this->pos + 4);
447
        $recordData = substr($this->data, $this->pos + 8, $length);
448
449
        // move stream pointer to next record
450
        $this->pos += 8 + $length;
451
452
        // record is a container, read contents
453
        $dgContainer = new DgContainer();
454
        $this->object->setDgContainer($dgContainer);
455
        $reader = new self($dgContainer);
456
        $escher = $reader->load($recordData);
457
    }
458
459
    /**
460
     * Read Dg record (Drawing).
@@ 502-517 (lines=16) @@
499
    /**
500
     * Read SpContainer record (Shape Container).
501
     */
502
    private function readSpContainer()
503
    {
504
        $length = Xls::getInt4d($this->data, $this->pos + 4);
505
        $recordData = substr($this->data, $this->pos + 8, $length);
506
507
        // add spContainer to spgrContainer
508
        $spContainer = new SpContainer();
509
        $this->object->addChild($spContainer);
510
511
        // move stream pointer to next record
512
        $this->pos += 8 + $length;
513
514
        // record is a container, read contents
515
        $reader = new self($spContainer);
516
        $escher = $reader->load($recordData);
517
    }
518
519
    /**
520
     * Read Spgr record (Shape Group).