public function registerEvents(Events $events)
 {
     $events->addCallbackListener($events::HYDRATE_AFTER, function (EventArguments $args) {
         /** @var BadgeUserBridge $entity */
         $entity = $args->entity;
         $entity->injectTranslator($this->translator);
     });
 }
 public function registerEvents(Events $events)
 {
     $keys = $this->getJsonFields();
     $events->addCallbackListener($events::HYDRATE_BEFORE, function (EventArguments $args) use($keys) {
         foreach ($keys as $key) {
             if (isset($args->data[$key])) {
                 $args->data[$key] = Json::decode($args->data[$key], Json::FORCE_ARRAY);
             }
         }
     });
     $events->addCallbackListener($events::SERIALIZE_BEFORE, function (EventArguments $args) use($keys) {
         foreach ($keys as $key) {
             if (isset($args->values[$key])) {
                 $args->values[$key] = Json::encode($args->values[$key]);
             }
         }
         foreach ($args->values as &$value) {
             if (is_string($value) && $value === '') {
                 $value = NULL;
             }
         }
     });
 }
 public function registerEvents(Events $events)
 {
     $events->addCallbackListener($events::PERSIST_AFTER, function (EventArguments $args) {
         /** @var IIndexable|Entity $e */
         $e = $args->entity;
         $data = $e->getIndexData();
         if ($data === FALSE) {
             try {
                 $this->elastic->removeFromIndex($this->getShortEntityName(), (int) $e->id);
             } catch (Missing404Exception $e) {
                 // entity was yet not in index
             }
         } else {
             $this->elastic->addToIndex($this->getShortEntityName(), (int) $e->id, $data);
         }
     });
 }