2008-07-11 14:48:04 +04:00
< ? php
2008-08-24 23:27:24 +04:00
/*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* " AS IS " AND ANY EXPRESS OR IMPLIED WARRANTIES , INCLUDING , BUT NOT
* LIMITED TO , THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED . IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT , INDIRECT , INCIDENTAL ,
* SPECIAL , EXEMPLARY , OR CONSEQUENTIAL DAMAGES ( INCLUDING , BUT NOT
* LIMITED TO , PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES ; LOSS OF USE ,
* DATA , OR PROFITS ; OR BUSINESS INTERRUPTION ) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY , WHETHER IN CONTRACT , STRICT LIABILITY , OR TORT
* ( INCLUDING NEGLIGENCE OR OTHERWISE ) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE , EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE .
*
* This software consists of voluntary contributions made by many individuals
* and is licensed under the LGPL . For more information , see
* < http :// www . phpdoctrine . org >.
*/
2009-02-07 20:02:13 +03:00
namespace Doctrine\ORM\Mapping ;
2008-07-11 14:48:04 +04:00
/**
* A MappingException indicates that something is wrong with the mapping setup .
*
* @ since 2.0
*/
2010-01-22 01:26:36 +03:00
class MappingException extends \Doctrine\ORM\ORMException
2008-07-11 14:48:04 +04:00
{
2010-04-10 19:35:18 +04:00
public static function pathRequired ()
{
return new self ( " Specifying the paths to your entities is required " .
" in the AnnotationDriver to retrieve all class names. " );
}
2008-07-11 14:48:04 +04:00
public static function identifierRequired ( $entityName )
{
2008-08-16 23:40:59 +04:00
return new self ( " No identifier/primary key specified for Entity ' $entityName '. "
. " Every Entity must have an identifier/primary key. " );
2008-07-11 14:48:04 +04:00
}
2010-02-23 17:02:31 +03:00
2010-02-26 00:16:05 +03:00
public static function invalidInheritanceType ( $entityName , $type )
2008-07-21 00:13:24 +04:00
{
2010-02-26 00:16:05 +03:00
return new self ( " The inheritance type ' $type ' specified for ' $entityName ' does not exist. " );
2008-07-21 00:13:24 +04:00
}
2010-02-23 17:02:31 +03:00
2008-07-21 00:13:24 +04:00
public static function generatorNotAllowedWithCompositeId ()
{
return new self ( " Id generators can't be used with a composite id. " );
}
2010-02-23 17:02:31 +03:00
2011-01-23 16:20:15 +03:00
public static function missingFieldName ( $entity )
2008-08-16 23:40:59 +04:00
{
2011-01-23 16:20:15 +03:00
return new self ( " The field or association mapping misses the 'fieldName' attribute in entity ' $entity '. " );
2008-08-16 23:40:59 +04:00
}
2010-02-23 17:02:31 +03:00
2008-08-16 23:40:59 +04:00
public static function missingTargetEntity ( $fieldName )
{
return new self ( " The association mapping ' $fieldName ' misses the 'targetEntity' attribute. " );
}
2010-02-23 17:02:31 +03:00
2008-08-16 23:40:59 +04:00
public static function missingSourceEntity ( $fieldName )
{
return new self ( " The association mapping ' $fieldName ' misses the 'sourceEntity' attribute. " );
}
2010-02-23 17:02:31 +03:00
2010-02-26 00:36:48 +03:00
public static function mappingFileNotFound ( $entityName , $fileName )
2010-01-28 15:46:12 +03:00
{
2010-02-26 00:36:48 +03:00
return new self ( " No mapping file found named ' $fileName ' for class ' $entityName '. " );
2010-01-28 15:46:12 +03:00
}
2010-02-23 17:02:31 +03:00
2010-12-22 02:17:50 +03:00
public static function mappingNotFound ( $className , $fieldName )
2008-08-16 23:40:59 +04:00
{
2010-12-22 02:17:50 +03:00
return new self ( " No mapping found for field ' $fieldName ' on class ' $className '. " );
2008-08-16 23:40:59 +04:00
}
2010-02-23 17:02:31 +03:00
2008-08-22 13:37:03 +04:00
public static function oneToManyRequiresMappedBy ( $fieldName )
{
return new self ( " OneToMany mapping on field ' $fieldName ' requires the 'mappedBy' attribute. " );
}
2010-02-23 17:02:31 +03:00
2008-08-24 23:27:24 +04:00
public static function joinTableRequired ( $fieldName )
{
return new self ( " The mapping of field ' $fieldName ' requires an the 'joinTable' attribute. " );
}
2010-02-23 17:02:31 +03:00
2010-01-14 18:48:42 +03:00
/**
* Called if a required option was not found but is required
2010-02-23 17:02:31 +03:00
*
2010-01-14 18:48:42 +03:00
* @ param string $field which field cannot be processed ?
* @ param string $expectedOption which option is required
2010-02-23 17:02:31 +03:00
* @ param string $hint Can optionally be used to supply a tip for common mistakes ,
2010-01-14 18:48:42 +03:00
* e . g . " Did you think of the plural s? "
2010-02-23 17:02:31 +03:00
* @ return MappingException
2010-01-14 18:48:42 +03:00
*/
2010-02-23 17:02:31 +03:00
static function missingRequiredOption ( $field , $expectedOption , $hint = '' )
2010-01-14 18:48:42 +03:00
{
$message = " The mapping of field ' { $field } ' is invalid: The option ' { $expectedOption } ' is required. " ;
if ( ! empty ( $hint )) {
$message .= ' (Hint: ' . $hint . ')' ;
}
return new self ( $message );
}
2010-02-23 17:02:31 +03:00
2008-08-24 23:27:24 +04:00
/**
* Generic exception for invalid mappings .
*
* @ param string $fieldName
*/
public static function invalidMapping ( $fieldName )
{
return new self ( " The mapping of field ' $fieldName ' is invalid. " );
}
2010-02-23 17:02:31 +03:00
2010-01-21 22:52:17 +03:00
/**
* Exception for reflection exceptions - adds the entity name ,
* because there might be long classnames that will be shortened
* within the stacktrace
2010-02-23 17:02:31 +03:00
*
2010-01-21 22:52:17 +03:00
* @ param string $entity The entity ' s name
* @ param \ReflectionException $previousException
*/
2010-01-22 01:26:36 +03:00
public static function reflectionFailure ( $entity , \ReflectionException $previousException )
{
return new self ( 'An error occurred in ' . $entity , 0 , $previousException );
2010-01-21 22:52:17 +03:00
}
2010-02-23 17:02:31 +03:00
2010-01-30 00:24:29 +03:00
public static function joinColumnMustPointToMappedField ( $className , $joinColumn )
{
return new self ( 'The column ' . $joinColumn . ' must be mapped to a field in class '
. $className . ' since it is referenced by a join column of another class.' );
}
2010-02-03 00:17:00 +03:00
public static function classIsNotAValidEntityOrMappedSuperClass ( $className )
{
return new self ( 'Class ' . $className . ' is not a valid entity or mapped super class.' );
}
public static function propertyTypeIsRequired ( $className , $propertyName )
{
return new self ( " The attribute 'type' is required for the column description of property " . $className . " :: \$ " . $propertyName . " . " );
}
public static function tableIdGeneratorNotImplemented ( $className )
{
return new self ( " TableIdGenerator is not yet implemented for use with class " . $className );
}
/**
*
* @ param string $entity The entity ' s name
* @ param string $fieldName The name of the field that was already declared
*/
public static function duplicateFieldMapping ( $entity , $fieldName ) {
return new self ( 'Property "' . $fieldName . '" in "' . $entity . '" was already declared, but it must be declared only once' );
}
2010-02-03 00:46:39 +03:00
public static function duplicateAssociationMapping ( $entity , $fieldName ) {
return new self ( 'Property "' . $fieldName . '" in "' . $entity . '" was already declared, but it must be declared only once' );
}
2010-02-03 00:17:00 +03:00
public static function singleIdNotAllowedOnCompositePrimaryKey ( $entity ) {
return new self ( 'Single id is not allowed on composite primary key in entity ' . $entity );
}
public static function unsupportedOptimisticLockingType ( $entity , $fieldName , $unsupportedType ) {
return new self ( 'Locking type "' . $unsupportedType . '" (specified in "' . $entity . '", field "' . $fieldName . '") '
. 'is not supported by Doctrine.'
);
}
2010-02-23 17:02:31 +03:00
2010-09-15 23:14:15 +04:00
public static function fileMappingDriversRequireConfiguredDirectoryPath ( $path = null )
2010-01-31 00:11:13 +03:00
{
2010-09-15 23:14:15 +04:00
if ( ! empty ( $path )) {
$path = '[' . $path . ']' ;
}
return new self (
'File mapping drivers must have a valid directory path, ' .
'however the given path ' . $path . ' seems to be incorrect!'
);
2010-01-31 00:11:13 +03:00
}
2010-02-23 17:02:31 +03:00
/**
* Throws an exception that indicates that a class used in a discriminator map does not exist .
* An example would be an outdated ( maybe renamed ) classname .
*
* @ param string $className The class that could not be found
* @ param string $owningClass The class that declares the discriminator map .
* @ return self
*/
2010-03-03 04:38:21 +03:00
public static function invalidClassInDiscriminatorMap ( $className , $owningClass ) {
2010-02-23 17:02:31 +03:00
return new self (
" Entity class ' $className ' used in the discriminator map of class ' $owningClass ' " .
" does not exist. "
);
}
2010-03-20 22:19:12 +03:00
2010-08-08 14:29:14 +04:00
public static function missingDiscriminatorMap ( $className )
{
return new self ( " Entity class ' $className ' is using inheritance but no discriminator map was defined. " );
}
public static function missingDiscriminatorColumn ( $className )
{
return new self ( " Entity class ' $className ' is using inheritance but no discriminator column was defined. " );
}
2010-11-11 23:13:03 +03:00
public static function invalidDiscriminatorColumnType ( $className , $type )
{
return new self ( " Discriminator column type on entity class ' $className ' is not allowed to be ' $type '. 'string' or 'integer' type variables are suggested! " );
}
2010-11-11 23:21:17 +03:00
public static function cannotVersionIdField ( $className , $fieldName )
{
return new self ( " Setting Id field ' $fieldName ' as versionale in entity class ' $className ' is not supported. " );
}
2010-03-20 22:19:12 +03:00
/**
* @ param string $className
* @ param string $columnName
* @ return self
*/
public static function duplicateColumnName ( $className , $columnName )
{
return new self ( " Duplicate definition of column ' " . $columnName . " ' on entity ' " . $className . " ' in a field or discriminator column mapping. " );
}
2010-11-11 23:13:03 +03:00
2010-12-28 13:59:51 +03:00
public static function illegalToManyAssocationOnMappedSuperclass ( $className , $field )
{
2010-12-31 16:39:01 +03:00
return new self ( " It is illegal to put an inverse side one-to-many or many-to-many association on mapped superclass ' " . $className . " # " . $field . " '. " );
2010-12-28 13:59:51 +03:00
}
2010-12-29 03:02:21 +03:00
/**
* @ param string $className
* @ param string $targetEntity
* @ param string $targetField
* @ return self
*/
public static function cannotMapCompositePrimaryKeyEntitiesAsForeignId ( $className , $targetEntity , $targetField )
{
return new self ( " It is not possible to map entity ' " . $className . " ' with a composite primary key " .
" as part of the primary key of another entity ' " . $targetEntity . " # " . $targetField . " '. " );
}
2011-01-01 20:17:19 +03:00
public static function noSingleAssociationJoinColumnFound ( $className , $field )
{
return new self ( " ' $className # $field ' is not an association with a single join column. " );
}
public static function noFieldNameFoundForColumn ( $className , $column )
{
return new self ( " Cannot find a field on ' $className ' that is mapped to column ' $column '. Either the " .
" field does not exist or an association exists but it has multiple join columns. " );
}
public static function illegalOrphanRemovalOnIdentifierAssociation ( $className , $field )
{
return new self ( " The orphan removal option is not allowed on an association that is " .
" part of the identifier in ' $className # $field '. " );
}
public static function illegalInverseIdentifierAssocation ( $className , $field )
{
return new self ( " An inverse association is not allowed to be identifier in ' $className # $field '. " );
}
public static function illegalToManyIdentifierAssoaction ( $className , $field )
{
return new self ( " Many-to-many or one-to-many associations are not allowed to be identifier in ' $className # $field '. " );
}
2011-03-04 00:51:53 +03:00
public static function noInheritanceOnMappedSuperClass ( $className )
{
return new self ( " Its not supported to define inheritance information on a mapped superclass ' " . $className . " '. " );
}
2009-02-20 08:46:20 +03:00
}