Code Duplication    Length = 17-18 lines in 2 locations

classes/ClassGenerator.php 2 locations

@@ 254-271 (lines=18) @@
251
     * @param string $type
252
     * @return ClassGenerator
253
     */
254
    public function generateListGetAt(string $name, string $type): ClassGenerator
255
    {
256
        $this->class
257
            ->addMethod(static::camelCase('get_' . $name . '_at'))
258
            ->addComment(
259
                '@param int $index' . PHP_EOL .
260
                '@return ' . $this->getCommentTypeHint($type)
261
            )->setReturnType($this->getTypeHint($type))
262
            ->setReturnNullable(true)
263
            ->setBody(
264
                'if (isset($this->__' . $name . '__[0]) && array_key_exists($index, $this->__' . $name . '__[0])) {' .
265
                PHP_EOL . '    return $this->__' . $name . '__[0][$index];' . PHP_EOL .
266
                '}' . PHP_EOL .
267
                'return null;'
268
            )->addParameter('index')
269
            ->setTypeHint('int');
270
        return $this;
271
    }
272
273
    /**
274
     * @param string $name
@@ 382-398 (lines=17) @@
379
     * @param string $type
380
     * @return ClassGenerator
381
     */
382
    public function generateMapGetAt(string $name, string $type): ClassGenerator
383
    {
384
        $this->class
385
            ->addMethod(static::camelCase('get_' . $name . '_at'))
386
            ->addComment(
387
                '@param mixed $key' . PHP_EOL .
388
                '@return ' . $this->getCommentTypeHint($type)
389
            )->setReturnType($this->getTypeHint($type))
390
            ->setReturnNullable(true)
391
            ->setBody(
392
                'if (isset($this->__' . $name . '__[0]) && array_key_exists($key, $this->__' . $name . '__[0])) {' .
393
                PHP_EOL . '    return $this->__' . $name . '__[0][$key];' . PHP_EOL .
394
                '}' . PHP_EOL .
395
                'return null;'
396
            )->addParameter('key');
397
        return $this;
398
    }
399
400
    /**
401
     * @param string $name