Example #1
0
 /**
  * @param string|array|AssertionInterface $assertion
  * @return null|AssertionInterface
  */
 protected function normalizeAssertion($assertion)
 {
     if (!$assertion) {
         return;
     }
     if ($assertion instanceof AssertionInterface) {
         return $assertion;
     }
     $assertion = (array) $assertion;
     if (count($assertion) > 1) {
         $assertionAggregate = new AssertionAggregate();
         foreach ($ruleData['assertion'] as $plugin) {
             if (is_string($plugin) && $this->assertionPluginManager->has($plugin)) {
                 $plugin = $this->assertionPluginManager->get($plugin);
             }
             if ($plugin instanceof AssertionInterface) {
                 $assertionAggregate->addAssertion($plugin);
             }
         }
         return $assertionAggregate;
     }
     $assertion = reset($assertion);
     if (!$assertion instanceof AssertionInterface) {
         if (is_string($assertion) && $this->assertionPluginManager->has($assertion)) {
             $assertion = $this->assertionPluginManager->get($assertion);
         } else {
             $assertion = null;
         }
     }
     return $assertion;
 }