| @@ 7-28 (lines=22) @@ | ||
| 4 | use Xiag\Rql\Parser\Token; |
|
| 5 | use Xiag\Rql\Parser\TypeCasterInterface; |
|
| 6 | ||
| 7 | class FloatTypeCaster implements TypeCasterInterface |
|
| 8 | { |
|
| 9 | /** |
|
| 10 | * @inheritdoc |
|
| 11 | */ |
|
| 12 | public function typeCast(Token $token) |
|
| 13 | { |
|
| 14 | if ($token->test(Token::T_NULL)) { |
|
| 15 | return 0.; |
|
| 16 | } elseif ($token->test(Token::T_TRUE)) { |
|
| 17 | return 1.; |
|
| 18 | } elseif ($token->test(Token::T_FALSE)) { |
|
| 19 | return 0.; |
|
| 20 | } elseif ($token->test(Token::T_EMPTY)) { |
|
| 21 | return 0.; |
|
| 22 | } elseif ($token->test(Token::T_DATE)) { |
|
| 23 | return (float)(new \DateTime($token->getValue()))->format('YmdHis'); |
|
| 24 | } else { |
|
| 25 | return (float)$token->getValue(); |
|
| 26 | } |
|
| 27 | } |
|
| 28 | } |
|
| 29 | ||
| @@ 7-28 (lines=22) @@ | ||
| 4 | use Xiag\Rql\Parser\Token; |
|
| 5 | use Xiag\Rql\Parser\TypeCasterInterface; |
|
| 6 | ||
| 7 | class IntegerTypeCaster implements TypeCasterInterface |
|
| 8 | { |
|
| 9 | /** |
|
| 10 | * @inheritdoc |
|
| 11 | */ |
|
| 12 | public function typeCast(Token $token) |
|
| 13 | { |
|
| 14 | if ($token->test(Token::T_NULL)) { |
|
| 15 | return 0; |
|
| 16 | } elseif ($token->test(Token::T_TRUE)) { |
|
| 17 | return 1; |
|
| 18 | } elseif ($token->test(Token::T_FALSE)) { |
|
| 19 | return 0; |
|
| 20 | } elseif ($token->test(Token::T_EMPTY)) { |
|
| 21 | return 0; |
|
| 22 | } elseif ($token->test(Token::T_DATE)) { |
|
| 23 | return (int)(new \DateTime($token->getValue()))->format('YmdHis'); |
|
| 24 | } else { |
|
| 25 | return (int)$token->getValue(); |
|
| 26 | } |
|
| 27 | } |
|
| 28 | } |
|
| 29 | ||
| @@ 7-28 (lines=22) @@ | ||
| 4 | use Xiag\Rql\Parser\Token; |
|
| 5 | use Xiag\Rql\Parser\TypeCasterInterface; |
|
| 6 | ||
| 7 | class StringTypeCaster implements TypeCasterInterface |
|
| 8 | { |
|
| 9 | /** |
|
| 10 | * @inheritdoc |
|
| 11 | */ |
|
| 12 | public function typeCast(Token $token) |
|
| 13 | { |
|
| 14 | if ($token->test(Token::T_NULL)) { |
|
| 15 | return 'null'; |
|
| 16 | } elseif ($token->test(Token::T_TRUE)) { |
|
| 17 | return 'true'; |
|
| 18 | } elseif ($token->test(Token::T_FALSE)) { |
|
| 19 | return 'false'; |
|
| 20 | } elseif ($token->test(Token::T_EMPTY)) { |
|
| 21 | return ''; |
|
| 22 | } elseif ($token->test(Token::T_GLOB)) { |
|
| 23 | return rawurldecode($token->getValue()); |
|
| 24 | } else { |
|
| 25 | return $token->getValue(); |
|
| 26 | } |
|
| 27 | } |
|
| 28 | } |
|
| 29 | ||