private static function getValueForObject($object, $key, $brickType = null, $brickKey = null, $fieldDefinition = null)
{
$getter = "get" . ucfirst($key);
$value = $object->{$getter}();
if (!empty($value) && !empty($brickType)) {
$getBrickType = "get" . ucfirst($brickType);
$value = $value->{$getBrickType}();
if (!empty($value) && !empty($brickKey)) {
$brickGetter = "get" . ucfirst($brickKey);
$value = $value->{$brickGetter}();
}
}
if (!$fieldDefinition) {
$fieldDefinition = $object->getClass()->getFieldDefinition($key);
}
if (!empty($brickType) && !empty($brickKey)) {
$brickClass = Objectbrick\Definition::getByKey($brickType);
$fieldDefinition = $brickClass->getFieldDefinition($brickKey);
}
if ($fieldDefinition->isEmpty($value)) {
$parent = self::hasInheritableParentObject($object);
if (!empty($parent)) {
return self::getValueForObject($parent, $key, $brickType, $brickKey, $fieldDefinition);
}
}
$result = new \stdClass();
$result->value = $value;
$result->objectid = $object->getId();
return $result;
}