Code Duplication    Length = 10-10 lines in 3 locations

lib/Doctrine/ORM/Query/Parser.php 3 locations

@@ 3419-3428 (lines=10) @@
3416
     *
3417
     * @return \Doctrine\ORM\Query\AST\Functions\FunctionNode
3418
     */
3419
    public function FunctionsReturningNumerics()
3420
    {
3421
        $funcNameLower = strtolower($this->lexer->lookahead['value']);
3422
        $funcClass     = self::$_NUMERIC_FUNCTIONS[$funcNameLower];
3423
3424
        $function = new $funcClass($funcNameLower);
3425
        $function->parse($this);
3426
3427
        return $function;
3428
    }
3429
3430
    /**
3431
     * @return \Doctrine\ORM\Query\AST\Functions\FunctionNode
@@ 3458-3467 (lines=10) @@
3455
     *
3456
     * @return \Doctrine\ORM\Query\AST\Functions\FunctionNode
3457
     */
3458
    public function FunctionsReturningDatetime()
3459
    {
3460
        $funcNameLower = strtolower($this->lexer->lookahead['value']);
3461
        $funcClass     = self::$_DATETIME_FUNCTIONS[$funcNameLower];
3462
3463
        $function = new $funcClass($funcNameLower);
3464
        $function->parse($this);
3465
3466
        return $function;
3467
    }
3468
3469
    /**
3470
     * @return \Doctrine\ORM\Query\AST\Functions\FunctionNode
@@ 3498-3507 (lines=10) @@
3495
     *
3496
     * @return \Doctrine\ORM\Query\AST\Functions\FunctionNode
3497
     */
3498
    public function FunctionsReturningStrings()
3499
    {
3500
        $funcNameLower = strtolower($this->lexer->lookahead['value']);
3501
        $funcClass     = self::$_STRING_FUNCTIONS[$funcNameLower];
3502
3503
        $function = new $funcClass($funcNameLower);
3504
        $function->parse($this);
3505
3506
        return $function;
3507
    }
3508
3509
    /**
3510
     * @return \Doctrine\ORM\Query\AST\Functions\FunctionNode