entityManager = $entityManager; } /** * @param string $entityName * @param RuleConditionsManager $conditionsManager */ public function setEntityConditionsManager(string $entityName, RuleConditionsManager $conditionsManager) { $entityClassName = $this->entityManager->getMetadataFactory()->getMetadataFor($entityName)->getName(); $this->conditionsManagers[$entityClassName] = $conditionsManager; } /** * @param RuleInterface|PreconditionInterface|PostconditionInterface $entity * @return RuleConditionsManager */ public function getConditionsManagerForEntity( $entity) { $entityClassName = get_class($entity); if (!isset($this->conditionsManagers[$entityClassName])) { throw new \InvalidArgumentException(sprintf('No conditions manager defined for entity %s', $entityClassName)); } return $this->conditionsManagers[$entityClassName]; } }