vendor/doctrine/orm/lib/Doctrine/ORM/Query/QueryException.php line 43

Open in your IDE?
  1. <?php
  2. /*
  3.  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  4.  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  5.  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  6.  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  7.  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  8.  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  9.  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  10.  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  11.  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  12.  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  13.  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  14.  *
  15.  * This software consists of voluntary contributions made by many individuals
  16.  * and is licensed under the MIT license. For more information, see
  17.  * <http://www.doctrine-project.org>.
  18.  */
  19. namespace Doctrine\ORM\Query;
  20. use Doctrine\ORM\Query\AST\PathExpression;
  21. /**
  22.  * Description of QueryException.
  23.  *
  24.  * @link    www.doctrine-project.org
  25.  * @since   2.0
  26.  * @author  Guilherme Blanco <guilhermeblanco@hotmail.com>
  27.  * @author  Jonathan Wage <jonwage@gmail.com>
  28.  * @author  Roman Borschel <roman@code-factory.org>
  29.  * @author  Benjamin Eberlei <kontakt@beberlei.de>
  30.  */
  31. class QueryException extends \Doctrine\ORM\ORMException
  32. {
  33.     /**
  34.      * @param string $dql
  35.      *
  36.      * @return QueryException
  37.      */
  38.     public static function dqlError($dql)
  39.     {
  40.         return new self($dql);
  41.     }
  42.     /**
  43.      * @param string          $message
  44.      * @param \Exception|null $previous
  45.      *
  46.      * @return QueryException
  47.      */
  48.     public static function syntaxError($message$previous null)
  49.     {
  50.         return new self('[Syntax Error] ' $message0$previous);
  51.     }
  52.     /**
  53.      * @param string          $message
  54.      * @param \Exception|null $previous
  55.      *
  56.      * @return QueryException
  57.      */
  58.     public static function semanticalError($message$previous null)
  59.     {
  60.         return new self('[Semantical Error] ' $message0$previous);
  61.     }
  62.     /**
  63.      * @return QueryException
  64.      */
  65.     public static function invalidLockMode()
  66.     {
  67.         return new self('Invalid lock mode hint provided.');
  68.     }
  69.     /**
  70.      * @param string $expected
  71.      * @param string $received
  72.      *
  73.      * @return QueryException
  74.      */
  75.     public static function invalidParameterType($expected$received)
  76.     {
  77.         return new self('Invalid parameter type, ' $received ' given, but ' $expected ' expected.');
  78.     }
  79.     /**
  80.      * @param string $pos
  81.      *
  82.      * @return QueryException
  83.      */
  84.     public static function invalidParameterPosition($pos)
  85.     {
  86.         return new self('Invalid parameter position: ' $pos);
  87.     }
  88.     /**
  89.      * @param integer $expected
  90.      * @param integer $received
  91.      *
  92.      * @return QueryException
  93.      */
  94.     public static function tooManyParameters($expected$received)
  95.     {
  96.         return new self('Too many parameters: the query defines ' $expected ' parameters and you bound ' $received);
  97.     }
  98.     /**
  99.      * @param integer $expected
  100.      * @param integer $received
  101.      *
  102.      * @return QueryException
  103.      */
  104.     public static function tooFewParameters($expected$received)
  105.     {
  106.         return new self('Too few parameters: the query defines ' $expected ' parameters but you only bound ' $received);
  107.     }
  108.     /**
  109.      * @param string $value
  110.      *
  111.      * @return QueryException
  112.      */
  113.     public static function invalidParameterFormat($value)
  114.     {
  115.         return new self('Invalid parameter format, '.$value.' given, but :<name> or ?<num> expected.');
  116.     }
  117.     /**
  118.      * @param string $key
  119.      *
  120.      * @return QueryException
  121.      */
  122.     public static function unknownParameter($key)
  123.     {
  124.         return new self("Invalid parameter: token ".$key." is not defined in the query.");
  125.     }
  126.     /**
  127.      * @return QueryException
  128.      */
  129.     public static function parameterTypeMismatch()
  130.     {
  131.         return new self("DQL Query parameter and type numbers mismatch, but have to be exactly equal.");
  132.     }
  133.     /**
  134.      * @param object $pathExpr
  135.      *
  136.      * @return QueryException
  137.      */
  138.     public static function invalidPathExpression($pathExpr)
  139.     {
  140.         return new self(
  141.             "Invalid PathExpression '" $pathExpr->identificationVariable "." $pathExpr->field "'."
  142.         );
  143.     }
  144.     /**
  145.      * @param string $literal
  146.      *
  147.      * @return QueryException
  148.      */
  149.     public static function invalidLiteral($literal)
  150.     {
  151.         return new self("Invalid literal '$literal'");
  152.     }
  153.     /**
  154.      * @param array $assoc
  155.      *
  156.      * @return QueryException
  157.      */
  158.     public static function iterateWithFetchJoinCollectionNotAllowed($assoc)
  159.     {
  160.         return new self(
  161.             "Invalid query operation: Not allowed to iterate over fetch join collections ".
  162.             "in class ".$assoc['sourceEntity']." association ".$assoc['fieldName']
  163.         );
  164.     }
  165.     /**
  166.      * @return QueryException
  167.      */
  168.     public static function partialObjectsAreDangerous()
  169.     {
  170.         return new self(
  171.             "Loading partial objects is dangerous. Fetch full objects or consider " .
  172.             "using a different fetch mode. If you really want partial objects, " .
  173.             "set the doctrine.forcePartialLoad query hint to TRUE."
  174.         );
  175.     }
  176.     /**
  177.      * @param array $assoc
  178.      *
  179.      * @return QueryException
  180.      */
  181.     public static function overwritingJoinConditionsNotYetSupported($assoc)
  182.     {
  183.         return new self(
  184.             "Unsupported query operation: It is not yet possible to overwrite the join ".
  185.             "conditions in class ".$assoc['sourceEntityName']." association ".$assoc['fieldName'].". ".
  186.             "Use WITH to append additional join conditions to the association."
  187.         );
  188.     }
  189.     /**
  190.      * @param PathExpression $pathExpr
  191.      *
  192.      * @return QueryException
  193.      */
  194.     public static function associationPathInverseSideNotSupported(PathExpression $pathExpr)
  195.     {
  196.         return new self(
  197.             'A single-valued association path expression to an inverse side is not supported in DQL queries. ' .
  198.             'Instead of "' $pathExpr->identificationVariable '.' $pathExpr->field '" use an explicit join.'
  199.         );
  200.     }
  201.     /**
  202.      * @param array $assoc
  203.      *
  204.      * @return QueryException
  205.      */
  206.     public static function iterateWithFetchJoinNotAllowed($assoc)
  207.     {
  208.         return new self(
  209.             "Iterate with fetch join in class " $assoc['sourceEntity'] .
  210.             " using association " $assoc['fieldName'] . " not allowed."
  211.         );
  212.     }
  213.     /**
  214.      * @return QueryException
  215.      */
  216.     public static function associationPathCompositeKeyNotSupported()
  217.     {
  218.         return new self(
  219.             "A single-valued association path expression to an entity with a composite primary ".
  220.             "key is not supported. Explicitly name the components of the composite primary key ".
  221.             "in the query."
  222.         );
  223.     }
  224.     /**
  225.      * @param string $className
  226.      * @param string $rootClass
  227.      *
  228.      * @return QueryException
  229.      */
  230.     public static function instanceOfUnrelatedClass($className$rootClass)
  231.     {
  232.         return new self("Cannot check if a child of '" $rootClass "' is instanceof '" $className "', " .
  233.             "inheritance hierarchy does not exists between these two classes.");
  234.     }
  235.     /**
  236.      * @param string $dqlAlias
  237.      *
  238.      * @return QueryException
  239.      */
  240.     public static function invalidQueryComponent($dqlAlias)
  241.     {
  242.         return new self(
  243.             "Invalid query component given for DQL alias '" $dqlAlias "', ".
  244.             "requires 'metadata', 'parent', 'relation', 'map', 'nestingLevel' and 'token' keys."
  245.         );
  246.     }
  247. }