コード例 #1
0
 /**
  * Get FQCN of specified entity
  *
  * @param object $object
  * @return string
  */
 public function getClassName($object)
 {
     if (!is_object($object)) {
         return null;
     }
     return $this->doctrineHelper->getEntityClass($object);
 }
コード例 #2
0
 /**
  * {@inheritdoc}
  */
 public function normalize(Workflow $workflow, Attribute $attribute, $attributeValue)
 {
     if (null === $attributeValue) {
         return null;
     }
     $this->validateAttributeValue($workflow, $attribute, $attributeValue);
     return $this->doctrineHelper->getEntityIdentifier($attributeValue);
 }
コード例 #3
0
 /**
  * @param array $entitiesToBind
  * @return WorkflowBindEntity[]
  */
 protected function createBindEntities(array $entitiesToBind)
 {
     $result = array();
     foreach ($entitiesToBind as $entity) {
         if ($entity) {
             $bindEntity = new WorkflowBindEntity();
             $bindEntity->setEntityClass($this->doctrineHelper->getEntityClass($entity));
             $bindEntity->setEntityId($this->doctrineHelper->getEntityIdentifier($entity));
             $result[] = $bindEntity;
         }
     }
     return $result;
 }
コード例 #4
0
 /**
  * @param array|\Traversable $values
  * @return array
  */
 protected function convertToPlainArray($values)
 {
     $result = array();
     foreach ($values as $key => $value) {
         if (is_object($value) && $this->doctrineHelper->isManageableEntity($value)) {
             $result[$key] = $this->doctrineHelper->getEntityIdentifier($value);
         } elseif (is_array($value) || $value instanceof \Traversable) {
             $result[$key] = $this->convertToPlainArray($value);
         } else {
             $result[$key] = $value;
         }
     }
     return $result;
 }
コード例 #5
0
 public function testGetEntityReference()
 {
     $expectedResult = $this->getMock('MockEntityReference');
     $entityClass = 'MockEntity';
     $entityId = 100;
     $entityManager = $this->getMockBuilder('Doctrine\\Orm\\EntityManager')->disableOriginalConstructor()->setMethods(array('getReference'))->getMock();
     $this->registry->expects($this->any())->method('getManagerForClass')->with($entityClass)->will($this->returnValue($entityManager));
     $entityManager->expects($this->once())->method('getReference')->with($entityClass, $entityId)->will($this->returnValue($expectedResult));
     $this->assertEquals($expectedResult, $this->doctrineHelper->getEntityReference($entityClass, $entityId));
 }
コード例 #6
0
 /**
  * @param Workflow $workflow
  * @param object $entity
  * @return null|Attribute
  */
 protected function getManagedEntityAttributeByEntity(Workflow $workflow, $entity)
 {
     $entityClass = $this->doctrineHelper->getEntityClass($entity);
     /** @var Attribute $attribute */
     foreach ($workflow->getAttributeManager()->getManagedEntityAttributes() as $attribute) {
         if ($attribute->getOption('class') == $entityClass) {
             return $attribute;
         }
     }
     return null;
 }
コード例 #7
0
 /**
  * Compare two values for equality
  *
  * @param mixed $left
  * @param mixed $right
  * @return boolean
  */
 protected function doCompare($left, $right)
 {
     if (is_object($left) && is_object($right)) {
         $leftClass = $this->doctrineHelper->getEntityClass($left);
         $rightClass = $this->doctrineHelper->getEntityClass($right);
         if ($leftClass == $rightClass && $this->doctrineHelper->isManageableEntity($left) && $this->doctrineHelper->isManageableEntity($right)) {
             $leftIdentifier = $this->doctrineHelper->getEntityIdentifier($left);
             $rightIdentifier = $this->doctrineHelper->getEntityIdentifier($right);
             return $leftIdentifier == $rightIdentifier;
         }
     }
     return $left == $right;
 }