public function createEntityChangeInfo($entity, $entityName, $action, $customTags = [], $customFiles = [])
 {
     $entityInfo = $this->dbSchema->getEntityInfo($entityName);
     $vpid = $entity[$entityInfo->vpidColumnName];
     $actionsInfo = $this->actionsInfoProvider->getActionsInfo($entityName);
     $automaticallySavedTags = $actionsInfo->getTags();
     $tags = ChangeInfoUtils::extractTags($automaticallySavedTags, $entity, $entity);
     $tags = array_merge($tags, $customTags);
     return new EntityChangeInfo($entityInfo, $actionsInfo, $action, $vpid, $tags, $customFiles);
 }
 /**
  * Find all changeInfos and group them according to provided indicies in $changeInfoList by VPID
  * @param ChangeInfo[] $changeInfoList
  * @param array $indicies
  * @return array
  */
 private function getChangeInfosByIndicies($changeInfoList, $indicies)
 {
     $entities = [];
     foreach ($changeInfoList as $key => $changeInfo) {
         /** @var EntityChangeInfo $changeInfo */
         if (ChangeInfoUtils::changeInfoRepresentsEntity($changeInfo, 'post') && in_array($changeInfo->getAction(), $indicies)) {
             $entities[$changeInfo->getId()][$changeInfo->getAction()][] = $key;
         }
     }
     return $entities;
 }
 private function containsTermChangeInfo($changeInfoList)
 {
     return ArrayUtils::any($changeInfoList, function ($changeInfo) {
         return ChangeInfoUtils::changeInfoRepresentsEntity($changeInfo, 'term');
     });
 }