/**
  * {@inheritdoc}
  */
 public function dump(array $exclude = [])
 {
     $array = array_diff_key(array_filter(get_object_vars($this), function ($value) {
         return $value || is_bool($value);
     }), array_flip(array_merge(['name', 'objectName', 'multiple'], $exclude)));
     return array_combine(array_map(function ($key) {
         return Caser::snake($key);
     }, array_keys($array)), array_values($array));
 }
 /**
  * Returns Embedded annotation data from reader.
  *
  * @param \ReflectionProperty $property
  *
  * @return Embedded|null
  */
 private function getEmbeddedAnnotationData($property)
 {
     $result = $this->reader->getPropertyAnnotation($property, self::EMBEDDED_ANNOTATION);
     if ($result !== null && $result->name === null) {
         $result->name = Caser::snake($property->getName());
     }
     return $result;
 }