/** * {@inheritdoc} */ public function getValue($entity, FieldMetadata $metadata) { if ($metadata->has('activity') && $metadata->has('type') && $metadata->get('activity') === true) { return $this->getActivity($entity, $metadata->get('type')); } return parent::getValue($entity, $metadata); }
/** * @param $entity * @param FieldMetadata $metadata * @param int $count * @param $expectedValue * * @dataProvider getValueDataProvider */ public function testGetValue($entity, FieldMetadata $metadata, $count, $expectedValue) { $em = $this->getMockBuilder('Doctrine\\ORM\\EntityManager')->disableOriginalConstructor()->getMock(); $repository = $this->getMockBuilder('Oro\\Bundle\\ActivityListBundle\\Entity\\Repository\\ActivityListRepository')->disableOriginalConstructor()->getMock(); $repository->expects($this->once())->method('getRecordsCountForTargetClassAndId')->with(ClassUtils::getClass($entity), $entity->getId(), [$metadata->get('type')])->willReturn($count); $em->expects($this->once())->method('getRepository')->willReturn($repository); $this->registry->expects($this->once())->method('getManagerForClass')->willReturn($em); $this->assertEquals($expectedValue, $this->accessor->getValue($entity, $metadata)); }
/** * Render field value to string * * @param mixed $value * @param FieldMetadata $metadata * @param object $entity * @return string */ public function renderFieldValue($value, FieldMetadata $metadata, $entity) { $template = $metadata->get('template') ?: $this->defaultTemplate; if (is_array($value) || $value instanceof \Traversable) { $isListValue = true; $stringValue = $this->convertListToStringArray($value, $metadata); } else { $isListValue = false; $stringValue = $this->convertToString($value, $metadata); } return $this->environment->render($template, array('convertedValue' => $stringValue, 'isListValue' => $isListValue, 'metadata' => $metadata, 'value' => $value)); }
/** * @param object $relatedEntity * @param FieldMetadata $metadata * @param object $value */ protected function setRelatedEntityValue($relatedEntity, FieldMetadata $metadata, $value) { if ($metadata->has('setter')) { $setter = $metadata->get('setter'); $relatedEntity->{$setter}($value); } else { try { $this->getPropertyAccessor()->setValue($relatedEntity, $metadata->getDoctrineMetadata()->getFieldName(), $value); } catch (NoSuchPropertyException $e) { // If setter is not exist $reflection = new \ReflectionProperty(ClassUtils::getClass($relatedEntity), $metadata->getDoctrineMetadata()->getFieldName()); $reflection->setAccessible(true); $reflection->setValue($relatedEntity, $value); } } }
/** * @param FieldMetadata $metadata * @return string */ protected function getPropertyPath(FieldMetadata $metadata) { return $metadata->has('property_path') ? $metadata->get('property_path') : $metadata->getFieldName(); }