Author: romanb Date: 2008-09-12 10:26:43 +0100 (Fri, 12 Sep 2008) New Revision: 4915
Removed: trunk/lib/Doctrine/Association.php trunk/lib/Doctrine/Association/ Modified: trunk/lib/Doctrine/ClassMetadata.php trunk/lib/Doctrine/Collection.php trunk/tests/Orm/Associations/OneToOneMappingTest.php Log: Moved association mappings. Deleted: trunk/lib/Doctrine/Association.php =================================================================== --- trunk/lib/Doctrine/Association.php 2008-09-12 09:19:25 UTC (rev 4914) +++ trunk/lib/Doctrine/Association.php 2008-09-12 09:26:43 UTC (rev 4915) @@ -1,460 +0,0 @@ -<?php -/* - * $Id$ - * - * 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>. - */ - -#namespace Doctrine::ORM::Mapping; - -/** - * Base class for association mappings. - * - * @author Roman Borschel <[EMAIL PROTECTED]> - * @since 2.0 - * @todo Rename to AssociationMapping. - */ -class Doctrine_Association implements Serializable -{ - const FETCH_MANUAL = 1; - const FETCH_LAZY = 2; - const FETCH_EAGER = 3; - - /** - * Cascade types enumeration. - * - * @var array - */ - protected static $_cascadeTypes = array( - 'all', - 'none', - 'save', - 'delete', - 'refresh' - ); - - protected $_cascades = array(); - protected $_isCascadeDelete; - protected $_isCascadeSave; - protected $_isCascadeRefresh; - - protected $_customAccessor; - protected $_customMutator; - - /** - * The fetch mode used for the association. - * - * @var integer - */ - protected $_fetchMode = self::FETCH_MANUAL; - - /** - * Flag that indicates whether the class that defines this mapping is - * the owning side of the association. - * - * @var boolean - */ - protected $_isOwningSide = true; - - /** - * Whether the association is optional (0..X) or not (1..X). - * By default all associations are optional. - * - * @var boolean - */ - protected $_isOptional = true; - - /** - * The name of the source Entity (the Entity that defines this mapping). - * - * @var string - */ - protected $_sourceEntityName; - - /** - * The name of the target Entity (the Enitity that is the target of the - * association). - * - * @var string - */ - protected $_targetEntityName; - - /** - * Identifies the field on the source class (the class this AssociationMapping - * belongs to) that represents the association and stores the reference to the - * other entity/entities. - * - * @var string - */ - protected $_sourceFieldName; - - /** - * Identifies the field on the owning side that controls the mapping for the - * association. This is only set on the inverse side of an association. - * - * @var string - */ - protected $_mappedByFieldName; - - /** - * Identifies the field on the inverse side of a bidirectional association. - * This is only set on the owning side of an association. - * - * @var string - */ - //protected $_inverseSideFieldName; - - /** - * The name of the join table, if any. - * - * @var string - */ - protected $_joinTable; - - //protected $_mapping = array(); - - /** - * Constructor. - * Creates a new AssociationMapping. - * - * @param array $mapping The mapping definition. - */ - public function __construct(array $mapping) - { - //$this->_initMappingArray(); - //$mapping = $this->_validateAndCompleteMapping($mapping); - //$this->_mapping = array_merge($this->_mapping, $mapping);*/ - - $this->_validateAndCompleteMapping($mapping); - } - - protected function _initMappingArray() - { - $this->_mapping = array( - 'fieldName' => null, - 'sourceEntity' => null, - 'targetEntity' => null, - 'mappedBy' => null, - 'joinColumns' => null, - 'joinTable' => null, - 'accessor' => null, - 'mutator' => null, - 'optional' => true, - 'cascades' => array() - ); - } - - /** - * Validates & completes the mapping. Mapping defaults are applied here. - * - * @param array $mapping - */ - protected function _validateAndCompleteMapping(array $mapping) - { - // Mandatory attributes for both sides - if ( ! isset($mapping['fieldName'])) { - throw Doctrine_MappingException::missingFieldName(); - } - $this->_sourceFieldName = $mapping['fieldName']; - - if ( ! isset($mapping['sourceEntity'])) { - throw Doctrine_MappingException::missingSourceEntity($mapping['fieldName']); - } - $this->_sourceEntityName = $mapping['sourceEntity']; - - if ( ! isset($mapping['targetEntity'])) { - throw Doctrine_MappingException::missingTargetEntity($mapping['fieldName']); - } - $this->_targetEntityName = $mapping['targetEntity']; - - // Mandatory and optional attributes for either side - if ( ! isset($mapping['mappedBy'])) { - // Optional - if (isset($mapping['joinTable'])) { - $this->_joinTable = $mapping['joinTable']; - } - } else { - $this->_isOwningSide = false; - $this->_mappedByFieldName = $mapping['mappedBy']; - } - - // Optional attributes for both sides - if (isset($mapping['accessor'])) { - $this->_customAccessor = $mapping['accessor']; - } - if (isset($mapping['mutator'])) { - $this->_customMutator = $mapping['mutator']; - } - $this->_isOptional = isset($mapping['optional']) ? - (bool)$mapping['optional'] : true; - $this->_cascades = isset($mapping['cascade']) ? - (array)$mapping['cascade'] : array(); - } - - /** - * Whether the association cascades delete() operations from the source entity - * to the target entity/entities. - * - * @return boolean - */ - public function isCascadeDelete() - { - if (is_null($this->_isCascadeDelete)) { - $this->_isCascadeDelete = in_array('delete', $this->_cascades); - } - return $this->_isCascadeDelete; - } - - /** - * Whether the association cascades save() operations from the source entity - * to the target entity/entities. - * - * @return boolean - */ - public function isCascadeSave() - { - if (is_null($this->_isCascadeSave)) { - $this->_isCascadeSave = in_array('save', $this->_cascades); - } - return $this->_isCascadeSave; - } - - /** - * Whether the association cascades refresh() operations from the source entity - * to the target entity/entities. - * - * @return boolean - */ - public function isCascadeRefresh() - { - if (is_null($this->_isCascadeRefresh)) { - $this->_isCascadeRefresh = in_array('refresh', $this->_cascades); - } - return $this->_isCascadeRefresh; - } - - /** - * Whether the target entity/entities of the association are eagerly fetched. - * - * @return boolean - */ - public function isEagerlyFetched() - { - return $this->_fetchMode == self::FETCH_EAGER; - } - - /** - * Whether the target entity/entities of the association are lazily fetched. - * - * @return boolean - */ - public function isLazilyFetched() - { - return $this->_fetchMode == self::FETCH_LAZY; - } - - /** - * Whether the target entity/entities of the association are manually fetched. - * - * @return boolean - */ - public function isManuallyFetched() - { - return $this->_fetchMode == self::FETCH_MANUAL; - } - - /** - * Whether the source entity of this association represents the owning side. - * - * @return boolean - */ - public function isOwningSide() - { - return $this->_isOwningSide; - } - - /** - * Whether the source entity of this association represents the inverse side. - * - * @return boolean - */ - public function isInverseSide() - { - return ! $this->_isOwningSide; - } - - /** - * Whether the association is optional (0..X), or not (1..X). - * - * @return boolean TRUE if the association is optional, FALSE otherwise. - */ - public function isOptional() - { - return $this->_isOptional; - } - - /** - * Gets the name of the source entity class. - * - * @return string - */ - public function getSourceEntityName() - { - return $this->_sourceEntityName; - } - - /** - * Gets the name of the target entity class. - * - * @return string - */ - public function getTargetEntityName() - { - return $this->_targetEntityName; - } - - /** - * Gets the name of the join table. - * - * @return string - */ - public function getJoinTable() - { - return $this->_joinTable; - } - - /** - * Get the name of the field the association is mapped into. - * - * @return string - */ - public function getSourceFieldName() - { - return $this->_sourceFieldName; - } - - /** - * Gets the field name of the owning side in a bi-directional association. - * - * @return string - */ - public function getMappedByFieldName() - { - return $this->_mappedByFieldName; - } - - /*public function getInverseSideFieldName() - { - return $this->_inverseSideFieldName; - }*/ - /** - * Marks the association as bidirectional, specifying the field name of - * the inverse side. - * This is called on the owning side, when an inverse side is discovered. - * This does only make sense to call on the owning side. - * - * @param string $inverseSideFieldName - */ - /*public function setBidirectional($inverseSideFieldName) - { - if ( ! $this->_isOwningSide) { - return; //TODO: exception? - } - $this->_inverseSideFieldName = $inverseSideFieldName; - }*/ - - /** - * Whether the association is bidirectional. - * - * @return boolean - */ - /*public function isBidirectional() - { - return $this->_mappedByFieldName || $this->_inverseSideFieldName; - }*/ - - /** - * Whether the source field of the association has a custom accessor. - * - * @return boolean TRUE if the source field of the association has a custom accessor, - * FALSE otherwise. - */ - public function hasCustomAccessor() - { - return isset($this->_customAccessor); - } - - /** - * Gets the name of the custom accessor method of the source field. - * - * @return string The name of the accessor method or NULL. - */ - public function getCustomAccessor() - { - return $this->_customAccessor; - } - - /** - * Whether the source field of the association has a custom mutator. - * - * @return boolean TRUE if the source field of the association has a custom mutator, - * FALSE otherwise. - */ - public function hasCustomMutator() - { - return isset($this->_customMutator); - } - - /** - * Gets the name of the custom mutator method of the source field. - * - * @return string The name of the mutator method or NULL. - */ - public function getCustomMutator() - { - return $this->_customMutator; - } - - public function isOneToOne() - { - return false; - } - - public function isOneToMany() - { - return false; - } - - public function isManyToMany() - { - return false; - } - - /* Serializable implementation */ - - public function serialize() - { - return ""; - } - - public function unserialize($serialized) - { - return true; - } -} - -?> \ No newline at end of file Modified: trunk/lib/Doctrine/ClassMetadata.php =================================================================== --- trunk/lib/Doctrine/ClassMetadata.php 2008-09-12 09:19:25 UTC (rev 4914) +++ trunk/lib/Doctrine/ClassMetadata.php 2008-09-12 09:26:43 UTC (rev 4915) @@ -1552,7 +1552,7 @@ * @param Doctrine_Association $assoc * @param unknown_type $fieldName */ - private function _registerCustomAssociationAccessors(Doctrine_Association $assoc, $fieldName) + private function _registerCustomAssociationAccessors(Doctrine_ORM_Mapping_AssociationMapping $assoc, $fieldName) { if ($acc = $assoc->getCustomAccessor()) { $this->_customAssociationAccessors[$fieldName] = $acc; @@ -1570,7 +1570,7 @@ public function mapOneToOne(array $mapping) { $mapping = $this->_completeAssociationMapping($mapping); - $oneToOneMapping = new Doctrine_Association_OneToOne($mapping); + $oneToOneMapping = new Doctrine_ORM_Mapping_OneToOneMapping($mapping); $this->_storeAssociationMapping($oneToOneMapping); /*if ($oneToOneMapping->isInverseSide()) { @@ -1583,7 +1583,7 @@ }*/ } - private function _registerMappingIfInverse(Doctrine_Association $assoc) + private function _registerMappingIfInverse(Doctrine_ORM_Mapping_AssociationMapping $assoc) { if ($assoc->isInverseSide()) { $this->_inverseMappings[$assoc->getMappedByFieldName()] = $assoc; @@ -1598,7 +1598,7 @@ public function mapOneToMany(array $mapping) { $mapping = $this->_completeAssociationMapping($mapping); - $oneToManyMapping = new Doctrine_Association_OneToMany($mapping); + $oneToManyMapping = new Doctrine_ORM_Mapping_OneToManyMapping($mapping); $this->_storeAssociationMapping($oneToManyMapping); } @@ -1621,7 +1621,7 @@ public function mapManyToMany(array $mapping) { $mapping = $this->_completeAssociationMapping($mapping); - $manyToManyMapping = new Doctrine_Association_ManyToManyMapping($mapping); + $manyToManyMapping = new Doctrine_ORM_Mapping_ManyToManyMapping($mapping); $this->_storeAssociationMapping($manyToManyMapping); } @@ -1630,7 +1630,7 @@ * * @param Doctrine_Association $assocMapping */ - private function _storeAssociationMapping(Doctrine_Association $assocMapping) + private function _storeAssociationMapping(Doctrine_ORM_Mapping_AssociationMapping $assocMapping) { $sourceFieldName = $assocMapping->getSourceFieldName(); if (isset($this->_associationMappings[$sourceFieldName])) { Modified: trunk/lib/Doctrine/Collection.php =================================================================== --- trunk/lib/Doctrine/Collection.php 2008-09-12 09:19:25 UTC (rev 4914) +++ trunk/lib/Doctrine/Collection.php 2008-09-12 09:26:43 UTC (rev 4915) @@ -229,7 +229,7 @@ * * @return void */ - public function _setOwner(Doctrine_Entity $entity, Doctrine_Association $relation) + public function _setOwner(Doctrine_Entity $entity, Doctrine_ORM_Mapping_AssociationMapping $relation) { $this->_owner = $entity; $this->_association = $relation; Modified: trunk/tests/Orm/Associations/OneToOneMappingTest.php =================================================================== --- trunk/tests/Orm/Associations/OneToOneMappingTest.php 2008-09-12 09:19:25 UTC (rev 4914) +++ trunk/tests/Orm/Associations/OneToOneMappingTest.php 2008-09-12 09:26:43 UTC (rev 4915) @@ -12,7 +12,7 @@ 'sourceEntity' => 'Person', // This is normally filled by ClassMetadata ); - $oneToOneMapping = new Doctrine_Association_OneToOne($owningSideMapping); + $oneToOneMapping = new Doctrine_ORM_Mapping_OneToOneMapping($owningSideMapping); $this->assertEquals(array('address_id' => 'id'), $oneToOneMapping->getSourceToTargetKeyColumns()); $this->assertEquals(array('id' => 'address_id'), $oneToOneMapping->getTargetToSourceKeyColumns()); @@ -29,7 +29,7 @@ 'mappedBy' => 'address' ); - $oneToOneMapping = new Doctrine_Association_OneToOne($inverseSideMapping); + $oneToOneMapping = new Doctrine_ORM_Mapping_OneToOneMapping($inverseSideMapping); $this->assertEquals('address', $oneToOneMapping->getMappedByFieldName()); $this->assertEquals('Address', $oneToOneMapping->getSourceEntityName()); $this->assertEquals('Person', $oneToOneMapping->getTargetEntityName()); --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "doctrine-svn" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.co.uk/group/doctrine-svn?hl=en-GB -~----------~----~----~----~------~----~------~--~---
