Code Duplication    Length = 16-16 lines in 3 locations

classes/ClassGenerator.php 3 locations

@@ 152-167 (lines=16) @@
149
     * @param string $type
150
     * @return ClassGenerator
151
     */
152
    public function generateGet(string $name, string $type): ClassGenerator
153
    {
154
        $this->class
155
            ->addMethod(static::camelCase('get_' . $name))
156
            ->addComment(
157
                '@return null|' . $this->getCommentTypeHint($type)
158
            )->setReturnType($this->getTypeHint($type))
159
            ->setReturnNullable(true)
160
            ->setBody(
161
                'if (isset($this->__' . $name . '__[0])) {' . PHP_EOL .
162
                '    return $this->__' . $name . '__[0];' . PHP_EOL .
163
                '}' . PHP_EOL .
164
                'return $this->__' . $name . '__[1];'
165
            );
166
        return $this;
167
    }
168
169
    /**
170
     * @param string $name
@@ 398-413 (lines=16) @@
395
     * @param string $type
396
     * @return ClassGenerator
397
     */
398
    public function generateArrayShift(string $name, string $type): ClassGenerator
399
    {
400
        $this->class
401
            ->addMethod(static::camelCase('shift_' . $name))
402
            ->addComment(
403
                '@return null|' . $this->getCommentTypeHint($type)
404
            )->setReturnType($this->getTypeHint($type))
405
            ->setReturnNullable(true)
406
            ->setBody(
407
                'if (!isset($this->__' . $name . '__[0])) {' . PHP_EOL .
408
                '    return null;' . PHP_EOL .
409
                '}' . PHP_EOL .
410
                'return array_shift($this->__' . $name . '__[0]);'
411
            );
412
        return $this;
413
    }
414
415
    /**
416
     * @param string $name
@@ 376-391 (lines=16) @@
373
     * @param string $type
374
     * @return ClassGenerator
375
     */
376
    public function generateArrayPop(string $name, string $type): ClassGenerator
377
    {
378
        $this->class
379
            ->addMethod(static::camelCase('pop_' . $name))
380
            ->addComment(
381
                '@return null|' . $this->getCommentTypeHint($type)
382
            )->setReturnType($this->getTypeHint($type))
383
            ->setReturnNullable(true)
384
            ->setBody(
385
                'if (!isset($this->__' . $name . '__[0])) {' . PHP_EOL .
386
                '    return null;' . PHP_EOL .
387
                '}' . PHP_EOL .
388
                'return array_pop($this->__' . $name . '__[0]);'
389
            );
390
        return $this;
391
    }
392
393
    /**
394
     * @param string $name